Input: ad7879 - use new GPIO line value setter callbacks

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>
This commit is contained in:
Bartosz Golaszewski 2025-06-10 11:39:58 +02:00 committed by Dmitry Torokhov
parent 36b624b992
commit 4aaadf94aa

View 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;