gpio: em: use new line value setter callbacks
authorBartosz Golaszewski <bartosz.golaszewski@linaro.org>
Mon, 7 Apr 2025 07:13:12 +0000 (09:13 +0200)
committerBartosz Golaszewski <brgl@bgdev.pl>
Wed, 16 Apr 2025 15:52:43 +0000 (17:52 +0200)
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>
Link: https://lore.kernel.org/r/20250407-gpiochip-set-rv-gpio-part1-v1-3-78399683ca38@linaro.org
Signed-off-by: Bartosz Golaszewski <brgl@bgdev.pl>
drivers/gpio/gpio-em.c

index 6c862c57232277adf48865da61fd802f8c7cb627..857c28895131c33a9d78f45cc5172835d803bb21 100644 (file)
@@ -204,13 +204,15 @@ static void __em_gio_set(struct gpio_chip *chip, unsigned int reg,
                     (BIT(shift + 16)) | (value << shift));
 }
 
-static void em_gio_set(struct gpio_chip *chip, unsigned offset, int value)
+static int em_gio_set(struct gpio_chip *chip, unsigned int offset, int value)
 {
        /* output is split into two registers */
        if (offset < 16)
                __em_gio_set(chip, GIO_OL, offset, value);
        else
                __em_gio_set(chip, GIO_OH, offset - 16, value);
+
+       return 0;
 }
 
 static int em_gio_direction_output(struct gpio_chip *chip, unsigned offset,
@@ -304,7 +306,7 @@ static int em_gio_probe(struct platform_device *pdev)
        gpio_chip->direction_input = em_gio_direction_input;
        gpio_chip->get = em_gio_get;
        gpio_chip->direction_output = em_gio_direction_output;
-       gpio_chip->set = em_gio_set;
+       gpio_chip->set_rv = em_gio_set;
        gpio_chip->to_irq = em_gio_to_irq;
        gpio_chip->request = pinctrl_gpio_request;
        gpio_chip->free = em_gio_free;