Qualcomm QPNP Regulators

qpnp-regulator is a regulator driver which supports regulators inside of PMICs
that utilize the MSM SPMI implementation.

Required properties:
- compatible:      Must be "qcom,qpnp-regulator"
- reg:             Specifies the SPMI address and size for this regulator device
		   Note, this is the only property which can be used within a
		   subnode of a node which has specified spmi-dev-container.
- regulator-name:  A string used as a descriptive name for regulator outputs
- parent-supply:   phandle to the parent supply/regulator node

Required structure:
- A qcom,qpnp-regulator node must be a child of an SPMI node that has specified
	the spmi-slave-container property

Optional properties:
- qcom,system-load:            Load in uA present on regulator that is not
				captured by any consumer request
- qcom,enable-time:            Time in us to delay after enabling the regulator
- qcom,ocp-enable-time:        Time to delay in us between enabling a switch and
				subsequently enabling over current protection
				(OCP) for the switch
- qcom,auto-mode-enable:       1 = Enable automatic hardware selection of
				regulator mode (HPM vs LPM); not available on
				boost type regulators
			       0 = Disable auto mode selection
- qcom,bypass-mode-enable:     1 = Enable bypass mode for an LDO type regulator
				so that it acts like a switch and simply outputs
				its input voltage
			       0 = Do not enable bypass mode
- qcom,ocp-enable:             1 = Enable over current protection (OCP) for
				voltage switch type regulators so that they
				latch off automatically when over current is
				detected
			       0 = Disable OCP
- qcom,pull-down-enable:       1 = Enable output pull down resistor when the
				regulator is disabled
			       0 = Disable pull down resistor
- qcom,soft-start-enable:      1 = Enable soft start for LDO and voltage switch
				type regulators so that output voltage slowly
				ramps up when the regulator is enabled
			       0 = Disable soft start
- qcom,boost-current-limit:    This property sets the current limit of boost
				type regulators; supported values are:
					0 =  300 mA
					1 =  600 mA
					2 =  900 mA
					3 = 1200 mA
					4 = 1500 mA
					5 = 1800 mA
					6 = 2100 mA
					7 = 2400 mA
- qcom,pin-ctrl-enable:        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:           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: 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
- qcom,force-type: 	       Override the type and subtype register values. Useful for some
				regulators that have invalid types advertised by the hardware.
				The format is two unsigned integers of the form <type subtype>.
- spmi-dev-container:	       Specifies that all the device nodes specified
				within this node should have their resources coalesced into a
				single spmi_device.  This is used to specify all SPMI peripherals
				that logically make up a single regulator device.

Note, if a given optional qcom,* binding is not present, then the qpnp-regulator
driver will leave that feature in the default hardware state.

All properties specified within the core regulator framework can also be used.
These bindings can be found in regulator.txt.

Example:
	qcom,spmi@fc4c0000 {
		#address-cells = <1>;
		#size-cells = <0>;
		interrupt-controller;
		#interrupt-cells = <3>;

		qcom,pm8941@1 {
			spmi-slave-container;
			reg = <0x1>;
			#address-cells = <1>;
			#size-cells = <1>;

			regulator@1400 {
				regulator-name = "8941_s1";
				spmi-dev-container;
				#address-cells = <1>;
				#size-cells = <1>;
				compatible = "qcom,qpnp-regulator";
				reg = <0x1400 0x300>;
				regulator-min-microvolt = <1300000>;
				regulator-max-microvolt = <1400000>;

				qcom,ctl@1400 {
					reg = <0x1400 0x100>;
				};
				qcom,ps@1500 {
					reg = <0x1500 0x100>;
				};
				qcom,freq@1600 {
					reg = <0x1600 0x100>;
				};
			};

			regulator@4000 {
				regulator-name = "8941_l1";
				reg = <0x4000 0x100>;
				compatible = "qcom,qpnp-regulator";
				regulator-min-microvolt = <1225000>;
				regulator-max-microvolt = <1300000>;
				qcom,pull-down-enable = <1>;
			};
		};
	};
