GNU Linux-libre 6.1.90-gnu
[releases.git] / Documentation / devicetree / bindings / regulator / qcom,rpmh-regulator.yaml
1 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2 %YAML 1.2
3 ---
4 $id: http://devicetree.org/schemas/regulator/qcom,rpmh-regulator.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: Qualcomm Technologies, Inc. RPMh Regulators
8
9 maintainers:
10   - Bjorn Andersson <bjorn.andersson@linaro.org>
11   - Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
12
13 description: |
14     rpmh-regulator devices support PMIC regulator management via the Voltage
15     Regulator Manager (VRM) and Oscillator Buffer (XOB) RPMh accelerators.
16     The APPS processor communicates with these hardware blocks via a
17     Resource State Coordinator (RSC) using command packets.  The VRM allows
18     changing three parameters for a given regulator, enable state, output
19     voltage, and operating mode.  The XOB allows changing only a single
20     parameter for a given regulator, its enable state.  Despite its name,
21     the XOB is capable of controlling the enable state of any PMIC peripheral.
22     It is used for clock buffers, low-voltage switches, and LDO/SMPS regulators
23     which have a fixed voltage and mode.
24
25     =======================
26     Required Node Structure
27     =======================
28
29     RPMh regulators must be described in two levels of device nodes.  The first
30     level describes the PMIC containing the regulators and must reside within an
31     RPMh device node.  The second level describes each regulator within the PMIC
32     which is to be used on the board.  Each of these regulators maps to a single
33     RPMh resource.
34
35     The names used for regulator nodes must match those supported by a given
36     PMIC. Supported regulator node names are
37       For PM6150, smps1 - smps5, ldo1 - ldo19
38       For PM6150L, smps1 - smps8, ldo1 - ldo11, bob
39       For PM6350, smps1 - smps5, ldo1 - ldo22
40       For PM660, smps1 - smps6, ldo1 - ldo3, ldo5 - ldo19
41       For PM660L, smps1 - smps3, smps5, ldo1 - ldo8, bob
42       For PM7325, smps1 - smps8, ldo1 - ldo19
43       For PM8005, smps1 - smps4
44       For PM8009, smps1 - smps2, ldo1 - ldo7
45       For PM8150, smps1 - smps10, ldo1 - ldo18
46       For PM8150L, smps1 - smps8, ldo1 - ldo11, bob, flash, rgb
47       For PM8350, smps1 - smps12, ldo1 - ldo10
48       For PM8350C, smps1 - smps10, ldo1 - ldo13, bob
49       For PM8450, smps1 - smps6, ldo1 - ldo4
50       For PM8998, smps1 - smps13, ldo1 - ldo28, lvs1 - lvs2
51       For PMI8998, bob
52       For PMR735A, smps1 - smps3, ldo1 - ldo7
53       For PMX55, smps1 - smps7, ldo1 - ldo16
54       For PMX65, smps1 - smps8, ldo1 - ldo21
55
56 properties:
57   compatible:
58     enum:
59       - qcom,pm6150-rpmh-regulators
60       - qcom,pm6150l-rpmh-regulators
61       - qcom,pm6350-rpmh-regulators
62       - qcom,pm660-rpmh-regulators
63       - qcom,pm660l-rpmh-regulators
64       - qcom,pm7325-rpmh-regulators
65       - qcom,pm8005-rpmh-regulators
66       - qcom,pm8009-rpmh-regulators
67       - qcom,pm8009-1-rpmh-regulators
68       - qcom,pm8150-rpmh-regulators
69       - qcom,pm8150l-rpmh-regulators
70       - qcom,pm8350-rpmh-regulators
71       - qcom,pm8350c-rpmh-regulators
72       - qcom,pm8450-rpmh-regulators
73       - qcom,pm8998-rpmh-regulators
74       - qcom,pmg1110-rpmh-regulators
75       - qcom,pmi8998-rpmh-regulators
76       - qcom,pmm8155au-rpmh-regulators
77       - qcom,pmr735a-rpmh-regulators
78       - qcom,pmx55-rpmh-regulators
79       - qcom,pmx65-rpmh-regulators
80
81   qcom,pmic-id:
82     description: |
83         RPMh resource name suffix used for the regulators found
84         on this PMIC.
85     $ref: /schemas/types.yaml#/definitions/string
86     enum: [a, b, c, d, e, f, h, k]
87
88   qcom,always-wait-for-ack:
89     description: |
90         Boolean flag which indicates that the application processor
91         must wait for an ACK or a NACK from RPMh for every request
92         sent for this regulator including those which are for a
93         strictly lower power state.
94     $ref: /schemas/types.yaml#/definitions/flag
95
96   vdd-flash-supply:
97     description: Input supply phandle of flash.
98
99   vdd-rgb-supply:
100     description: Input supply phandle of rgb.
101
102   bob:
103     type: object
104     $ref: "regulator.yaml#"
105     description: BOB regulator node.
106     dependencies:
107       regulator-allow-set-load: ["regulator-allowed-modes"]
108
109 patternProperties:
110   "^(smps|ldo|lvs)[0-9]+$":
111     type: object
112     $ref: "regulator.yaml#"
113     description: smps/ldo regulator nodes(s).
114     dependencies:
115       regulator-allow-set-load: ["regulator-allowed-modes"]
116
117 required:
118   - compatible
119   - qcom,pmic-id
120
121 allOf:
122   - if:
123       properties:
124         compatible:
125           enum:
126             - qcom,pm6150-rpmh-regulators
127     then:
128       properties:
129         vdd-l2-l3-supply: true
130         vdd-l4-l7-l8-supply: true
131         vdd-l5-l16-l17-l18-l19-supply: true
132         vdd-l10-l14-l15-supply: true
133         vdd-l11-l12-l13-supply: true
134       patternProperties:
135         "^vdd-l[169]-supply$": true
136         "^vdd-s[1-5]-supply$": true
137
138   - if:
139       properties:
140         compatible:
141           enum:
142             - qcom,pm6150l-rpmh-regulators
143     then:
144       properties:
145         vdd-bob-supply:
146           description: BOB regulator parent supply phandle.
147         vdd-l1-l8-supply: true
148         vdd-l2-l3-supply: true
149         vdd-l4-l5-l6-supply: true
150         vdd-l7-l11-supply: true
151         vdd-l9-l10-supply: true
152       patternProperties:
153         "^vdd-s[1-8]-supply$": true
154
155   - if:
156       properties:
157         compatible:
158           enum:
159             - qcom,pm660-rpmh-regulators
160     then:
161       properties:
162         vdd-l1-l6-l7-supply: true
163         vdd-l2-l3-supply: true
164         vdd-l5-supply: true
165         vdd-l8-l9-l10-l11-l12-l13-l14-supply: true
166         vdd-l15-l16-l17-l18-l19-supply: true
167       patternProperties:
168         "^vdd-s[1-6]-supply$": true
169
170   - if:
171       properties:
172         compatible:
173           enum:
174             - qcom,pm660l-rpmh-regulators
175     then:
176       properties:
177         vdd-bob-supply:
178           description: BOB regulator parent supply phandle.
179         vdd-l1-l9-l10-supply: true
180         vdd-l2-supply: true
181         vdd-l3-l5-l7-l8-supply: true
182         vdd-l4-l6-supply: true
183         vdd-s3-s4-supply: true
184       patternProperties:
185         "^vdd-s[125]-supply$": true
186
187   - if:
188       properties:
189         compatible:
190           enum:
191             - qcom,pm7325-rpmh-regulators
192     then:
193       properties:
194         vdd-l1-l4-l12-l15-supply: true
195         vdd-l2-l7-supply: true
196         vdd-l6-l9-l10-supply: true
197         vdd-l11-l17-l18-l19-supply: true
198         vdd-l13-supply: true
199         vdd-l14-l16-supply: true
200       patternProperties:
201         "^vdd-l[358]-supply$": true
202         "^vdd-s[1-8]-supply$": true
203
204   - if:
205       properties:
206         compatible:
207           enum:
208             - qcom,pm8005-rpmh-regulators
209     then:
210       patternProperties:
211         "^vdd-s[1-4]-supply$": true
212
213   - if:
214       properties:
215         compatible:
216           enum:
217             - qcom,pm8009-rpmh-regulators
218             - qcom,pm8009-1-rpmh-regulators
219     then:
220       properties:
221         vdd-l5-l6-supply: true
222       patternProperties:
223         "^vdd-l[1-47]-supply$": true
224         "^vdd-s[1-2]-supply$": true
225
226   - if:
227       properties:
228         compatible:
229           enum:
230             - qcom,pm8150-rpmh-regulators
231             - qcom,pmm8155au-rpmh-regulators
232     then:
233       properties:
234         vdd-l1-l8-l11-supply: true
235         vdd-l2-l10-supply: true
236         vdd-l3-l4-l5-l18-supply: true
237         vdd-l6-l9-supply: true
238         vdd-l7-l12-l14-l15-supply: true
239         vdd-l13-l16-l17-supply: true
240       patternProperties:
241         "^vdd-s([1-9]|10)-supply$": true
242
243   - if:
244       properties:
245         compatible:
246           enum:
247             - qcom,pm8150l-rpmh-regulators
248     then:
249       properties:
250         vdd-bob-supply:
251           description: BOB regulator parent supply phandle.
252         vdd-l1-l8-supply: true
253         vdd-l2-l3-supply: true
254         vdd-l4-l5-l6-supply: true
255         vdd-l7-l11-supply: true
256         vdd-l9-l10-supply: true
257       patternProperties:
258         "^vdd-s[1-8]-supply$": true
259
260   - if:
261       properties:
262         compatible:
263           enum:
264             - qcom,pm8350-rpmh-regulators
265     then:
266       properties:
267         vdd-l1-l4-supply: true
268         vdd-l2-l7-supply: true
269         vdd-l3-l5-supply: true
270         vdd-l6-l9-l10-supply: true
271         vdd-l8-supply: true
272       patternProperties:
273         "^vdd-s([1-9]|1[0-2])-supply$": true
274
275   - if:
276       properties:
277         compatible:
278           enum:
279             - qcom,pm8350c-rpmh-regulators
280     then:
281       properties:
282         vdd-bob-supply:
283           description: BOB regulator parent supply phandle.
284         vdd-l1-l12-supply: true
285         vdd-l2-l8-supply: true
286         vdd-l3-l4-l5-l7-l13-supply: true
287         vdd-l6-l9-l11-supply: true
288         vdd-l10-supply: true
289       patternProperties:
290         "^vdd-s([1-9]|10)-supply$": true
291
292   - if:
293       properties:
294         compatible:
295           enum:
296             - qcom,pm8450-rpmh-regulators
297     then:
298       patternProperties:
299         "^vdd-l[1-4]-supply$": true
300         "^vdd-s[1-6]-supply$": true
301
302   - if:
303       properties:
304         compatible:
305           enum:
306             - qcom,pm8998-rpmh-regulators
307     then:
308       properties:
309         vdd-l1-l27-supply: true
310         vdd-l2-l8-l17-supply: true
311         vdd-l3-l11-supply: true
312         vdd-l4-l5-supply: true
313         vdd-l6-supply: true
314         vdd-l7-l12-l14-l15-supply: true
315         vdd-l9-supply: true
316         vdd-l10-l23-l25-supply: true
317         vdd-l13-l19-l21-supply: true
318         vdd-l16-l28-supply: true
319         vdd-l18-l22-supply: true
320         vdd-l20-l24-supply: true
321         vdd-l26-supply: true
322         vin-lvs-1-2-supply: true
323       patternProperties:
324         "^vdd-s([1-9]|1[0-3])-supply$": true
325
326   - if:
327       properties:
328         compatible:
329           enum:
330             - qcom,pmg1110-rpmh-regulators
331     then:
332       properties:
333         vdd-s1-supply: true
334
335   - if:
336       properties:
337         compatible:
338           enum:
339             - qcom,pmi8998-rpmh-regulators
340     then:
341       properties:
342         vdd-bob-supply:
343           description: BOB regulator parent supply phandle.
344
345   - if:
346       properties:
347         compatible:
348           enum:
349             - qcom,pmr735a-rpmh-regulators
350     then:
351       properties:
352         vdd-l1-l2-supply: true
353         vdd-l3-supply: true
354         vdd-l4-supply: true
355         vdd-l5-l6-supply: true
356         vdd-l7-bob-supply: true
357       patternProperties:
358         "^vdd-s[1-3]-supply$": true
359
360   - if:
361       properties:
362         compatible:
363           enum:
364             - qcom,pmx55-rpmh-regulators
365     then:
366       properties:
367         vdd-l1-l2-supply: true
368         vdd-l3-l9-supply: true
369         vdd-l4-l12-supply: true
370         vdd-l5-l6-supply: true
371         vdd-l7-l8-supply: true
372         vdd-l10-l11-l13-supply: true
373       patternProperties:
374         "^vdd-l1[4-6]-supply$": true
375         "^vdd-s[1-7]-supply$": true
376
377   - if:
378       properties:
379         compatible:
380           enum:
381             - qcom,pmx65-rpmh-regulators
382     then:
383       properties:
384         vdd-l2-l18-supply: true
385         vdd-l5-l6-l16-supply: true
386         vdd-l8-l9-supply: true
387         vdd-l11-l13-supply: true
388       patternProperties:
389         "^vdd-l[1347]-supply$": true
390         "^vdd-l1[0245789]-supply$": true
391         "^vdd-l2[01]-supply$": true
392         "^vdd-s[1-8]-supply$": true
393
394 unevaluatedProperties: false
395
396 examples:
397   - |
398     #include <dt-bindings/regulator/qcom,rpmh-regulator.h>
399
400     pm8998-rpmh-regulators {
401         compatible = "qcom,pm8998-rpmh-regulators";
402         qcom,pmic-id = "a";
403
404         vdd-l7-l12-l14-l15-supply = <&pm8998_s5>;
405
406         smps2 {
407             regulator-min-microvolt = <1100000>;
408             regulator-max-microvolt = <1100000>;
409         };
410
411         ldo7 {
412             regulator-min-microvolt = <1800000>;
413             regulator-max-microvolt = <1800000>;
414             regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
415             regulator-allowed-modes =
416                 <RPMH_REGULATOR_MODE_LPM
417                  RPMH_REGULATOR_MODE_HPM>;
418             regulator-allow-set-load;
419         };
420
421         lvs1 {
422             regulator-min-microvolt = <1800000>;
423             regulator-max-microvolt = <1800000>;
424         };
425     };
426
427     pmi8998-rpmh-regulators {
428         compatible = "qcom,pmi8998-rpmh-regulators";
429         qcom,pmic-id = "b";
430
431         bob {
432             regulator-min-microvolt = <3312000>;
433             regulator-max-microvolt = <3600000>;
434             regulator-allowed-modes =
435                 <RPMH_REGULATOR_MODE_AUTO
436                  RPMH_REGULATOR_MODE_HPM>;
437             regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
438         };
439     };
440 ...