Binding for the CPLD LEDs (GPIO extension bus) found on some LaCie/Seagate
boards (Example: 2Big/5Big Network v2, 2Big NAS).

Required properties:
- compatible: "lacie,netxbig-leds".
- gpio-ext: Phandle for the gpio-ext bus.

Optional properties:
- timers: Timer array. Each timer entry is represented by three integers:
  Mode (gpio-ext bus), delay_on and delay_off.

Each LED is represented as a sub-node of the netxbig-leds device.

Required sub-node properties:
- mode-addr: Mode register address on gpio-ext bus.
- mode-val: Mode to value mapping. Each entry is represented by two integers:
  A mode and the corresponding value on the gpio-ext bus.
- bright-addr: Brightness register address on gpio-ext bus.
- max-brightness: Maximum brightness value.

Optional sub-node properties:
- label: Name for this LED. If omitted, the label is taken from the node name.
- linux,default-trigger: Trigger assigned to the LED.

Example:

netxbig-leds {
	compatible = "lacie,netxbig-leds";

	gpio-ext = &gpio_ext;

	timers = <NETXBIG_LED_TIMER1 500 500
		  NETXBIG_LED_TIMER2 500 1000>;

	blue-power {
		label = "netxbig:blue:power";
		mode-addr = <0>;
		mode-val = <NETXBIG_LED_OFF 0
			    NETXBIG_LED_ON 1
			    NETXBIG_LED_TIMER1 3
			    NETXBIG_LED_TIMER2 7>;
		bright-addr = <1>;
		max-brightness = <7>;
	};
	red-power {
		label = "netxbig:red:power";
		mode-addr = <0>;
		mode-val = <NETXBIG_LED_OFF 0
			    NETXBIG_LED_ON 2
			    NETXBIG_LED_TIMER1 4>;
		bright-addr = <1>;
		max-brightness = <7>;
	};
	blue-sata0 {
		label = "netxbig:blue:sata0";
		mode-addr = <3>;
		mode-val = <NETXBIG_LED_OFF 0
			    NETXBIG_LED_ON 7
			    NETXBIG_LED_SATA 1
			    NETXBIG_LED_TIMER1 3>;
		bright-addr = <2>;
		max-brightness = <7>;
	};
	red-sata0 {
		label = "netxbig:red:sata0";
		mode-addr = <3>;
		mode-val = <NETXBIG_LED_OFF 0
			    NETXBIG_LED_ON 2
			    NETXBIG_LED_TIMER1 4>;
		bright-addr = <2>;
		max-brightness = <7>;
	};
	blue-sata1 {
		label = "netxbig:blue:sata1";
		mode-addr = <4>;
		mode-val = <NETXBIG_LED_OFF 0
			    NETXBIG_LED_ON 7
			    NETXBIG_LED_SATA 1
			    NETXBIG_LED_TIMER1 3>;
		bright-addr = <2>;
		max-brightness = <7>;
	};
	red-sata1 {
		label = "netxbig:red:sata1";
		mode-addr = <4>;
		mode-val = <NETXBIG_LED_OFF 0
			    NETXBIG_LED_ON 2
			    NETXBIG_LED_TIMER1 4>;
		bright-addr = <2>;
		max-brightness = <7>;
	};
};
