Message ID | 20250424-gpiochip-set-rv-pinctrl-part2-v1-2-504f91120b99@linaro.org |
---|---|
State | New |
Headers | show |
Series | pinctrl: convert GPIO chips to using new value setters - part 2 for v6.16 | expand |
On Thu, Apr 24, 2025 at 7:43 PM Chen-Yu Tsai <wens@csie.org> wrote: > > On Thu, Apr 24, 2025 at 4:35 PM Bartosz Golaszewski <brgl@bgdev.pl> wrote: > > > > From: Bartosz Golaszewski <bartosz.golaszewski@linaro.org> > > > > 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> >> > > /* 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@csie.org> > Right. Linus: can you remove them while applying? Bart
On Thu, Apr 24, 2025 at 8:55 PM Bartosz Golaszewski <brgl@bgdev.pl> wrote: > On Thu, Apr 24, 2025 at 7:43 PM Chen-Yu Tsai <wens@csie.org> wrote: > > I guess you could also drop the curly braces, but otherwise > > > > Reviewed-by: Chen-Yu Tsai <wens@csie.org> > > Right. Linus: can you remove them while applying? Fixed it! Yours, Linus Walleij
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); } 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;