Merge branch 'fix/lp_core_wake_stub_pmu_sw_int_v6.0' into 'release/v6.0'

fix(esp_hw_support): clear LP core SW interrupt in wake stub before sleep (v6.0)

See merge request espressif/esp-idf!46550
This commit is contained in:
Marius Vikhammer
2026-03-20 09:20:50 +08:00
4 changed files with 122 additions and 1 deletions
@@ -62,6 +62,13 @@ void RTC_IRAM_ATTR esp_wake_stub_sleep(esp_deep_sleep_wake_stub_fn_t new_stub)
pmu_ll_hp_clear_wakeup_intr_status(&PMU);
pmu_ll_hp_clear_reject_intr_status(&PMU);
pmu_ll_hp_clear_reject_cause(&PMU);
#if CONFIG_ULP_COPROC_TYPE_LP_CORE
/* Clear the pending LP core SW interrupt before sleeping. Without this,
* the LP core wakeup cause bit (PMU_SW_INT_RAW) remains asserted after
* ulp_lp_core_wakeup_main_processor(), causing the PMU to immediately
* re-trigger a wakeup as soon as sleep is requested. */
pmu_ll_hp_clear_sw_intr_status(&PMU);
#endif
pmu_ll_hp_set_sleep_enable(&PMU);
#else
rtc_cntl_ll_sleep_enable();