On Mon, Apr 28, 2008 at 11:10 AM, Sean MacLennan
<[EMAIL PROTECTED]> wrote:
> On Sun, 27 Apr 2008 22:47:43 -0600
>
> "Grant Likely" <[EMAIL PROTECTED]> wrote:
>
>
> > If your LEDs are attached to gpio pins, then you should use the
>  > current draft led->gpio bindings as shown in the above patch.  Then,
>  > let your platform code extract whatever data it needs from the device
>  > tree to set up the LEDs.
>
>  I added the following to the dts:
>
>         [EMAIL PROTECTED] {
>                 compatible = "linux,gpio-led";
>                 linux,name = "green";
>                 gpios = <&GPIO1 31>;
>         };
>
>         [EMAIL PROTECTED] {
>                 compatible = "linux,gpio-led";
>                 linux,name = "red";
>                 gpios = <&GPIO1 30>;
>         };

This looks appropriate.  You'll need to make sure that the values in
the linux,name property meet the Linux LED naming guidelines.  I think
this is covered in Documentation/leds-class.c.  You can also as
Richard Purdie; the LED subsystem maintainer.

>  I then map the gpio base as follows (I removed the if checks just to
>  make things short and sweet):
>
>         np = of_find_compatible_node(NULL, NULL, "linux,gpio-led");
>
>         gpios = of_get_property(np, "gpios", &lenp);
>         of_node_put(np);
>
>         np = of_find_node_by_phandle(gpios[0]);
>
>
>         gpio_base = of_iomap(np, 0);
>         of_node_put(np);

This isn't ideal, but it will do to start.  However, if other devices
want to use the same GPIO block, then you'll probably have problems
with race conditions.  Eventually, you'll want to use the common GPIO
infrastructure and remove the custom code.

Cheers,
g.


-- 
Grant Likely, B.Sc., P.Eng.
Secret Lab Technologies Ltd.
_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev

Reply via email to