]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
gpio: vx855: use new GPIO line value setter callbacks
authorBartosz Golaszewski <bartosz.golaszewski@linaro.org>
Wed, 9 Jul 2025 06:41:38 +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-1-b8950f69618d@linaro.org
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
drivers/gpio/gpio-vx855.c

index 8fd6c3913d6935da37454647cf7500d91c82e0c8..a3bceac7854c0632c2f7891783be41521fd1f53c 100644 (file)
@@ -127,8 +127,7 @@ static int vx855gpio_get(struct gpio_chip *gpio, unsigned int nr)
        return ret;
 }
 
-static void vx855gpio_set(struct gpio_chip *gpio, unsigned int nr,
-                         int val)
+static int vx855gpio_set(struct gpio_chip *gpio, unsigned int nr, int val)
 {
        struct vx855_gpio *vg = gpiochip_get_data(gpio);
        unsigned long flags;
@@ -136,7 +135,7 @@ static void vx855gpio_set(struct gpio_chip *gpio, unsigned int nr,
 
        /* True GPI cannot be switched to output mode */
        if (nr < NR_VX855_GPI)
-               return;
+               return -EPERM;
 
        spin_lock_irqsave(&vg->lock, flags);
        reg_out = inl(vg->io_gpo);
@@ -153,6 +152,8 @@ static void vx855gpio_set(struct gpio_chip *gpio, unsigned int nr,
        }
        outl(reg_out, vg->io_gpo);
        spin_unlock_irqrestore(&vg->lock, flags);
+
+       return 0;
 }
 
 static int vx855gpio_direction_output(struct gpio_chip *gpio,
@@ -215,7 +216,7 @@ static void vx855gpio_gpio_setup(struct vx855_gpio *vg)
        c->direction_input = vx855gpio_direction_input;
        c->direction_output = vx855gpio_direction_output;
        c->get = vx855gpio_get;
-       c->set = vx855gpio_set;
+       c->set_rv = vx855gpio_set;
        c->set_config = vx855gpio_set_config;
        c->dbg_show = NULL;
        c->base = 0;