* Maxim MAX8998, National/TI LP3974 multi-function device

The Maxim MAX8998 is a multi-function device which includes voltage/current
regulators, real time clock, battery charging controller and several
other sub-blocks. It is interfaced using an I2C interface. Each sub-block
is addressed by the host system using different i2c slave address.

PMIC sub-block
--------------

The PMIC sub-block contains a number of voltage and current regulators,
with controllable parameters and dynamic voltage scaling capability.
In addition, it includes a real time clock and battery charging controller
as well. It is accessible at I2C address 0x66.

Required properties:
- compatible: Should be one of the following:
    - "maxim,max8998" for Maxim MAX8998
    - "national,lp3974" or "ti,lp3974" for National/TI LP3974.
- reg: Specifies the i2c slave address of the pmic block. It should be 0x66.

Optional properties:
- interrupt-parent: Specifies the phandle of the interrupt controller to which
  the interrupts from MAX8998 are routed to.
- interrupts: Interrupt specifiers for two interrupt sources.
  - First interrupt specifier is for main interrupt.
  - Second interrupt specifier is for power-on/-off interrupt.
- max8998,pmic-buck1-dvs-gpios: GPIO specifiers for two host gpios used
  for buck 1 dvs. The format of the gpio specifier depends on the gpio
  controller.
- max8998,pmic-buck2-dvs-gpio: GPIO specifier for host gpio used
  for buck 2 dvs. The format of the gpio specifier depends on the gpio
  controller.
- max8998,pmic-buck1-default-dvs-idx: Default voltage setting selected from
  the possible 4 options selectable by the dvs gpios. The value of this
  property should be 0, 1, 2 or 3. If not specified or out of range,
  a default value of 0 is taken.
- max8998,pmic-buck2-default-dvs-idx: Default voltage setting selected from
  the possible 2 options selectable by the dvs gpios. The value of this
  property should be 0 or 1. If not specified or out of range, a default
  value of 0 is taken.
- max8998,pmic-buck-voltage-lock: If present, disallows changing of
  preprogrammed buck dvfs voltages.

Additional properties required if max8998,pmic-buck1-dvs-gpios is defined:
- max8998,pmic-buck1-dvs-voltage: An array of 4 voltage values in microvolts
  for buck1 regulator that can be selected using dvs gpio.

Additional properties required if max8998,pmic-buck2-dvs-gpio is defined:
- max8998,pmic-buck2-dvs-voltage: An array of 2 voltage values in microvolts
  for buck2 regulator that can be selected using dvs gpio.

Regulators: All the regulators of MAX8998 to be instantiated shall be
listed in a child node named 'regulators'. Each regulator is represented
by a child node of the 'regulators' node.

	regulator-name {
		/* standard regulator bindings here */
	};

Following regulators of the MAX8998 PMIC block are supported. Note that
the 'n' in regulator name, as in LDOn or BUCKn, represents the LDO or BUCK
number as described in MAX8998 datasheet.

	- LDOn
		  - valid values for n are 2 to 17
		  - Example: LDO2, LDO10, LDO17
	- BUCKn
		  - valid values for n are 1 to 4.
		  - Example: BUCK1, BUCK2, BUCK3, BUCK4

	- ENVICHG: Battery Charging Current Monitor Output. This is a fixed
		   voltage type regulator

	- ESAFEOUT1: (ldo19)
	- ESAFEOUT2: (ld020)

Standard regulator bindings are used inside regulator subnodes. Check
  Documentation/devicetree/bindings/regulator/regulator.txt
for more details.

Example:

	pmic@66 {
		compatible = "maxim,max8998-pmic";
		reg = <0x66>;
		interrupt-parent = <&wakeup_eint>;
		interrupts = <4 0>, <3 0>;

		/* Buck 1 DVS settings */
		max8998,pmic-buck1-default-dvs-idx = <0>;
		max8998,pmic-buck1-dvs-gpios = <&gpx0 0 1 0 0>, /* SET1 */
					       <&gpx0 1 1 0 0>; /* SET2 */
		max8998,pmic-buck1-dvs-voltage = <1350000>, <1300000>,
						 <1000000>, <950000>;

		/* Buck 2 DVS settings */
		max8998,pmic-buck2-default-dvs-idx = <0>;
		max8998,pmic-buck2-dvs-gpio = <&gpx0 0 3 0 0>; /* SET3 */
		max8998,pmic-buck2-dvs-voltage = <1350000>, <1300000>;

		/* Regulators to instantiate */
		regulators {
			ldo2_reg: LDO2 {
				regulator-name = "VDD_ALIVE_1.1V";
				regulator-min-microvolt = <1100000>;
				regulator-max-microvolt = <1100000>;
				regulator-always-on;
			};

			buck1_reg: BUCK1 {
				regulator-name = "VDD_ARM_1.2V";
				regulator-min-microvolt = <950000>;
				regulator-max-microvolt = <1350000>;
				regulator-always-on;
				regulator-boot-on;
			};
		};
	};
