]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
misc: ti-fpc202: use new GPIO line value setter callbacks
authorBartosz Golaszewski <bartosz.golaszewski@linaro.org>
Thu, 17 Jul 2025 13:03:56 +0000 (15:03 +0200)
committerBartosz Golaszewski <bartosz.golaszewski@linaro.org>
Fri, 18 Jul 2025 07:35:11 +0000 (09:35 +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.

Reviewed-by: Romain Gantois <romain.gantois@bootlin.com>
Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Link: https://lore.kernel.org/r/20250717130357.53491-2-brgl@bgdev.pl
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
drivers/misc/ti_fpc202.c

index ca415ef45cbe75dbeb6326298cc0e9e76d34910b..f84cae50e2c9cec81e3bab6ad1325103a3aa379e 100644 (file)
@@ -118,8 +118,8 @@ static void fpc202_set_enable(struct fpc202_priv *priv, int enable)
        gpiod_set_value(priv->en_gpio, enable);
 }
 
-static void fpc202_gpio_set(struct gpio_chip *chip, unsigned int offset,
-                           int value)
+static int fpc202_gpio_set(struct gpio_chip *chip, unsigned int offset,
+                          int value)
 {
        struct fpc202_priv *priv = gpiochip_get_data(chip);
        int ret;
@@ -128,7 +128,7 @@ static void fpc202_gpio_set(struct gpio_chip *chip, unsigned int offset,
        ret = fpc202_read(priv, FPC202_REG_OUT_A_OUT_B_VAL);
        if (ret < 0) {
                dev_err(&priv->client->dev, "Failed to set GPIO %d value! err %d\n", offset, ret);
-               return;
+               return ret;
        }
 
        val = (u8)ret;
@@ -138,7 +138,7 @@ static void fpc202_gpio_set(struct gpio_chip *chip, unsigned int offset,
        else
                val &= ~BIT(offset - FPC202_GPIO_P0_S0_OUT_A);
 
-       fpc202_write(priv, FPC202_REG_OUT_A_OUT_B_VAL, val);
+       return fpc202_write(priv, FPC202_REG_OUT_A_OUT_B_VAL, val);
 }
 
 static int fpc202_gpio_get(struct gpio_chip *chip, unsigned int offset)
@@ -333,7 +333,7 @@ static int fpc202_probe(struct i2c_client *client)
        priv->gpio.base = -1;
        priv->gpio.direction_input = fpc202_gpio_direction_input;
        priv->gpio.direction_output = fpc202_gpio_direction_output;
-       priv->gpio.set = fpc202_gpio_set;
+       priv->gpio.set_rv = fpc202_gpio_set;
        priv->gpio.get = fpc202_gpio_get;
        priv->gpio.ngpio = FPC202_GPIO_COUNT;
        priv->gpio.parent = dev;