mirror of
https://github.com/espressif/esp-idf.git
synced 2026-10-02 11:10:54 +03:00
Merge branch 'fix/brownout_restore_after_deepsleep_reject_v5.4' into 'release/v5.4'
fix(esp_hw_support): restore brownout after deep sleep rejection on ESP32-S2 (v5.4) See merge request espressif/esp-idf!52645
This commit is contained in:
@@ -1148,11 +1148,11 @@ inline static uint32_t IRAM_ATTR call_rtc_sleep_start(uint32_t reject_triggers,
|
|||||||
|
|
||||||
static esp_err_t IRAM_ATTR deep_sleep_start(bool allow_sleep_rejection)
|
static esp_err_t IRAM_ATTR deep_sleep_start(bool allow_sleep_rejection)
|
||||||
{
|
{
|
||||||
#if CONFIG_IDF_TARGET_ESP32S2
|
#if CONFIG_IDF_TARGET_ESP32S2 && CONFIG_ESP_BROWNOUT_DET
|
||||||
/* Due to hardware limitations, on S2 the brownout detector sometimes trigger during deep sleep
|
/* Due to hardware limitations, on S2 the brownout detector sometimes trigger during deep sleep
|
||||||
to circumvent this we disable the brownout detector before sleeping */
|
to circumvent this we disable the brownout detector before sleeping */
|
||||||
esp_brownout_disable();
|
esp_brownout_disable();
|
||||||
#endif //CONFIG_IDF_TARGET_ESP32S2
|
#endif //CONFIG_IDF_TARGET_ESP32S2 && CONFIG_ESP_BROWNOUT_DET
|
||||||
|
|
||||||
esp_sync_timekeeping_timers();
|
esp_sync_timekeeping_timers();
|
||||||
|
|
||||||
@@ -1248,6 +1248,12 @@ static esp_err_t IRAM_ATTR deep_sleep_start(bool allow_sleep_rejection)
|
|||||||
esp_clk_private_unlock();
|
esp_clk_private_unlock();
|
||||||
#endif
|
#endif
|
||||||
portEXIT_CRITICAL(&s_config.lock);
|
portEXIT_CRITICAL(&s_config.lock);
|
||||||
|
|
||||||
|
#if CONFIG_IDF_TARGET_ESP32S2 && CONFIG_ESP_BROWNOUT_DET
|
||||||
|
/* Brownout was disabled before attempting deep sleep; restore it after rejection. */
|
||||||
|
esp_brownout_init();
|
||||||
|
#endif //CONFIG_IDF_TARGET_ESP32S2 && CONFIG_ESP_BROWNOUT_DET
|
||||||
|
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user