From: Grant Likely <grant.likely@secretlab.ca>
To: Trent Piepho <tpiepho@freescale.com>
Cc: Stephen Rothwell <sfr@canb.auug.org.au>,
linux-kernel@vger.kernel.org, linuxppc-dev@ozlabs.org,
Richard Purdie <rpurdie@rpsys.net>
Subject: Re: [PATCH 2/2] leds: Support OpenFirmware led bindings
Date: Sat, 26 Jul 2008 20:21:16 -0600 [thread overview]
Message-ID: <20080727022116.GN12191@secretlab.ca> (raw)
In-Reply-To: <1217019705-24244-2-git-send-email-tpiepho@freescale.com>
On Fri, Jul 25, 2008 at 02:01:45PM -0700, Trent Piepho wrote:
> Add bindings to support LEDs defined as of_platform devices in addition to
> the existing bindings for platform devices.
(adding devicetree-discuss@ozlabs.org to the cc list)
> New options in Kconfig allow the platform binding code and/or the
> of_platform code to be turned on. The of_platform code is of course only
> available on archs that have OF support.
>
> The existing probe and remove methods are refactored to use new functions
> create_gpio_led(), to create and register one led, and delete_gpio_led(),
> to unregister and free one led. The new probe and remove methods for the
> of_platform driver can then share most of the common probe and remove code
> with the platform driver.
>
> The suspend and resume methods aren't shared, but they are very short. The
> actual led driving code is the same for LEDs created by either binding.
I like this approach. I think it is a good pattern.
> The OF bindings are based on patch by Anton Vorontsov
> <avorontsov@ru.mvista.com>. They have been extended to allow multiple LEDs
> per device.
>
> Signed-off-by: Trent Piepho <tpiepho@freescale.com>
> ---
> Documentation/powerpc/dts-bindings/gpio/led.txt | 44 ++++-
> drivers/leds/Kconfig | 21 ++-
> drivers/leds/leds-gpio.c | 225 ++++++++++++++++++-----
> 3 files changed, 236 insertions(+), 54 deletions(-)
>
> diff --git a/Documentation/powerpc/dts-bindings/gpio/led.txt b/Documentation/powerpc/dts-bindings/gpio/led.txt
> index ff51f4c..ed01297 100644
> --- a/Documentation/powerpc/dts-bindings/gpio/led.txt
> +++ b/Documentation/powerpc/dts-bindings/gpio/led.txt
> @@ -1,15 +1,39 @@
> -LED connected to GPIO
> +LEDs connected to GPIO lines
>
> Required properties:
> -- compatible : should be "gpio-led".
> -- label : (optional) the label for this LED. If omitted, the label is
> - taken from the node name (excluding the unit address).
> -- gpios : should specify LED GPIO.
> +- compatible : should be "gpio-leds".
>
> -Example:
> +Each LED is represented as a sub-node of the gpio-leds device. Each
> +node's name represents the name of the corresponding LED.
>
> -led@0 {
> - compatible = "gpio-led";
> - label = "hdd";
> - gpios = <&mcu_pio 0 1>;
> +LED node properties:
> +- gpios : Should specify the LED GPIO.
Question: it is possible/desirable for a single LED to be assigned
multiple GPIO pins? Say, for a tri-color LED? (I'm fishing for
opinions; I really don't know if it would be a good idea or not)
> +- label : (optional) The label for this LED. If omitted, the label
> + is taken from the node name (excluding the unit address).
> +- function : (optional) This parameter, if present, is a string
> + defining the function of the LED. It can be used to put the LED
> + under software control, e.g. Linux LED triggers like "heartbeat",
> + "ide-disk", and "timer". Or it could be used to attach a hardware
> + signal to the LED, e.g. a SoC that can configured to put a SATA
> + activity signal on a GPIO line.
This makes me nervous. It exposes Linux internal implementation details
into the device tree data. If you want to have a property that
describes the LED usage, then the possible values and meanings should be
documented here.
> + memset(&led, 0, sizeof(led));
> + for_each_child_of_node(np, child) {
> + led.gpio = of_get_gpio(child, 0);
> + led.name = of_get_property(child, "label", NULL) ? : child->name;
> + led.default_trigger =
> + of_get_property(child, "linux,default-trigger", NULL);
This isn't in the documented binding. I assume that you mean 'function'
here?
Otherwise, the code looks pretty good to me.
g.
WARNING: multiple messages have this Message-ID (diff)
From: Grant Likely <grant.likely@secretlab.ca>
To: Trent Piepho <tpiepho@freescale.com>
Cc: linux-kernel@vger.kernel.org,
Anton Vorontsov <avorontsov@ru.mvista.com>,
Richard Purdie <rpurdie@rpsys.net>,
Stephen Rothwell <sfr@canb.auug.org.au>,
Kumar Gala <galak@kernel.crashing.org>,
linuxppc-dev@ozlabs.org
Subject: Re: [PATCH 2/2] leds: Support OpenFirmware led bindings
Date: Sat, 26 Jul 2008 20:21:16 -0600 [thread overview]
Message-ID: <20080727022116.GN12191@secretlab.ca> (raw)
In-Reply-To: <1217019705-24244-2-git-send-email-tpiepho@freescale.com>
On Fri, Jul 25, 2008 at 02:01:45PM -0700, Trent Piepho wrote:
> Add bindings to support LEDs defined as of_platform devices in addition to
> the existing bindings for platform devices.
(adding devicetree-discuss@ozlabs.org to the cc list)
> New options in Kconfig allow the platform binding code and/or the
> of_platform code to be turned on. The of_platform code is of course only
> available on archs that have OF support.
>
> The existing probe and remove methods are refactored to use new functions
> create_gpio_led(), to create and register one led, and delete_gpio_led(),
> to unregister and free one led. The new probe and remove methods for the
> of_platform driver can then share most of the common probe and remove code
> with the platform driver.
>
> The suspend and resume methods aren't shared, but they are very short. The
> actual led driving code is the same for LEDs created by either binding.
I like this approach. I think it is a good pattern.
> The OF bindings are based on patch by Anton Vorontsov
> <avorontsov@ru.mvista.com>. They have been extended to allow multiple LEDs
> per device.
>
> Signed-off-by: Trent Piepho <tpiepho@freescale.com>
> ---
> Documentation/powerpc/dts-bindings/gpio/led.txt | 44 ++++-
> drivers/leds/Kconfig | 21 ++-
> drivers/leds/leds-gpio.c | 225 ++++++++++++++++++-----
> 3 files changed, 236 insertions(+), 54 deletions(-)
>
> diff --git a/Documentation/powerpc/dts-bindings/gpio/led.txt b/Documentation/powerpc/dts-bindings/gpio/led.txt
> index ff51f4c..ed01297 100644
> --- a/Documentation/powerpc/dts-bindings/gpio/led.txt
> +++ b/Documentation/powerpc/dts-bindings/gpio/led.txt
> @@ -1,15 +1,39 @@
> -LED connected to GPIO
> +LEDs connected to GPIO lines
>
> Required properties:
> -- compatible : should be "gpio-led".
> -- label : (optional) the label for this LED. If omitted, the label is
> - taken from the node name (excluding the unit address).
> -- gpios : should specify LED GPIO.
> +- compatible : should be "gpio-leds".
>
> -Example:
> +Each LED is represented as a sub-node of the gpio-leds device. Each
> +node's name represents the name of the corresponding LED.
>
> -led@0 {
> - compatible = "gpio-led";
> - label = "hdd";
> - gpios = <&mcu_pio 0 1>;
> +LED node properties:
> +- gpios : Should specify the LED GPIO.
Question: it is possible/desirable for a single LED to be assigned
multiple GPIO pins? Say, for a tri-color LED? (I'm fishing for
opinions; I really don't know if it would be a good idea or not)
> +- label : (optional) The label for this LED. If omitted, the label
> + is taken from the node name (excluding the unit address).
> +- function : (optional) This parameter, if present, is a string
> + defining the function of the LED. It can be used to put the LED
> + under software control, e.g. Linux LED triggers like "heartbeat",
> + "ide-disk", and "timer". Or it could be used to attach a hardware
> + signal to the LED, e.g. a SoC that can configured to put a SATA
> + activity signal on a GPIO line.
This makes me nervous. It exposes Linux internal implementation details
into the device tree data. If you want to have a property that
describes the LED usage, then the possible values and meanings should be
documented here.
> + memset(&led, 0, sizeof(led));
> + for_each_child_of_node(np, child) {
> + led.gpio = of_get_gpio(child, 0);
> + led.name = of_get_property(child, "label", NULL) ? : child->name;
> + led.default_trigger =
> + of_get_property(child, "linux,default-trigger", NULL);
This isn't in the documented binding. I assume that you mean 'function'
here?
Otherwise, the code looks pretty good to me.
g.
next prev parent reply other threads:[~2008-07-27 4:04 UTC|newest]
Thread overview: 117+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-07-14 16:41 [PATCH] leds: implement OpenFirmare GPIO LED driver Anton Vorontsov
2008-07-14 16:41 ` Anton Vorontsov
2008-07-15 3:10 ` Stephen Rothwell
2008-07-15 3:10 ` Stephen Rothwell
2008-07-15 12:38 ` Anton Vorontsov
2008-07-15 12:38 ` Anton Vorontsov
2008-07-15 12:40 ` [PATCH v2] " Anton Vorontsov
2008-07-15 12:40 ` Anton Vorontsov
2008-07-15 12:54 ` Richard Purdie
2008-07-15 12:54 ` Richard Purdie
2008-07-15 13:24 ` Anton Vorontsov
2008-07-15 13:24 ` Anton Vorontsov
2008-07-15 13:31 ` Richard Purdie
2008-07-15 13:31 ` Richard Purdie
2008-07-15 14:23 ` Anton Vorontsov
2008-07-15 14:23 ` Anton Vorontsov
2008-07-15 14:43 ` Richard Purdie
2008-07-15 14:43 ` Richard Purdie
2008-07-15 15:19 ` [PATCH v3] " Anton Vorontsov
2008-07-15 15:19 ` Anton Vorontsov
2008-07-16 23:18 ` Trent Piepho
2008-07-16 23:18 ` Trent Piepho
2008-07-17 4:15 ` Grant Likely
2008-07-17 4:15 ` Grant Likely
2008-07-17 5:13 ` Trent Piepho
2008-07-17 5:13 ` Trent Piepho
2008-07-17 13:55 ` Anton Vorontsov
2008-07-17 13:55 ` Anton Vorontsov
2008-07-17 20:01 ` Trent Piepho
2008-07-17 20:01 ` Trent Piepho
2008-07-17 14:05 ` Anton Vorontsov
2008-07-17 14:05 ` Anton Vorontsov
2008-07-17 14:13 ` Anton Vorontsov
2008-07-17 14:13 ` Anton Vorontsov
2008-07-17 15:04 ` Grant Likely
2008-07-17 15:04 ` Grant Likely
2008-07-17 15:20 ` Anton Vorontsov
2008-07-17 15:20 ` Anton Vorontsov
2008-07-17 18:05 ` Grant Likely
2008-07-17 18:05 ` Grant Likely
2008-07-17 20:18 ` Trent Piepho
2008-07-17 20:18 ` Trent Piepho
2008-07-17 20:49 ` Grant Likely
2008-07-17 20:49 ` Grant Likely
2008-07-17 23:42 ` Anton Vorontsov
2008-07-17 23:42 ` Anton Vorontsov
2008-07-18 5:09 ` Grant Likely
2008-07-18 5:09 ` Grant Likely
2008-07-18 9:20 ` Trent Piepho
2008-07-18 9:20 ` Trent Piepho
2008-07-18 10:05 ` Anton Vorontsov
2008-07-18 10:05 ` Anton Vorontsov
2008-07-19 21:08 ` PIXIS gpio controller and gpio flags Trent Piepho
2008-07-19 21:08 ` Trent Piepho
2008-07-21 17:53 ` Anton Vorontsov
2008-07-21 17:53 ` Anton Vorontsov
2008-07-21 21:12 ` Trent Piepho
2008-07-21 21:12 ` Trent Piepho
2008-07-23 14:56 ` Anton Vorontsov
2008-07-23 14:56 ` Anton Vorontsov
2008-07-23 23:42 ` Trent Piepho
2008-07-23 23:42 ` Trent Piepho
2008-07-25 16:48 ` [RFC PATCH] of_gpio: implement of_get_gpio_flags() Anton Vorontsov
2008-07-25 16:48 ` Anton Vorontsov
2008-07-26 8:26 ` Trent Piepho
2008-07-26 8:26 ` Trent Piepho
2008-07-25 20:38 ` [PATCH v3] leds: implement OpenFirmare GPIO LED driver Trent Piepho
2008-07-25 20:38 ` Trent Piepho
2008-07-25 21:01 ` [PATCH 1/2] leds: make the default trigger name const Trent Piepho
2008-07-25 21:01 ` Trent Piepho
2008-07-27 2:08 ` Grant Likely
2008-07-27 2:08 ` Grant Likely
2008-07-27 13:11 ` Stephen Rothwell
2008-07-27 13:11 ` Stephen Rothwell
2008-07-28 1:56 ` Trent Piepho
2008-07-28 1:56 ` Trent Piepho
2008-07-28 2:02 ` [PATCH v2] " Trent Piepho
2008-07-28 2:02 ` Trent Piepho
2008-07-28 9:53 ` [PATCH 1/2] " Anton Vorontsov
2008-07-28 9:53 ` Anton Vorontsov
2008-08-29 1:22 ` Trent Piepho
2008-08-29 1:22 ` Trent Piepho
2008-07-25 21:01 ` [PATCH 2/2] leds: Support OpenFirmware led bindings Trent Piepho
2008-07-25 21:01 ` Trent Piepho
2008-07-27 2:21 ` Grant Likely [this message]
2008-07-27 2:21 ` Grant Likely
2008-07-28 8:31 ` Trent Piepho
2008-07-28 8:31 ` Trent Piepho
2008-07-28 17:09 ` Grant Likely
2008-07-28 17:09 ` Grant Likely
2008-07-28 18:02 ` Anton Vorontsov
2008-07-28 18:02 ` Anton Vorontsov
2008-07-28 18:06 ` Grant Likely
2008-07-28 18:06 ` Grant Likely
2008-07-28 18:26 ` Trent Piepho
2008-07-28 18:26 ` Trent Piepho
2008-07-28 18:49 ` Grant Likely
2008-07-28 18:49 ` Grant Likely
2008-07-28 18:51 ` Anton Vorontsov
2008-07-28 18:51 ` Anton Vorontsov
2008-07-28 19:11 ` Trent Piepho
2008-07-28 19:11 ` Trent Piepho
2008-07-17 21:29 ` [PATCH v3] leds: implement OpenFirmare GPIO LED driver Nate Case
2008-07-17 21:29 ` Nate Case
2008-07-16 23:22 ` [PATCH v2] " Trent Piepho
2008-07-16 23:22 ` Trent Piepho
2008-07-17 5:59 ` [PATCH] " Segher Boessenkool
2008-07-17 5:59 ` Segher Boessenkool
2008-07-17 11:07 ` Anton Vorontsov
2008-07-17 11:07 ` Anton Vorontsov
2008-07-17 14:58 ` Sean MacLennan
2008-07-17 14:58 ` Sean MacLennan
2008-07-17 15:07 ` Grant Likely
2008-07-17 15:07 ` Grant Likely
2008-07-18 3:35 ` David Gibson
2008-07-18 3:35 ` David Gibson
2008-07-18 4:44 ` Grant Likely
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20080727022116.GN12191@secretlab.ca \
--to=grant.likely@secretlab.ca \
--cc=linux-kernel@vger.kernel.org \
--cc=linuxppc-dev@ozlabs.org \
--cc=rpurdie@rpsys.net \
--cc=sfr@canb.auug.org.au \
--cc=tpiepho@freescale.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.