[RESEND][PATCH][POWERPC] PIKA Warp: Update platform code to supportRev B boards

Grant Likely grant.likely at secretlab.ca
Tue Apr 29 03:44:19 EST 2008


On Mon, Apr 28, 2008 at 11:10 AM, Sean MacLennan
<smaclennan at pikatech.com> wrote:
> On Sun, 27 Apr 2008 22:47:43 -0600
>
> "Grant Likely" <grant.likely at secretlab.ca> 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:
>
>         led at 31 {
>                 compatible = "linux,gpio-led";
>                 linux,name = "green";
>                 gpios = <&GPIO1 31>;
>         };
>
>         led at 30 {
>                 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.



More information about the Linuxppc-dev mailing list