]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
gpio: da9052: use new line value setter callbacks
authorBartosz Golaszewski <bartosz.golaszewski@linaro.org>
Mon, 10 Mar 2025 12:40:28 +0000 (13:40 +0100)
committerBartosz Golaszewski <bartosz.golaszewski@linaro.org>
Mon, 17 Mar 2025 07:27:42 +0000 (08:27 +0100)
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/20250310-gpiochip-set-conversion-v1-14-03798bb833eb@linaro.org
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
drivers/gpio/gpio-da9052.c

index 6f3905f1b8f5f92f55f82332067494837f22ec3a..6482c5b267dbd5932b5ee5b1ce09f433dff7d253 100644 (file)
@@ -89,30 +89,20 @@ static int da9052_gpio_get(struct gpio_chip *gc, unsigned offset)
        }
 }
 
-static void da9052_gpio_set(struct gpio_chip *gc, unsigned offset, int value)
+static int da9052_gpio_set(struct gpio_chip *gc, unsigned int offset, int value)
 {
        struct da9052_gpio *gpio = gpiochip_get_data(gc);
-       int ret;
 
-       if (da9052_gpio_port_odd(offset)) {
-                       ret = da9052_reg_update(gpio->da9052, (offset >> 1) +
-                                               DA9052_GPIO_0_1_REG,
-                                               DA9052_GPIO_ODD_PORT_MODE,
-                                               value << DA9052_GPIO_ODD_SHIFT);
-                       if (ret != 0)
-                               dev_err(gpio->da9052->dev,
-                                       "Failed to updated gpio odd reg,%d",
-                                       ret);
-       } else {
-                       ret = da9052_reg_update(gpio->da9052, (offset >> 1) +
-                                               DA9052_GPIO_0_1_REG,
-                                               DA9052_GPIO_EVEN_PORT_MODE,
-                                               value << DA9052_GPIO_EVEN_SHIFT);
-                       if (ret != 0)
-                               dev_err(gpio->da9052->dev,
-                                       "Failed to updated gpio even reg,%d",
-                                       ret);
-       }
+       if (da9052_gpio_port_odd(offset))
+               return da9052_reg_update(gpio->da9052, (offset >> 1) +
+                                        DA9052_GPIO_0_1_REG,
+                                        DA9052_GPIO_ODD_PORT_MODE,
+                                        value << DA9052_GPIO_ODD_SHIFT);
+
+       return da9052_reg_update(gpio->da9052,
+                                (offset >> 1) + DA9052_GPIO_0_1_REG,
+                                DA9052_GPIO_EVEN_PORT_MODE,
+                                value << DA9052_GPIO_EVEN_SHIFT);
 }
 
 static int da9052_gpio_direction_input(struct gpio_chip *gc, unsigned offset)
@@ -182,7 +172,7 @@ static const struct gpio_chip reference_gp = {
        .label = "da9052-gpio",
        .owner = THIS_MODULE,
        .get = da9052_gpio_get,
-       .set = da9052_gpio_set,
+       .set_rv = da9052_gpio_set,
        .direction_input = da9052_gpio_direction_input,
        .direction_output = da9052_gpio_direction_output,
        .to_irq = da9052_gpio_to_irq,