diff --git a/bootloader/bootloader.c b/bootloader/bootloader.c index abe532cab..2ec539f5f 100644 --- a/bootloader/bootloader.c +++ b/bootloader/bootloader.c @@ -67,27 +67,6 @@ void SysTick_Handler(void) { #endif } - -// ### from timer.c - -uint32_t timer_get_source_freq(uint32_t tim_id) { - uint32_t source; - if (tim_id == 1 || (8 <= tim_id && tim_id <= 11)) { - // TIM{1,8,9,10,11} are on APB2 - source = HAL_RCC_GetPCLK2Freq(); - if ((uint32_t)((RCC->CFGR & RCC_CFGR_PPRE2) >> 3) != RCC_HCLK_DIV1) { - source *= 2; - } - } else { - // TIM{2,3,4,5,6,7,12,13,14} are on APB1 - source = HAL_RCC_GetPCLK1Freq(); - if ((uint32_t)(RCC->CFGR & RCC_CFGR_PPRE1) != RCC_HCLK_DIV1) { - source *= 2; - } - } - return source; -} - // ### int main(void) { diff --git a/extmod/modtrezorui/display-stmhal.h b/extmod/modtrezorui/display-stmhal.h index 854130ff1..b9c0602b3 100644 --- a/extmod/modtrezorui/display-stmhal.h +++ b/extmod/modtrezorui/display-stmhal.h @@ -7,8 +7,6 @@ #include STM32_HAL_H -#define LED_PWM_TIM_PERIOD (10000) -extern uint32_t timer_get_source_freq(uint32_t tim_id); #define DISPLAY_ILI9341V 0 #define DISPLAY_ST7789V 1 @@ -20,6 +18,18 @@ void DATAS(const void *bytes, int len); static TIM_HandleTypeDef TIM1_Handle; +#define LED_PWM_TIM_PERIOD (10000) + +static uint32_t timer1_get_source_freq() { + uint32_t source; + // TIM1 is on APB2 + source = HAL_RCC_GetPCLK2Freq(); + if ((uint32_t)((RCC->CFGR & RCC_CFGR_PPRE2) >> 3) != RCC_HCLK_DIV1) { + source *= 2; + } + return source; +} + void display_sram_init(void) { __GPIOE_CLK_ENABLE(); __TIM1_CLK_ENABLE(); @@ -58,7 +68,7 @@ void display_sram_init(void) { // enable PWM timer TIM1_Handle.Instance = TIM1; TIM1_Handle.Init.Period = LED_PWM_TIM_PERIOD - 1; - TIM1_Handle.Init.Prescaler = timer_get_source_freq(1) / 1000000 - 1; // TIM runs at 1MHz + TIM1_Handle.Init.Prescaler = timer1_get_source_freq() / 1000000 - 1; // TIM runs at 1MHz TIM1_Handle.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; TIM1_Handle.Init.CounterMode = TIM_COUNTERMODE_UP; TIM1_Handle.Init.RepetitionCounter = 0;