From ada33fe3ddd2d0bb14f15d1f10acaad41e10d965 Mon Sep 17 00:00:00 2001 From: kooho <2229179028@qq.com> Date: Tue, 21 Nov 2017 15:06:32 +0800 Subject: [PATCH] Add GPIO input and output disable option --- components/driver/gpio.c | 2 +- components/driver/include/driver/gpio.h | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/components/driver/gpio.c b/components/driver/gpio.c index 97ad4224c..31f177a77 100644 --- a/components/driver/gpio.c +++ b/components/driver/gpio.c @@ -245,7 +245,7 @@ esp_err_t gpio_set_pull_mode(gpio_num_t gpio_num, gpio_pull_mode_t pull) esp_err_t gpio_set_direction(gpio_num_t gpio_num, gpio_mode_t mode) { GPIO_CHECK(GPIO_IS_VALID_GPIO(gpio_num), "GPIO number error", ESP_ERR_INVALID_ARG); - if (gpio_num >= 34 && (mode & (GPIO_MODE_DEF_OUTPUT))) { + if (gpio_num >= 34 && (mode & GPIO_MODE_DEF_OUTPUT)) { ESP_LOGE(GPIO_TAG, "io_num=%d can only be input", gpio_num); return ESP_ERR_INVALID_ARG; } diff --git a/components/driver/include/driver/gpio.h b/components/driver/include/driver/gpio.h index 1b184f604..8cc65054b 100644 --- a/components/driver/include/driver/gpio.h +++ b/components/driver/include/driver/gpio.h @@ -115,10 +115,12 @@ extern "C" { #define GPIO_PRO_CPU_NMI_INTR_ENA (BIT(3)) #define GPIO_SDIO_EXT_INTR_ENA (BIT(4)) +#define GPIO_MODE_DEF_DISABLE (0) #define GPIO_MODE_DEF_INPUT (BIT0) #define GPIO_MODE_DEF_OUTPUT (BIT1) #define GPIO_MODE_DEF_OD (BIT2) + #define GPIO_PIN_COUNT 40 /** @endcond */ @@ -184,6 +186,7 @@ typedef enum { } gpio_int_type_t; typedef enum { + GPIO_MODE_DISABLE = GPIO_MODE_DEF_DISABLE, /*!< GPIO mode : disable input and output */ GPIO_MODE_INPUT = GPIO_MODE_DEF_INPUT, /*!< GPIO mode : input only */ GPIO_MODE_OUTPUT = GPIO_MODE_DEF_OUTPUT, /*!< GPIO mode : output only mode */ GPIO_MODE_OUTPUT_OD = ((GPIO_MODE_DEF_OUTPUT)|(GPIO_MODE_DEF_OD)), /*!< GPIO mode : output only with open-drain mode */