From 90bfec7d8ddbcbce276cf852c26f5c5c89b70a20 Mon Sep 17 00:00:00 2001 From: TOKITA Hiroshi Date: Thu, 26 Dec 2024 12:24:06 +0900 Subject: [PATCH 1/2] drivers: gpio: rpi_pico: Not support GPIO_DISCONNECTED config If GPIO_DISCONNECTED is requested with gpio_pin_configure, it will return -ENOTSUP since rpi_pico does not support it. Signed-off-by: TOKITA Hiroshi --- drivers/gpio/gpio_rpi_pico.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/gpio/gpio_rpi_pico.c b/drivers/gpio/gpio_rpi_pico.c index 8b3d18e8717ab..1950144cc7260 100644 --- a/drivers/gpio/gpio_rpi_pico.c +++ b/drivers/gpio/gpio_rpi_pico.c @@ -39,6 +39,10 @@ static int gpio_rpi_configure(const struct device *dev, { struct gpio_rpi_data *data = dev->data; + if ((flags & GPIO_DIR_MASK) == GPIO_DISCONNECTED) { + return -ENOTSUP; + } + gpio_set_pulls(pin, (flags & GPIO_PULL_UP) != 0U, (flags & GPIO_PULL_DOWN) != 0U); From 79ee6dcc8f2d46e3b500a2674a85457eb9f88709 Mon Sep 17 00:00:00 2001 From: TOKITA Hiroshi Date: Sat, 28 Dec 2024 10:06:22 +0900 Subject: [PATCH 2/2] tests: drivers: gpio: gpio_basic_api: Enable test on rpi_pico series Add an overlay for `rpi_pico` and `rpi_pico2` to run this test. Signed-off-by: TOKITA Hiroshi --- .../gpio/gpio_basic_api/boards/rpi_pico.overlay | 13 +++++++++++++ .../boards/rpi_pico2_rp2350a_m33.conf | 1 + .../boards/rpi_pico2_rp2350a_m33.overlay | 8 ++++++++ 3 files changed, 22 insertions(+) create mode 100644 tests/drivers/gpio/gpio_basic_api/boards/rpi_pico.overlay create mode 100644 tests/drivers/gpio/gpio_basic_api/boards/rpi_pico2_rp2350a_m33.conf create mode 100644 tests/drivers/gpio/gpio_basic_api/boards/rpi_pico2_rp2350a_m33.overlay diff --git a/tests/drivers/gpio/gpio_basic_api/boards/rpi_pico.overlay b/tests/drivers/gpio/gpio_basic_api/boards/rpi_pico.overlay new file mode 100644 index 0000000000000..61a0bf2bf951a --- /dev/null +++ b/tests/drivers/gpio/gpio_basic_api/boards/rpi_pico.overlay @@ -0,0 +1,13 @@ +/* + * Copyright (c) 2025 TOKITA Hiroshi + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/ { + resources { + compatible = "test-gpio-basic-api"; + out-gpios = <&pico_header 12 GPIO_ACTIVE_HIGH>; + in-gpios = <&pico_header 13 GPIO_ACTIVE_HIGH>; + }; +}; diff --git a/tests/drivers/gpio/gpio_basic_api/boards/rpi_pico2_rp2350a_m33.conf b/tests/drivers/gpio/gpio_basic_api/boards/rpi_pico2_rp2350a_m33.conf new file mode 100644 index 0000000000000..b9d02cf11d5d4 --- /dev/null +++ b/tests/drivers/gpio/gpio_basic_api/boards/rpi_pico2_rp2350a_m33.conf @@ -0,0 +1 @@ +CONFIG_SKIP_PULL_TEST=y diff --git a/tests/drivers/gpio/gpio_basic_api/boards/rpi_pico2_rp2350a_m33.overlay b/tests/drivers/gpio/gpio_basic_api/boards/rpi_pico2_rp2350a_m33.overlay new file mode 100644 index 0000000000000..eead4743d062d --- /dev/null +++ b/tests/drivers/gpio/gpio_basic_api/boards/rpi_pico2_rp2350a_m33.overlay @@ -0,0 +1,8 @@ +/* + * Copyright (c) 2025 TOKITA Hiroshi + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/* Pico 2 is compatible with the Pico 1, so reuse. */ +#include "rpi_pico.overlay"