leds: gpio: Avoid using GPIOF_ACTIVE_LOW
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Mon, 4 Nov 2024 09:34:21 +0000 (11:34 +0200)
committerBartosz Golaszewski <bartosz.golaszewski@linaro.org>
Sat, 9 Nov 2024 13:55:33 +0000 (14:55 +0100)
Avoid using GPIOF_ACTIVE_LOW as it's deprecated and subject to remove.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Acked-by: Lee Jones <lee@kernel.org>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Link: https://lore.kernel.org/r/20241104093609.156059-4-andriy.shevchenko@linux.intel.com
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
drivers/leds/leds-gpio.c

index 4d1612d..cf5038c 100644 (file)
@@ -217,7 +217,6 @@ static struct gpio_desc *gpio_led_get_gpiod(struct device *dev, int idx,
                                            const struct gpio_led *template)
 {
        struct gpio_desc *gpiod;
-       unsigned long flags = GPIOF_OUT_INIT_LOW;
        int ret;
 
        /*
@@ -244,10 +243,7 @@ static struct gpio_desc *gpio_led_get_gpiod(struct device *dev, int idx,
        if (!gpio_is_valid(template->gpio))
                return ERR_PTR(-ENOENT);
 
-       if (template->active_low)
-               flags |= GPIOF_ACTIVE_LOW;
-
-       ret = devm_gpio_request_one(dev, template->gpio, flags,
+       ret = devm_gpio_request_one(dev, template->gpio, GPIOF_OUT_INIT_LOW,
                                    template->name);
        if (ret < 0)
                return ERR_PTR(ret);
@@ -256,6 +252,9 @@ static struct gpio_desc *gpio_led_get_gpiod(struct device *dev, int idx,
        if (!gpiod)
                return ERR_PTR(-EINVAL);
 
+       if (template->active_low ^ gpiod_is_active_low(gpiod))
+               gpiod_toggle_active_low(gpiod);
+
        return gpiod;
 }