]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
gpio: tps65218: use new GPIO line value setter callbacks
authorBartosz Golaszewski <bartosz.golaszewski@linaro.org>
Wed, 2 Jul 2025 09:14:11 +0000 (11:14 +0200)
committerBartosz Golaszewski <bartosz.golaszewski@linaro.org>
Mon, 7 Jul 2025 07:45:30 +0000 (09:45 +0200)
struct gpio_chip now has callbacks for setting line values that return
an integer, allowing to indicate failures. Convert the driver to using
them.

Link: https://lore.kernel.org/r/20250702-gpiochip-set-rv-gpio-round3-v1-10-0d23be74f71d@linaro.org
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
drivers/gpio/gpio-tps65218.c

index 68e4f0a19f4eb945b33e5992fdf30a29a40bfc1e..49cd7754ed053bcdbf25a4e51e227287257a5f03 100644 (file)
@@ -34,29 +34,28 @@ static int tps65218_gpio_get(struct gpio_chip *gc, unsigned offset)
        return !!(val & (TPS65218_ENABLE2_GPIO1 << offset));
 }
 
-static void tps65218_gpio_set(struct gpio_chip *gc, unsigned offset,
-                             int value)
+static int tps65218_gpio_set(struct gpio_chip *gc, unsigned int offset,
+                            int value)
 {
        struct tps65218_gpio *tps65218_gpio = gpiochip_get_data(gc);
        struct tps65218 *tps65218 = tps65218_gpio->tps65218;
 
        if (value)
-               tps65218_set_bits(tps65218, TPS65218_REG_ENABLE2,
-                                 TPS65218_ENABLE2_GPIO1 << offset,
-                                 TPS65218_ENABLE2_GPIO1 << offset,
-                                 TPS65218_PROTECT_L1);
-       else
-               tps65218_clear_bits(tps65218, TPS65218_REG_ENABLE2,
-                                   TPS65218_ENABLE2_GPIO1 << offset,
-                                   TPS65218_PROTECT_L1);
+               return tps65218_set_bits(tps65218, TPS65218_REG_ENABLE2,
+                                        TPS65218_ENABLE2_GPIO1 << offset,
+                                        TPS65218_ENABLE2_GPIO1 << offset,
+                                        TPS65218_PROTECT_L1);
+
+       return tps65218_clear_bits(tps65218, TPS65218_REG_ENABLE2,
+                                  TPS65218_ENABLE2_GPIO1 << offset,
+                                  TPS65218_PROTECT_L1);
 }
 
 static int tps65218_gpio_output(struct gpio_chip *gc, unsigned offset,
                                int value)
 {
        /* Only drives GPOs */
-       tps65218_gpio_set(gc, offset, value);
-       return 0;
+       return tps65218_gpio_set(gc, offset, value);
 }
 
 static int tps65218_gpio_request(struct gpio_chip *gc, unsigned offset)
@@ -170,7 +169,7 @@ static const struct gpio_chip template_chip = {
        .request                = tps65218_gpio_request,
        .direction_output       = tps65218_gpio_output,
        .get                    = tps65218_gpio_get,
-       .set                    = tps65218_gpio_set,
+       .set_rv                 = tps65218_gpio_set,
        .set_config             = tps65218_gpio_set_config,
        .can_sleep              = true,
        .ngpio                  = 3,