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.
next prev parent reply other threads:[~2008-07-27 4:04 UTC|newest]
Thread overview: 59+ 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-15 3:10 ` Stephen Rothwell
2008-07-15 12:38 ` Anton Vorontsov
2008-07-15 12:40 ` [PATCH v2] " Anton Vorontsov
2008-07-15 12:54 ` Richard Purdie
2008-07-15 13:24 ` Anton Vorontsov
2008-07-15 13:31 ` Richard Purdie
2008-07-15 14:23 ` Anton Vorontsov
2008-07-15 14:43 ` Richard Purdie
2008-07-15 15:19 ` [PATCH v3] " Anton Vorontsov
2008-07-16 23:18 ` Trent Piepho
2008-07-17 4:15 ` Grant Likely
2008-07-17 5:13 ` Trent Piepho
2008-07-17 13:55 ` Anton Vorontsov
2008-07-17 20:01 ` Trent Piepho
2008-07-17 14:05 ` Anton Vorontsov
2008-07-17 14:13 ` Anton Vorontsov
2008-07-17 15:04 ` Grant Likely
2008-07-17 15:20 ` Anton Vorontsov
2008-07-17 18:05 ` Grant Likely
2008-07-17 20:18 ` Trent Piepho
2008-07-17 20:49 ` Grant Likely
2008-07-17 23:42 ` Anton Vorontsov
2008-07-18 5:09 ` Grant Likely
2008-07-18 9:20 ` Trent Piepho
2008-07-18 10:05 ` Anton Vorontsov
2008-07-19 21:08 ` PIXIS gpio controller and gpio flags Trent Piepho
2008-07-21 17:53 ` Anton Vorontsov
2008-07-21 21:12 ` Trent Piepho
2008-07-23 14:56 ` Anton Vorontsov
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-26 8:26 ` Trent Piepho
2008-07-25 20:38 ` [PATCH v3] leds: implement OpenFirmare GPIO LED driver Trent Piepho
2008-07-25 21:01 ` [PATCH 1/2] leds: make the default trigger name const Trent Piepho
2008-07-27 2:08 ` Grant Likely
2008-07-27 13:11 ` Stephen Rothwell
2008-07-28 1:56 ` Trent Piepho
2008-07-28 2:02 ` [PATCH v2] " Trent Piepho
2008-07-28 9:53 ` [PATCH 1/2] " Anton Vorontsov
2008-08-29 1:22 ` Trent Piepho
2008-07-25 21:01 ` [PATCH 2/2] leds: Support OpenFirmware led bindings Trent Piepho
2008-07-27 2:21 ` Grant Likely [this message]
2008-07-28 8:31 ` Trent Piepho
2008-07-28 17:09 ` Grant Likely
2008-07-28 18:02 ` Anton Vorontsov
2008-07-28 18:06 ` Grant Likely
2008-07-28 18:26 ` Trent Piepho
2008-07-28 18:49 ` Grant Likely
2008-07-28 18:51 ` Anton Vorontsov
2008-07-28 19:11 ` Trent Piepho
2008-07-17 21:29 ` [PATCH v3] leds: implement OpenFirmare GPIO LED driver Nate Case
2008-07-16 23:22 ` [PATCH v2] " Trent Piepho
2008-07-17 5:59 ` [PATCH] " Segher Boessenkool
2008-07-17 11:07 ` Anton Vorontsov
2008-07-17 14:58 ` Sean MacLennan
2008-07-17 15:07 ` Grant Likely
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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).