Merge branch 'bugfix/esp32c3_light_sleep_gpio_reset_issue' into 'master'

light sleep: add software workaround for esp32c3 gpio reset issue

See merge request espressif/esp-idf!12715
This commit is contained in:
Jiang Jiang Jian
2021-03-29 04:55:55 +00:00
6 changed files with 44 additions and 18 deletions

View File

@@ -562,6 +562,9 @@ esp_err_t gpio_wakeup_enable(gpio_num_t gpio_num, gpio_int_type_t intr_type)
#endif
portENTER_CRITICAL(&gpio_context.gpio_spinlock);
gpio_hal_wakeup_enable(gpio_context.gpio_hal, gpio_num, intr_type);
#if SOC_GPIO_SUPPORT_SLP_SWITCH && CONFIG_ESP32C3_LIGHTSLEEP_GPIO_RESET_WORKAROUND
gpio_hal_sleep_sel_dis(gpio_context.gpio_hal, gpio_num);
#endif
portEXIT_CRITICAL(&gpio_context.gpio_spinlock);
} else {
ESP_LOGE(GPIO_TAG, "GPIO wakeup only supports level mode, but edge mode set. gpio_num:%u", gpio_num);