]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
Input: ad7879 - use new GPIO line value setter callbacks
authorBartosz Golaszewski <bartosz.golaszewski@linaro.org>
Tue, 10 Jun 2025 09:39:58 +0000 (11:39 +0200)
committerDmitry Torokhov <dmitry.torokhov@gmail.com>
Sat, 28 Jun 2025 01:10:59 +0000 (18:10 -0700)
struct gpio_chip now has callbacks for setting line values that return
an integer, allowing to indicate failures. Convert the driver to using
them.

Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
Acked-by: Michael Hennerich <michael.hennerich@analog.com>
Link: https://lore.kernel.org/r/20250610-gpiochip-set-rv-input-v1-1-5875240b48d8@linaro.org
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
drivers/input/touchscreen/ad7879.c

index f661e199b63c1700814cef12a230d59043637f6d..12fc39f9e7840ef1962c6da8ceba9714fa2496ef 100644 (file)
@@ -444,10 +444,11 @@ static int ad7879_gpio_get_value(struct gpio_chip *chip, unsigned gpio)
        return !!(val & AD7879_GPIO_DATA);
 }
 
-static void ad7879_gpio_set_value(struct gpio_chip *chip,
-                                 unsigned gpio, int value)
+static int ad7879_gpio_set_value(struct gpio_chip *chip, unsigned int gpio,
+                                int value)
 {
        struct ad7879 *ts = gpiochip_get_data(chip);
+       int ret;
 
        mutex_lock(&ts->mutex);
        if (value)
@@ -455,8 +456,10 @@ static void ad7879_gpio_set_value(struct gpio_chip *chip,
        else
                ts->cmd_crtl2 &= ~AD7879_GPIO_DATA;
 
-       ad7879_write(ts, AD7879_REG_CTRL2, ts->cmd_crtl2);
+       ret = ad7879_write(ts, AD7879_REG_CTRL2, ts->cmd_crtl2);
        mutex_unlock(&ts->mutex);
+
+       return ret;
 }
 
 static int ad7879_gpio_add(struct ad7879 *ts)
@@ -472,7 +475,7 @@ static int ad7879_gpio_add(struct ad7879 *ts)
        ts->gc.direction_input = ad7879_gpio_direction_input;
        ts->gc.direction_output = ad7879_gpio_direction_output;
        ts->gc.get = ad7879_gpio_get_value;
-       ts->gc.set = ad7879_gpio_set_value;
+       ts->gc.set_rv = ad7879_gpio_set_value;
        ts->gc.can_sleep = 1;
        ts->gc.base = -1;
        ts->gc.ngpio = 1;