1# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/regulator/qcom,spmi-regulator.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Qualcomm SPMI Regulators
8
9maintainers:
10  - Robert Marko <robimarko@gmail.com>
11
12properties:
13  compatible:
14    enum:
15      - qcom,pm6125-regulators
16      - qcom,pm660-regulators
17      - qcom,pm660l-regulators
18      - qcom,pm8004-regulators
19      - qcom,pm8005-regulators
20      - qcom,pm8019-regulators
21      - qcom,pm8226-regulators
22      - qcom,pm8841-regulators
23      - qcom,pm8909-regulators
24      - qcom,pm8916-regulators
25      - qcom,pm8937-regulators
26      - qcom,pm8941-regulators
27      - qcom,pm8950-regulators
28      - qcom,pm8994-regulators
29      - qcom,pma8084-regulators
30      - qcom,pmi8994-regulators
31      - qcom,pmp8074-regulators
32      - qcom,pms405-regulators
33
34  qcom,saw-reg:
35    description: Reference to syscon node defining the SAW registers
36    $ref: /schemas/types.yaml#/definitions/phandle
37
38patternProperties:
39  "^(5vs[1-2]|(l|s)[1-9][0-9]?|lvs[1-4])$":
40    description: List of regulators and its properties
41    type: object
42    $ref: regulator.yaml#
43    unevaluatedProperties: false
44
45    properties:
46      qcom,ocp-max-retries:
47        description:
48          Maximum number of times to try toggling a voltage switch off and
49          back on as a result of consecutive over current events
50        $ref: /schemas/types.yaml#/definitions/uint32
51
52      qcom,ocp-retry-delay:
53        description:
54          Time to delay in milliseconds between each voltage switch toggle
55          after an over current event takes place
56        $ref: /schemas/types.yaml#/definitions/uint32
57
58      qcom,pin-ctrl-enable:
59        description:
60          Bit mask specifying which hardware pins should be used to enable the
61          regulator, if any.
62          Supported bits are
63          0 = ignore all hardware enable signals
64          BIT(0) = follow HW0_EN signal
65          BIT(1) = follow HW1_EN signal
66          BIT(2) = follow HW2_EN signal
67          BIT(3) = follow HW3_EN signal
68        $ref: /schemas/types.yaml#/definitions/uint32
69        minimum: 0
70        maximum: 15
71
72      qcom,pin-ctrl-hpm:
73        description:
74          Bit mask specifying which hardware pins should be used to force the
75          regulator into high power mode, if any.
76          Supported bits are
77          0 = ignore all hardware enable signals
78          BIT(0) = follow HW0_EN signal
79          BIT(1) = follow HW1_EN signal
80          BIT(2) = follow HW2_EN signal
81          BIT(3) = follow HW3_EN signal
82          BIT(4) = follow PMIC awake state
83        $ref: /schemas/types.yaml#/definitions/uint32
84        minimum: 0
85        maximum: 31
86
87      qcom,vs-soft-start-strength:
88        description:
89          This property sets the soft start strength for voltage switch type
90          regulators.
91          Supported values are
92          0 = 0.05 uA
93          1 = 0.25 uA
94          2 = 0.55 uA
95          3 = 0.75 uA
96        $ref: /schemas/types.yaml#/definitions/uint32
97        minimum: 0
98        maximum: 3
99
100      qcom,saw-slave:
101        description: SAW controlled gang slave. Will not be configured.
102        type: boolean
103
104      qcom,saw-leader:
105        description:
106          SAW controlled gang leader. Will be configured as SAW regulator.
107        type: boolean
108
109required:
110  - compatible
111
112allOf:
113  - if:
114      properties:
115        compatible:
116          contains:
117            enum:
118              - qcom,pm6125-regulators
119    then:
120      properties:
121        vdd_l1_l7_l17_l18-supply: true
122        vdd_l2_l3_l4-supply: true
123        vdd_l5_l15_l19_l20_l21_l22-supply: true
124        vdd_l6_l8-supply: true
125        vdd_l9_l11-supply: true
126        vdd_l10_l13_l14-supply: true
127        vdd_l12_l16-supply: true
128        vdd_l23_l24-supply: true
129      patternProperties:
130        "^vdd_s[1-8]-supply$": true
131
132  - if:
133      properties:
134        compatible:
135          contains:
136            enum:
137              - qcom,pm660-regulators
138    then:
139      properties:
140        vdd_l15_l16_l17_l18_l19-supply: true
141        vdd_l1_l6_l7-supply: true
142        vdd_l2_l3-supply: true
143        vdd_l5-supply: true
144        vdd_l8_l9_l10_l11_l12_l13_l14-supply: true
145      patternProperties:
146        "^vdd_s[1-6]-supply$": true
147
148  - if:
149      properties:
150        compatible:
151          contains:
152            enum:
153              - qcom,pm660l-regulators
154    then:
155      properties:
156        vdd_l1_l9_l10-supply: true
157        vdd_l2-supply: true
158        vdd_l3_l5_l7_l8-supply: true
159        vdd_l4_l6-supply: true
160      patternProperties:
161        "^vdd_s[1-5]-supply$": true
162
163  - if:
164      properties:
165        compatible:
166          contains:
167            enum:
168              - qcom,pm8004-regulators
169    then:
170      patternProperties:
171        "^vdd_s[25]-supply$": true
172
173  - if:
174      properties:
175        compatible:
176          contains:
177            enum:
178              - qcom,pm8005-regulators
179    then:
180      patternProperties:
181        "^vdd_s[1-4]-supply$": true
182
183  - if:
184      properties:
185        compatible:
186          contains:
187            enum:
188              - qcom,pm8019-regulators
189    then:
190      properties:
191        vdd_l1-supply: true
192        vdd_l2_l3-supply: true
193        vdd_l4_l5_l6-supply: true
194        vdd_l7_l8_l11-supply: true
195        vdd_l9-supply: true
196        vdd_l10-supply: true
197        vdd_l12-supply: true
198        vdd_l13_l14-supply: true
199      patternProperties:
200        "^vdd_s[1-4]-supply$": true
201
202  - if:
203      properties:
204        compatible:
205          contains:
206            enum:
207              - qcom,pm8226-regulators
208    then:
209      properties:
210        vdd_l10_l11_l13-supply: true
211        vdd_l12_l14-supply: true
212        vdd_l15_l16_l17_l18-supply: true
213        vdd_l19_l20_l21_l22_l23_l28-supply: true
214        vdd_l1_l2_l4_l5-supply: true
215        vdd_l25-supply: true
216        vdd_l3_l24_l26-supply: true
217        vdd_l6_l7_l8_l9_l27-supply: true
218        vdd_lvs1-supply: true
219      patternProperties:
220        "^vdd_s[1-5]-supply$": true
221
222  - if:
223      properties:
224        compatible:
225          contains:
226            enum:
227              - qcom,pm8841-regulators
228    then:
229      patternProperties:
230        "^vdd_s[1-8]-supply$": true
231
232  - if:
233      properties:
234        compatible:
235          contains:
236            enum:
237              - qcom,pm8909-regulators
238    then:
239      properties:
240        vdd_s1-supply: true
241        vdd_s2-supply: true
242        vdd_l1-supply: true
243        vdd_l2_l5-supply: true
244        vdd_l3_l6_l10-supply: true
245        vdd_l4_l7-supply: true
246        vdd_l8_l11_l15_l18-supply: true
247        vdd_l9_l12_l14_l17-supply: true
248        vdd_l13-supply: true
249
250  - if:
251      properties:
252        compatible:
253          contains:
254            enum:
255              - qcom,pm8916-regulators
256    then:
257      properties:
258        vdd_l1_l3-supply: true
259        vdd_l4_l5_l6-supply: true
260        vdd_l8_l11_l14_l15_l16-supply: true
261        vdd_l9_l10_l12_l13_l17_l18-supply: true
262      patternProperties:
263        "^vdd_l[27]-supply$": true
264        "^vdd_s[1-4]-supply$": true
265
266  - if:
267      properties:
268        compatible:
269          contains:
270            enum:
271              - qcom,pm8941-regulators
272    then:
273      properties:
274        interrupts:
275          items:
276            - description: Over-current protection interrupt for 5V S1
277            - description: Over-current protection interrupt for 5V S2
278        interrupt-names:
279          items:
280            - const: ocp-5vs1
281            - const: ocp-5vs2
282        vdd_l13_l20_l23_l24-supply: true
283        vdd_l1_l3-supply: true
284        vdd_l21-supply: true
285        vdd_l2_lvs_1_2_3-supply: true
286        vdd_l4_l11-supply: true
287        vdd_l5_l7-supply: true
288        vdd_l6_l12_l14_l15-supply: true
289        vdd_l8_l16_l18_19-supply: true
290        vdd_l9_l10_l17_l22-supply: true
291        vin_5vs-supply: true
292      patternProperties:
293        "^vdd_s[1-3]-supply$": true
294
295  - if:
296      properties:
297        compatible:
298          contains:
299            enum:
300              - qcom,pm8937-regulators
301    then:
302      properties:
303        vdd_l1_l19-supply: true
304        vdd_l20_l21-supply: true
305        vdd_l2_l23-supply: true
306        vdd_l3-supply: true
307        vdd_l4_l5_l6_l7_l16-supply: true
308        vdd_l8_l11_l12_l17_l22-supply: true
309        vdd_l9_l10_l13_l14_l15_l18-supply: true
310      patternProperties:
311        "^vdd_s[1-6]-supply$": true
312
313  - if:
314      properties:
315        compatible:
316          contains:
317            enum:
318              - qcom,pm8950-regulators
319    then:
320      properties:
321        vdd_l1_l19-supply: true
322        vdd_l20-supply: true
323        vdd_l21-supply: true
324        vdd_l2_l23-supply: true
325        vdd_l3-supply: true
326        vdd_l4_l5_l6_l7_l16-supply: true
327        vdd_l8_l11_l12_l17_l22-supply: true
328        vdd_l9_l10_l13_l14_l15_l18-supply: true
329      patternProperties:
330        "^vdd_s[1-6]-supply$": true
331
332  - if:
333      properties:
334        compatible:
335          contains:
336            enum:
337              - qcom,pm8994-regulators
338    then:
339      properties:
340        vdd_l1-supply: true
341        vdd_l13_l19_l23_l24-supply: true
342        vdd_l14_l15-supply: true
343        vdd_l17_l29-supply: true
344        vdd_l20_l21-supply: true
345        vdd_l25-supply: true
346        vdd_l2_l26_l28-supply: true
347        vdd_l3_l11-supply: true
348        vdd_l4_l27_l31-supply: true
349        vdd_l5_l7-supply: true
350        vdd_l6_l12_l32-supply: true
351        vdd_l8_l16_l30-supply: true
352        vdd_l9_l10_l18_l22-supply: true
353        vdd_lvs_1_2-supply: true
354      patternProperties:
355        "^vdd_s[1-9][0-2]?-supply$": true
356
357  - if:
358      properties:
359        compatible:
360          contains:
361            enum:
362              - qcom,pma8084-regulators
363    then:
364      properties:
365        vdd_l1_l11-supply: true
366        vdd_l2_l3_l4_l27-supply: true
367        vdd_l5_l7-supply: true
368        vdd_l6_l12_l14_l15_l26-supply: true
369        vdd_l8-supply: true
370        vdd_l9_l10_l13_l20_l23_l24-supply: true
371        vdd_l16_l25-supply: true
372        vdd_l17-supply: true
373        vdd_l18-supply: true
374        vdd_l19-supply: true
375        vdd_l21-supply: true
376        vdd_l22-supply: true
377        vdd_lvs1_2-supply: true
378        vdd_lvs3_4-supply: true
379        vdd_5vs1-supply: true
380      patternProperties:
381        "^vdd_s([1-9]|1[0-2])-supply$": true
382
383  - if:
384      properties:
385        compatible:
386          contains:
387            enum:
388              - qcom,pmi8994-regulators
389    then:
390      properties:
391        vdd_l1-supply: true
392      patternProperties:
393        "^vdd_s[1-3]-supply$": true
394
395  - if:
396      properties:
397        compatible:
398          contains:
399            enum:
400              - qcom,pmp8074-regulators
401    then:
402      properties:
403        vdd_l10_l11_l12_l13-supply: true
404        vdd_l1_l2-supply: true
405        vdd_l3_l8-supply: true
406        vdd_l5_l6_l15-supply: true
407      patternProperties:
408        "^vdd_l[479]-supply$": true
409        "^vdd_s[1-5]-supply$": true
410
411  - if:
412      properties:
413        compatible:
414          contains:
415            enum:
416              - qcom,pms405-regulators
417    then:
418      properties:
419        vdd_s3-supply: true
420
421unevaluatedProperties: false
422
423examples:
424  - |
425    regulators {
426      compatible = "qcom,pm8941-regulators";
427      vdd_l1_l3-supply = <&s1>;
428
429      s1: s1 {
430        regulator-min-microvolt = <1300000>;
431        regulator-max-microvolt = <1400000>;
432      };
433
434      l1: l1 {
435        regulator-min-microvolt = <1225000>;
436        regulator-max-microvolt = <1300000>;
437      };
438    };
439...
440