]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
gpio: uniphier: use new GPIO line value setter callbacks
authorBartosz Golaszewski <bartosz.golaszewski@linaro.org>
Mon, 7 Jul 2025 07:50:23 +0000 (09:50 +0200)
committerBartosz Golaszewski <bartosz.golaszewski@linaro.org>
Sun, 13 Jul 2025 08:45:04 +0000 (10: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.

Acked-by: Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
Link: https://lore.kernel.org/r/20250707-gpiochip-set-rv-gpio-round4-v1-10-35668aaaf6d2@linaro.org
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
drivers/gpio/gpio-uniphier.c

index d738da8718f9cf52286ebf14dd4d0ae60466db2e..8939556f42b60f32dbf7bff315eb5bbb6f062256 100644 (file)
@@ -138,14 +138,16 @@ static int uniphier_gpio_get(struct gpio_chip *chip, unsigned int offset)
        return uniphier_gpio_offset_read(chip, offset, UNIPHIER_GPIO_PORT_DATA);
 }
 
-static void uniphier_gpio_set(struct gpio_chip *chip,
-                             unsigned int offset, int val)
+static int uniphier_gpio_set(struct gpio_chip *chip,
+                            unsigned int offset, int val)
 {
        uniphier_gpio_offset_write(chip, offset, UNIPHIER_GPIO_PORT_DATA, val);
+
+       return 0;
 }
 
-static void uniphier_gpio_set_multiple(struct gpio_chip *chip,
-                                      unsigned long *mask, unsigned long *bits)
+static int uniphier_gpio_set_multiple(struct gpio_chip *chip,
+                                     unsigned long *mask, unsigned long *bits)
 {
        unsigned long i, bank, bank_mask, bank_bits;
 
@@ -156,6 +158,8 @@ static void uniphier_gpio_set_multiple(struct gpio_chip *chip,
                uniphier_gpio_bank_write(chip, bank, UNIPHIER_GPIO_PORT_DATA,
                                         bank_mask, bank_bits);
        }
+
+       return 0;
 }
 
 static int uniphier_gpio_to_irq(struct gpio_chip *chip, unsigned int offset)
@@ -382,8 +386,8 @@ static int uniphier_gpio_probe(struct platform_device *pdev)
        chip->direction_input = uniphier_gpio_direction_input;
        chip->direction_output = uniphier_gpio_direction_output;
        chip->get = uniphier_gpio_get;
-       chip->set = uniphier_gpio_set;
-       chip->set_multiple = uniphier_gpio_set_multiple;
+       chip->set_rv = uniphier_gpio_set;
+       chip->set_multiple_rv = uniphier_gpio_set_multiple;
        chip->to_irq = uniphier_gpio_to_irq;
        chip->base = -1;
        chip->ngpio = ngpios;