]> granicus.if.org Git - esp-idf/commitdiff
Add GPIO input and output disable option
authorkooho <2229179028@qq.com>
Tue, 21 Nov 2017 07:06:32 +0000 (15:06 +0800)
committerkooho <2229179028@qq.com>
Wed, 22 Nov 2017 07:00:27 +0000 (15:00 +0800)
components/driver/gpio.c
components/driver/include/driver/gpio.h

index 97ad4224c7afb5c5b2ae8d4d58db00a9541c5cfe..31f177a771eb5c44db8d7c1c65f1226db061c546 100644 (file)
@@ -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;
     }
index 1b184f6047905ab208398b30353bc4d429e404c6..8cc65054b9f9befb4d2acc60d5f1de88f3cd3faf 100644 (file)
@@ -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     */