Commit 74ab4523 authored by Bartosz Golaszewski's avatar Bartosz Golaszewski
Browse files

gpio: arizona: use new 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.

Reviewed-by: default avatarRichard Fitzgerald <rf@opensource.cirrus.com>
Link: https://lore.kernel.org/r/20250303-gpiochip-set-conversion-v1-11-1d5cceeebf8b@linaro.org


Signed-off-by: default avatarBartosz Golaszewski <bartosz.golaszewski@linaro.org>
parent 33dbb118
Loading
Loading
Loading
Loading
+5 −4
Original line number Diff line number Diff line
@@ -121,7 +121,8 @@ static int arizona_gpio_direction_out(struct gpio_chip *chip,
				  ARIZONA_GPN_DIR | ARIZONA_GPN_LVL, value);
}

static void arizona_gpio_set(struct gpio_chip *chip, unsigned offset, int value)
static int arizona_gpio_set(struct gpio_chip *chip, unsigned int offset,
			    int value)
{
	struct arizona_gpio *arizona_gpio = gpiochip_get_data(chip);
	struct arizona *arizona = arizona_gpio->arizona;
@@ -129,7 +130,7 @@ static void arizona_gpio_set(struct gpio_chip *chip, unsigned offset, int value)
	if (value)
		value = ARIZONA_GPN_LVL;

	regmap_update_bits(arizona->regmap, ARIZONA_GPIO1_CTRL + offset,
	return regmap_update_bits(arizona->regmap, ARIZONA_GPIO1_CTRL + offset,
				  ARIZONA_GPN_LVL, value);
}

@@ -139,7 +140,7 @@ static const struct gpio_chip template_chip = {
	.direction_input	= arizona_gpio_direction_in,
	.get			= arizona_gpio_get,
	.direction_output	= arizona_gpio_direction_out,
	.set			= arizona_gpio_set,
	.set_rv			= arizona_gpio_set,
	.can_sleep		= true,
};