gpio: lpc32xx: use new GPIO line value setter callbacks
authorBartosz Golaszewski <bartosz.golaszewski@linaro.org>
Tue, 6 May 2025 09:01:47 +0000 (11:01 +0200)
committerBartosz Golaszewski <bartosz.golaszewski@linaro.org>
Tue, 13 May 2025 13:15:34 +0000 (15:15 +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.

Link: https://lore.kernel.org/r/20250506-gpiochip-set-rv-gpio-part3-v1-4-0fbdea5a9667@linaro.org
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
drivers/gpio/gpio-lpc32xx.c

index c097e310c9e841044a3ef214444170721d116537..6668b8bd9f1ead146f338d120811f77dd309f213 100644 (file)
@@ -340,28 +340,34 @@ static int lpc32xx_gpio_dir_out_always(struct gpio_chip *chip, unsigned pin,
        return 0;
 }
 
-static void lpc32xx_gpio_set_value_p012(struct gpio_chip *chip, unsigned pin,
-       int value)
+static int lpc32xx_gpio_set_value_p012(struct gpio_chip *chip,
+                                      unsigned int pin, int value)
 {
        struct lpc32xx_gpio_chip *group = gpiochip_get_data(chip);
 
        __set_gpio_level_p012(group, pin, value);
+
+       return 0;
 }
 
-static void lpc32xx_gpio_set_value_p3(struct gpio_chip *chip, unsigned pin,
-       int value)
+static int lpc32xx_gpio_set_value_p3(struct gpio_chip *chip,
+                                    unsigned int pin, int value)
 {
        struct lpc32xx_gpio_chip *group = gpiochip_get_data(chip);
 
        __set_gpio_level_p3(group, pin, value);
+
+       return 0;
 }
 
-static void lpc32xx_gpo_set_value(struct gpio_chip *chip, unsigned pin,
-       int value)
+static int lpc32xx_gpo_set_value(struct gpio_chip *chip, unsigned int pin,
+                                int value)
 {
        struct lpc32xx_gpio_chip *group = gpiochip_get_data(chip);
 
        __set_gpo_level_p3(group, pin, value);
+
+       return 0;
 }
 
 static int lpc32xx_gpo_get_value(struct gpio_chip *chip, unsigned pin)
@@ -401,7 +407,7 @@ static struct lpc32xx_gpio_chip lpc32xx_gpiochip[] = {
                        .direction_input        = lpc32xx_gpio_dir_input_p012,
                        .get                    = lpc32xx_gpio_get_value_p012,
                        .direction_output       = lpc32xx_gpio_dir_output_p012,
-                       .set                    = lpc32xx_gpio_set_value_p012,
+                       .set_rv                 = lpc32xx_gpio_set_value_p012,
                        .request                = lpc32xx_gpio_request,
                        .to_irq                 = lpc32xx_gpio_to_irq_p01,
                        .base                   = LPC32XX_GPIO_P0_GRP,
@@ -417,7 +423,7 @@ static struct lpc32xx_gpio_chip lpc32xx_gpiochip[] = {
                        .direction_input        = lpc32xx_gpio_dir_input_p012,
                        .get                    = lpc32xx_gpio_get_value_p012,
                        .direction_output       = lpc32xx_gpio_dir_output_p012,
-                       .set                    = lpc32xx_gpio_set_value_p012,
+                       .set_rv                 = lpc32xx_gpio_set_value_p012,
                        .request                = lpc32xx_gpio_request,
                        .to_irq                 = lpc32xx_gpio_to_irq_p01,
                        .base                   = LPC32XX_GPIO_P1_GRP,
@@ -433,7 +439,7 @@ static struct lpc32xx_gpio_chip lpc32xx_gpiochip[] = {
                        .direction_input        = lpc32xx_gpio_dir_input_p012,
                        .get                    = lpc32xx_gpio_get_value_p012,
                        .direction_output       = lpc32xx_gpio_dir_output_p012,
-                       .set                    = lpc32xx_gpio_set_value_p012,
+                       .set_rv                 = lpc32xx_gpio_set_value_p012,
                        .request                = lpc32xx_gpio_request,
                        .base                   = LPC32XX_GPIO_P2_GRP,
                        .ngpio                  = LPC32XX_GPIO_P2_MAX,
@@ -448,7 +454,7 @@ static struct lpc32xx_gpio_chip lpc32xx_gpiochip[] = {
                        .direction_input        = lpc32xx_gpio_dir_input_p3,
                        .get                    = lpc32xx_gpio_get_value_p3,
                        .direction_output       = lpc32xx_gpio_dir_output_p3,
-                       .set                    = lpc32xx_gpio_set_value_p3,
+                       .set_rv                 = lpc32xx_gpio_set_value_p3,
                        .request                = lpc32xx_gpio_request,
                        .to_irq                 = lpc32xx_gpio_to_irq_gpio_p3,
                        .base                   = LPC32XX_GPIO_P3_GRP,
@@ -476,7 +482,7 @@ static struct lpc32xx_gpio_chip lpc32xx_gpiochip[] = {
                .chip = {
                        .label                  = "gpo_p3",
                        .direction_output       = lpc32xx_gpio_dir_out_always,
-                       .set                    = lpc32xx_gpo_set_value,
+                       .set_rv                 = lpc32xx_gpo_set_value,
                        .get                    = lpc32xx_gpo_get_value,
                        .request                = lpc32xx_gpio_request,
                        .base                   = LPC32XX_GPO_P3_GRP,