feat(esp_hw_support): add esp_sleep_rtcio_channel_to_gpio_num for channel to IO num conversion

This commit is contained in:
wuzhenghui
2026-03-25 10:49:47 +08:00
parent 708f3ec52d
commit a441be19a7
7 changed files with 59 additions and 30 deletions
@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: 2017-2025 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2017-2026 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Unlicense OR CC0-1.0
*/
@@ -68,9 +68,9 @@ static void deep_sleep_task(void *args)
}
#if CONFIG_EXAMPLE_GPIO_WAKEUP
if (causes & BIT(ESP_SLEEP_WAKEUP_GPIO)) {
uint64_t wakeup_pin_mask = esp_sleep_get_gpio_wakeup_status();
if (wakeup_pin_mask != 0) {
int pin = __builtin_ffsll(wakeup_pin_mask) - 1;
uint64_t wakeup_channel_mask = esp_sleep_get_gpio_wakeup_status();
if (wakeup_channel_mask != 0) {
int pin = esp_sleep_wakeup_io_bit2num((uint32_t)__builtin_ctzll(wakeup_channel_mask));
printf("Wake up from GPIO %d\n", pin);
} else {
printf("Wake up from GPIO\n");
@@ -86,7 +86,7 @@ static void deep_sleep_task(void *args)
if (causes & BIT(ESP_SLEEP_WAKEUP_EXT1)) {
uint64_t wakeup_pin_mask = esp_sleep_get_ext1_wakeup_status();
if (wakeup_pin_mask != 0) {
int pin = __builtin_ffsll(wakeup_pin_mask) - 1;
int pin = __builtin_ctzll(wakeup_pin_mask);
printf("Wake up from GPIO %d\n", pin);
} else {
printf("Wake up from GPIO\n");