]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
pinctrl: amlogic-a4: use new GPIO line value setter callbacks
authorBartosz Golaszewski <bartosz.golaszewski@linaro.org>
Tue, 8 Apr 2025 07:17:43 +0000 (09:17 +0200)
committerLinus Walleij <linus.walleij@linaro.org>
Tue, 15 Apr 2025 21:48:10 +0000 (23:48 +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.

Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
Reviewed-by: Xianwei Zhao <xianwei.zhao@amlogic.com>
Reviewed-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Link: https://lore.kernel.org/20250408-gpiochip-set-rv-pinctrl-part1-v1-6-c9d521d7c8c7@linaro.org
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/pinctrl/meson/pinctrl-amlogic-a4.c

index ee7bbc72f9b36c0c6d5bec76780711f9db3c155d..a76f266b4b94ec62f28c7fb1baf345705ef44de3 100644 (file)
@@ -806,15 +806,15 @@ static int aml_gpio_direction_output(struct gpio_chip *chip, unsigned int gpio,
                                  value ? BIT(bit) : 0);
 }
 
-static void aml_gpio_set(struct gpio_chip *chip, unsigned int gpio, int value)
+static int aml_gpio_set(struct gpio_chip *chip, unsigned int gpio, int value)
 {
        struct aml_gpio_bank *bank = gpiochip_get_data(chip);
        unsigned int bit, reg;
 
        aml_gpio_calc_reg_and_bit(bank, AML_REG_OUT, gpio, &reg, &bit);
 
-       regmap_update_bits(bank->reg_gpio, reg, BIT(bit),
-                          value ? BIT(bit) : 0);
+       return regmap_update_bits(bank->reg_gpio, reg, BIT(bit),
+                                 value ? BIT(bit) : 0);
 }
 
 static int aml_gpio_get(struct gpio_chip *chip, unsigned int gpio)
@@ -832,7 +832,7 @@ static const struct gpio_chip aml_gpio_template = {
        .request                = gpiochip_generic_request,
        .free                   = gpiochip_generic_free,
        .set_config             = gpiochip_generic_config,
-       .set                    = aml_gpio_set,
+       .set_rv                 = aml_gpio_set,
        .get                    = aml_gpio_get,
        .direction_input        = aml_gpio_direction_input,
        .direction_output       = aml_gpio_direction_output,