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