Messages in this thread | | | Date | Mon, 28 Jul 2008 12:11:01 -0700 (PDT) | From | Trent Piepho <> | Subject | Re: [PATCH 2/2] leds: Support OpenFirmware led bindings |
| |
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?
| |