[RESEND PATCH] pinctrl: rp1: use new GPIO line value setter callbacks

From: Bartosz Golaszewski
Date: Sat Jul 19 2025 - 11:58:47 EST


From: Bartosz Golaszewski <bartosz.golaszewski@xxxxxxxxxx>

struct gpio_chip now has callbacks for setting line values that return
an integer, allowing to indicate failures. Convert the driver to using
them.

Reviewed-by: Linus Walleij <linus.walleij@xxxxxxxxxx>
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@xxxxxxxxxx>
---
This driver was not queued via the pinctrl tree as it should so it flew
under my radar and it uses a deprecated interface that we *really* want
to remove in v6.17. This patch addresses it. I would really appreciate
it if it could be queued on top of the SoC tree before the merge window.
Arnd: could you take it directly?

drivers/pinctrl/pinctrl-rp1.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/pinctrl/pinctrl-rp1.c b/drivers/pinctrl/pinctrl-rp1.c
index d300f28c52cd..6080b57a5d87 100644
--- a/drivers/pinctrl/pinctrl-rp1.c
+++ b/drivers/pinctrl/pinctrl-rp1.c
@@ -779,12 +779,14 @@ static int rp1_gpio_get(struct gpio_chip *chip, unsigned int offset)
return ret;
}

-static void rp1_gpio_set(struct gpio_chip *chip, unsigned int offset, int value)
+static int rp1_gpio_set(struct gpio_chip *chip, unsigned int offset, int value)
{
struct rp1_pin_info *pin = rp1_get_pin(chip, offset);

if (pin)
rp1_set_value(pin, value);
+
+ return 0;
}

static int rp1_gpio_get_direction(struct gpio_chip *chip, unsigned int offset)
@@ -849,7 +851,7 @@ static const struct gpio_chip rp1_gpio_chip = {
.direction_output = rp1_gpio_direction_output,
.get_direction = rp1_gpio_get_direction,
.get = rp1_gpio_get,
- .set = rp1_gpio_set,
+ .set_rv = rp1_gpio_set,
.base = -1,
.set_config = rp1_gpio_set_config,
.ngpio = RP1_NUM_GPIOS,
--
2.48.1