Re: [RFC PATCH v2 09/16] leds: leds-gpio: Add support for GPIO descriptors
From: Linus Walleij <hidden>
Date: 2014-09-24 07:55:52
Also in:
linux-acpi, lkml
On Tue, Sep 16, 2014 at 1:52 PM, Mika Westerberg [off-list ref] wrote:
GPIO descriptors are the preferred way over legacy GPIO numbers nowadays. Convert the driver to use GPIO descriptors internally but still allow passing legacy GPIO numbers from platform data to support existing platforms. Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Great!
#include <linux/gpio.h> +#include <linux/gpio/consumer.h>
You should not need to include <linux/gpio.h> at all after this change.
quoted hunk ↗ jump to hunk
@@ -85,9 +91,10 @@ static int gpio_blink_set(struct led_classdev *led_cdev, { struct gpio_led_data *led_dat = container_of(led_cdev, struct gpio_led_data, cdev); + int gpio = desc_to_gpio(led_dat->gpiod); led_dat->blinking = 1; - return led_dat->platform_gpio_blink_set(led_dat->gpio, GPIO_LED_BLINK, + return led_dat->platform_gpio_blink_set(gpio, GPIO_LED_BLINK, delay_on, delay_off); }
While this is a nice first step, it must be possible to patch all in-kernel users of this callback to take a gpiod too... It's actually just: $ git grep gpio_blink_set arch/arm/mach-orion5x/dns323-setup.c: .gpio_blink_set = orion_gpio_led_blink_set, arch/arm/mach-orion5x/dns323-setup.c: .gpio_blink_set = orion_gpio_led_blink_set, arch/arm/mach-s3c24xx/mach-h1940.c: .gpio_blink_set = h1940_led_blink_set, arch/arm/mach-s3c24xx/mach-rx1950.c: .gpio_blink_set = rx1950_led_blink_set, However we can do that as a follow-up patch. (Add to TODO...) Yours, Linus Walleij