From a3e5a68c46af76d4d6e8924388b6a943996aa95e Mon Sep 17 00:00:00 2001 From: iabdalkader Date: Thu, 7 Apr 2022 16:55:18 +0200 Subject: [PATCH] stm32/system_stm32: Set voltage scaling level 0 for H7 Rev-V devices. This enables voltage scaling level 0 for H7 Rev-V devices, which allows the CPU to run at the maximum supported operating frequency (480MHz). --- ports/stm32/system_stm32.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/ports/stm32/system_stm32.c b/ports/stm32/system_stm32.c index cdbfe925fc..dfff803e03 100644 --- a/ports/stm32/system_stm32.c +++ b/ports/stm32/system_stm32.c @@ -208,7 +208,16 @@ MP_WEAK void SystemClock_Config(void) { /* The voltage scaling allows optimizing the power consumption when the device is clocked below the maximum system frequency, to update the voltage scaling value regarding system frequency refer to product datasheet. */ - __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1); + #if defined(STM32H7) + if (HAL_GetREVID() >= 0x2003) { + // Enable VSCALE0 for revision V devices. + __HAL_RCC_SYSCFG_CLK_ENABLE(); + __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE0); + } else + #endif + { + __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1); + } #elif defined(STM32G4) // Configure the main internal regulator output voltage