Qualcomm SPMI Regulators

- compatible:
	Usage: required
	Value type: <string>
	Definition: must be one of:
			"qcom,pm8841-regulators"
			"qcom,pm8916-regulators"
			"qcom,pm8941-regulators"

- interrupts:
	Usage: optional
	Value type: <prop-encoded-array>
	Definition: List of OCP interrupts.

- interrupt-names:
	Usage: required if 'interrupts' property present
	Value type: <string-array>
	Definition: List of strings defining the names of the
		    interrupts in the 'interrupts' property 1-to-1.
		    Supported values are "ocp-<regulator_name>", where
		    <regulator_name> corresponds to a voltage switch
		    type regulator.

- vdd_s1-supply:
- vdd_s2-supply:
- vdd_s3-supply:
- vdd_s4-supply:
- vdd_s5-supply:
- vdd_s6-supply:
- vdd_s7-supply:
- vdd_s8-supply:
	Usage: optional (pm8841 only)
	Value type: <phandle>
	Definition: Reference to regulator supplying the input pin, as
		    described in the data sheet.

- vdd_s1-supply:
- vdd_s2-supply:
- vdd_s3-supply:
- vdd_s4-supply:
- vdd_l1_l3-supply:
- vdd_l2-supply:
- vdd_l4_l5_l6-supply:
- vdd_l7-supply:
- vdd_l8_l11_l14_l15_l16-supply:
- vdd_l9_l10_l12_l13_l17_l18-supply:
	Usage: optional (pm8916 only)
	Value type: <phandle>
	Definition: Reference to regulator supplying the input pin, as
		    described in the data sheet.

- vdd_s1-supply:
- vdd_s2-supply:
- vdd_s3-supply:
- vdd_l1_l3-supply:
- vdd_l2_lvs_1_2_3-supply:
- vdd_l4_l11-supply:
- vdd_l5_l7-supply:
- vdd_l6_l12_l14_l15-supply:
- vdd_l8_l16_l18_19-supply:
- vdd_l9_l10_l17_l22-supply:
- vdd_l13_l20_l23_l24-supply:
- vdd_l21-supply:
- vin_5vs-supply:
	Usage: optional (pm8941 only)
	Value type: <phandle>
	Definition: Reference to regulator supplying the input pin, as
		    described in the data sheet.


The regulator node houses sub-nodes for each regulator within the device. Each
sub-node is identified using the node's name, with valid values listed for each
of the PMICs below.

pm8841:
	s1, s2, s3, s4, s5, s6, s7, s8

pm8916:
	s1, s2, s3, s4, l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12, l13,
	l14, l15, l16, l17, l18

pm8941:
	s1, s2, s3, s4, l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12, l13,
	l14, l15, l16, l17, l18, l19, l20, l21, l22, l23, l24, lvs1, lvs2, lvs3,
	5vs1, 5vs2

The content of each sub-node is defined by the standard binding for regulators -
see regulator.txt - with additional custom properties described below:

- regulator-initial-mode:
	Usage: optional
	Value type: <u32>
	Description: 2 = Set initial mode to auto mode (automatically select
		    between HPM and LPM); not available on boost type
		    regulators.

		    1 = Set initial mode to high power mode (HPM), also referred
		    to as NPM. HPM consumes more ground current than LPM, but
		    it can source significantly higher load current. HPM is not
		    available on boost type regulators. For voltage switch type
		    regulators, HPM implies that over current protection and
		    soft start are active all the time.

		    0 = Set initial mode to low power mode (LPM).

- qcom,ocp-max-retries:
	Usage: optional
	Value type: <u32>
	Description: Maximum number of times to try toggling a voltage switch
		     off and back on as a result of consecutive over current
		     events.

- qcom,ocp-retry-delay:
	Usage: optional
	Value type: <u32>
	Description: Time to delay in milliseconds between each voltage switch
		     toggle after an over current event takes place.

- qcom,pin-ctrl-enable:
	Usage: optional
	Value type: <u32>
	Description: Bit mask specifying which hardware pins should be used to
		     enable the regulator, if any; supported bits are:
			0 = ignore all hardware enable signals
			BIT(0) = follow HW0_EN signal
			BIT(1) = follow HW1_EN signal
			BIT(2) = follow HW2_EN signal
			BIT(3) = follow HW3_EN signal

- qcom,pin-ctrl-hpm:
	Usage: optional
	Value type: <u32>
	Description: Bit mask specifying which hardware pins should be used to
		     force the regulator into high power mode, if any;
		     supported bits are:
			0 = ignore all hardware enable signals
			BIT(0) = follow HW0_EN signal
			BIT(1) = follow HW1_EN signal
			BIT(2) = follow HW2_EN signal
			BIT(3) = follow HW3_EN signal
			BIT(4) = follow PMIC awake state

- qcom,vs-soft-start-strength:
	Usage: optional
	Value type: <u32>
	Description: This property sets the soft start strength for voltage
		     switch type regulators; supported values are:
			0 = 0.05 uA
			1 = 0.25 uA
			2 = 0.55 uA
			3 = 0.75 uA

Example:

	regulators {
		compatible = "qcom,pm8941-regulators";
		vdd_l1_l3-supply = <&s1>;

		s1: s1 {
			regulator-min-microvolt = <1300000>;
			regulator-max-microvolt = <1400000>;
		};

		...

		l1: l1 {
			regulator-min-microvolt = <1225000>;
			regulator-max-microvolt = <1300000>;
		};

		....
	};
