* Samsung S5M8767 Voltage and Current Regulator

The Samsung S5M8767 is a multi-function device which includes volatage and
current regulators, rtc, charger controller and other sub-blocks. It is
interfaced to the host controller using a i2c interface. Each sub-block is
addressed by the host system using different i2c slave address. This document
describes the bindings for 'pmic' sub-block of s5m8767.

Required properties:
- compatible: Should be "samsung,s5m8767-pmic".
- reg: Specifies the i2c slave address of the pmic block. It should be 0x66.

- s5m8767,pmic-buck2-dvs-voltage: A set of 8 voltage values in micro-volt (uV)
  units for buck2 when changing voltage using gpio dvs. Refer to [1] below
  for additional information.

- s5m8767,pmic-buck3-dvs-voltage: A set of 8 voltage values in micro-volt (uV)
  units for buck3 when changing voltage using gpio dvs. Refer to [1] below
  for additional information.

- s5m8767,pmic-buck4-dvs-voltage: A set of 8 voltage values in micro-volt (uV)
  units for buck4 when changing voltage using gpio dvs. Refer to [1] below
  for additional information.

- s5m8767,pmic-buck-ds-gpios: GPIO specifiers for three host gpio's used
  for selecting GPIO DVS lines. It is one-to-one mapped to dvs gpio lines.

[1] If none of the 's5m8767,pmic-buck[2/3/4]-uses-gpio-dvs' optional
    property is specified, the 's5m8767,pmic-buck[2/3/4]-dvs-voltage'
    property should specify atleast one voltage level (which would be a
    safe operating voltage).

    If either of the 's5m8767,pmic-buck[2/3/4]-uses-gpio-dvs' optional
    property is specified, then all the eight voltage values for the
    's5m8767,pmic-buck[2/3/4]-dvs-voltage' should be specified.

Optional properties:
- interrupt-parent: Specifies the phandle of the interrupt controller to which
  the interrupts from s5m8767 are delivered to.
- interrupts: Interrupt specifiers for two interrupt sources.
  - First interrupt specifier is for 'irq1' interrupt.
  - Second interrupt specifier is for 'alert' interrupt.
- s5m8767,pmic-buck2-uses-gpio-dvs: 'buck2' can be controlled by gpio dvs.
- s5m8767,pmic-buck3-uses-gpio-dvs: 'buck3' can be controlled by gpio dvs.
- s5m8767,pmic-buck4-uses-gpio-dvs: 'buck4' can be controlled by gpio dvs.

Additional properties required if either of the optional properties are used:

- s5m8767,pmic-buck234-default-dvs-idx: Default voltage setting selected from
  the possible 8 options selectable by the dvs gpios. The value of this
  property should be between 0 and 7. If not specified or if out of range, the
  default value of this property is set to 0.

- s5m8767,pmic-buck-dvs-gpios: GPIO specifiers for three host gpio's used
  for dvs. The format of the gpio specifier depends in the gpio controller.

Regulators: The regulators of s5m8767 that have to be instantiated should be
included in a sub-node named 'regulators'. Regulator nodes included in this
sub-node should be of the format as listed below.

	regulator_name {
		ldo1_reg: LDO1 {
			regulator-name = "VDD_ALIVE_1.0V";
			regulator-min-microvolt = <1100000>;
			regulator-max-microvolt = <1100000>;
			regulator-always-on;
			regulator-boot-on;
			op_mode = <1>; /* Normal Mode */
		};
	};
The above regulator entries are defined in regulator bindings documentation
except op_mode description.
	- op_mode: describes the different operating modes of the LDO's with
		power mode change in SOC. The different possible values are,
		0 - always off mode
		1 - on in normal mode
		2 - low power mode
		3 - suspend mode

The following are the names of the regulators that the s5m8767 pmic block
supports. Note: The 'n' in LDOn and BUCKn represents the LDO or BUCK number
as per the datasheet of s5m8767.

	- LDOn
		  - valid values for n are 1 to 28
		  - Example: LDO0, LD01, LDO28
	- BUCKn
		  - valid values for n are 1 to 9.
		  - Example: BUCK1, BUCK2, BUCK9

The bindings inside the regulator nodes use the standard regulator bindings
which are documented elsewhere.

Example:

	s5m8767_pmic@66 {
		compatible = "samsung,s5m8767-pmic";
		reg = <0x66>;

		s5m8767,pmic-buck2-uses-gpio-dvs;
		s5m8767,pmic-buck3-uses-gpio-dvs;
		s5m8767,pmic-buck4-uses-gpio-dvs;

		s5m8767,pmic-buck-default-dvs-idx = <0>;

		s5m8767,pmic-buck-dvs-gpios = <&gpx0 0 1 0 0>, /* DVS1 */
						 <&gpx0 1 1 0 0>, /* DVS2 */
						 <&gpx0 2 1 0 0>; /* DVS3 */

		s5m8767,pmic-buck-ds-gpios = <&gpx2 3 1 0 0>, /* SET1 */
						<&gpx2 4 1 0 0>, /* SET2 */
						<&gpx2 5 1 0 0>; /* SET3 */

		s5m8767,pmic-buck2-dvs-voltage = <1350000>, <1300000>,
						 <1250000>, <1200000>,
						 <1150000>, <1100000>,
						 <1000000>, <950000>;

		s5m8767,pmic-buck3-dvs-voltage = <1100000>, <1100000>,
						 <1100000>, <1100000>,
						 <1000000>, <1000000>,
						 <1000000>, <1000000>;

		s5m8767,pmic-buck4-dvs-voltage = <1200000>, <1200000>,
						 <1200000>, <1200000>,
						 <1200000>, <1200000>,
						 <1200000>, <1200000>;

		regulators {
			ldo1_reg: LDO1 {
				regulator-name = "VDD_ABB_3.3V";
				regulator-min-microvolt = <3300000>;
				regulator-max-microvolt = <3300000>;
				op_mode = <1>; /* Normal Mode */
			};

			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_MIF_1.2V";
				regulator-min-microvolt = <950000>;
				regulator-max-microvolt = <1350000>;
				regulator-always-on;
				regulator-boot-on;
			};
		};
	};
