Common leds properties.

LED and flash LED devices provide the same basic functionality as current
regulators, but extended with LED and flash LED specific features like
blinking patterns, flash timeout, flash faults and external flash strobe mode.

Many LED devices expose more than one current output that can be connected
to one or more discrete LED component. Since the arrangement of connections
can influence the way of the LED device initialization, the LED components
have to be tightly coupled with the LED device binding. They are represented
by child nodes of the parent LED device binding.

Optional properties for child nodes:
- led-sources : List of device current outputs the LED is connected to. The
		outputs are identified by the numbers that must be defined
		in the LED device binding documentation.
- label : The label for this LED. If omitted, the label is taken from the node
	  name (excluding the unit address). It has to uniquely identify
	  a device, i.e. no other LED class device can be assigned the same
	  label.

- default-state : The initial state of the LED. Valid values are "on", "off",
  and "keep". If the LED is already on or off and the default-state property is
  set the to same value, then no glitch should be produced where the LED
  momentarily turns off (or on). The "keep" setting will keep the LED at
  whatever its current state is, without producing a glitch.  The default is
  off if this property is not present.

- linux,default-trigger :  This parameter, if present, is a
    string defining the trigger assigned to the LED.  Current triggers are:
     "backlight" - LED will act as a back-light, controlled by the framebuffer
		   system
     "default-on" - LED will turn on (but for leds-gpio see "default-state"
		    property in Documentation/devicetree/bindings/gpio/led.txt)
     "heartbeat" - LED "double" flashes at a load average based rate
     "disk-activity" - LED indicates disk activity
     "ide-disk" - LED indicates IDE disk activity (deprecated),
                  in new implementations use "disk-activity"
     "timer" - LED flashes at a fixed, configurable rate

- led-max-microamp : Maximum LED supply current in microamperes. This property
                     can be made mandatory for the board configurations
                     introducing a risk of hardware damage in case an excessive
                     current is set.
                     For flash LED controllers with configurable current this
                     property is mandatory for the LEDs in the non-flash modes
                     (e.g. torch or indicator).

- panic-indicator : This property specifies that the LED should be used,
		    if at all possible, as a panic indicator.

Required properties for flash LED child nodes:
- flash-max-microamp : Maximum flash LED supply current in microamperes.
- flash-max-timeout-us : Maximum timeout in microseconds after which the flash
                         LED is turned off.

For controllers that have no configurable current the flash-max-microamp
property can be omitted.
For controllers that have no configurable timeout the flash-max-timeout-us
property can be omitted.

Examples:

system-status {
	label = "Status";
	linux,default-trigger = "heartbeat";
	...
};

camera-flash {
	label = "Flash";
	led-sources = <0>, <1>;
	led-max-microamp = <50000>;
	flash-max-microamp = <320000>;
	flash-max-timeout-us = <500000>;
};
