From c3e4134b0ca80cb995795d1abae6ddb5fa88c25d Mon Sep 17 00:00:00 2001 From: Song Ruo Jing Date: Thu, 20 Mar 2025 14:50:44 +0800 Subject: [PATCH] feat(gpio): gpio_reset_pin should do IO reservation revoke Closes https://github.com/espressif/esp-idf/issues/15598 --- components/esp_driver_gpio/include/esp_private/gpio.h | 4 ++-- components/esp_driver_gpio/src/gpio.c | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/components/esp_driver_gpio/include/esp_private/gpio.h b/components/esp_driver_gpio/include/esp_private/gpio.h index 2e06192f63..1f6c185b1b 100644 --- a/components/esp_driver_gpio/include/esp_private/gpio.h +++ b/components/esp_driver_gpio/include/esp_private/gpio.h @@ -83,7 +83,7 @@ esp_err_t gpio_output_disable(gpio_num_t gpio_num); * - ESP_OK Success * - ESP_ERR_INVALID_ARG GPIO number error */ -esp_err_t gpio_od_disable(gpio_num_t gpio_num); +esp_err_t gpio_od_enable(gpio_num_t gpio_num); /** * @brief Disable open-drain for an IO @@ -94,7 +94,7 @@ esp_err_t gpio_od_disable(gpio_num_t gpio_num); * - ESP_OK Success * - ESP_ERR_INVALID_ARG GPIO number error */ -esp_err_t gpio_od_enable(gpio_num_t gpio_num); +esp_err_t gpio_od_disable(gpio_num_t gpio_num); #ifdef __cplusplus } diff --git a/components/esp_driver_gpio/src/gpio.c b/components/esp_driver_gpio/src/gpio.c index 5b17568bce..6e95f08654 100644 --- a/components/esp_driver_gpio/src/gpio.c +++ b/components/esp_driver_gpio/src/gpio.c @@ -445,6 +445,7 @@ esp_err_t gpio_reset_pin(gpio_num_t gpio_num) .intr_type = GPIO_INTR_DISABLE, }; gpio_config(&cfg); + esp_gpio_revoke(BIT64(gpio_num)); return ESP_OK; }