Thread (28 messages) 28 messages, 8 authors, 2008-05-06

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

From: Grant Likely <hidden>
Date: 2008-04-28 17:44:21

On Mon, Apr 28, 2008 at 11:10 AM, Sean MacLennan
[off-list ref] wrote:
On Sun, 27 Apr 2008 22:47:43 -0600

"Grant Likely" [off-list ref] wrote:

quoted
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@31 {
                compatible = "linux,gpio-led";
                linux,name = "green";
                gpios = <&GPIO1 31>;
        };

        led@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.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help