gpio: xilinx: 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.

Link: https://lore.kernel.org/r/20250709-gpiochip-set-rv-gpio-remaining-v1-10-b8950f69618d@linaro.org
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
This commit is contained in:
Bartosz Golaszewski 2025-07-09 08:41:47 +02:00
parent 0933fc87f3
commit 1919ea19a4

View file

@ -148,7 +148,7 @@ static int xgpio_get(struct gpio_chip *gc, unsigned int gpio)
* This function writes the specified value in to the specified signal of the * This function writes the specified value in to the specified signal of the
* GPIO device. * GPIO device.
*/ */
static void xgpio_set(struct gpio_chip *gc, unsigned int gpio, int val) static int xgpio_set(struct gpio_chip *gc, unsigned int gpio, int val)
{ {
unsigned long flags; unsigned long flags;
struct xgpio_instance *chip = gpiochip_get_data(gc); struct xgpio_instance *chip = gpiochip_get_data(gc);
@ -162,6 +162,8 @@ static void xgpio_set(struct gpio_chip *gc, unsigned int gpio, int val)
xgpio_write_ch(chip, XGPIO_DATA_OFFSET, bit, chip->state); xgpio_write_ch(chip, XGPIO_DATA_OFFSET, bit, chip->state);
raw_spin_unlock_irqrestore(&chip->gpio_lock, flags); raw_spin_unlock_irqrestore(&chip->gpio_lock, flags);
return 0;
} }
/** /**
@ -600,7 +602,7 @@ static int xgpio_probe(struct platform_device *pdev)
chip->gc.direction_input = xgpio_dir_in; chip->gc.direction_input = xgpio_dir_in;
chip->gc.direction_output = xgpio_dir_out; chip->gc.direction_output = xgpio_dir_out;
chip->gc.get = xgpio_get; chip->gc.get = xgpio_get;
chip->gc.set = xgpio_set; chip->gc.set_rv = xgpio_set;
chip->gc.request = xgpio_request; chip->gc.request = xgpio_request;
chip->gc.free = xgpio_free; chip->gc.free = xgpio_free;
chip->gc.set_multiple = xgpio_set_multiple; chip->gc.set_multiple = xgpio_set_multiple;