diff --git a/components/driver/esp32s3/touch_sensor.c b/components/driver/esp32s3/touch_sensor.c index c120a1c580..9e0adc3759 100644 --- a/components/driver/esp32s3/touch_sensor.c +++ b/components/driver/esp32s3/touch_sensor.c @@ -248,6 +248,10 @@ esp_err_t touch_pad_config(touch_pad_t touch_num) esp_err_t touch_pad_init(void) { + //TODO: IDF-4813 + extern bool esp_no_sleep; + esp_no_sleep = true; + if (rtc_touch_mux == NULL) { rtc_touch_mux = xSemaphoreCreateMutex(); } diff --git a/components/esp_hw_support/sleep_modes.c b/components/esp_hw_support/sleep_modes.c index 638ba6059b..f5a6b29295 100644 --- a/components/esp_hw_support/sleep_modes.c +++ b/components/esp_hw_support/sleep_modes.c @@ -357,8 +357,17 @@ inline static void IRAM_ATTR misc_modules_wake_prepare(void) inline static uint32_t IRAM_ATTR call_rtc_sleep_start(uint32_t reject_triggers, uint32_t lslp_mem_inf_fpu); +//TODO: IDF-4813 +bool esp_no_sleep = false; + static uint32_t IRAM_ATTR esp_sleep_start(uint32_t pd_flags) { +#if CONFIG_IDF_TARGET_ESP32S3 + if (esp_no_sleep) { + ESP_EARLY_LOGE(TAG, "Sleep cannot be used with Touch/ULP for now."); + abort(); + } +#endif //CONFIG_IDF_TARGET_ESP32S3 // Stop UART output so that output is not lost due to APB frequency change. // For light sleep, suspend UART output — it will resume after wakeup. // For deep sleep, wait for the contents of UART FIFO to be sent. diff --git a/examples/system/deep_sleep/README.md b/examples/system/deep_sleep/README.md index c250f05ee1..4c098a244b 100644 --- a/examples/system/deep_sleep/README.md +++ b/examples/system/deep_sleep/README.md @@ -1,3 +1,6 @@ +| Supported Targets | ESP32 | ESP32-S2 | ESP32-C3 | +| ----------------- | ----- | -------- | -------- | + # Deep Sleep Example (See the README.md file in the upper level 'examples' directory for more information about examples.) diff --git a/examples/system/deep_sleep/main/Kconfig.projbuild b/examples/system/deep_sleep/main/Kconfig.projbuild index 1b4f2a6cd7..77a5c35255 100644 --- a/examples/system/deep_sleep/main/Kconfig.projbuild +++ b/examples/system/deep_sleep/main/Kconfig.projbuild @@ -3,7 +3,7 @@ menu "Example Configuration" config EXAMPLE_TOUCH_WAKEUP bool "Enable touch wake up" default y - depends on !IDF_TARGET_ESP32C3 + depends on !IDF_TARGET_ESP32C3 && !IDF_TARGET_ESP32S3 help This option enables wake up from deep sleep using touch pads TOUCH8 and TOUCH9, which correspond to GPIO33 and GPIO32. @@ -33,8 +33,8 @@ menu "Example Configuration" default y depends on IDF_TARGET_ESP32C3 help - This option enables wake up from GPIO, only GPIO0~5 can be used to wake up. Be aware that if you use low level - to trigger wakeup, we strongly recommand you to connect external pull-up resistance. + This option enables wake up from GPIO, only GPIO0~5 can be used to wake up. Be aware that if you use low + level to trigger wakeup, we strongly recommand you to connect external pull-up resistance. menu "GPIO wakeup configuration" visible if IDF_TARGET_ESP32C3