From 031f7ec29c87a8f0165842e815cb2b8b5393a19c Mon Sep 17 00:00:00 2001 From: cepetr Date: Mon, 6 Jan 2025 09:54:50 +0100 Subject: [PATCH] fixup! fix(core): fix suspending to STOP2 mode --- core/embed/sys/powerctl/stm32u5/powerctl_suspend.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) 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();