[PATCH 2/2] leds: Support OpenFirmware led bindings

Trent Piepho tpiepho at freescale.com
Tue Jul 29 05:11:01 EST 2008


On Mon, 28 Jul 2008, Anton Vorontsov wrote:
> On Mon, Jul 28, 2008 at 11:26:28AM -0700, Trent Piepho wrote:
>> On Mon, 28 Jul 2008, Anton Vorontsov wrote:
>>> On Mon, Jul 28, 2008 at 11:09:14AM -0600, Grant Likely wrote:
>>> [...]
>>>>>>> +- 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.
>>>>>
>>>>> Should it be a linux specific property then?  I could list all the current
>>>>> linux triggers, but enumerating every possible function someone might want
>>>>> to assign to an LED seems hopeless.
>>>>
>>>> I'd rather see the device tree provide 'hints' toward the expected usage
>>>> and if a platform needs something specific, then the platform specific
>>>> code should setup the trigger.
>>>>
>>> Maybe we can encode leds into devices themselves, via phandles?
>>
>> How will this work for anything besides ide activity?  For example, flashing,
>> heartbeat, default on, overheat, fan failed, kernel panic, etc.
>
> Everything is possible, but will look weird. For example,
>
> Default on (power led) could be encoded in the root node.
> fan and overheat in a PM controller's node.
> Kernel panic in the chosen node.

What about flashing?  What if the sensor chip isn't an OF device?

>>> And then the OF GPIO LEDs driver could do something like:
>>>
>>> char *ide_disk_trigger_compatibles[] = {
>>> 	"fsl,sata",
>>> 	"ide-generic",
>>> 	...
>>> };
>>
>> Everytime someone added a new ide driver, this table would have to be updated.
>
> Yes. device_type would be helpful here. :-)
>
>
> Well, otherwise, we could provide a trigger map in the chosen node:
>
> chosen {
> 	/* leds map: default-on, ide-disk, nand-disk, panic */
> 	linux,leds = <&green_led &red_led 0 0>;
> };

What if you have multiple leds that you want to be default on?  What happens
when new functions are added?



More information about the Linuxppc-dev mailing list