gpio: imx-scu: use new line value setter callbacks
authorBartosz Golaszewski <bartosz.golaszewski@linaro.org>
Wed, 23 Apr 2025 07:15:06 +0000 (09:15 +0200)
committerBartosz Golaszewski <bartosz.golaszewski@linaro.org>
Wed, 30 Apr 2025 08:27:58 +0000 (10:27 +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: Peng Fan <peng.fan@nxp.com>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Link: https://lore.kernel.org/r/20250423-gpiochip-set-rv-gpio-part2-v1-4-b22245cde81a@linaro.org
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
drivers/gpio/gpio-imx-scu.c

index cf98b948f8049e4e88dc2508d3584a04ec076e55..1693dbf1b7774f4079f218782341fdcd46990e78 100644 (file)
@@ -52,7 +52,8 @@ static int imx_scu_gpio_get(struct gpio_chip *chip, unsigned int offset)
        return level;
 }
 
-static void imx_scu_gpio_set(struct gpio_chip *chip, unsigned int offset, int value)
+static int imx_scu_gpio_set(struct gpio_chip *chip, unsigned int offset,
+                           int value)
 {
        struct scu_gpio_priv *priv = gpiochip_get_data(chip);
        int err;
@@ -65,6 +66,8 @@ static void imx_scu_gpio_set(struct gpio_chip *chip, unsigned int offset, int va
        if (err)
                dev_err(priv->dev, "SCU set (%d) failed: %d\n",
                                scu_rsrc_arr[offset], err);
+
+       return err;
 }
 
 static int imx_scu_gpio_get_direction(struct gpio_chip *chip, unsigned int offset)
@@ -99,7 +102,7 @@ static int imx_scu_gpio_probe(struct platform_device *pdev)
        gc->ngpio = ARRAY_SIZE(scu_rsrc_arr);
        gc->label = dev_name(dev);
        gc->get = imx_scu_gpio_get;
-       gc->set = imx_scu_gpio_set;
+       gc->set_rv = imx_scu_gpio_set;
        gc->get_direction = imx_scu_gpio_get_direction;
 
        platform_set_drvdata(pdev, priv);