From 6a9c42a19db9ad9b4968287a0f2347844c634dc6 Mon Sep 17 00:00:00 2001 From: Meco Man <920369182@qq.com> Date: Sat, 23 Mar 2024 21:04:19 -0400 Subject: [PATCH] [bsp][drv_gpio] fix the error code return when pin number is illegal --- bsp/Infineon/libraries/HAL_Drivers/drv_gpio.c | 2 +- bsp/Vango/v85xx/drivers/drv_gpio.c | 4 ++++ bsp/acm32/acm32f0x0-nucleo/drivers/drv_gpio.c | 2 +- bsp/acm32/acm32f4xx-nucleo/drivers/drv_gpio.c | 2 +- .../air105/libraries/rt_drivers/drv_gpio.c | 2 +- .../air32f103/libraries/rt_drivers/drv_gpio.c | 4 ++++ bsp/allwinner_tina/drivers/drv_gpio.c | 2 +- bsp/apm32/libraries/Drivers/drv_gpio.c | 4 ++++ bsp/at32/libraries/rt_drivers/drv_gpio.c | 5 +++++ bsp/essemi/es32f0654/drivers/drv_gpio.c | 2 +- bsp/essemi/es32f369x/drivers/drv_gpio.c | 2 +- bsp/essemi/es32vf2264/drivers/drv_gpio.c | 22 +++++++++---------- .../libraries/HAL_Drivers/drv_gpio.c | 6 ++++- bsp/ft32/libraries/Drivers/drv_gpio.c | 4 ++++ .../arm/libraries/gd32_drivers/drv_gpio.c | 2 +- .../risc-v/libraries/gd32_drivers/drv_gpio.c | 2 +- bsp/hc32/libraries/hc32_drivers/drv_gpio.c | 4 ++++ bsp/hc32l136/drivers/drv_gpio.c | 4 ++++ bsp/hc32l196/drivers/drv_gpio.c | 2 +- bsp/hk32/libraries/rt_drivers/drv_gpio.c | 5 +++++ bsp/hpmicro/libraries/drivers/drv_gpio.c | 16 ++++++++------ bsp/k210/drivers/drv_gpio.c | 3 +-- bsp/loongson/ls1cdev/drivers/drv_gpio.c | 1 - bsp/mm32/libraries/HAL_Drivers/drv_gpio.c | 4 ++++ bsp/mm32f103x/drivers/drv_gpio.c | 2 +- bsp/mm32f327x/drivers/drv_gpio.c | 2 +- bsp/mm32l3xx/drivers/drv_gpio.c | 2 +- .../libraries/Drivers/drv_gpio.c | 4 ++++ bsp/n32/libraries/n32_drivers/drv_gpio.c | 2 +- bsp/n32g452xx/Libraries/rt_drivers/drv_gpio.c | 2 +- bsp/nrf5x/libraries/drivers/drv_gpio.c | 2 +- .../gd32vf103/HAL_Drivers/drv_gpio.c | 2 +- .../libraries/m031/rtt_port/drv_gpio.c | 4 +++- .../libraries/m2354/rtt_port/drv_gpio.c | 4 +++- .../libraries/m460/rtt_port/drv_gpio.c | 4 +++- .../libraries/m480/rtt_port/drv_gpio.c | 4 +++- .../libraries/ma35/rtt_port/drv_gpio.c | 4 +++- .../libraries/n9h30/rtt_port/drv_gpio.c | 4 +++- .../libraries/nuc980/rtt_port/drv_gpio.c | 4 +++- .../imx/imxrt/libraries/drivers/drv_gpio.c | 2 +- bsp/nxp/lpc/lpc54114-lite/drivers/drv_gpio.c | 4 +++- bsp/phytium/libraries/drivers/drv_gpio.c | 6 +---- bsp/renesas/libraries/HAL_Drivers/drv_gpio.c | 3 +-- .../libraries/HAL_Drivers/drivers/drv_gpio.c | 18 +++++++++------ .../libraries/SWM320_drivers/drv_gpio.c | 19 ++++++++-------- .../libraries/SWM341_drivers/drv_gpio.c | 19 ++++++++-------- bsp/tae32f5300/drivers/drv_gpio.c | 2 +- bsp/tkm32F499/drivers/drv_gpio.c | 2 +- bsp/tm4c123bsp/libraries/Drivers/drv_gpio.c | 2 +- .../risc-v/Libraries/ch32_drivers/drv_gpio.c | 4 ++++ bsp/zynqmp-r5-axu4ev/drivers/drv_gpio.c | 20 +++++++++-------- 51 files changed, 161 insertions(+), 92 deletions(-) diff --git a/bsp/Infineon/libraries/HAL_Drivers/drv_gpio.c b/bsp/Infineon/libraries/HAL_Drivers/drv_gpio.c index ebd243e3cb..e1a8f0ee81 100644 --- a/bsp/Infineon/libraries/HAL_Drivers/drv_gpio.c +++ b/bsp/Infineon/libraries/HAL_Drivers/drv_gpio.c @@ -160,7 +160,7 @@ static rt_ssize_t ifx_pin_read(struct rt_device *device, rt_base_t pin) } else { - return -RT_ERROR; + return -RT_EINVAL; } return cyhal_gpio_read(gpio_pin); diff --git a/bsp/Vango/v85xx/drivers/drv_gpio.c b/bsp/Vango/v85xx/drivers/drv_gpio.c index 0c40a6d7b0..11d7454841 100644 --- a/bsp/Vango/v85xx/drivers/drv_gpio.c +++ b/bsp/Vango/v85xx/drivers/drv_gpio.c @@ -157,6 +157,10 @@ static rt_ssize_t v85xx_pin_read(rt_device_t dev, rt_base_t pin) gpio_pin = PIN_V85XXPIN(pin); value = GPIOBToF_ReadInputDataBit(gpio_port, gpio_pin); } + else + { + return -RT_EINVAL; + } return value; } diff --git a/bsp/acm32/acm32f0x0-nucleo/drivers/drv_gpio.c b/bsp/acm32/acm32f0x0-nucleo/drivers/drv_gpio.c index 4c094de07f..8bddf41ed0 100644 --- a/bsp/acm32/acm32f0x0-nucleo/drivers/drv_gpio.c +++ b/bsp/acm32/acm32f0x0-nucleo/drivers/drv_gpio.c @@ -198,7 +198,7 @@ static rt_ssize_t acm32_pin_read(rt_device_t dev, rt_base_t pin) index = get_pin(pin); if (index == RT_NULL) { - return value; + return -RT_EINVAL; } value = HAL_GPIO_ReadPin(index->gpio, index->pin); diff --git a/bsp/acm32/acm32f4xx-nucleo/drivers/drv_gpio.c b/bsp/acm32/acm32f4xx-nucleo/drivers/drv_gpio.c index 7ae46a43be..bb653fca6e 100644 --- a/bsp/acm32/acm32f4xx-nucleo/drivers/drv_gpio.c +++ b/bsp/acm32/acm32f4xx-nucleo/drivers/drv_gpio.c @@ -216,7 +216,7 @@ static rt_ssize_t _pin_read(rt_device_t dev, rt_base_t pin) index = get_pin(pin); if (index == RT_NULL) { - return value; + return -RT_EINVAL; } value = HAL_GPIO_ReadPin(index->gpio, index->pin); diff --git a/bsp/airm2m/air105/libraries/rt_drivers/drv_gpio.c b/bsp/airm2m/air105/libraries/rt_drivers/drv_gpio.c index 244ad5f623..b726ec4e6b 100644 --- a/bsp/airm2m/air105/libraries/rt_drivers/drv_gpio.c +++ b/bsp/airm2m/air105/libraries/rt_drivers/drv_gpio.c @@ -68,7 +68,7 @@ static rt_ssize_t air105_pin_read(rt_device_t dev, rt_base_t pin) } else { - return -1; + return -RT_EINVAL; } } diff --git a/bsp/airm2m/air32f103/libraries/rt_drivers/drv_gpio.c b/bsp/airm2m/air32f103/libraries/rt_drivers/drv_gpio.c index 43b1ed1214..53dac60dfb 100644 --- a/bsp/airm2m/air32f103/libraries/rt_drivers/drv_gpio.c +++ b/bsp/airm2m/air32f103/libraries/rt_drivers/drv_gpio.c @@ -169,6 +169,10 @@ static rt_ssize_t air32_pin_read(rt_device_t dev, rt_base_t pin) gpio_pin = PIN_AIRPIN(pin); value = GPIO_ReadInputDataBit(gpio_port, gpio_pin); } + else + { + return -RT_EINVAL; + } return value; } diff --git a/bsp/allwinner_tina/drivers/drv_gpio.c b/bsp/allwinner_tina/drivers/drv_gpio.c index 96e0b28fd5..25d956d35e 100644 --- a/bsp/allwinner_tina/drivers/drv_gpio.c +++ b/bsp/allwinner_tina/drivers/drv_gpio.c @@ -458,7 +458,7 @@ static rt_ssize_t pin_read(struct rt_device *device, rt_base_t pin) if ((pin > PIN_NUM(pin_index)) || (pin_index[pin].magic != PIN_MAGIC)) { LOG_E("pin:%d value wrongful", pin); - return 0; + return -RT_EINVAL; } return gpio_get_value(pin_index[pin].pin_port, pin_index[pin].pin); diff --git a/bsp/apm32/libraries/Drivers/drv_gpio.c b/bsp/apm32/libraries/Drivers/drv_gpio.c index 010b8cfa15..9555dd0805 100644 --- a/bsp/apm32/libraries/Drivers/drv_gpio.c +++ b/bsp/apm32/libraries/Drivers/drv_gpio.c @@ -185,6 +185,10 @@ static rt_ssize_t apm32_pin_read(rt_device_t dev, rt_base_t pin) gpio_pin = PIN_APMPIN(pin); value = GPIO_ReadInputBit(gpio_port, gpio_pin); } + else + { + return -RT_EINVAL; + } return value; } diff --git a/bsp/at32/libraries/rt_drivers/drv_gpio.c b/bsp/at32/libraries/rt_drivers/drv_gpio.c index 24e979afbb..a35569441f 100644 --- a/bsp/at32/libraries/rt_drivers/drv_gpio.c +++ b/bsp/at32/libraries/rt_drivers/drv_gpio.c @@ -198,6 +198,11 @@ static rt_ssize_t at32_pin_read(rt_device_t dev, rt_base_t pin) gpio_pin = PIN_ATPIN(pin); value = gpio_input_data_bit_read(gpio_port, gpio_pin); } + else + { + return -RT_EINVAL; + } + return value; } diff --git a/bsp/essemi/es32f0654/drivers/drv_gpio.c b/bsp/essemi/es32f0654/drivers/drv_gpio.c index 67b9f4f6b2..878eaa7b08 100644 --- a/bsp/essemi/es32f0654/drivers/drv_gpio.c +++ b/bsp/essemi/es32f0654/drivers/drv_gpio.c @@ -254,7 +254,7 @@ rt_ssize_t es32f0_pin_read(rt_device_t dev, rt_base_t pin) index = get_pin(pin); if (index == RT_NULL) { - return value; + return -RT_EINVAL; } value = ald_gpio_read_pin(index->gpio, index->pin); return value; diff --git a/bsp/essemi/es32f369x/drivers/drv_gpio.c b/bsp/essemi/es32f369x/drivers/drv_gpio.c index bb3c626f2c..f97b89565a 100644 --- a/bsp/essemi/es32f369x/drivers/drv_gpio.c +++ b/bsp/essemi/es32f369x/drivers/drv_gpio.c @@ -255,7 +255,7 @@ rt_ssize_t es32f3_pin_read(rt_device_t dev, rt_base_t pin) index = get_pin(pin); if (index == RT_NULL) { - return value; + return -RT_EINVAL; } value = ald_gpio_read_pin(index->gpio, index->pin); return value; diff --git a/bsp/essemi/es32vf2264/drivers/drv_gpio.c b/bsp/essemi/es32vf2264/drivers/drv_gpio.c index 1fa7227f45..1d4ca31678 100644 --- a/bsp/essemi/es32vf2264/drivers/drv_gpio.c +++ b/bsp/essemi/es32vf2264/drivers/drv_gpio.c @@ -254,7 +254,7 @@ rt_ssize_t es32f3_pin_read(rt_device_t dev, rt_base_t pin) index = get_pin(pin); if (index == RT_NULL) { - return value; + return -RT_EINVAL; } value = ald_gpio_read_pin(index->gpio, index->pin); return value; @@ -337,7 +337,7 @@ rt_err_t es32f3_pin_attach_irq(struct rt_device *device, rt_base_t pin, index = get_pin(pin); if (index == RT_NULL) { - return RT_ENOSYS; + return -RT_ENOSYS; } /* pin no. convert to dec no. */ for (irqindex = 0; irqindex < 16; irqindex++) @@ -349,7 +349,7 @@ rt_err_t es32f3_pin_attach_irq(struct rt_device *device, rt_base_t pin, } if (irqindex < 0 || irqindex >= ITEM_NUM(pin_irq_map)) { - return RT_ENOSYS; + return -RT_ENOSYS; } level = rt_hw_interrupt_disable(); if (pin_irq_hdr_tab[irqindex].pin == pin && @@ -363,7 +363,7 @@ rt_err_t es32f3_pin_attach_irq(struct rt_device *device, rt_base_t pin, if (pin_irq_hdr_tab[irqindex].pin != -1) { rt_hw_interrupt_enable(level); - return RT_EBUSY; + return -RT_EBUSY; } pin_irq_hdr_tab[irqindex].pin = pin; pin_irq_hdr_tab[irqindex].hdr = hdr; @@ -381,7 +381,7 @@ rt_err_t es32f3_pin_detach_irq(struct rt_device *device, rt_base_t pin) index = get_pin(pin); if (index == RT_NULL) { - return RT_ENOSYS; + return -RT_ENOSYS; } for (irqindex = 0; irqindex < 16; irqindex++) @@ -393,7 +393,7 @@ rt_err_t es32f3_pin_detach_irq(struct rt_device *device, rt_base_t pin) } if (irqindex < 0 || irqindex >= ITEM_NUM(pin_irq_map)) { - return RT_ENOSYS; + return -RT_ENOSYS; } level = rt_hw_interrupt_disable(); if (pin_irq_hdr_tab[irqindex].pin == -1) @@ -425,7 +425,7 @@ rt_err_t es32f3_pin_irq_enable(struct rt_device *device, rt_base_t pin, index = get_pin(pin); if (index == RT_NULL) { - return RT_ENOSYS; + return -RT_ENOSYS; } if (enabled == PIN_IRQ_ENABLE) { @@ -439,13 +439,13 @@ rt_err_t es32f3_pin_irq_enable(struct rt_device *device, rt_base_t pin, } if (irqindex < 0 || irqindex >= ITEM_NUM(pin_irq_map)) { - return RT_ENOSYS; + return -RT_ENOSYS; } level = rt_hw_interrupt_disable(); if (pin_irq_hdr_tab[irqindex].pin == -1) { rt_hw_interrupt_enable(level); - return RT_ENOSYS; + return -RT_ENOSYS; } irqmap = &pin_irq_map[irqindex]; ald_gpio_exti_init(index->gpio, index->pin, &exti_initstruct); @@ -479,14 +479,14 @@ rt_err_t es32f3_pin_irq_enable(struct rt_device *device, rt_base_t pin, irqmap = get_pin_irq_map(index->pin); if (irqmap == RT_NULL) { - return RT_ENOSYS; + return -RT_ENOSYS; } /*csi_vic_disable_sirq(irqmap->irqno);*/ } else { - return RT_ENOSYS; + return -RT_ENOSYS; } return RT_EOK; } diff --git a/bsp/fm33lc026/libraries/HAL_Drivers/drv_gpio.c b/bsp/fm33lc026/libraries/HAL_Drivers/drv_gpio.c index fa14ccf1af..c605cc587c 100644 --- a/bsp/fm33lc026/libraries/HAL_Drivers/drv_gpio.c +++ b/bsp/fm33lc026/libraries/HAL_Drivers/drv_gpio.c @@ -160,6 +160,10 @@ static rt_ssize_t fm33_pin_read(rt_device_t dev, rt_base_t pin) gpio_pin = PIN_STPIN(pin); value = FL_GPIO_GetInputPin(gpio_port, gpio_pin); } + else + { + value = -RT_EINVAL; + } return value; } @@ -404,7 +408,7 @@ static rt_err_t fm33_pin_irq_enable(struct rt_device *device, rt_base_t pin, return RT_EOK; } const static struct rt_pin_ops _fm33_pin_ops = - { +{ fm33_pin_mode, fm33_pin_write, fm33_pin_read, diff --git a/bsp/ft32/libraries/Drivers/drv_gpio.c b/bsp/ft32/libraries/Drivers/drv_gpio.c index 2aacaf49b3..479294a3d0 100644 --- a/bsp/ft32/libraries/Drivers/drv_gpio.c +++ b/bsp/ft32/libraries/Drivers/drv_gpio.c @@ -147,6 +147,10 @@ static rt_ssize_t ft32_pin_read(rt_device_t dev, rt_base_t pin) gpio_pin = PIN_FTPIN(pin); value = GPIO_ReadInputDataBit(gpio_port, gpio_pin); } + else + { + return -RT_EINVAL; + } return value; } diff --git a/bsp/gd32/arm/libraries/gd32_drivers/drv_gpio.c b/bsp/gd32/arm/libraries/gd32_drivers/drv_gpio.c index 0829cd0df7..9bad48c034 100644 --- a/bsp/gd32/arm/libraries/gd32_drivers/drv_gpio.c +++ b/bsp/gd32/arm/libraries/gd32_drivers/drv_gpio.c @@ -370,7 +370,7 @@ static rt_ssize_t gd32_pin_read(rt_device_t dev, rt_base_t pin) index = get_pin(pin); if (index == RT_NULL) { - return value; + return -RT_EINVAL; } value = gpio_input_bit_get(index->gpio_periph, index->pin); diff --git a/bsp/gd32/risc-v/libraries/gd32_drivers/drv_gpio.c b/bsp/gd32/risc-v/libraries/gd32_drivers/drv_gpio.c index d334c66628..8d3df301d4 100644 --- a/bsp/gd32/risc-v/libraries/gd32_drivers/drv_gpio.c +++ b/bsp/gd32/risc-v/libraries/gd32_drivers/drv_gpio.c @@ -256,7 +256,7 @@ static rt_ssize_t gd32_pin_read(rt_device_t dev, rt_base_t pin) index = get_pin(pin); if (index == RT_NULL) { - return value; + return -RT_EINVAL; } value = gpio_input_bit_get(index->gpio_periph, index->pin); diff --git a/bsp/hc32/libraries/hc32_drivers/drv_gpio.c b/bsp/hc32/libraries/hc32_drivers/drv_gpio.c index 98c83fc245..6758436c0d 100644 --- a/bsp/hc32/libraries/hc32_drivers/drv_gpio.c +++ b/bsp/hc32/libraries/hc32_drivers/drv_gpio.c @@ -302,6 +302,10 @@ static rt_ssize_t hc32_pin_read(struct rt_device *device, rt_base_t pin) value = PIN_HIGH; } } + else + { + return -RT_EINVAL; + } return value; } diff --git a/bsp/hc32l136/drivers/drv_gpio.c b/bsp/hc32l136/drivers/drv_gpio.c index 22f826d8b8..3407c0b98a 100644 --- a/bsp/hc32l136/drivers/drv_gpio.c +++ b/bsp/hc32l136/drivers/drv_gpio.c @@ -164,6 +164,10 @@ static rt_ssize_t _pin_read(rt_device_t dev, rt_base_t pin) value = PIN_HIGH; } } + else + { + value = -RT_EINVAL; + } return value; } diff --git a/bsp/hc32l196/drivers/drv_gpio.c b/bsp/hc32l196/drivers/drv_gpio.c index 79ee4229d0..ab007a5868 100644 --- a/bsp/hc32l196/drivers/drv_gpio.c +++ b/bsp/hc32l196/drivers/drv_gpio.c @@ -110,7 +110,7 @@ static rt_ssize_t _pin_read(rt_device_t dev, rt_base_t pin) if (pin >= PIN_MAX_NUM) { - return PIN_LOW; + return -RT_EINVAL; } gpio_port = GPIO_PORT(pin); diff --git a/bsp/hk32/libraries/rt_drivers/drv_gpio.c b/bsp/hk32/libraries/rt_drivers/drv_gpio.c index f5a7de8fd6..bc59b76aa4 100644 --- a/bsp/hk32/libraries/rt_drivers/drv_gpio.c +++ b/bsp/hk32/libraries/rt_drivers/drv_gpio.c @@ -120,6 +120,11 @@ static rt_int8_t hk32_pin_read(rt_device_t dev, rt_base_t pin) gpio_pin = PIN_HKPIN(pin); value = GPIO_ReadInputDataBit(gpio_port, gpio_pin); } + else + { + return -RT_ENOSYS; + } + return value; } diff --git a/bsp/hpmicro/libraries/drivers/drv_gpio.c b/bsp/hpmicro/libraries/drivers/drv_gpio.c index a6792ea16a..6877fa607a 100644 --- a/bsp/hpmicro/libraries/drivers/drv_gpio.c +++ b/bsp/hpmicro/libraries/drivers/drv_gpio.c @@ -310,13 +310,15 @@ static rt_err_t hpm_pin_irq_enable(struct rt_device *device, rt_base_t pin, rt_u return RT_EOK; } -const static struct rt_pin_ops hpm_pin_ops = { - .pin_mode = hpm_pin_mode, - .pin_write = hpm_pin_write, - .pin_read = hpm_pin_read, - .pin_attach_irq = hpm_pin_attach_irq, - .pin_detach_irq = hpm_pin_detach_irq, - .pin_irq_enable = hpm_pin_irq_enable}; +const static struct rt_pin_ops hpm_pin_ops = +{ + .pin_mode = hpm_pin_mode, + .pin_write = hpm_pin_write, + .pin_read = hpm_pin_read, + .pin_attach_irq = hpm_pin_attach_irq, + .pin_detach_irq = hpm_pin_detach_irq, + .pin_irq_enable = hpm_pin_irq_enable +}; int rt_hw_pin_init(void) { diff --git a/bsp/k210/drivers/drv_gpio.c b/bsp/k210/drivers/drv_gpio.c index f6dc6ed332..79c7bcc035 100644 --- a/bsp/k210/drivers/drv_gpio.c +++ b/bsp/k210/drivers/drv_gpio.c @@ -117,7 +117,7 @@ static rt_ssize_t drv_pin_read(struct rt_device *device, rt_base_t pin) if(pin_channel == -1) { LOG_E("pin %d not set mode", pin); - return -1; + return -RT_EINVAL; } return gpiohs_get_pin(pin_channel) == GPIO_PV_HIGH ? PIN_HIGH : PIN_LOW; } @@ -248,7 +248,6 @@ const static struct rt_pin_ops drv_pin_ops = drv_pin_mode, drv_pin_write, drv_pin_read, - drv_pin_attach_irq, drv_pin_detach_irq, drv_pin_irq_enable diff --git a/bsp/loongson/ls1cdev/drivers/drv_gpio.c b/bsp/loongson/ls1cdev/drivers/drv_gpio.c index 4fc9aefbe8..fb75ab0d49 100644 --- a/bsp/loongson/ls1cdev/drivers/drv_gpio.c +++ b/bsp/loongson/ls1cdev/drivers/drv_gpio.c @@ -119,7 +119,6 @@ const static struct rt_pin_ops _ls1c_pin_ops = ls1c_pin_mode, ls1c_pin_write, ls1c_pin_read, - ls1c_pin_attach_irq, ls1c_pin_detach_irq, ls1c_pin_irq_enable, diff --git a/bsp/mm32/libraries/HAL_Drivers/drv_gpio.c b/bsp/mm32/libraries/HAL_Drivers/drv_gpio.c index c075748319..311a51f6e0 100644 --- a/bsp/mm32/libraries/HAL_Drivers/drv_gpio.c +++ b/bsp/mm32/libraries/HAL_Drivers/drv_gpio.c @@ -146,6 +146,10 @@ static rt_ssize_t mm32_pin_read(rt_device_t dev, rt_base_t pin) gpio_pin = PIN_STPIN(pin); value = GPIO_ReadInDataBit(gpio_port, gpio_pin); } + else + { + return -RT_EINVAL; + } return value; } diff --git a/bsp/mm32f103x/drivers/drv_gpio.c b/bsp/mm32f103x/drivers/drv_gpio.c index cea5a4093a..7db8bd95a9 100644 --- a/bsp/mm32f103x/drivers/drv_gpio.c +++ b/bsp/mm32f103x/drivers/drv_gpio.c @@ -184,7 +184,7 @@ rt_ssize_t mm32_pin_read(rt_device_t dev, rt_base_t pin) index = get_pin(pin); if (index == RT_NULL) { - return PIN_LOW; + return -RT_EINVAL; } if (GPIO_ReadInputDataBit(index->gpio, index->pin) == Bit_RESET) { diff --git a/bsp/mm32f327x/drivers/drv_gpio.c b/bsp/mm32f327x/drivers/drv_gpio.c index b17805ae95..a3374960cb 100644 --- a/bsp/mm32f327x/drivers/drv_gpio.c +++ b/bsp/mm32f327x/drivers/drv_gpio.c @@ -180,7 +180,7 @@ rt_ssize_t mm32_pin_read(rt_device_t dev, rt_base_t pin) index = get_pin(pin); if (index == RT_NULL) { - return PIN_LOW; + return -RT_EINVAL; } if (GPIO_ReadInputDataBit(index->gpio, index->pin) == Bit_RESET) { diff --git a/bsp/mm32l3xx/drivers/drv_gpio.c b/bsp/mm32l3xx/drivers/drv_gpio.c index 2db86ccbd5..57256dced6 100644 --- a/bsp/mm32l3xx/drivers/drv_gpio.c +++ b/bsp/mm32l3xx/drivers/drv_gpio.c @@ -169,7 +169,7 @@ rt_ssize_t mm32_pin_read(rt_device_t dev, rt_base_t pin) index = get_pin(pin); if (index == RT_NULL) { - return PIN_LOW; + return -RT_EINVAL; } if (GPIO_ReadInputDataBit(index->gpio, index->pin) == Bit_RESET) { diff --git a/bsp/msp432e401y-LaunchPad/libraries/Drivers/drv_gpio.c b/bsp/msp432e401y-LaunchPad/libraries/Drivers/drv_gpio.c index 7a079a2584..f4d3b22e8e 100644 --- a/bsp/msp432e401y-LaunchPad/libraries/Drivers/drv_gpio.c +++ b/bsp/msp432e401y-LaunchPad/libraries/Drivers/drv_gpio.c @@ -274,6 +274,10 @@ static rt_ssize_t msp432_pin_read(struct rt_device *device, rt_base_t pin) { value = (rt_ssize_t)GPIOPinRead(index->gpioBaseAddress, index->pin); } + else + { + value = -RT_EINVAL; + } return value; } diff --git a/bsp/n32/libraries/n32_drivers/drv_gpio.c b/bsp/n32/libraries/n32_drivers/drv_gpio.c index 4b2e75f26f..1f8a120e56 100644 --- a/bsp/n32/libraries/n32_drivers/drv_gpio.c +++ b/bsp/n32/libraries/n32_drivers/drv_gpio.c @@ -228,7 +228,7 @@ static rt_ssize_t n32_pin_read(rt_device_t dev, rt_base_t pin) index = get_pin(pin); if (index == RT_NULL) { - return value; + return -RT_EINVAL; } value = GPIO_ReadInputDataBit(index->gpio, index->pin); diff --git a/bsp/n32g452xx/Libraries/rt_drivers/drv_gpio.c b/bsp/n32g452xx/Libraries/rt_drivers/drv_gpio.c index 5b20790e7a..499ade914a 100644 --- a/bsp/n32g452xx/Libraries/rt_drivers/drv_gpio.c +++ b/bsp/n32g452xx/Libraries/rt_drivers/drv_gpio.c @@ -588,7 +588,7 @@ rt_ssize_t n32_pin_read(rt_device_t dev, rt_base_t pin) index = get_pin(pin); if (index == RT_NULL) { - return value; + return -RT_EINVAL; } if (GPIO_ReadInputDataBit(index->gpio, index->pin) == Bit_RESET) diff --git a/bsp/nrf5x/libraries/drivers/drv_gpio.c b/bsp/nrf5x/libraries/drivers/drv_gpio.c index 63f4109c62..56297eb785 100644 --- a/bsp/nrf5x/libraries/drivers/drv_gpio.c +++ b/bsp/nrf5x/libraries/drivers/drv_gpio.c @@ -124,7 +124,7 @@ static rt_ssize_t nrf5x_pin_read(rt_device_t dev, rt_base_t pin) index = get_pin(pin); if (index == RT_NULL) { - return value; + return -RT_EINVAL; } value = nrf_gpio_pin_read(pin); diff --git a/bsp/nuclei/libraries/gd32vf103/HAL_Drivers/drv_gpio.c b/bsp/nuclei/libraries/gd32vf103/HAL_Drivers/drv_gpio.c index 82270ce611..67a242fe7f 100644 --- a/bsp/nuclei/libraries/gd32vf103/HAL_Drivers/drv_gpio.c +++ b/bsp/nuclei/libraries/gd32vf103/HAL_Drivers/drv_gpio.c @@ -184,7 +184,7 @@ static rt_ssize_t gd32_pin_read(rt_device_t dev, rt_base_t pin) index = get_pin(pin); if (index == RT_NULL) { - return value; + return -RT_EINVAL; } value = gpio_input_bit_get(index->gpio, index->pin); diff --git a/bsp/nuvoton/libraries/m031/rtt_port/drv_gpio.c b/bsp/nuvoton/libraries/m031/rtt_port/drv_gpio.c index 4abfbdebd9..2b234c313a 100644 --- a/bsp/nuvoton/libraries/m031/rtt_port/drv_gpio.c +++ b/bsp/nuvoton/libraries/m031/rtt_port/drv_gpio.c @@ -176,7 +176,9 @@ static void nu_gpio_write(struct rt_device *device, rt_base_t pin, rt_uint8_t va static rt_ssize_t nu_gpio_read(struct rt_device *device, rt_base_t pin) { if (nu_port_check(pin)) - return PIN_LOW; + { + return -RT_EINVAL; + } return GPIO_PIN_DATA(NU_GET_PORT(pin), NU_GET_PINS(pin)); } diff --git a/bsp/nuvoton/libraries/m2354/rtt_port/drv_gpio.c b/bsp/nuvoton/libraries/m2354/rtt_port/drv_gpio.c index 1b77ab9d0f..65c35bc69b 100644 --- a/bsp/nuvoton/libraries/m2354/rtt_port/drv_gpio.c +++ b/bsp/nuvoton/libraries/m2354/rtt_port/drv_gpio.c @@ -175,7 +175,9 @@ static void nu_gpio_write(struct rt_device *device, rt_base_t pin, rt_uint8_t va static rt_ssize_t nu_gpio_read(struct rt_device *device, rt_base_t pin) { if (nu_port_check(pin)) - return PIN_LOW; + { + return -RT_EINVAL; + } return GPIO_PIN_DATA_S(NU_GET_PORT(pin), NU_GET_PINS(pin)); } diff --git a/bsp/nuvoton/libraries/m460/rtt_port/drv_gpio.c b/bsp/nuvoton/libraries/m460/rtt_port/drv_gpio.c index 722e4d545e..37fed0f847 100644 --- a/bsp/nuvoton/libraries/m460/rtt_port/drv_gpio.c +++ b/bsp/nuvoton/libraries/m460/rtt_port/drv_gpio.c @@ -175,7 +175,9 @@ static void nu_gpio_write(struct rt_device *device, rt_base_t pin, rt_uint8_t va static rt_ssize_t nu_gpio_read(struct rt_device *device, rt_base_t pin) { if (nu_port_check(pin)) - return PIN_LOW; + { + return -RT_EINVAL; + } return GPIO_PIN_DATA(NU_GET_PORT(pin), NU_GET_PINS(pin)); } diff --git a/bsp/nuvoton/libraries/m480/rtt_port/drv_gpio.c b/bsp/nuvoton/libraries/m480/rtt_port/drv_gpio.c index 5454f6b97a..f7c7f2e473 100644 --- a/bsp/nuvoton/libraries/m480/rtt_port/drv_gpio.c +++ b/bsp/nuvoton/libraries/m480/rtt_port/drv_gpio.c @@ -175,7 +175,9 @@ static void nu_gpio_write(struct rt_device *device, rt_base_t pin, rt_uint8_t va static rt_ssize_t nu_gpio_read(struct rt_device *device, rt_base_t pin) { if (nu_port_check(pin)) - return PIN_LOW; + { + return -RT_EINVAL; + } return GPIO_PIN_DATA(NU_GET_PORT(pin), NU_GET_PINS(pin)); } diff --git a/bsp/nuvoton/libraries/ma35/rtt_port/drv_gpio.c b/bsp/nuvoton/libraries/ma35/rtt_port/drv_gpio.c index 04f546de4f..43bab9bd90 100644 --- a/bsp/nuvoton/libraries/ma35/rtt_port/drv_gpio.c +++ b/bsp/nuvoton/libraries/ma35/rtt_port/drv_gpio.c @@ -172,7 +172,9 @@ static void nu_gpio_write(struct rt_device *device, rt_base_t pin, rt_uint8_t va static rt_ssize_t nu_gpio_read(struct rt_device *device, rt_base_t pin) { if (nu_port_check(pin)) - return PIN_LOW; + { + return -RT_EINVAL; + } return GPIO_PIN_DATA(NU_GET_PORT(pin), NU_GET_PINS(pin)); } diff --git a/bsp/nuvoton/libraries/n9h30/rtt_port/drv_gpio.c b/bsp/nuvoton/libraries/n9h30/rtt_port/drv_gpio.c index 25787a6fb4..f317ea7e28 100644 --- a/bsp/nuvoton/libraries/n9h30/rtt_port/drv_gpio.c +++ b/bsp/nuvoton/libraries/n9h30/rtt_port/drv_gpio.c @@ -198,7 +198,9 @@ static rt_ssize_t nu_gpio_read(struct rt_device *device, rt_base_t pin) GPIO_PORT PORT; if (nu_port_check(pin)) - return PIN_LOW; + { + return -RT_EINVAL; + } PORT = (GPIO_PORT)(GPIOA + (NU_GET_PORT(pin) * PORT_OFFSET)); diff --git a/bsp/nuvoton/libraries/nuc980/rtt_port/drv_gpio.c b/bsp/nuvoton/libraries/nuc980/rtt_port/drv_gpio.c index e36a69cbd8..0571823b43 100644 --- a/bsp/nuvoton/libraries/nuc980/rtt_port/drv_gpio.c +++ b/bsp/nuvoton/libraries/nuc980/rtt_port/drv_gpio.c @@ -173,7 +173,9 @@ static void nu_gpio_write(struct rt_device *device, rt_base_t pin, rt_uint8_t va static rt_ssize_t nu_gpio_read(struct rt_device *device, rt_base_t pin) { if (nu_port_check(pin)) - return PIN_LOW; + { + return -RT_EINVAL; + } return GPIO_PIN_DATA(NU_GET_PORT(pin), NU_GET_PINS(pin)); } diff --git a/bsp/nxp/imx/imxrt/libraries/drivers/drv_gpio.c b/bsp/nxp/imx/imxrt/libraries/drivers/drv_gpio.c index ac11d69788..018785b945 100644 --- a/bsp/nxp/imx/imxrt/libraries/drivers/drv_gpio.c +++ b/bsp/nxp/imx/imxrt/libraries/drivers/drv_gpio.c @@ -634,7 +634,7 @@ static rt_ssize_t imxrt_pin_read(rt_device_t dev, rt_base_t pin) if (PIN_INVALID_CHECK(port, pin_num)) { LOG_D("invalid pin,rtt pin: %d,port: %d,pin: %d \n", pin,port + 1,pin_num); - return value; + return -RT_EINVAL; } return GPIO_PinReadPadStatus(mask_tab[port].gpio, pin_num); diff --git a/bsp/nxp/lpc/lpc54114-lite/drivers/drv_gpio.c b/bsp/nxp/lpc/lpc54114-lite/drivers/drv_gpio.c index abb928a90b..581bf27fd5 100644 --- a/bsp/nxp/lpc/lpc54114-lite/drivers/drv_gpio.c +++ b/bsp/nxp/lpc/lpc54114-lite/drivers/drv_gpio.c @@ -147,7 +147,9 @@ static rt_ssize_t lpc_pin_read(rt_device_t dev, rt_base_t pin) rt_ssize_t value; if(pin > PIN_MAX_VAL) - return -RT_ERROR; + { + return -RT_EINVAL; + } portx = get_port(pin); piny = get_pin(pin); diff --git a/bsp/phytium/libraries/drivers/drv_gpio.c b/bsp/phytium/libraries/drivers/drv_gpio.c index 5f2d14d641..81c293f92c 100644 --- a/bsp/phytium/libraries/drivers/drv_gpio.c +++ b/bsp/phytium/libraries/drivers/drv_gpio.c @@ -195,11 +195,7 @@ rt_ssize_t drv_pin_read(struct rt_device *device, rt_base_t pin) if (pin_instance == RT_NULL) { - rt_kprintf("Pin %d-%c-%d not set mode\n", - ctrl_id, - port_id == 0 ? 'a' : 'b', - pin_id); - return -RT_ERROR; + return -RT_EINVAL; } return FGpioGetInputValue(pin_instance) == FGPIO_PIN_HIGH ? PIN_HIGH : PIN_LOW; } diff --git a/bsp/renesas/libraries/HAL_Drivers/drv_gpio.c b/bsp/renesas/libraries/HAL_Drivers/drv_gpio.c index d1ab4f7649..6dc7df3d8b 100644 --- a/bsp/renesas/libraries/HAL_Drivers/drv_gpio.c +++ b/bsp/renesas/libraries/HAL_Drivers/drv_gpio.c @@ -172,8 +172,7 @@ static rt_ssize_t ra_pin_read(rt_device_t dev, rt_base_t pin) { if ((pin > RA_MAX_PIN_VALUE) || (pin < RA_MIN_PIN_VALUE)) { - LOG_E("GPIO pin value is illegal"); - return -1; + return -RT_EINVAL; } return R_BSP_PinRead(pin); } diff --git a/bsp/stm32/libraries/HAL_Drivers/drivers/drv_gpio.c b/bsp/stm32/libraries/HAL_Drivers/drivers/drv_gpio.c index 128524eb3f..4843721c02 100644 --- a/bsp/stm32/libraries/HAL_Drivers/drivers/drv_gpio.c +++ b/bsp/stm32/libraries/HAL_Drivers/drivers/drv_gpio.c @@ -229,6 +229,10 @@ static rt_ssize_t stm32_pin_read(rt_device_t dev, rt_base_t pin) gpio_pin = PIN_STPIN(pin); state = HAL_GPIO_ReadPin(gpio_port, gpio_pin); } + else + { + return -RT_EINVAL; + } return (state == GPIO_PIN_RESET) ? PIN_LOW : PIN_HIGH; } @@ -503,13 +507,13 @@ static rt_err_t stm32_pin_irq_enable(struct rt_device *device, rt_base_t pin, } static const struct rt_pin_ops _stm32_pin_ops = { - stm32_pin_mode, - stm32_pin_write, - stm32_pin_read, - stm32_pin_attach_irq, - stm32_pin_dettach_irq, - stm32_pin_irq_enable, - stm32_pin_get, + stm32_pin_mode, + stm32_pin_write, + stm32_pin_read, + stm32_pin_attach_irq, + stm32_pin_dettach_irq, + stm32_pin_irq_enable, + stm32_pin_get, }; rt_inline void pin_irq_hdr(int irqno) diff --git a/bsp/synwit/libraries/SWM320_drivers/drv_gpio.c b/bsp/synwit/libraries/SWM320_drivers/drv_gpio.c index 325ad6c33f..01a5ee5088 100644 --- a/bsp/synwit/libraries/SWM320_drivers/drv_gpio.c +++ b/bsp/synwit/libraries/SWM320_drivers/drv_gpio.c @@ -332,7 +332,7 @@ static rt_ssize_t swm_pin_read(rt_device_t dev, rt_base_t pin) gpio_obj = _pin2struct(pin); if (gpio_obj == RT_NULL) { - return PIN_LOW; + return -RT_EINVAL; } return (rt_ssize_t)GPIO_GetBit(gpio_obj->gpio, gpio_obj->pin); } @@ -496,14 +496,15 @@ out: } const static struct rt_pin_ops swm_pin_ops = - { - .pin_mode = swm_pin_mode, - .pin_write = swm_pin_write, - .pin_read = swm_pin_read, - .pin_attach_irq = swm_pin_attach_irq, - .pin_detach_irq = swm_pin_detach_irq, - .pin_irq_enable = swm_pin_irq_enable, - .pin_get = swm_pin_get}; +{ + .pin_mode = swm_pin_mode, + .pin_write = swm_pin_write, + .pin_read = swm_pin_read, + .pin_attach_irq = swm_pin_attach_irq, + .pin_detach_irq = swm_pin_detach_irq, + .pin_irq_enable = swm_pin_irq_enable, + .pin_get = swm_pin_get +}; static void swm_pin_isr(GPIO_TypeDef *GPIOx) { diff --git a/bsp/synwit/libraries/SWM341_drivers/drv_gpio.c b/bsp/synwit/libraries/SWM341_drivers/drv_gpio.c index 48e0a4fdee..752f32cf85 100644 --- a/bsp/synwit/libraries/SWM341_drivers/drv_gpio.c +++ b/bsp/synwit/libraries/SWM341_drivers/drv_gpio.c @@ -354,7 +354,7 @@ static rt_ssize_t swm_pin_read(rt_device_t dev, rt_base_t pin) gpio_obj = _pin2struct(pin); if (gpio_obj == RT_NULL) { - return PIN_LOW; + return -RT_EINVAL; } return (rt_ssize_t)GPIO_GetBit(gpio_obj->gpio, gpio_obj->pin); } @@ -521,14 +521,15 @@ out: } static const struct rt_pin_ops swm_pin_ops = - { - .pin_mode = swm_pin_mode, - .pin_write = swm_pin_write, - .pin_read = swm_pin_read, - .pin_attach_irq = swm_pin_attach_irq, - .pin_detach_irq = swm_pin_detach_irq, - .pin_irq_enable = swm_pin_irq_enable, - .pin_get = swm_pin_get}; +{ + .pin_mode = swm_pin_mode, + .pin_write = swm_pin_write, + .pin_read = swm_pin_read, + .pin_attach_irq = swm_pin_attach_irq, + .pin_detach_irq = swm_pin_detach_irq, + .pin_irq_enable = swm_pin_irq_enable, + .pin_get = swm_pin_get +}; static void swm_pin_isr(GPIO_TypeDef *GPIOx) { diff --git a/bsp/tae32f5300/drivers/drv_gpio.c b/bsp/tae32f5300/drivers/drv_gpio.c index ca4c519f14..e58a71ed25 100644 --- a/bsp/tae32f5300/drivers/drv_gpio.c +++ b/bsp/tae32f5300/drivers/drv_gpio.c @@ -132,7 +132,7 @@ rt_ssize_t _pin_read(rt_device_t dev, rt_base_t pin) index = get_pin(pin); if (index == RT_NULL) { - return PIN_LOW; + return -RT_EINVAL; } if (LL_GPIO_ReadPin(index->gpio, index->pin) == GPIO_PIN_RESET) { diff --git a/bsp/tkm32F499/drivers/drv_gpio.c b/bsp/tkm32F499/drivers/drv_gpio.c index d3c1ec1e61..4736fbf508 100644 --- a/bsp/tkm32F499/drivers/drv_gpio.c +++ b/bsp/tkm32F499/drivers/drv_gpio.c @@ -212,7 +212,7 @@ rt_ssize_t tkm32_pin_read(rt_device_t dev, rt_base_t pin) index = get_pin(pin); if (index == RT_NULL) { - return PIN_LOW; + return -RT_EINVAL; } if (GPIO_ReadInputDataBit(index->gpio, index->pin) == Bit_RESET) { diff --git a/bsp/tm4c123bsp/libraries/Drivers/drv_gpio.c b/bsp/tm4c123bsp/libraries/Drivers/drv_gpio.c index faba1eab54..322d6df14d 100644 --- a/bsp/tm4c123bsp/libraries/Drivers/drv_gpio.c +++ b/bsp/tm4c123bsp/libraries/Drivers/drv_gpio.c @@ -118,7 +118,7 @@ static rt_ssize_t tm4c123_pin_read(rt_device_t dev, rt_base_t pin) index = get_pin(pin); if (index == RT_NULL) { - return value; + return -RT_EINVAL; } value = GPIOPinRead(index ->gpioBaseAddress, index ->pin); diff --git a/bsp/wch/risc-v/Libraries/ch32_drivers/drv_gpio.c b/bsp/wch/risc-v/Libraries/ch32_drivers/drv_gpio.c index 41ead54e50..00a1ead30f 100644 --- a/bsp/wch/risc-v/Libraries/ch32_drivers/drv_gpio.c +++ b/bsp/wch/risc-v/Libraries/ch32_drivers/drv_gpio.c @@ -155,6 +155,10 @@ static rt_ssize_t ch32_pin_read(rt_device_t dev, rt_base_t pin) gpio_pin = PIN_STPIN(pin); value = GPIO_ReadInputDataBit(gpio_port, gpio_pin); } + else + { + return -RT_EINVAL; + } return value; } diff --git a/bsp/zynqmp-r5-axu4ev/drivers/drv_gpio.c b/bsp/zynqmp-r5-axu4ev/drivers/drv_gpio.c index 46f9ce988c..3de829bef8 100644 --- a/bsp/zynqmp-r5-axu4ev/drivers/drv_gpio.c +++ b/bsp/zynqmp-r5-axu4ev/drivers/drv_gpio.c @@ -50,21 +50,23 @@ void xgpiops_pin_write(rt_device_t dev, rt_base_t pin, rt_uint8_t value) rt_ssize_t xgpiops_pin_read(rt_device_t dev, rt_base_t pin) { if (pin >= Gpio.MaxPinNum) - return 0; + { + return -RT_EINVAL; + } int DataRead = XGpioPs_ReadPin(&Gpio, pin); return DataRead?PIN_HIGH:PIN_LOW; } const static struct rt_pin_ops _xgpiops_pin_ops = - { - xgpiops_pin_mode, - xgpiops_pin_write, - xgpiops_pin_read, - RT_NULL, - RT_NULL, - RT_NULL, - RT_NULL, +{ + xgpiops_pin_mode, + xgpiops_pin_write, + xgpiops_pin_read, + RT_NULL, + RT_NULL, + RT_NULL, + RT_NULL, }; int rt_hw_pin_init(void)