From cbf7a66030aeea188e2846da2b923ae9d9732cd2 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 ceba5342ed..1a089cf6d0 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); /** * @brief Configure the pin to be used for analog purpose (such as ADC, touch, etc.) diff --git a/components/esp_driver_gpio/src/gpio.c b/components/esp_driver_gpio/src/gpio.c index 46787bf093..6def528987 100644 --- a/components/esp_driver_gpio/src/gpio.c +++ b/components/esp_driver_gpio/src/gpio.c @@ -468,6 +468,7 @@ esp_err_t gpio_reset_pin(gpio_num_t gpio_num) } #endif gpio_hal_func_sel(gpio_context.gpio_hal, gpio_num, PIN_FUNC_GPIO); + esp_gpio_revoke(BIT64(gpio_num)); return ESP_OK; }