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-05-22 15:35:21 +08:00
parent 7a6e80e1f3
commit 5b7db25db1
10 changed files with 64 additions and 68 deletions
+3
View File
@@ -1919,6 +1919,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);
}
@@ -2055,6 +2056,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