Skip to content

Commit 67b4055

Browse files
kartbendkalowsk
authored andcommitted
drivers: gpio: rpi_pico: fix call to gpio_set_dir
Ensure gpio_set_dir() receives GPIO_IN or GPIO_OUT by mapping INIT_{LOW,HIGH} flags explicitly, instead of passing raw bitmasks. Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
1 parent d1fc8c7 commit 67b4055

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

drivers/gpio/gpio_rpi_pico.c

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -161,11 +161,13 @@ static int gpio_rpi_configure(const struct device *dev,
161161
if (flags & GPIO_LINE_OPEN_DRAIN) {
162162
data->open_drain_mask |= BIT(pin);
163163
gpio_put(pin + offset, 0);
164-
gpio_set_dir(pin + offset, flags & GPIO_OUTPUT_INIT_LOW);
164+
gpio_set_dir(pin + offset,
165+
(flags & GPIO_OUTPUT_INIT_LOW) ? GPIO_OUT : GPIO_IN);
165166
} else {
166167
data->open_drain_mask &= ~(BIT(pin));
167168
gpio_put(pin + offset, 1);
168-
gpio_set_dir(pin + offset, flags & GPIO_OUTPUT_INIT_HIGH);
169+
gpio_set_dir(pin + offset,
170+
(flags & GPIO_OUTPUT_INIT_HIGH) ? GPIO_OUT : GPIO_IN);
169171
}
170172
} else {
171173
data->single_ended_mask &= ~(BIT(pin));

0 commit comments

Comments
 (0)