Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e92a4047 authored by Stephen Boyd's avatar Stephen Boyd Committed by Mark Brown
Browse files

regulator: Add QCOM SPMI regulator driver

Add an SPMI regulator driver for Qualcomm's PM8841, PM8941, and
PM8916 PMICs. This driver is based largely on code from
codeaurora.org[1].

[1] https://www.codeaurora.org/cgit/quic/la/kernel/msm-3.10/tree/drivers/regulator/qpnp-regulator.c?h=msm-3.10


Cc: David Collins <collinsd@codeaurora.org>
Cc: <devicetree@vger.kernel.org>
Signed-off-by: default avatarStephen Boyd <sboyd@codeaurora.org>
Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent b787f68c
Loading
Loading
Loading
Loading
+121 −0
Original line number Diff line number Diff line
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, 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,
	mvs1, mvs2

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>
	Descrption: 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).

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>;
		};

		....
	};
+11 −0
Original line number Diff line number Diff line
@@ -512,6 +512,17 @@ config REGULATOR_QCOM_RPM
	  Qualcomm RPM as a module. The module will be named
	  "qcom_rpm-regulator".

config REGULATOR_QCOM_SPMI
	tristate "Qualcomm SPMI regulator driver"
	depends on SPMI || COMPILE_TEST
	help
	  If you say yes to this option, support will be included for the
	  regulators found in Qualcomm SPMI PMICs.

	  Say M here if you want to include support for the regulators on the
	  Qualcomm SPMI PMICs as a module. The module will be named
	  "qcom_spmi-regulator".

config REGULATOR_RC5T583
	tristate "RICOH RC5T583 Power regulators"
	depends on MFD_RC5T583
+1 −0
Original line number Diff line number Diff line
@@ -61,6 +61,7 @@ obj-$(CONFIG_REGULATOR_MC13892) += mc13892-regulator.o
obj-$(CONFIG_REGULATOR_MC13XXX_CORE) +=  mc13xxx-regulator-core.o
obj-$(CONFIG_REGULATOR_MT6397)	+= mt6397-regulator.o
obj-$(CONFIG_REGULATOR_QCOM_RPM) += qcom_rpm-regulator.o
obj-$(CONFIG_REGULATOR_QCOM_SPMI) += qcom_spmi-regulator.o
obj-$(CONFIG_REGULATOR_PALMAS) += palmas-regulator.o
obj-$(CONFIG_REGULATOR_PFUZE100) += pfuze100-regulator.o
obj-$(CONFIG_REGULATOR_PWM) += pwm-regulator.o
+1437 −0

File added.

Preview size limit exceeded, changes collapsed.