Binding for Maxim MAX77802 regulators

This is a part of device tree bindings of MAX77802 multi-function device.
More information can be found in bindings/mfd/max77802.txt file.

The MAX77802 PMIC has 10 high-efficiency Buck and 32 Low-dropout (LDO)
regulators that can be controlled over I2C.

Following properties should be present in main device node of the MFD chip.

Optional properties:
- inb1-supply:  The input supply for BUCK1
- inb2-supply:  The input supply for BUCK2
- inb3-supply:  The input supply for BUCK3
- inb4-supply:  The input supply for BUCK4
- inb5-supply:  The input supply for BUCK5
- inb6-supply:  The input supply for BUCK6
- inb7-supply:  The input supply for BUCK7
- inb8-supply:  The input supply for BUCK8
- inb9-supply:  The input supply for BUCK9
- inb10-supply: The input supply for BUCK10
- inl1-supply:  The input supply for LDO8 and LDO15
- inl2-supply:  The input supply for LDO17, LDO27, LDO30 and LDO35
- inl3-supply:  The input supply for LDO3, LDO5, LDO6 and LDO7
- inl4-supply:  The input supply for LDO10, LDO11, LDO13 and LDO14
- inl5-supply:  The input supply for LDO9 and LDO19
- inl6-supply:  The input supply for LDO4, LDO21, LDO24 and LDO33
- inl7-supply:  The input supply for LDO18, LDO20, LDO28 and LDO29
- inl9-supply:  The input supply for LDO12, LDO23, LDO25, LDO26, LDO32 and LDO34
- inl10-supply: The input supply for LDO1 and LDO2

Optional nodes:
- regulators : The regulators of max77802 have to be instantiated
  under subnode named "regulators" using the following format.

	regulator-name {
		standard regulator constraints....
	};
	refer Documentation/devicetree/bindings/regulator/regulator.txt

The regulator node name should be initialized with a string to get matched
with their hardware counterparts as follow. The valid names are:

	-LDOn 	:	for LDOs, where n can lie in ranges 1-15, 17-21, 23-30
			and 32-35.
			example: LDO1, LDO2, LDO35.
	-BUCKn 	:	for BUCKs, where n can lie in range 1 to 10.
			example: BUCK1, BUCK5, BUCK10.

The max77802 regulator supports two different operating modes: Normal and Low
Power Mode. Some regulators support the modes to be changed at startup or by
the consumers during normal operation while others only support to change the
mode during system suspend. The standard regulator suspend states binding can
be used to configure the regulator operating mode.

The regulators that support the standard "regulator-initial-mode" property,
changing their mode during normal operation are: LDOs 1, 3, 20 and 21.

The possible values for "regulator-initial-mode" and "regulator-mode" are:
	1: Normal regulator voltage output mode.
	3: Low Power which reduces the quiescent current down to only 1uA

The valid modes list is defined in the dt-bindings/regulator/maxim,max77802.h
header and can be included by device tree source files.

The standard "regulator-mode" property can only be used for regulators that
support changing their mode to Low Power Mode during suspend. These regulators
are: BUCKs 2-4 and LDOs 1-35. Also, it only takes effect if the regulator has
been enabled for the given suspend state using "regulator-on-in-suspend" and
has not been disabled for that state using "regulator-off-in-suspend".

Example:

	max77802@9 {
		compatible = "maxim,max77802";
		interrupt-parent = <&wakeup_eint>;
		interrupts = <26 0>;
		reg = <0x09>;
		#address-cells = <1>;
		#size-cells = <0>;

		inb1-supply = <&parent_reg>;

		regulators {
			ldo1_reg: LDO1 {
				regulator-name = "vdd_1v0";
				regulator-min-microvolt = <1000000>;
				regulator-max-microvolt = <1000000>;
				regulator-always-on;
				regulator-initial-mode = <MAX77802_OPMODE_LP>;
			};

			ldo11_reg: LDO11 {
				regulator-name = "vdd_ldo11";
				regulator-min-microvolt = <1900000>;
				regulator-max-microvolt = <1900000>;
				regulator-always-on;
				regulator-state-mem {
					regulator-on-in-suspend;
					regulator-mode = <MAX77802_OPMODE_LP>;
				};
			};

			buck1_reg: BUCK1 {
				regulator-name = "vdd_mif";
				regulator-min-microvolt = <950000>;
				regulator-max-microvolt = <1300000>;
				regulator-always-on;
				regulator-boot-on;
			};
	};
