RE: [PATCH RESEND 1/3] Input: ad7879 - use new GPIO line value setter callbacks
From: Hennerich, Michael
Date: Tue Jun 10 2025 - 07:01:20 EST
> -----Original Message-----
> From: Bartosz Golaszewski <brgl@xxxxxxxx>
> Sent: Tuesday, June 10, 2025 11:40 AM
> To: Hennerich, Michael <Michael.Hennerich@xxxxxxxxxx>; Dmitry Torokhov
> <dmitry.torokhov@xxxxxxxxx>; Linus Walleij <linus.walleij@xxxxxxxxxx>;
> Bartosz Golaszewski <brgl@xxxxxxxx>
> Cc: linux-input@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; linux-
> gpio@xxxxxxxxxxxxxxx; Bartosz Golaszewski <bartosz.golaszewski@xxxxxxxxxx>
> Subject: [PATCH RESEND 1/3] Input: ad7879 - use new GPIO line value setter
> callbacks
>
> From: Bartosz Golaszewski <bartosz.golaszewski@xxxxxxxxxx>
>
> 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@xxxxxxxxxx>
Acked-by: Michael Hennerich <michael.hennerich@xxxxxxxxxx>
> ---
> drivers/input/touchscreen/ad7879.c | 11 +++++++----
> 1 file changed, 7 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/input/touchscreen/ad7879.c
> b/drivers/input/touchscreen/ad7879.c
> index
> f9db5cefb25bca45e18e80fafc9cad5dd78f4f68..d2a3a5e016b6a5416846e8
> a9edf906c891d4038a 100644
> --- a/drivers/input/touchscreen/ad7879.c
> +++ b/drivers/input/touchscreen/ad7879.c
> @@ -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;
>
> --
> 2.48.1