Commit Graph

64 Commits

Author SHA1 Message Date
morris
38c4f27102 fix(iomux): move clock source gating to IOMUX consumers
Remove io_mux_set_clock_source internal source enabling and make SDM,
ana_cmpr, and gpio glitch filter drivers explicitly manage clock source
enable/disable with safe cleanup paths.
2026-05-22 19:10:08 +08:00
wuzhenghui
b7ec505923 feat(esp_driver_gpio): support rtc_io edge wakeup deepsleep 2026-05-20 11:04:00 +08:00
wuzhenghui
c67d98fb10 change(soc): move _RTC_GPIO_EDGE_WAKEUP_SUPPORTED to soc_caps.h 2026-05-13 10:51:24 +08:00
wuzhenghui
7c10126309 feat(esp_hw_support): isolate all digital io to suppress pad leakage on TOP pd sleep 2026-05-07 08:39:56 +08:00
Song Ruo Jing
e689feee9d refactor(rtcio): align LP GPIO matrix related APIs with GPIO matrix APIs 2026-04-29 12:17:37 +08:00
Song Ruo Jing
1d50587ab2 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.
2026-04-29 12:17:37 +08:00
Song Ruo Jing
9c2a8281c1 fix(uart): lp uart rx iomux pin was not working as expected
Introduced in 8818157e42
The workaround in the commit routes the signal to LP GPIO matrix first.
When uses LP IOMUX pin as UART RX, the signal did not bypass the matrix,
which caused the issue.

This commit adds rtc_gpio_iomux_input and rtc_gpio_iomux_output APIs
to align with existing GPIO driver APIs.
2026-04-09 17:07:01 +08:00
morris
572e732aca refactor(gpio): derive ETM registers from GPIO_EXT
Use GPIO_EXT.etm as the ETM register base and remove standalone GPIO_ETM symbols to avoid manual offset address maintenance errors across targets.
2026-04-08 15:07:27 +08:00
morris
b79cf6d8eb feat(gpio): support glitch filter on esp32s31 2026-04-08 15:07:27 +08:00
wuzhenghui
b6fcdb1f48 feat(esp_hw_support): support GPIO wakeup deepsleep on esp32/esp32s2/esp32s3
and expand gpio_wakeup_mask/gpio_trigger_mode to 64bit
2026-03-25 10:49:47 +08:00
morris
9cad94e697 feat(ana_cmpr): support analog comparator on esp32h21 2026-03-23 10:28:29 +08:00
Song Ruo Jing
acb49e9520 fix(rtcio): RTC GPIO configuration should be written if LP IO clock exists 2026-03-02 15:03:30 +08:00
He Binglin
1b547ca0ba Merge branch 'bugfix/esp_idf_s3_deepsleep_dead' into 'master'
fix(hal): fix the issue of dual-core contention for RTC_CNTL regs

See merge request espressif/esp-idf!41680
2026-03-02 11:35:53 +08:00
Song Ruo Jing
476004e4b8 fix(gpio): add esp_gpio_reserve check to gpio_config 2026-02-26 16:26:58 +08:00
hebinglin
baeabe48c3 fix(hal): fix the issue of dual-core contention for RTC_CNTL regs 2026-02-10 12:08:03 +08:00
wuzhenghui
e80eb6c5c8 change(hal): deprecate 'gpio deep sleep wakeup' naming in hal
rename `gpio_hal_deepsleep_wakeup_enable/disable` to
       `gpio_hal_wakeup_enable/disable_on_hp_periph_powerdown_sleep`

rename `gpio_hal_deepsleep_wakeup_is_enabled` to
       `gpio_hal_wakeup_is_enabled_on_hp_periph_powerdown_sleep`

rename `gpio_ll_deepsleep_wakeup_enable/disable` to
       `gpio_ll_wakeup_enable/disable_on_hp_periph_powerdown_sleep`
2026-01-21 19:48:26 +08:00
wuzhenghui
78b3fca2b4 change(esp_driver_gpio): deprecate gpio_deep_sleep_wakeup_enable/disable API
rename gpio_deep_sleep_wakeup_enable to gpio_wakeup_enable_on_hp_periph_powerdown_sleep
rename gpio_deep_sleep_wakeup_disable to gpio_wakeup_disable_on_hp_periph_powerdown_sleep
rename GPIO_IS_DEEP_SLEEP_WAKEUP_VALID_GPIO to GPIO_IS_HP_PERIPH_PD_WAKEUP_VALID_IO
2026-01-21 19:48:25 +08:00
wuzhenghui
d188ad96b7 change(soc): rename peripheral powerdowned sleep wakeable IO soc_caps
rename SOC_GPIO_DEEP_SLEEP_WAKE_VALID_GPIO_MASK to SOC_GPIO_HP_PERIPH_PD_SLEEP_WAKEABLE_MASK
rename SOC_GPIO_DEEP_SLEEP_WAKE_SUPPORTED_PIN_CNT to SOC_GPIO_HP_PERIPH_PD_SLEEP_WAKEABLE_PIN_CNT
rename SOC_GPIO_SUPPORT_DEEPSLEEP_WAKEUP to SOC_GPIO_SUPPORT_HP_PERIPH_PD_SLEEP_WAKEUP
2026-01-21 19:47:33 +08:00
laokaiyao
1e54a82e42 feat(touch_sens): support touch sensor on esp32h4 2025-12-15 11:18:37 +08:00
morris
af02c173fb refactor(soc): remove soc_caps_full.h 2025-12-04 10:48:07 +08:00
Song Ruo Jing
06970a5284 refactor(esp_hal_gpio): move some caps definitions to esp_hal_gpio 2025-11-26 15:35:27 +08:00
Song Ruo Jing
1862fdec74 refactor(gpio): split GPIO HAL into separate component
cleaned up some includes in GPIO peripheral files
2025-11-26 15:35:07 +08:00
Song Ruo Jing
f4703a2629 fix(gpio): oe control by register only take effect when func sel is GPIO 2025-11-17 21:52:18 +08:00
Song Ruo Jing
c17644a400 feat(gpio): add IO hold support for Deep-sleep for ESP32-P4 ECO5 2025-11-11 17:03:24 +08:00
Song Ruo Jing
56cbd596f5 refactor(gpio): add esp_err_t return type to gpio_uninstall_isr_service
Closes https://github.com/espressif/esp-idf/issues/14114
2025-11-07 15:26:52 +08:00
Chen Chen
29f8fcf7b7 fix(i2c/gpio): Add error checks to the i2c driver
Add more checks to i2c driver, as well as fixed some GPIO issues
together with it.
2025-10-15 10:38:59 +08:00
Song Ruo Jing
24a9cb7dde refactor(dedic_gpio): clean up dedic gpio soc caps 2025-09-16 11:18:10 +08:00
morris
661590940a refactor(etm): enhance thread safety and clean up soc macros 2025-08-18 14:58:24 +08:00
Song Ruo Jing
9a2984b4c0 fix(gpio): fix ESP32 GPIO sleep mode handling
The previous workaround does not work, the backup/restore should apply to RTC IO registers.
Also moved the workaround to sleep_gpio.c to avoid gpio hal using kconfig.
2025-08-05 21:02:09 +08:00
Olivér Remény
9317ecb4ea fix(gpio): Avoid error message when calling reset on an input only pin.
The `gpio_reset_pin` function attempted to enable internal pullup on pins which does not have one. This change adds a guard to `gpio_reset_pin` for calling `gpio_pullup_en` - the same guard that makes `gpio_pullup_en` print the error.
2025-08-04 12:16:31 +08:00
Song Ruo Jing
60bef64f5c feat(gpio): esp_rom_gpio_connect_in/out_signal now has their hal implementation 2025-06-11 20:41:37 +08:00
Chen Jichang
91f92b0e57 fix(glithc_filter): only call esp_pm APIs when CONFIG_PM_ENABLE is enabled 2025-05-22 17:38:58 +08:00
Song Ruo Jing
abc9c1fd55 test(gpio,gpio_ext,ppa): test with malloc from psram by default 2025-05-15 11:21:06 +08:00
Song Ruo Jing
6994be3acd fix(gpio): add some detailed error log for gpio_pullup_en and gpio_pulldown_en 2025-04-18 19:03:16 +08:00
Song Ruo Jing
cbf7a66030 feat(gpio): gpio_reset_pin should do IO reservation revoke
Closes https://github.com/espressif/esp-idf/issues/15598
2025-03-20 14:56:16 +08:00
Song Ruo Jing
8f74c54a8a refactor(gpio): simplified gpio_reset_pin function to not call gpio_configure
Closes https://github.com/espressif/esp-idf/pull/15569
2025-03-20 14:56:16 +08:00
gaoxu
7e54886a4e feat(esp32h21): move gpio intr source to gpio_ll.h 2025-02-24 17:32:01 +08:00
Song Ruo Jing
53d8b70e8b fix(gpio): fix IO output enable control
oen_sel and oen_inv_sel fields from func_out_sel_cfg register
2025-02-20 19:49:28 +08:00
wuzhenghui
51205a8fd8 fix(esp_hw_support): fix esp32s2/esp32s3 RTC IOMUX clock management 2025-02-19 16:02:25 +08:00
Song Ruo Jing
a6ac2bb322 refactor(gpio): improve gpio_get_io_config API 2025-02-10 21:44:51 +08:00
Song Ruo Jing
3a8d065908 refactor(gpio): improve gpio_iomux_in/out API 2025-02-10 21:44:07 +08:00
Song Ruo Jing
52c0278361 feat(gpio): add gpio_config_as_analog API 2025-01-08 21:58:12 +08:00
Song Ruo Jing
3fde2017cd refactor(rtcio): update comments for rtc_io header file
Closes https://github.com/espressif/esp-idf/issues/13735
2025-01-08 16:49:34 +08:00
gaoxu
25731d0c1e feat(esp32h21): finnal introduce hello world support 2024-12-30 20:14:40 +08:00
Marius Vikhammer
d8de8c6e40 Merge branch 'bugfix/enable_additional_lp_io_wakeup' into 'master'
fix(lp_io): enable setting edge type wakeup sources for targets that support this

See merge request espressif/esp-idf!35122
2024-12-26 10:41:23 +08:00
Song Ruo Jing
c749ec66f6 fix(gpio): fix pu, pd, drv value incorrect from gpio_dump_io_configuration on esp32
Closes https://github.com/espressif/esp-idf/issues/14931
2024-12-18 22:38:25 +08:00
Ihor Nehrutsa
4d9d164541 feat(gpio): Add gpio_get_io_config()
Signed-off-by: IhorNehrutsa <Ihor.Nehrutsa@gmail.com>
2024-12-18 22:38:25 +08:00
Marius Vikhammer
c35f188efb fix(lp_io): allow edge wakeup types for LP-IO on chips which support it 2024-12-17 10:00:48 +08:00
morris
1c1198cf4a feat(dedic_gpio): enable pad input for the input signal
previously, we asked the user to enable the gpio direction before
initialize the dedicated GPIO.

Now the dedicated GPIO driver will help enable the input/output path
according to the in_en and out_en flags.
2024-10-14 11:35:16 +08:00
morris
611fb654ce refactor(lcd): clean up GPIO initialization 2024-10-10 16:01:05 +08:00