]> granicus.if.org Git - esp-idf/commitdiff
soc/rtc: Force power on 8M clock if it is used to derive RTC slow clock
authorIvan Grokhotkov <ivan@espressif.com>
Sun, 12 Aug 2018 22:11:32 +0000 (01:11 +0300)
committerIvan Grokhotkov <ivan@espressif.com>
Wed, 22 Aug 2018 03:33:20 +0000 (11:33 +0800)
components/soc/esp32/rtc_sleep.c

index 041c2d1b6b9e82377cb3b45ee43c86ecc9bfa2fb..6b16aa2889a4830f4c877df6e7411c163618202a 100644 (file)
@@ -197,6 +197,12 @@ void rtc_sleep_init(rtc_sleep_config_t cfg)
 
     REG_SET_FIELD(RTC_CNTL_OPTIONS0_REG, RTC_CNTL_XTL_FORCE_PU, cfg.xtal_fpu);
 
+    if (REG_GET_FIELD(RTC_CNTL_CLK_CONF_REG, RTC_CNTL_ANA_CLK_RTC_SEL) == RTC_SLOW_FREQ_8MD256) {
+        REG_SET_BIT(RTC_CNTL_CLK_CONF_REG, RTC_CNTL_CK8M_FORCE_PU);
+    } else {
+        REG_CLR_BIT(RTC_CNTL_CLK_CONF_REG, RTC_CNTL_CK8M_FORCE_PU);
+    }
+
     /* enable VDDSDIO control by state machine */
     REG_CLR_BIT(RTC_CNTL_SDIO_CONF_REG, RTC_CNTL_SDIO_FORCE);
     REG_SET_FIELD(RTC_CNTL_SDIO_CONF_REG, RTC_CNTL_SDIO_PD_EN, cfg.vddsdio_pd_en);