]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
gpio: xilinx: use new GPIO line value setter callbacks
authorBartosz Golaszewski <bartosz.golaszewski@linaro.org>
Wed, 9 Jul 2025 06:41:47 +0000 (08:41 +0200)
committerBartosz Golaszewski <bartosz.golaszewski@linaro.org>
Tue, 15 Jul 2025 07:54:41 +0000 (09:54 +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/20250709-gpiochip-set-rv-gpio-remaining-v1-10-b8950f69618d@linaro.org
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
drivers/gpio/gpio-xilinx.c

index c58a7e1349b4b226057c6d045f901c7fea5da449..aaaa741179805d54e1cd1425579eb52a3579d6e5 100644 (file)
@@ -148,7 +148,7 @@ static int xgpio_get(struct gpio_chip *gc, unsigned int gpio)
  * This function writes the specified value in to the specified signal of the
  * GPIO device.
  */
-static void xgpio_set(struct gpio_chip *gc, unsigned int gpio, int val)
+static int xgpio_set(struct gpio_chip *gc, unsigned int gpio, int val)
 {
        unsigned long flags;
        struct xgpio_instance *chip = gpiochip_get_data(gc);
@@ -162,6 +162,8 @@ static void xgpio_set(struct gpio_chip *gc, unsigned int gpio, int val)
        xgpio_write_ch(chip, XGPIO_DATA_OFFSET, bit, chip->state);
 
        raw_spin_unlock_irqrestore(&chip->gpio_lock, flags);
+
+       return 0;
 }
 
 /**
@@ -600,7 +602,7 @@ static int xgpio_probe(struct platform_device *pdev)
        chip->gc.direction_input = xgpio_dir_in;
        chip->gc.direction_output = xgpio_dir_out;
        chip->gc.get = xgpio_get;
-       chip->gc.set = xgpio_set;
+       chip->gc.set_rv = xgpio_set;
        chip->gc.request = xgpio_request;
        chip->gc.free = xgpio_free;
        chip->gc.set_multiple = xgpio_set_multiple;