Commit 40150dda authored by Bartosz Golaszewski's avatar Bartosz Golaszewski
Browse files

gpio: imx-scu: 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 avatarPeng Fan <peng.fan@nxp.com>
Reviewed-by: default avatarLinus 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: default avatarBartosz Golaszewski <bartosz.golaszewski@linaro.org>
parent 68ef7140
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -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);