From 1ec41ce922a843e99fe16735e1ea9a535f31e212 Mon Sep 17 00:00:00 2001 From: Erwan Gouriou Date: Mon, 13 Sep 2021 16:39:49 +0200 Subject: [PATCH] drivers/clock_control: stm32u5: Fix VCO setting When existing stop mode 1&2, VCO is set to range 4 and should be set back to range 1 to allow full speed operations. Rather than setting VCO at startup, set it inside clock setting procedure so that it could done in clock reset procedure when existing stop modes. Signed-off-by: Erwan Gouriou --- drivers/clock_control/clock_stm32_ll_u5.c | 4 ++++ soc/arm/st_stm32/stm32u5/soc.c | 2 -- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/clock_control/clock_stm32_ll_u5.c b/drivers/clock_control/clock_stm32_ll_u5.c index e396e016bac..4edbb170cec 100644 --- a/drivers/clock_control/clock_stm32_ll_u5.c +++ b/drivers/clock_control/clock_stm32_ll_u5.c @@ -324,6 +324,10 @@ void config_src_sysclk_pll(LL_UTILS_ClkInitTypeDef s_ClkInitStruct) STM32_PLL_N_MULTIPLIER, STM32_PLL_R_DIVISOR); + LL_PWR_SetRegulVoltageScaling(LL_PWR_REGU_VOLTAGE_SCALE1); + while (LL_PWR_IsActiveFlag_VOS() == 0) { + } + if (CONFIG_SYS_CLOCK_HW_CYCLES_PER_SEC >= 55) { /* * Set EPOD prescaler based on PLL1 input freq (MSI/PLLM) diff --git a/soc/arm/st_stm32/stm32u5/soc.c b/soc/arm/st_stm32/stm32u5/soc.c index dcce2b4fcb3..a81800dc9c0 100644 --- a/soc/arm/st_stm32/stm32u5/soc.c +++ b/soc/arm/st_stm32/stm32u5/soc.c @@ -59,8 +59,6 @@ static int stm32u5_init(const struct device *arg) /* Disable USB Type-C dead battery pull-down behavior */ LL_PWR_DisableUCPDDeadBattery(); - LL_PWR_SetRegulVoltageScaling(LL_PWR_REGU_VOLTAGE_SCALE1); - return 0; }