Linux 6.9-rc1
[linux-2.6-microblaze.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 PM8010, ldo1 - ldo7
46       For PM8150, smps1 - smps10, ldo1 - ldo18
47       For PM8150L, smps1 - smps8, ldo1 - ldo11, bob, flash, rgb
48       For PM8350, smps1 - smps12, ldo1 - ldo10
49       For PM8350C, smps1 - smps10, ldo1 - ldo13, bob
50       For PM8450, smps1 - smps6, ldo1 - ldo4
51       For PM8550, smps1 - smps6, ldo1 - ldo17, bob1 - bob2
52       For PM8998, smps1 - smps13, ldo1 - ldo28, lvs1 - lvs2
53       For PMI8998, bob
54       For PMC8380, smps1 - smps8, ldo1 - lodo3
55       For PMR735A, smps1 - smps3, ldo1 - ldo7
56       For PMX55, smps1 - smps7, ldo1 - ldo16
57       For PMX65, smps1 - smps8, ldo1 - ldo21
58       For PMX75, smps1 - smps10, ldo1 - ldo21
59
60 properties:
61   compatible:
62     enum:
63       - qcom,pm6150-rpmh-regulators
64       - qcom,pm6150l-rpmh-regulators
65       - qcom,pm6350-rpmh-regulators
66       - qcom,pm660-rpmh-regulators
67       - qcom,pm660l-rpmh-regulators
68       - qcom,pm7325-rpmh-regulators
69       - qcom,pm8005-rpmh-regulators
70       - qcom,pm8009-rpmh-regulators
71       - qcom,pm8009-1-rpmh-regulators
72       - qcom,pm8010-rpmh-regulators
73       - qcom,pm8150-rpmh-regulators
74       - qcom,pm8150l-rpmh-regulators
75       - qcom,pm8350-rpmh-regulators
76       - qcom,pm8350c-rpmh-regulators
77       - qcom,pm8450-rpmh-regulators
78       - qcom,pm8550-rpmh-regulators
79       - qcom,pm8550ve-rpmh-regulators
80       - qcom,pm8550vs-rpmh-regulators
81       - qcom,pm8998-rpmh-regulators
82       - qcom,pmc8180-rpmh-regulators
83       - qcom,pmc8180c-rpmh-regulators
84       - qcom,pmc8380-rpmh-regulators
85       - qcom,pmg1110-rpmh-regulators
86       - qcom,pmi8998-rpmh-regulators
87       - qcom,pmm8155au-rpmh-regulators
88       - qcom,pmm8654au-rpmh-regulators
89       - qcom,pmr735a-rpmh-regulators
90       - qcom,pmx55-rpmh-regulators
91       - qcom,pmx65-rpmh-regulators
92       - qcom,pmx75-rpmh-regulators
93
94   qcom,pmic-id:
95     description: |
96         RPMh resource name suffix used for the regulators found
97         on this PMIC.
98     $ref: /schemas/types.yaml#/definitions/string
99     enum: [a, b, c, d, e, f, g, h, i, j, k, l, m, n]
100
101   qcom,always-wait-for-ack:
102     description: |
103         Boolean flag which indicates that the application processor
104         must wait for an ACK or a NACK from RPMh for every request
105         sent for this regulator including those which are for a
106         strictly lower power state.
107     $ref: /schemas/types.yaml#/definitions/flag
108
109   vdd-flash-supply:
110     description: Input supply phandle of flash.
111
112   vdd-rgb-supply:
113     description: Input supply phandle of rgb.
114
115   bob:
116     type: object
117     $ref: regulator.yaml#
118     unevaluatedProperties: false
119     description: BOB regulator node.
120     dependencies:
121       regulator-allow-set-load: [ regulator-allowed-modes ]
122
123 patternProperties:
124   "^(smps|ldo|lvs|bob)[0-9]+$":
125     type: object
126     $ref: regulator.yaml#
127     unevaluatedProperties: false
128     description: smps/ldo regulator nodes(s).
129     dependencies:
130       regulator-allow-set-load: [ regulator-allowed-modes ]
131
132 required:
133   - compatible
134   - qcom,pmic-id
135
136 allOf:
137   - if:
138       properties:
139         compatible:
140           enum:
141             - qcom,pm6150-rpmh-regulators
142     then:
143       properties:
144         vdd-l2-l3-supply: true
145         vdd-l4-l7-l8-supply: true
146         vdd-l5-l16-l17-l18-l19-supply: true
147         vdd-l10-l14-l15-supply: true
148         vdd-l11-l12-l13-supply: true
149       patternProperties:
150         "^vdd-l[169]-supply$": true
151         "^vdd-s[1-5]-supply$": true
152
153   - if:
154       properties:
155         compatible:
156           enum:
157             - qcom,pm6150l-rpmh-regulators
158             - qcom,pm8150l-rpmh-regulators
159             - qcom,pmc8180c-rpmh-regulators
160     then:
161       properties:
162         vdd-bob-supply:
163           description: BOB regulator parent supply phandle.
164         vdd-l1-l8-supply: true
165         vdd-l2-l3-supply: true
166         vdd-l4-l5-l6-supply: true
167         vdd-l7-l11-supply: true
168         vdd-l9-l10-supply: true
169       patternProperties:
170         "^vdd-s[1-8]-supply$": true
171
172   - if:
173       properties:
174         compatible:
175           enum:
176             - qcom,pm660-rpmh-regulators
177     then:
178       properties:
179         vdd-l1-l6-l7-supply: true
180         vdd-l2-l3-supply: true
181         vdd-l5-supply: true
182         vdd-l8-l9-l10-l11-l12-l13-l14-supply: true
183         vdd-l15-l16-l17-l18-l19-supply: true
184       patternProperties:
185         "^vdd-s[1-6]-supply$": true
186
187   - if:
188       properties:
189         compatible:
190           enum:
191             - qcom,pm660l-rpmh-regulators
192     then:
193       properties:
194         vdd-bob-supply:
195           description: BOB regulator parent supply phandle.
196         vdd-l1-l9-l10-supply: true
197         vdd-l2-supply: true
198         vdd-l3-l5-l7-l8-supply: true
199         vdd-l4-l6-supply: true
200         vdd-s3-s4-supply: true
201       patternProperties:
202         "^vdd-s[125]-supply$": true
203
204   - if:
205       properties:
206         compatible:
207           enum:
208             - qcom,pm7325-rpmh-regulators
209     then:
210       properties:
211         vdd-l1-l4-l12-l15-supply: true
212         vdd-l2-l7-supply: true
213         vdd-l6-l9-l10-supply: true
214         vdd-l11-l17-l18-l19-supply: true
215         vdd-l13-supply: true
216         vdd-l14-l16-supply: true
217       patternProperties:
218         "^vdd-l[358]-supply$": true
219         "^vdd-s[1-8]-supply$": true
220
221   - if:
222       properties:
223         compatible:
224           enum:
225             - qcom,pm8005-rpmh-regulators
226     then:
227       patternProperties:
228         "^vdd-s[1-4]-supply$": true
229
230   - if:
231       properties:
232         compatible:
233           enum:
234             - qcom,pm8009-rpmh-regulators
235             - qcom,pm8009-1-rpmh-regulators
236     then:
237       properties:
238         vdd-l5-l6-supply: true
239       patternProperties:
240         "^vdd-l[1-47]-supply$": true
241         "^vdd-s[1-2]-supply$": true
242
243   - if:
244       properties:
245         compatible:
246           enum:
247             - qcom,pm8010-rpmh-regulators
248     then:
249       properties:
250         vdd-l1-l2-supply: true
251         vdd-l3-l4-supply: true
252       patternProperties:
253         "^vdd-l[5-7]-supply$": true
254
255   - if:
256       properties:
257         compatible:
258           enum:
259             - qcom,pm8150-rpmh-regulators
260             - qcom,pmc8180-rpmh-regulators
261             - qcom,pmm8155au-rpmh-regulators
262     then:
263       properties:
264         vdd-l1-l8-l11-supply: true
265         vdd-l2-l10-supply: true
266         vdd-l3-l4-l5-l18-supply: true
267         vdd-l6-l9-supply: true
268         vdd-l7-l12-l14-l15-supply: true
269         vdd-l13-l16-l17-supply: true
270       patternProperties:
271         "^vdd-s([1-9]|10)-supply$": true
272
273   - if:
274       properties:
275         compatible:
276           enum:
277             - qcom,pmm8654au-rpmh-regulators
278     then:
279       properties:
280         vdd-l1-supply: true
281         vdd-l2-l3-supply: true
282         vdd-l4-supply: true
283         vdd-l5-supply: true
284         vdd-l6-l7-supply: true
285         vdd-l8-l9-supply: true
286       patternProperties:
287         "^vdd-s[1-9]-supply$": true
288
289   - if:
290       properties:
291         compatible:
292           enum:
293             - qcom,pm8350-rpmh-regulators
294     then:
295       properties:
296         vdd-l1-l4-supply: true
297         vdd-l2-l7-supply: true
298         vdd-l3-l5-supply: true
299         vdd-l6-l9-l10-supply: true
300         vdd-l8-supply: true
301       patternProperties:
302         "^vdd-s([1-9]|1[0-2])-supply$": true
303
304   - if:
305       properties:
306         compatible:
307           enum:
308             - qcom,pm8350c-rpmh-regulators
309     then:
310       properties:
311         vdd-bob-supply:
312           description: BOB regulator parent supply phandle.
313         vdd-l1-l12-supply: true
314         vdd-l2-l8-supply: true
315         vdd-l3-l4-l5-l7-l13-supply: true
316         vdd-l6-l9-l11-supply: true
317         vdd-l10-supply: true
318       patternProperties:
319         "^vdd-s([1-9]|10)-supply$": true
320
321   - if:
322       properties:
323         compatible:
324           enum:
325             - qcom,pm8450-rpmh-regulators
326     then:
327       patternProperties:
328         "^vdd-l[1-4]-supply$": true
329         "^vdd-s[1-6]-supply$": true
330
331   - if:
332       properties:
333         compatible:
334           enum:
335             - qcom,pm8550-rpmh-regulators
336     then:
337       properties:
338         vdd-l1-l4-l10-supply: true
339         vdd-l2-l13-l14-supply: true
340         vdd-l5-l16-supply: true
341         vdd-l6-l7-supply: true
342         vdd-l8-l9-supply: true
343       patternProperties:
344         "^vdd-l(3|1[1-7])-supply$": true
345         "^vdd-s[1-6]-supply$": true
346         "^vdd-bob[1-2]-supply$": true
347
348   - if:
349       properties:
350         compatible:
351           enum:
352             - qcom,pm8550ve-rpmh-regulators
353             - qcom,pm8550vs-rpmh-regulators
354     then:
355       patternProperties:
356         "^vdd-l[1-3]-supply$": true
357         "^vdd-s[1-6]-supply$": true
358
359   - if:
360       properties:
361         compatible:
362           enum:
363             - qcom,pm8998-rpmh-regulators
364     then:
365       properties:
366         vdd-l1-l27-supply: true
367         vdd-l2-l8-l17-supply: true
368         vdd-l3-l11-supply: true
369         vdd-l4-l5-supply: true
370         vdd-l6-supply: true
371         vdd-l7-l12-l14-l15-supply: true
372         vdd-l9-supply: true
373         vdd-l10-l23-l25-supply: true
374         vdd-l13-l19-l21-supply: true
375         vdd-l16-l28-supply: true
376         vdd-l18-l22-supply: true
377         vdd-l20-l24-supply: true
378         vdd-l26-supply: true
379         vin-lvs-1-2-supply: true
380       patternProperties:
381         "^vdd-s([1-9]|1[0-3])-supply$": true
382
383   - if:
384       properties:
385         compatible:
386           enum:
387             - qcom,pmc8380-rpmh-regulators
388     then:
389       patternProperties:
390         "^vdd-l[1-3]-supply$": true
391         "^vdd-s[1-8]-supply$": true
392
393   - if:
394       properties:
395         compatible:
396           enum:
397             - qcom,pmg1110-rpmh-regulators
398     then:
399       properties:
400         vdd-s1-supply: true
401
402   - if:
403       properties:
404         compatible:
405           enum:
406             - qcom,pmi8998-rpmh-regulators
407     then:
408       properties:
409         vdd-bob-supply:
410           description: BOB regulator parent supply phandle.
411
412   - if:
413       properties:
414         compatible:
415           enum:
416             - qcom,pmr735a-rpmh-regulators
417     then:
418       properties:
419         vdd-l1-l2-supply: true
420         vdd-l3-supply: true
421         vdd-l4-supply: true
422         vdd-l5-l6-supply: true
423         vdd-l7-bob-supply: true
424       patternProperties:
425         "^vdd-s[1-3]-supply$": true
426
427   - if:
428       properties:
429         compatible:
430           enum:
431             - qcom,pmx55-rpmh-regulators
432     then:
433       properties:
434         vdd-l1-l2-supply: true
435         vdd-l3-l9-supply: true
436         vdd-l4-l12-supply: true
437         vdd-l5-l6-supply: true
438         vdd-l7-l8-supply: true
439         vdd-l10-l11-l13-supply: true
440       patternProperties:
441         "^vdd-l1[4-6]-supply$": true
442         "^vdd-s[1-7]-supply$": true
443
444   - if:
445       properties:
446         compatible:
447           enum:
448             - qcom,pmx65-rpmh-regulators
449     then:
450       properties:
451         vdd-l2-l18-supply: true
452         vdd-l5-l6-l16-supply: true
453         vdd-l8-l9-supply: true
454         vdd-l11-l13-supply: true
455       patternProperties:
456         "^vdd-l[1347]-supply$": true
457         "^vdd-l1[024579]-supply$": true
458         "^vdd-l2[01]-supply$": true
459         "^vdd-s[1-8]-supply$": true
460
461   - if:
462       properties:
463         compatible:
464           enum:
465             - qcom,pmx75-rpmh-regulators
466     then:
467       properties:
468         vdd-l2-l18-supply: true
469         vdd-l4-l16-supply: true
470         vdd-l5-l6-supply: true
471         vdd-l8-l9-supply: true
472         vdd-l11-l13-supply: true
473         vdd-l20-l21-supply: true
474       patternProperties:
475         "^vdd-l[137]-supply$": true
476         "^vdd-l1[024579]-supply$": true
477         "^vdd-s([1-9]|10)-supply$": true
478
479 unevaluatedProperties: false
480
481 examples:
482   - |
483     #include <dt-bindings/regulator/qcom,rpmh-regulator.h>
484
485     pm8998-rpmh-regulators {
486         compatible = "qcom,pm8998-rpmh-regulators";
487         qcom,pmic-id = "a";
488
489         vdd-l7-l12-l14-l15-supply = <&pm8998_s5>;
490
491         smps2 {
492             regulator-min-microvolt = <1100000>;
493             regulator-max-microvolt = <1100000>;
494         };
495
496         ldo7 {
497             regulator-min-microvolt = <1800000>;
498             regulator-max-microvolt = <1800000>;
499             regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
500             regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
501                                        RPMH_REGULATOR_MODE_HPM>;
502             regulator-allow-set-load;
503         };
504
505         lvs1 {
506             regulator-min-microvolt = <1800000>;
507             regulator-max-microvolt = <1800000>;
508         };
509     };
510
511     pmi8998-rpmh-regulators {
512         compatible = "qcom,pmi8998-rpmh-regulators";
513         qcom,pmic-id = "b";
514
515         bob {
516             regulator-min-microvolt = <3312000>;
517             regulator-max-microvolt = <3600000>;
518             regulator-allowed-modes = <RPMH_REGULATOR_MODE_AUTO
519                                        RPMH_REGULATOR_MODE_HPM>;
520             regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
521         };
522     };
523 ...