Merge branch 'bugfix/disable_touch_sleep_s3' into 'master'

touch_sensor: forbid from using touch sensor with sleep on ESP32-S3

Closes IDF-4810

See merge request espressif/esp-idf!17562
This commit is contained in:
morris 2022-03-24 10:22:31 +08:00
commit 08a4cff6d5
4 changed files with 17 additions and 1 deletions

View File

@ -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();
}

View File

@ -360,8 +360,17 @@ inline static void IRAM_ATTR misc_modules_wake_prepare(void)
inline static uint32_t 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_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.

View File

@ -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.)

View File

@ -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.