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); 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"