TI LMU (Lighting Management Unit) device tree bindings

TI LMU driver supports lighting devices below.

   Name                  Child nodes
  ------      ---------------------------------
  LM3631       Backlight and regulator
  LM3632       Backlight and regulator
  LM3633       Backlight, LED and fault monitor
  LM3695       Backlight
  LM3697       Backlight and fault monitor

Required properties:
  - compatible: Should be one of:
                "ti,lm3631"
                "ti,lm3632"
                "ti,lm3633"
                "ti,lm3695"
                "ti,lm3697"
  - reg: I2C slave address.
         0x11 for LM3632
         0x29 for LM3631
         0x36 for LM3633, LM3697
         0x63 for LM3695

Optional property:
  - enable-gpios: A GPIO specifier for hardware enable pin.

Required node:
  - backlight: All LMU devices have backlight child nodes.
               For the properties, please refer to [1].

Optional nodes:
  - fault-monitor: Hardware fault monitoring driver for LM3633 and LM3697.
    Required properties:
      - compatible: Should be one of:
                    "ti,lm3633-fault-monitor"
                    "ti,lm3697-fault-monitor"
  - leds: LED properties for LM3633. Please refer to [2].
  - regulators: Regulator properties for LM3631 and LM3632.
                Please refer to [3].

[1] ../leds/backlight/ti-lmu-backlight.txt
[2] ../leds/leds-lm3633.txt
[3] ../regulator/lm363x-regulator.txt

lm3631@29 {
	compatible = "ti,lm3631";
	reg = <0x29>;

	regulators {
		compatible = "ti,lm363x-regulator";

		vboost {
			regulator-name = "lcd_boost";
			regulator-min-microvolt = <4500000>;
			regulator-max-microvolt = <6350000>;
			regulator-always-on;
		};

		vcont {
			regulator-name = "lcd_vcont";
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <3300000>;
		};

		voref {
			regulator-name = "lcd_voref";
			regulator-min-microvolt = <4000000>;
			regulator-max-microvolt = <6000000>;
		};

		vpos {
			regulator-name = "lcd_vpos";
			regulator-min-microvolt = <4000000>;
			regulator-max-microvolt = <6000000>;
			regulator-boot-on;
		};

		vneg {
			regulator-name = "lcd_vneg";
			regulator-min-microvolt = <4000000>;
			regulator-max-microvolt = <6000000>;
			regulator-boot-on;
		};
	};

	backlight {
		compatible = "ti,lm3631-backlight";

		lcd_bl {
			led-sources = <0 1>;
			ramp-up-msec = <300>;
		};
	};
};

lm3632@11 {
	compatible = "ti,lm3632";
	reg = <0x11>;

	enable-gpios = <&pioC 2 GPIO_ACTIVE_HIGH>; /* PC2 */

	regulators {
		compatible = "ti,lm363x-regulator";

		enable-gpios = <&pioC 0 GPIO_ACTIVE_HIGH>,
			       <&pioC 1 GPIO_ACTIVE_HIGH>;

		vboost {
			regulator-name = "lcd_boost";
			regulator-min-microvolt = <4500000>;
			regulator-max-microvolt = <6400000>;
			regulator-always-on;
		};

		vpos {
			regulator-name = "lcd_vpos";
			regulator-min-microvolt = <4000000>;
			regulator-max-microvolt = <6000000>;
		};

		vneg {
			regulator-name = "lcd_vneg";
			regulator-min-microvolt = <4000000>;
			regulator-max-microvolt = <6000000>;
		};
	};

	backlight {
		compatible = "ti,lm3632-backlight";

		pwms = <&pwm0 0 10000 0>; /* pwm number, period, polarity */
		pwm-names = "lmu-backlight";

		lcd {
			led-sources = <0 1>;
			pwm-period = <10000>;
		};
	};
};

lm3633@36 {
	compatible = "ti,lm3633";
	reg = <0x36>;

	enable-gpios = <&pioC 2 GPIO_ACTIVE_HIGH>;

	backlight {
		compatible = "ti,lm3633-backlight";

		main {
			label = "main_lcd";
			led-sources = <1 2>;
			ramp-up-msec = <500>;
			ramp-down-msec = <500>;
		};

		front {
			label = "front_lcd";
			led-sources = <0>;
			ramp-up-msec = <1000>;
			ramp-down-msec = <0>;
		};
	};

	leds {
		compatible = "ti,lm3633-leds";

		chan1 {
			label = "status";
			led-sources = <1>;
			led-max-microamp = <6000>;
		};

		chan345 {
			label = "rgb";
			led-sources = <3 4 5>;
			led-max-microamp = <10000>;
		};
	};

	fault-monitor {
		compatible = "ti,lm3633-fault-monitor";
	};
};

lm3695@63 {
	compatible = "ti,lm3695";
	reg = <0x63>;

	enable-gpios = <&pioC 2 GPIO_ACTIVE_HIGH>;

	backlight {
		compatible = "ti,lm3695-backlight";

		lcd {
			label = "bl";
			led-sources = <0 1>;
		};
	};
};

lm3697@36 {
	compatible = "ti,lm3697";
	reg = <0x36>;

	enable-gpios = <&pioC 2 GPIO_ACTIVE_HIGH>;

	backlight {
		compatible = "ti,lm3697-backlight";

		lcd {
			led-sources = <0 1 2>;
			ramp-up-msec = <200>;
			ramp-down-msec = <200>;
		};
	};

	fault-monitor {
		compatible = "ti,lm3697-fault-monitor";
	};
};
