Skip to content

Commit e48b985

Browse files
committed
stm32/main: Enable all AHB5 GRP1 clocks in low power mode.
The main functional change here is to make sure that the SDMMC1/2 clocks are enabled in low power mode; they were not previously enabled for SD card use, only WLAN. It doesn't hurt to unconditionally enable the clocks in low power, like all the other peripherals. Signed-off-by: Damien George <damien@micropython.org>
1 parent 07540a8 commit e48b985

4 files changed

Lines changed: 1 addition & 12 deletions

File tree

ports/stm32/eth.c

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -370,11 +370,6 @@ static int eth_mac_init(eth_t *self) {
370370
__HAL_RCC_ETH1RX_CLK_SLEEP_ENABLE();
371371
#elif defined(STM32N6)
372372
__HAL_RCC_ETH1_RELEASE_RESET();
373-
374-
__HAL_RCC_ETH1_CLK_SLEEP_ENABLE();
375-
__HAL_RCC_ETH1MAC_CLK_SLEEP_ENABLE();
376-
__HAL_RCC_ETH1TX_CLK_SLEEP_ENABLE();
377-
__HAL_RCC_ETH1RX_CLK_SLEEP_ENABLE();
378373
#else
379374
__HAL_RCC_ETHMAC_RELEASE_RESET();
380375

ports/stm32/main.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -409,13 +409,13 @@ void stm32_main(uint32_t reset_mode) {
409409
LL_MEM_EnableClockLowPower(LL_MEM_AXISRAM1 | LL_MEM_AXISRAM2 | LL_MEM_AXISRAM3
410410
| LL_MEM_AXISRAM4 | LL_MEM_AXISRAM5 | LL_MEM_AXISRAM6 | LL_MEM_AHBSRAM1 | LL_MEM_AHBSRAM2
411411
| LL_MEM_BKPSRAM | LL_MEM_FLEXRAM | LL_MEM_CACHEAXIRAM | LL_MEM_VENCRAM | LL_MEM_BOOTROM);
412-
LL_AHB5_GRP1_EnableClockLowPower(LL_AHB5_GRP1_PERIPH_XSPI2 | LL_AHB5_GRP1_PERIPH_XSPIM);
413412
LL_APB4_GRP1_EnableClock(LL_APB4_GRP1_PERIPH_RTC | LL_APB4_GRP1_PERIPH_RTCAPB);
414413
LL_APB4_GRP1_EnableClockLowPower(LL_APB4_GRP1_PERIPH_RTC | LL_APB4_GRP1_PERIPH_RTCAPB);
415414

416415
// Enable some AHB peripherals during sleep.
417416
LL_AHB1_GRP1_EnableClockLowPower(LL_AHB1_GRP1_PERIPH_ALL); // GPDMA1, ADC12
418417
LL_AHB4_GRP1_EnableClockLowPower(LL_AHB4_GRP1_PERIPH_ALL); // GPIOA-Q, PWR, CRC
418+
LL_AHB5_GRP1_EnableClockLowPower(LL_AHB5_GRP1_PERIPH_ALL); // DMA2D, ETH, FMC, GFXMMU, GPU2D, HPDMA, XSPI, JPEG, MCE, CACHEAXI, NPU, OTG, PSSI, SDMMC
419419

420420
// Enable some APB peripherals during sleep.
421421
LL_APB1_GRP1_EnableClockLowPower(LL_APB1_GRP1_PERIPH_ALL); // I2C, I3C, LPTIM, SPI, TIM, UART, WWDG

ports/stm32/sdio.c

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -131,10 +131,6 @@ void sdio_init(uint32_t irq_pri) {
131131
mp_hal_pin_config_alt_static(MICROPY_HW_SDIO_CMD, MP_HAL_PIN_MODE_ALT, MP_HAL_PIN_PULL_UP, STATIC_AF_SDMMC_CMD);
132132

133133
SDMMC_CLK_ENABLE(); // enable SDIO peripheral
134-
#if defined(STM32N6)
135-
LL_AHB5_GRP1_EnableClockLowPower(LL_AHB5_GRP1_PERIPH_SDMMC1);
136-
LL_AHB5_GRP1_EnableClockLowPower(LL_AHB5_GRP1_PERIPH_SDMMC2);
137-
#endif
138134

139135
SDMMC_TypeDef *SDIO = SDMMC;
140136
#if defined(STM32F7)

ports/stm32/usbd_conf.c

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -279,8 +279,6 @@ static void mp_usbd_ll_init_hs(void) {
279279

280280
LL_AHB5_GRP1_EnableClock(LL_AHB5_GRP1_PERIPH_OTG1);
281281
LL_AHB5_GRP1_EnableClock(LL_AHB5_GRP1_PERIPH_OTGPHY1);
282-
LL_AHB5_GRP1_EnableClockLowPower(LL_AHB5_GRP1_PERIPH_OTG1);
283-
LL_AHB5_GRP1_EnableClockLowPower(LL_AHB5_GRP1_PERIPH_OTGPHY1);
284282

285283
// Select 24MHz clock.
286284
MODIFY_REG(USB1_HS_PHYC->USBPHYC_CR, USB_USBPHYC_CR_FSEL, 2 << USB_USBPHYC_CR_FSEL_Pos);

0 commit comments

Comments
 (0)