]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
pinctrl: cy8c95x0: use new GPIO line value setter callbacks
authorBartosz Golaszewski <bartosz.golaszewski@linaro.org>
Tue, 8 Apr 2025 07:17:47 +0000 (09:17 +0200)
committerLinus Walleij <linus.walleij@linaro.org>
Thu, 17 Apr 2025 07:39:15 +0000 (09:39 +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>
Link: https://lore.kernel.org/20250408-gpiochip-set-rv-pinctrl-part1-v1-10-c9d521d7c8c7@linaro.org
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/pinctrl/pinctrl-cy8c95x0.c

index 3cfbcaee9e65ca306d9898b6b916e4bd7e37032e..8a2fd632bdd40bd4431818373775b847d4a58374 100644 (file)
@@ -742,14 +742,15 @@ static int cy8c95x0_gpio_get_value(struct gpio_chip *gc, unsigned int off)
        return reg_val ? 1 : 0;
 }
 
-static void cy8c95x0_gpio_set_value(struct gpio_chip *gc, unsigned int off,
-                                   int val)
+static int cy8c95x0_gpio_set_value(struct gpio_chip *gc, unsigned int off,
+                                  int val)
 {
        struct cy8c95x0_pinctrl *chip = gpiochip_get_data(gc);
        u8 port = cypress_get_port(chip, off);
        u8 bit = cypress_get_pin_mask(chip, off);
 
-       cy8c95x0_regmap_write_bits(chip, CY8C95X0_OUTPUT, port, bit, val ? bit : 0);
+       return cy8c95x0_regmap_write_bits(chip, CY8C95X0_OUTPUT, port, bit,
+                                         val ? bit : 0);
 }
 
 static int cy8c95x0_gpio_get_direction(struct gpio_chip *gc, unsigned int off)
@@ -908,12 +909,12 @@ static int cy8c95x0_gpio_get_multiple(struct gpio_chip *gc,
        return cy8c95x0_read_regs_mask(chip, CY8C95X0_INPUT, bits, mask);
 }
 
-static void cy8c95x0_gpio_set_multiple(struct gpio_chip *gc,
-                                      unsigned long *mask, unsigned long *bits)
+static int cy8c95x0_gpio_set_multiple(struct gpio_chip *gc,
+                                     unsigned long *mask, unsigned long *bits)
 {
        struct cy8c95x0_pinctrl *chip = gpiochip_get_data(gc);
 
-       cy8c95x0_write_regs_mask(chip, CY8C95X0_OUTPUT, bits, mask);
+       return cy8c95x0_write_regs_mask(chip, CY8C95X0_OUTPUT, bits, mask);
 }
 
 static int cy8c95x0_add_pin_ranges(struct gpio_chip *gc)
@@ -938,10 +939,10 @@ static int cy8c95x0_setup_gpiochip(struct cy8c95x0_pinctrl *chip)
        gc->direction_input  = cy8c95x0_gpio_direction_input;
        gc->direction_output = cy8c95x0_gpio_direction_output;
        gc->get = cy8c95x0_gpio_get_value;
-       gc->set = cy8c95x0_gpio_set_value;
+       gc->set_rv = cy8c95x0_gpio_set_value;
        gc->get_direction = cy8c95x0_gpio_get_direction;
        gc->get_multiple = cy8c95x0_gpio_get_multiple;
-       gc->set_multiple = cy8c95x0_gpio_set_multiple;
+       gc->set_multiple_rv = cy8c95x0_gpio_set_multiple;
        gc->set_config = gpiochip_generic_config;
        gc->can_sleep = true;
        gc->add_pin_ranges = cy8c95x0_add_pin_ranges;