From 0127ce617de3eecfe5b238bac201767893983f64 Mon Sep 17 00:00:00 2001 From: wuzhenghui Date: Tue, 20 Jan 2026 12:02:24 +0800 Subject: [PATCH] fix(esp_hw_support): fix esp_sleep_enable_gpio_wakeup_on_hp_periph_powerdown bad logic --- components/esp_hw_support/sleep_modes.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/components/esp_hw_support/sleep_modes.c b/components/esp_hw_support/sleep_modes.c index bb3f3fcf6e0..38194302014 100644 --- a/components/esp_hw_support/sleep_modes.c +++ b/components/esp_hw_support/sleep_modes.c @@ -1629,6 +1629,10 @@ esp_err_t esp_sleep_disable_wakeup_source(esp_sleep_source_t source) s_config.wakeup_triggers &= ~RTC_TOUCH_TRIG_EN; #endif } else if (CHECK_SOURCE(source, ESP_SLEEP_WAKEUP_GPIO, RTC_GPIO_TRIG_EN)) { +#if SOC_GPIO_SUPPORT_DEEPSLEEP_WAKEUP + s_config.gpio_wakeup_mask = 0; + s_config.gpio_trigger_mode = 0; +#endif s_config.wakeup_triggers &= ~RTC_GPIO_TRIG_EN; #if SOC_PMU_SUPPORTED && (SOC_UART_HP_NUM > 2) } else if (CHECK_SOURCE(source, ESP_SLEEP_WAKEUP_UART, (RTC_UART0_TRIG_EN | RTC_UART1_TRIG_EN | RTC_UART2_TRIG_EN))) { @@ -2136,12 +2140,12 @@ esp_err_t esp_sleep_enable_gpio_wakeup_on_hp_periph_powerdown(uint64_t gpio_pin_ continue; } err = gpio_wakeup_enable_on_hp_periph_powerdown_sleep(gpio_idx, intr_type); - + if (err != ESP_OK) return err; s_config.gpio_wakeup_mask |= BIT(gpio_idx); if (mode == ESP_GPIO_WAKEUP_GPIO_HIGH) { - s_config.gpio_trigger_mode |= (mode << gpio_idx); + s_config.gpio_trigger_mode |= BIT(gpio_idx); } else { - s_config.gpio_trigger_mode &= ~(mode << gpio_idx); + s_config.gpio_trigger_mode &= ~BIT(gpio_idx); } } s_config.wakeup_triggers |= RTC_GPIO_TRIG_EN;