altos/stmf0: Leave power interface disabled until needed
authorKeith Packard <keithp@keithp.com>
Tue, 16 Jul 2019 18:02:56 +0000 (11:02 -0700)
committerKeith Packard <keithp@keithp.com>
Tue, 16 Jul 2019 18:02:56 +0000 (11:02 -0700)
We only need the power interface when placing the chip in the lowest
power state, so don't power up the power interface clock at startup,
instead wait until later.

Signed-off-by: Keith Packard <keithp@keithp.com>
src/stmf0/ao_arch_funcs.h
src/stmf0/ao_timer.c

index a0c6e08876cbb012e350b18dc585e02346db9c7c..591ca8a07576fb01a2888754d5f372fc9ab0ac47 100644 (file)
@@ -458,6 +458,9 @@ static inline void ao_sleep_mode(void) {
 
        ao_arch_block_interrupts();
 
+       /* Enable power interface clock */
+       stm_rcc.apb1enr |= (1 << STM_RCC_APB1ENR_PWREN);
+       ao_arch_nop();
        stm_scb.scr |= (1 << STM_SCB_SCR_SLEEPDEEP);
        ao_arch_nop();
        stm_pwr.cr |= (1 << STM_PWR_CR_PDDS) | (1 << STM_PWR_CR_LPDS);
index 58e52995cf32f35cbb4146b092f60e6217771972..be333754cfa37298d669f57572eb4783d4999093 100644 (file)
@@ -294,9 +294,6 @@ ao_clock_init(void)
        /* Enable 1 wait state so the CPU can run at 48MHz */
        stm_flash.acr |= (STM_FLASH_ACR_LATENCY_1 << STM_FLASH_ACR_LATENCY);
 
-       /* Enable power interface clock */
-       stm_rcc.apb1enr |= (1 << STM_RCC_APB1ENR_PWREN);
-
        /* HCLK to 48MHz -> AHB prescaler = /1 */
        cfgr = stm_rcc.cfgr;
        cfgr &= ~(STM_RCC_CFGR_HPRE_MASK << STM_RCC_CFGR_HPRE);