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