Re: [PATCH v3 09/15] leds: leds-gpio: Make use of device property API

Rafael J. Wysocki
2014-10-04T00:18:10Z

On Friday, October 03, 2014 03:07:28 PM Mark Rutland wrote:
> On Wed, Oct 01, 2014 at 03:16:25AM +0100, Rafael J. Wysocki wrote:
> > From: Max Eliaser <max@meliaserlow.dyndns.tv>
> >
> > Make use of device property API in this driver so that both OF and ACPI
> > based system can use the same driver.
> >
> > Signed-off-by: Max Eliaser <max.eliaser@intel.com>
> > Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
> > Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
> > ---
> > drivers/leds/leds-gpio.c | 99 +++++++++++++++++++----------------------------
> > 1 file changed, 42 insertions(+), 57 deletions(-)
> >
> > Index: linux-pm/drivers/leds/leds-gpio.c
> > ===================================================================
> > --- linux-pm.orig/drivers/leds/leds-gpio.c
> > +++ linux-pm/drivers/leds/leds-gpio.c
> > @@ -15,13 +15,11 @@
> > #include <linux/gpio.h>
> > #include <linux/gpio/consumer.h>
> > #include <linux/leds.h>
> > -#include <linux/of.h>
> > -#include <linux/of_platform.h>
> > -#include <linux/of_gpio.h>
> > #include <linux/slab.h>
> > #include <linux/workqueue.h>
> > #include <linux/module.h>
> > #include <linux/err.h>
> > +#include <linux/property.h>
> >
> > struct gpio_led_data {
> > struct led_classdev cdev;
> > @@ -171,65 +169,59 @@ static inline int sizeof_gpio_leds_priv(
> > (sizeof(struct gpio_led_data) * num_leds);
> > }
> >
> > -/* Code to create from OpenFirmware platform devices */
> > -#ifdef CONFIG_OF_GPIO
> > -static struct gpio_leds_priv *gpio_leds_create_of(struct platform_device *pdev)
> > +static int gpio_leds_create_led(struct device *dev, void *child, void *data)
> > +{
> > + struct gpio_leds_priv *priv = data;
> > + struct gpio_led led = {};
> > + const char *state = NULL;
> > +
> > + led.gpiod = devm_get_named_gpiod_from_child(dev, child, "gpios", 0);
> > + if (IS_ERR(led.gpiod))
> > + return PTR_ERR(led.gpiod);
> > +
> > + device_child_property_read_string(dev, child, "label", &led.name);
> > + device_child_property_read_string(dev, child, "linux,default-trigger",
> > + &led.default_trigger);
> > +
> > + device_child_property_read_string(dev, child, "linux,default_state",
> > + &state);
>
> Do we really want "linux," properties in ACPI tables?

Yes, we do.

"linux" here need not mean this is Linux-specific.

--
I speak only for myself.
Rafael J. Wysocki, Intel Open Source Technology Center.