* Freescale MC13783/MC13892 Power Management Integrated Circuit (PMIC)

Required properties:
- compatible : Should be "fsl,mc13783" or "fsl,mc13892"

Optional properties:
- fsl,mc13xxx-uses-adc : Indicate the ADC is being used
- fsl,mc13xxx-uses-codec : Indicate the Audio Codec is being used
- fsl,mc13xxx-uses-rtc : Indicate the RTC is being used
- fsl,mc13xxx-uses-touch : Indicate the touchscreen controller is being used

Sub-nodes:
- leds : Contain the led nodes and initial register values in property
  "led-control". Number of register depends of used IC, for MC13783 is 6,
  for MC13892 is 4, for MC34708 is 1. See datasheet for bits definitions of
  these registers.
  - #address-cells: Must be 1.
  - #size-cells: Must be 0.
  Each led node should contain "reg", which used as LED ID (described below).
  Optional properties "label" and "linux,default-trigger" is described in
  Documentation/devicetree/bindings/leds/common.txt.
- regulators : Contain the regulator nodes. The regulators are bound using
  their names as listed below with their registers and bits for enabling.

MC13783 LED IDs:
    0  : Main display
    1  : AUX display
    2  : Keypad
    3  : Red 1
    4  : Green 1
    5  : Blue 1
    6  : Red 2
    7  : Green 2
    8  : Blue 2
    9  : Red 3
    10 : Green 3
    11 : Blue 3

MC13892 LED IDs:
    0  : Main display
    1  : AUX display
    2  : Keypad
    3  : Red
    4  : Green
    5  : Blue

MC34708 LED IDs:
    0  : Charger Red
    1  : Charger Green

MC13783 regulators:
    sw1a      : regulator SW1A      (register 24, bit 0)
    sw1b      : regulator SW1B      (register 25, bit 0)
    sw2a      : regulator SW2A      (register 26, bit 0)
    sw2b      : regulator SW2B      (register 27, bit 0)
    sw3       : regulator SW3       (register 29, bit 20)
    vaudio    : regulator VAUDIO    (register 32, bit 0)
    viohi     : regulator VIOHI     (register 32, bit 3)
    violo     : regulator VIOLO     (register 32, bit 6)
    vdig      : regulator VDIG      (register 32, bit 9)
    vgen      : regulator VGEN      (register 32, bit 12)
    vrfdig    : regulator VRFDIG    (register 32, bit 15)
    vrfref    : regulator VRFREF    (register 32, bit 18)
    vrfcp     : regulator VRFCP     (register 32, bit 21)
    vsim      : regulator VSIM      (register 33, bit 0)
    vesim     : regulator VESIM     (register 33, bit 3)
    vcam      : regulator VCAM      (register 33, bit 6)
    vrfbg     : regulator VRFBG     (register 33, bit 9)
    vvib      : regulator VVIB      (register 33, bit 11)
    vrf1      : regulator VRF1      (register 33, bit 12)
    vrf2      : regulator VRF2      (register 33, bit 15)
    vmmc1     : regulator VMMC1     (register 33, bit 18)
    vmmc2     : regulator VMMC2     (register 33, bit 21)
    gpo1      : regulator GPO1      (register 34, bit 6)
    gpo2      : regulator GPO2      (register 34, bit 8)
    gpo3      : regulator GPO3      (register 34, bit 10)
    gpo4      : regulator GPO4      (register 34, bit 12)
    pwgt1spi  : regulator PWGT1SPI  (register 34, bit 15)
    pwgt2spi  : regulator PWGT2SPI  (register 34, bit 16)

MC13892 regulators:
    vcoincell : regulator VCOINCELL (register 13, bit 23)
    sw1       : regulator SW1	    (register 24, bit 0)
    sw2       : regulator SW2	    (register 25, bit 0)
    sw3       : regulator SW3	    (register 26, bit 0)
    sw4       : regulator SW4	    (register 27, bit 0)
    swbst     : regulator SWBST	    (register 29, bit 20)
    vgen1     : regulator VGEN1	    (register 32, bit 0)
    viohi     : regulator VIOHI	    (register 32, bit 3)
    vdig      : regulator VDIG	    (register 32, bit 9)
    vgen2     : regulator VGEN2	    (register 32, bit 12)
    vpll      : regulator VPLL	    (register 32, bit 15)
    vusb2     : regulator VUSB2	    (register 32, bit 18)
    vgen3     : regulator VGEN3	    (register 33, bit 0)
    vcam      : regulator VCAM	    (register 33, bit 6)
    vvideo    : regulator VVIDEO    (register 33, bit 12)
    vaudio    : regulator VAUDIO    (register 33, bit 15)
    vsd       : regulator VSD	    (register 33, bit 18)
    gpo1      : regulator GPO1	    (register 34, bit 6)
    gpo2      : regulator GPO2	    (register 34, bit 8)
    gpo3      : regulator GPO3	    (register 34, bit 10)
    gpo4      : regulator GPO4	    (register 34, bit 12)
    pwgt1spi  : regulator PWGT1SPI  (register 34, bit 15)
    pwgt2spi  : regulator PWGT2SPI  (register 34, bit 16)
    vusb      : regulator VUSB	    (register 50, bit 3)

  The bindings details of individual regulator device can be found in:
  Documentation/devicetree/bindings/regulator/regulator.txt

Examples:

ecspi@70010000 { /* ECSPI1 */
	fsl,spi-num-chipselects = <2>;
	cs-gpios = <&gpio4 24 0>, /* GPIO4_24 */
		   <&gpio4 25 0>; /* GPIO4_25 */
	status = "okay";

	pmic: mc13892@0 {
		#address-cells = <1>;
		#size-cells = <0>;
		compatible = "fsl,mc13892";
		spi-max-frequency = <6000000>;
		reg = <0>;
		interrupt-parent = <&gpio0>;
		interrupts = <8>;

		leds {
			#address-cells = <1>;
			#size-cells = <0>;
			led-control = <0x000 0x000 0x0e0 0x000>;

			sysled {
				reg = <3>;
				label = "system:red:live";
				linux,default-trigger = "heartbeat";
			};
		};

		regulators {
			sw1_reg: mc13892__sw1 {
				regulator-min-microvolt = <600000>;
				regulator-max-microvolt = <1375000>;
				regulator-boot-on;
				regulator-always-on;
			};

			sw2_reg: mc13892__sw2 {
				regulator-min-microvolt = <900000>;
				regulator-max-microvolt = <1850000>;
				regulator-boot-on;
				regulator-always-on;
			};
		};
	};
};
