mirror of
https://github.com/trezor/trezor-firmware.git
synced 2025-07-19 04:58:11 +00:00
feat(core): enable LSE on T3W1
[no changelog]
This commit is contained in:
parent
d1c1503fa4
commit
4de403bbe1
@ -121,6 +121,40 @@ void lsi_init(void) {
|
|||||||
;
|
;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// This function replaces calls to universal, but flash-wasting
|
||||||
|
// function HAL_RCC_OscConfig.
|
||||||
|
//
|
||||||
|
// This is the configuration before the optimization:
|
||||||
|
// osc_init_def.OscillatorType = RCC_OSCILLATORTYPE_LSE;
|
||||||
|
// osc_init_def.LSEState = RCC_LSE_ON;
|
||||||
|
// HAL_RCC_OscConfig(&osc_init_def);
|
||||||
|
void lse_init(void) {
|
||||||
|
// Update LSE configuration in Backup Domain control register
|
||||||
|
// Requires to enable write access to Backup Domain of necessary */
|
||||||
|
|
||||||
|
if (HAL_IS_BIT_CLR(PWR->DBPR, PWR_DBPR_DBP)) {
|
||||||
|
// Enable write access to Backup domain
|
||||||
|
SET_BIT(PWR->DBPR, PWR_DBPR_DBP);
|
||||||
|
|
||||||
|
while (HAL_IS_BIT_CLR(PWR->DBPR, PWR_DBPR_DBP))
|
||||||
|
;
|
||||||
|
}
|
||||||
|
|
||||||
|
// LSE oscillator enable
|
||||||
|
SET_BIT(RCC->BDCR, RCC_BDCR_LSEON);
|
||||||
|
|
||||||
|
// Wait till LSE is ready
|
||||||
|
while (READ_BIT(RCC->BDCR, RCC_BDCR_LSERDY) == 0U)
|
||||||
|
;
|
||||||
|
|
||||||
|
// Make sure LSESYSEN/LSESYSRDY are reset
|
||||||
|
CLEAR_BIT(RCC->BDCR, RCC_BDCR_LSESYSEN);
|
||||||
|
|
||||||
|
// Wait till LSESYSRDY is cleared
|
||||||
|
while (READ_BIT(RCC->BDCR, RCC_BDCR_LSESYSRDY) != 0U)
|
||||||
|
;
|
||||||
|
}
|
||||||
|
|
||||||
void SystemInit(void) {
|
void SystemInit(void) {
|
||||||
// set flash wait states for an increasing HCLK frequency
|
// set flash wait states for an increasing HCLK frequency
|
||||||
|
|
||||||
@ -224,7 +258,7 @@ void SystemInit(void) {
|
|||||||
PWR->SVMCR |= PWR_SVMCR_IO2SV;
|
PWR->SVMCR |= PWR_SVMCR_IO2SV;
|
||||||
|
|
||||||
#ifdef USE_LSE
|
#ifdef USE_LSE
|
||||||
// TODO
|
lse_init();
|
||||||
#else
|
#else
|
||||||
lsi_init();
|
lsi_init();
|
||||||
#endif
|
#endif
|
||||||
|
@ -36,6 +36,7 @@ def configure(
|
|||||||
("HW_REVISION", str(hw_revision)),
|
("HW_REVISION", str(hw_revision)),
|
||||||
("HSE_VALUE", "32000000"),
|
("HSE_VALUE", "32000000"),
|
||||||
("USE_HSE", "1"),
|
("USE_HSE", "1"),
|
||||||
|
("USE_LSE", "1"),
|
||||||
("FIXED_HW_DEINIT", "1"),
|
("FIXED_HW_DEINIT", "1"),
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@ -36,6 +36,7 @@ def configure(
|
|||||||
("HW_REVISION", str(hw_revision)),
|
("HW_REVISION", str(hw_revision)),
|
||||||
("HSE_VALUE", "32000000"),
|
("HSE_VALUE", "32000000"),
|
||||||
("USE_HSE", "1"),
|
("USE_HSE", "1"),
|
||||||
|
("USE_LSE", "1"),
|
||||||
("FIXED_HW_DEINIT", "1"),
|
("FIXED_HW_DEINIT", "1"),
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@ -36,6 +36,7 @@ def configure(
|
|||||||
("HW_REVISION", str(hw_revision)),
|
("HW_REVISION", str(hw_revision)),
|
||||||
("HSE_VALUE", "32000000"),
|
("HSE_VALUE", "32000000"),
|
||||||
("USE_HSE", "1"),
|
("USE_HSE", "1"),
|
||||||
|
("USE_LSE", "1"),
|
||||||
("FIXED_HW_DEINIT", "1"),
|
("FIXED_HW_DEINIT", "1"),
|
||||||
]
|
]
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user