xref: /OK3568_Linux_fs/kernel/Documentation/devicetree/bindings/regulator/qcom,rpmh-regulator.txt (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593SmuzhiyunQualcomm Technologies, Inc. RPMh Regulators
2*4882a593Smuzhiyun
3*4882a593Smuzhiyunrpmh-regulator devices support PMIC regulator management via the Voltage
4*4882a593SmuzhiyunRegulator Manager (VRM) and Oscillator Buffer (XOB) RPMh accelerators.  The APPS
5*4882a593Smuzhiyunprocessor communicates with these hardware blocks via a Resource State
6*4882a593SmuzhiyunCoordinator (RSC) using command packets.  The VRM allows changing three
7*4882a593Smuzhiyunparameters for a given regulator: enable state, output voltage, and operating
8*4882a593Smuzhiyunmode.  The XOB allows changing only a single parameter for a given regulator:
9*4882a593Smuzhiyunits enable state.  Despite its name, the XOB is capable of controlling the
10*4882a593Smuzhiyunenable state of any PMIC peripheral.  It is used for clock buffers, low-voltage
11*4882a593Smuzhiyunswitches, and LDO/SMPS regulators which have a fixed voltage and mode.
12*4882a593Smuzhiyun
13*4882a593Smuzhiyun=======================
14*4882a593SmuzhiyunRequired Node Structure
15*4882a593Smuzhiyun=======================
16*4882a593Smuzhiyun
17*4882a593SmuzhiyunRPMh regulators must be described in two levels of device nodes.  The first
18*4882a593Smuzhiyunlevel describes the PMIC containing the regulators and must reside within an
19*4882a593SmuzhiyunRPMh device node.  The second level describes each regulator within the PMIC
20*4882a593Smuzhiyunwhich is to be used on the board.  Each of these regulators maps to a single
21*4882a593SmuzhiyunRPMh resource.
22*4882a593Smuzhiyun
23*4882a593SmuzhiyunThe names used for regulator nodes must match those supported by a given PMIC.
24*4882a593SmuzhiyunSupported regulator node names:
25*4882a593Smuzhiyun	PM8005:		smps1 - smps4
26*4882a593Smuzhiyun	PM8009:		smps1 - smps2, ldo1 - ldo7
27*4882a593Smuzhiyun	PM8150:		smps1 - smps10, ldo1 - ldo18
28*4882a593Smuzhiyun	PM8150L:	smps1 - smps8, ldo1 - ldo11, bob, flash, rgb
29*4882a593Smuzhiyun	PM8998:		smps1 - smps13, ldo1 - ldo28, lvs1 - lvs2
30*4882a593Smuzhiyun	PMI8998:	bob
31*4882a593Smuzhiyun	PM6150:         smps1 - smps5, ldo1 - ldo19
32*4882a593Smuzhiyun	PM6150L:        smps1 - smps8, ldo1 - ldo11, bob
33*4882a593Smuzhiyun
34*4882a593Smuzhiyun========================
35*4882a593SmuzhiyunFirst Level Nodes - PMIC
36*4882a593Smuzhiyun========================
37*4882a593Smuzhiyun
38*4882a593Smuzhiyun- compatible
39*4882a593Smuzhiyun	Usage:      required
40*4882a593Smuzhiyun	Value type: <string>
41*4882a593Smuzhiyun	Definition: Must be one of below:
42*4882a593Smuzhiyun		    "qcom,pm8005-rpmh-regulators"
43*4882a593Smuzhiyun		    "qcom,pm8009-rpmh-regulators"
44*4882a593Smuzhiyun		    "qcom,pm8150-rpmh-regulators"
45*4882a593Smuzhiyun		    "qcom,pm8150l-rpmh-regulators"
46*4882a593Smuzhiyun		    "qcom,pm8998-rpmh-regulators"
47*4882a593Smuzhiyun		    "qcom,pmi8998-rpmh-regulators"
48*4882a593Smuzhiyun		    "qcom,pm6150-rpmh-regulators"
49*4882a593Smuzhiyun		    "qcom,pm6150l-rpmh-regulators"
50*4882a593Smuzhiyun
51*4882a593Smuzhiyun- qcom,pmic-id
52*4882a593Smuzhiyun	Usage:      required
53*4882a593Smuzhiyun	Value type: <string>
54*4882a593Smuzhiyun	Definition: RPMh resource name suffix used for the regulators found on
55*4882a593Smuzhiyun		    this PMIC.  Typical values: "a", "b", "c", "d", "e", "f".
56*4882a593Smuzhiyun
57*4882a593Smuzhiyun- vdd-s1-supply
58*4882a593Smuzhiyun- vdd-s2-supply
59*4882a593Smuzhiyun- vdd-s3-supply
60*4882a593Smuzhiyun- vdd-s4-supply
61*4882a593Smuzhiyun	Usage:      optional (PM8998 and PM8005 only)
62*4882a593Smuzhiyun	Value type: <phandle>
63*4882a593Smuzhiyun	Definition: phandle of the parent supply regulator of one or more of the
64*4882a593Smuzhiyun		    regulators for this PMIC.
65*4882a593Smuzhiyun
66*4882a593Smuzhiyun- vdd-s5-supply
67*4882a593Smuzhiyun- vdd-s6-supply
68*4882a593Smuzhiyun- vdd-s7-supply
69*4882a593Smuzhiyun- vdd-s8-supply
70*4882a593Smuzhiyun- vdd-s9-supply
71*4882a593Smuzhiyun- vdd-s10-supply
72*4882a593Smuzhiyun- vdd-s11-supply
73*4882a593Smuzhiyun- vdd-s12-supply
74*4882a593Smuzhiyun- vdd-s13-supply
75*4882a593Smuzhiyun- vdd-l1-l27-supply
76*4882a593Smuzhiyun- vdd-l2-l8-l17-supply
77*4882a593Smuzhiyun- vdd-l3-l11-supply
78*4882a593Smuzhiyun- vdd-l4-l5-supply
79*4882a593Smuzhiyun- vdd-l6-supply
80*4882a593Smuzhiyun- vdd-l7-l12-l14-l15-supply
81*4882a593Smuzhiyun- vdd-l9-supply
82*4882a593Smuzhiyun- vdd-l10-l23-l25-supply
83*4882a593Smuzhiyun- vdd-l13-l19-l21-supply
84*4882a593Smuzhiyun- vdd-l16-l28-supply
85*4882a593Smuzhiyun- vdd-l18-l22-supply
86*4882a593Smuzhiyun- vdd-l20-l24-supply
87*4882a593Smuzhiyun- vdd-l26-supply
88*4882a593Smuzhiyun- vin-lvs-1-2-supply
89*4882a593Smuzhiyun	Usage:      optional (PM8998 only)
90*4882a593Smuzhiyun	Value type: <phandle>
91*4882a593Smuzhiyun	Definition: phandle of the parent supply regulator of one or more of the
92*4882a593Smuzhiyun		    regulators for this PMIC.
93*4882a593Smuzhiyun
94*4882a593Smuzhiyun- vdd-bob-supply
95*4882a593Smuzhiyun	Usage:      optional (PMI8998 only)
96*4882a593Smuzhiyun	Value type: <phandle>
97*4882a593Smuzhiyun	Definition: BOB regulator parent supply phandle
98*4882a593Smuzhiyun
99*4882a593Smuzhiyun===============================
100*4882a593SmuzhiyunSecond Level Nodes - Regulators
101*4882a593Smuzhiyun===============================
102*4882a593Smuzhiyun
103*4882a593Smuzhiyun- qcom,always-wait-for-ack
104*4882a593Smuzhiyun	Usage:      optional
105*4882a593Smuzhiyun	Value type: <empty>
106*4882a593Smuzhiyun	Definition: Boolean flag which indicates that the application processor
107*4882a593Smuzhiyun		    must wait for an ACK or a NACK from RPMh for every request
108*4882a593Smuzhiyun		    sent for this regulator including those which are for a
109*4882a593Smuzhiyun		    strictly lower power state.
110*4882a593Smuzhiyun
111*4882a593SmuzhiyunOther properties defined in Documentation/devicetree/bindings/regulator/regulator.txt
112*4882a593Smuzhiyunmay also be used.  regulator-initial-mode and regulator-allowed-modes may be
113*4882a593Smuzhiyunspecified for VRM regulators using mode values from
114*4882a593Smuzhiyuninclude/dt-bindings/regulator/qcom,rpmh-regulator.h.  regulator-allow-bypass
115*4882a593Smuzhiyunmay be specified for BOB type regulators managed via VRM.
116*4882a593Smuzhiyunregulator-allow-set-load may be specified for LDO type regulators managed via
117*4882a593SmuzhiyunVRM.
118*4882a593Smuzhiyun
119*4882a593Smuzhiyun========
120*4882a593SmuzhiyunExamples
121*4882a593Smuzhiyun========
122*4882a593Smuzhiyun
123*4882a593Smuzhiyun#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
124*4882a593Smuzhiyun
125*4882a593Smuzhiyun&apps_rsc {
126*4882a593Smuzhiyun	pm8998-rpmh-regulators {
127*4882a593Smuzhiyun		compatible = "qcom,pm8998-rpmh-regulators";
128*4882a593Smuzhiyun		qcom,pmic-id = "a";
129*4882a593Smuzhiyun
130*4882a593Smuzhiyun		vdd-l7-l12-l14-l15-supply = <&pm8998_s5>;
131*4882a593Smuzhiyun
132*4882a593Smuzhiyun		smps2 {
133*4882a593Smuzhiyun			regulator-min-microvolt = <1100000>;
134*4882a593Smuzhiyun			regulator-max-microvolt = <1100000>;
135*4882a593Smuzhiyun		};
136*4882a593Smuzhiyun
137*4882a593Smuzhiyun		pm8998_s5: smps5 {
138*4882a593Smuzhiyun			regulator-min-microvolt = <1904000>;
139*4882a593Smuzhiyun			regulator-max-microvolt = <2040000>;
140*4882a593Smuzhiyun		};
141*4882a593Smuzhiyun
142*4882a593Smuzhiyun		ldo7 {
143*4882a593Smuzhiyun			regulator-min-microvolt = <1800000>;
144*4882a593Smuzhiyun			regulator-max-microvolt = <1800000>;
145*4882a593Smuzhiyun			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
146*4882a593Smuzhiyun			regulator-allowed-modes =
147*4882a593Smuzhiyun				<RPMH_REGULATOR_MODE_LPM
148*4882a593Smuzhiyun				 RPMH_REGULATOR_MODE_HPM>;
149*4882a593Smuzhiyun			regulator-allow-set-load;
150*4882a593Smuzhiyun		};
151*4882a593Smuzhiyun
152*4882a593Smuzhiyun		lvs1 {
153*4882a593Smuzhiyun			regulator-min-microvolt = <1800000>;
154*4882a593Smuzhiyun			regulator-max-microvolt = <1800000>;
155*4882a593Smuzhiyun		};
156*4882a593Smuzhiyun	};
157*4882a593Smuzhiyun
158*4882a593Smuzhiyun	pmi8998-rpmh-regulators {
159*4882a593Smuzhiyun		compatible = "qcom,pmi8998-rpmh-regulators";
160*4882a593Smuzhiyun		qcom,pmic-id = "b";
161*4882a593Smuzhiyun
162*4882a593Smuzhiyun		bob {
163*4882a593Smuzhiyun			regulator-min-microvolt = <3312000>;
164*4882a593Smuzhiyun			regulator-max-microvolt = <3600000>;
165*4882a593Smuzhiyun			regulator-allowed-modes =
166*4882a593Smuzhiyun				<RPMH_REGULATOR_MODE_AUTO
167*4882a593Smuzhiyun				 RPMH_REGULATOR_MODE_HPM>;
168*4882a593Smuzhiyun			regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
169*4882a593Smuzhiyun		};
170*4882a593Smuzhiyun	};
171*4882a593Smuzhiyun};
172