fix rtc register read error and add workaround for rtc bus isolate issue

This commit is contained in:
Li Shuai
2021-07-16 17:44:03 +08:00
committed by wuzhenghui
parent 64f8e61b17
commit 1ba2ac83e6
2 changed files with 9 additions and 0 deletions

View File

@ -117,6 +117,11 @@ menu "ESP System Settings"
pull-up, you do not need to select this option, otherwise, you
should enable this option.
config ESP_SYSTEM_SLEEP_RTC_BUS_ISO_WORKAROUND
bool
default y if IDF_TARGET_ESP32 || IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32S3
menu "RTC Clock Config"
# This is used for configure the RTC clock.
config RTC_CLOCK_BBPLL_POWER_ON_WITH_USB

View File

@ -831,6 +831,10 @@ esp_err_t esp_light_sleep_start(void)
// Decide which power domains can be powered down
uint32_t pd_flags = get_power_down_flags();
#ifdef CONFIG_ESP_SYSTEM_SLEEP_RTC_BUS_ISO_WORKAROUND
pd_flags &= ~RTC_SLEEP_PD_RTC_PERIPH;
#endif
// Re-calibrate the RTC Timer clock
#if defined(CONFIG_ESP32_RTC_CLK_SRC_EXT_CRYS) || defined(CONFIG_ESP32S2_RTC_CLK_SRC_EXT_CRYS) || defined(CONFIG_ESP32C3_RTC_CLK_SRC_EXT_CRYS)
if (rtc_clk_slow_freq_get() == RTC_SLOW_FREQ_32K_XTAL) {