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