refactor(rtcio): split rtcio/gpio switch with rtc iomux func sel func

This allows rtc_gpio_deinit to always switch the pad back to GPIO,
regardless of lp io clock enabled or not, so that gpio_config can
always switch the IO back to GPIO use after wakeup from deep sleep.
This commit is contained in:
Song Ruo Jing
2026-04-13 16:32:21 +08:00
parent dd8fa9ffff
commit eef2153dd0
11 changed files with 79 additions and 85 deletions

View File

@@ -1914,6 +1914,7 @@ static void ext0_wakeup_prepare(void)
#endif
rtcio_hal_ext0_set_wakeup_pin(rtc_gpio_num, s_config.ext0_trigger_level);
rtcio_hal_function_select(rtc_gpio_num, RTCIO_LL_FUNC_RTC);
rtcio_hal_iomux_func_sel(rtc_gpio_num, RTCIO_LL_PIN_FUNC);
rtcio_hal_input_enable(rtc_gpio_num);
}
@@ -2050,6 +2051,8 @@ static void ext1_wakeup_prepare(void)
#if SOC_RTCIO_INPUT_OUTPUT_SUPPORTED
// Route pad to RTC
rtcio_hal_function_select(rtc_pin, RTCIO_LL_FUNC_RTC);
// Select LP GPIO function
rtcio_hal_iomux_func_sel(rtc_pin, RTCIO_LL_PIN_FUNC);
// set input enable in sleep mode
rtcio_hal_input_enable(rtc_pin);
#if SOC_PM_SUPPORT_RTC_PERIPH_PD