On Thu, Apr 24, 2025 at 4:35 PM Bartosz Golaszewski <brgl@xxxxxxxx> wrote: > > From: Bartosz Golaszewski <bartosz.golaszewski@xxxxxxxxxx> > > 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@xxxxxxxxxx> > --- > drivers/pinctrl/pinctrl-axp209.c | 29 +++++++++++++---------------- > 1 file changed, 13 insertions(+), 16 deletions(-) > > diff --git a/drivers/pinctrl/pinctrl-axp209.c b/drivers/pinctrl/pinctrl-axp209.c > index 2b4805e74eed..28ff846d263a 100644 > --- a/drivers/pinctrl/pinctrl-axp209.c > +++ b/drivers/pinctrl/pinctrl-axp209.c > @@ -192,34 +192,31 @@ static int axp20x_gpio_get_direction(struct gpio_chip *chip, > static int axp20x_gpio_output(struct gpio_chip *chip, unsigned int offset, > int value) > { > - chip->set(chip, offset, value); > - > - return 0; > + return chip->set_rv(chip, offset, value); > } > > -static void axp20x_gpio_set(struct gpio_chip *chip, unsigned int offset, > - int value) > +static int axp20x_gpio_set(struct gpio_chip *chip, unsigned int offset, > + int value) > { > struct axp20x_pctl *pctl = gpiochip_get_data(chip); > int reg; > > /* AXP209 has GPIO3 status sharing the settings register */ > if (offset == 3) { > - regmap_update_bits(pctl->regmap, AXP20X_GPIO3_CTRL, > - AXP20X_GPIO3_FUNCTIONS, > - value ? AXP20X_GPIO3_FUNCTION_OUT_HIGH : > - AXP20X_GPIO3_FUNCTION_OUT_LOW); > - return; > + return regmap_update_bits(pctl->regmap, AXP20X_GPIO3_CTRL, > + AXP20X_GPIO3_FUNCTIONS, > + value ? > + AXP20X_GPIO3_FUNCTION_OUT_HIGH : > + AXP20X_GPIO3_FUNCTION_OUT_LOW); > } I guess you could also drop the curly braces, but otherwise Reviewed-by: Chen-Yu Tsai <wens@xxxxxxxx> > > reg = axp20x_gpio_get_reg(offset); > if (reg < 0) > - return; > + return reg; > > - regmap_update_bits(pctl->regmap, reg, > - AXP20X_GPIO_FUNCTIONS, > - value ? AXP20X_GPIO_FUNCTION_OUT_HIGH : > - AXP20X_GPIO_FUNCTION_OUT_LOW); > + return regmap_update_bits(pctl->regmap, reg, AXP20X_GPIO_FUNCTIONS, > + value ? AXP20X_GPIO_FUNCTION_OUT_HIGH : > + AXP20X_GPIO_FUNCTION_OUT_LOW); > } > > static int axp20x_pmx_set(struct pinctrl_dev *pctldev, unsigned int offset, > @@ -468,7 +465,7 @@ static int axp20x_pctl_probe(struct platform_device *pdev) > pctl->chip.owner = THIS_MODULE; > pctl->chip.get = axp20x_gpio_get; > pctl->chip.get_direction = axp20x_gpio_get_direction; > - pctl->chip.set = axp20x_gpio_set; > + pctl->chip.set_rv = axp20x_gpio_set; > pctl->chip.direction_input = pinctrl_gpio_direction_input; > pctl->chip.direction_output = axp20x_gpio_output; > > > -- > 2.45.2 >