diff --git a/core/embed/sys/powerctl/stm32u5/powerctl_suspend.c b/core/embed/sys/powerctl/stm32u5/powerctl_suspend.c index 4a3f88865e6..72188d94f6a 100644 --- a/core/embed/sys/powerctl/stm32u5/powerctl_suspend.c +++ b/core/embed/sys/powerctl/stm32u5/powerctl_suspend.c @@ -95,13 +95,16 @@ void powerctl_suspend(void) { // immediately after exiting STOP2 mode. irq_key_t irq_key = irq_lock(); - // Enable PWR peripheral clock - // (required by the following HAL_PWREx_EnterSTOP2Mode) + // The PWR clock is disabled after system initialization. + // Re-enable it before writing to PWR registers. __HAL_RCC_PWR_CLK_ENABLE(); - // Enter STOP2 mode + // Enter STOP2 low-power mode HAL_PWREx_EnterSTOP2Mode(PWR_STOPENTRY_WFI); + // Disable PWR clock after use + __HAL_RCC_PWR_CLK_DISABLE(); + // Recover system clock SystemInit();