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,pm660-regulators
16      - qcom,pm660l-regulators
17      - qcom,pm8004-regulators
18      - qcom,pm8005-regulators
19      - qcom,pm8226-regulators
20      - qcom,pm8841-regulators
21      - qcom,pm8916-regulators
22      - qcom,pm8941-regulators
23      - qcom,pm8950-regulators
24      - qcom,pm8994-regulators
25      - qcom,pmi8994-regulators
26      - qcom,pmp8074-regulators
27      - qcom,pms405-regulators
28
29  qcom,saw-reg:
30    description: Reference to syscon node defining the SAW registers
31    $ref: /schemas/types.yaml#/definitions/phandle
32
33patternProperties:
34  "^(5vs[1-2]|(l|s)[1-9][0-9]?|lvs[1-3])$":
35    description: List of regulators and its properties
36    type: object
37    $ref: regulator.yaml#
38    unevaluatedProperties: false
39
40    properties:
41      qcom,ocp-max-retries:
42        description:
43          Maximum number of times to try toggling a voltage switch off and
44          back on as a result of consecutive over current events
45        $ref: /schemas/types.yaml#/definitions/uint32
46
47      qcom,ocp-retry-delay:
48        description:
49          Time to delay in milliseconds between each voltage switch toggle
50          after an over current event takes place
51        $ref: /schemas/types.yaml#/definitions/uint32
52
53      qcom,pin-ctrl-enable:
54        description:
55          Bit mask specifying which hardware pins should be used to enable the
56          regulator, if any.
57          Supported bits are
58          0 = ignore all hardware enable signals
59          BIT(0) = follow HW0_EN signal
60          BIT(1) = follow HW1_EN signal
61          BIT(2) = follow HW2_EN signal
62          BIT(3) = follow HW3_EN signal
63        $ref: /schemas/types.yaml#/definitions/uint32
64        minimum: 0
65        maximum: 15
66
67      qcom,pin-ctrl-hpm:
68        description:
69          Bit mask specifying which hardware pins should be used to force the
70          regulator into high power mode, if any.
71          Supported bits are
72          0 = ignore all hardware enable signals
73          BIT(0) = follow HW0_EN signal
74          BIT(1) = follow HW1_EN signal
75          BIT(2) = follow HW2_EN signal
76          BIT(3) = follow HW3_EN signal
77          BIT(4) = follow PMIC awake state
78        $ref: /schemas/types.yaml#/definitions/uint32
79        minimum: 0
80        maximum: 31
81
82      qcom,vs-soft-start-strength:
83        description:
84          This property sets the soft start strength for voltage switch type
85          regulators.
86          Supported values are
87          0 = 0.05 uA
88          1 = 0.25 uA
89          2 = 0.55 uA
90          3 = 0.75 uA
91        $ref: /schemas/types.yaml#/definitions/uint32
92        minimum: 0
93        maximum: 3
94
95      qcom,saw-slave:
96        description: SAW controlled gang slave. Will not be configured.
97        type: boolean
98
99      qcom,saw-leader:
100        description:
101          SAW controlled gang leader. Will be configured as SAW regulator.
102        type: boolean
103
104required:
105  - compatible
106
107allOf:
108  - if:
109      properties:
110        compatible:
111          contains:
112            enum:
113              - qcom,pm660-regulators
114    then:
115      properties:
116        vdd_l15_l16_l17_l18_l19-supply: true
117        vdd_l1_l6_l7-supply: true
118        vdd_l2_l3-supply: true
119        vdd_l5-supply: true
120        vdd_l8_l9_l10_l11_l12_l13_l14-supply: true
121      patternProperties:
122        "^vdd_s[1-6]-supply$": true
123  - if:
124      properties:
125        compatible:
126          contains:
127            enum:
128              - qcom,pm660l-regulators
129    then:
130      properties:
131        vdd_l1_l9_l10-supply: true
132        vdd_l2-supply: true
133        vdd_l3_l5_l7_l8-supply: true
134        vdd_l4_l6-supply: true
135      patternProperties:
136        "^vdd_s[1-5]-supply$": true
137  - if:
138      properties:
139        compatible:
140          contains:
141            enum:
142              - qcom,pm8004-regulators
143    then:
144      patternProperties:
145        "^vdd_s[25]-supply$": true
146  - if:
147      properties:
148        compatible:
149          contains:
150            enum:
151              - qcom,pm8005-regulators
152    then:
153      patternProperties:
154        "^vdd_s[1-4]-supply$": true
155  - if:
156      properties:
157        compatible:
158          contains:
159            enum:
160              - qcom,pm8226-regulators
161    then:
162      properties:
163        vdd_l10_l11_l13-supply: true
164        vdd_l12_l14-supply: true
165        vdd_l15_l16_l17_l18-supply: true
166        vdd_l19_l20_l21_l22_l23_l28-supply: true
167        vdd_l1_l2_l4_l5-supply: true
168        vdd_l25-supply: true
169        vdd_l3_l24_l26-supply: true
170        vdd_l6_l7_l8_l9_l27-supply: true
171        vdd_lvs1-supply: true
172      patternProperties:
173        "^vdd_s[1-5]-supply$": true
174  - if:
175      properties:
176        compatible:
177          contains:
178            enum:
179              - qcom,pm8841-regulators
180    then:
181      patternProperties:
182        "^vdd_s[1-8]-supply$": true
183  - if:
184      properties:
185        compatible:
186          contains:
187            enum:
188              - qcom,pm8916-regulators
189    then:
190      properties:
191        vdd_l1_l3-supply: true
192        vdd_l4_l5_l6-supply: true
193        vdd_l8_l11_l14_l15_l16-supply: true
194        vdd_l9_l10_l12_l13_l17_l18-supply: true
195      patternProperties:
196        "^vdd_l[27]-supply$": true
197        "^vdd_s[1-4]-supply$": true
198  - if:
199      properties:
200        compatible:
201          contains:
202            enum:
203              - qcom,pm8941-regulators
204    then:
205      properties:
206        interrupts:
207          items:
208            - description: Over-current protection interrupt for 5V S1
209            - description: Over-current protection interrupt for 5V S2
210        interrupt-names:
211          items:
212            - const: ocp-5vs1
213            - const: ocp-5vs2
214        vdd_l13_l20_l23_l24-supply: true
215        vdd_l1_l3-supply: true
216        vdd_l21-supply: true
217        vdd_l2_lvs_1_2_3-supply: true
218        vdd_l4_l11-supply: true
219        vdd_l5_l7-supply: true
220        vdd_l6_l12_l14_l15-supply: true
221        vdd_l8_l16_l18_19-supply: true
222        vdd_l9_l10_l17_l22-supply: true
223        vin_5vs-supply: true
224      patternProperties:
225        "^vdd_s[1-3]-supply$": true
226  - if:
227      properties:
228        compatible:
229          contains:
230            enum:
231              - qcom,pm8950-regulators
232    then:
233      properties:
234        vdd_l1_l19-supply: true
235        vdd_l20-supply: true
236        vdd_l21-supply: true
237        vdd_l2_l23-supply: true
238        vdd_l3-supply: true
239        vdd_l4_l5_l6_l7_l16-supply: true
240        vdd_l8_l11_l12_l17_l22-supply: true
241        vdd_l9_l10_l13_l14_l15_l18-supply: true
242      patternProperties:
243        "^vdd_s[1-6]-supply$": true
244  - if:
245      properties:
246        compatible:
247          contains:
248            enum:
249              - qcom,pm8994-regulators
250    then:
251      properties:
252        vdd_l1-supply: true
253        vdd_l13_l19_l23_l24-supply: true
254        vdd_l14_l15-supply: true
255        vdd_l17_l29-supply: true
256        vdd_l20_l21-supply: true
257        vdd_l25-supply: true
258        vdd_l2_l26_l28-supply: true
259        vdd_l3_l11-supply: true
260        vdd_l4_l27_l31-supply: true
261        vdd_l5_l7-supply: true
262        vdd_l6_l12_l32-supply: true
263        vdd_l8_l16_l30-supply: true
264        vdd_l9_l10_l18_l22-supply: true
265        vdd_lvs_1_2-supply: true
266      patternProperties:
267        "^vdd_s[1-9][0-2]?-supply$": true
268  - if:
269      properties:
270        compatible:
271          contains:
272            enum:
273              - qcom,pmi8994-regulators
274    then:
275      properties:
276        vdd_l1-supply: true
277      patternProperties:
278        "^vdd_s[1-3]-supply$": true
279  - if:
280      properties:
281        compatible:
282          contains:
283            enum:
284              - qcom,pmp8074-regulators
285    then:
286      properties:
287        vdd_l10_l11_l12_l13-supply: true
288        vdd_l1_l2-supply: true
289        vdd_l3_l8-supply: true
290        vdd_l5_l6_l15-supply: true
291      patternProperties:
292        "^vdd_l[479]-supply$": true
293        "^vdd_s[1-5]-supply$": true
294  - if:
295      properties:
296        compatible:
297          contains:
298            enum:
299              - qcom,pms405-regulators
300    then:
301      properties:
302        vdd_s3-supply: true
303
304unevaluatedProperties: false
305
306examples:
307  - |
308    regulators {
309      compatible = "qcom,pm8941-regulators";
310      vdd_l1_l3-supply = <&s1>;
311
312      s1: s1 {
313        regulator-min-microvolt = <1300000>;
314        regulator-max-microvolt = <1400000>;
315      };
316
317      l1: l1 {
318        regulator-min-microvolt = <1225000>;
319        regulator-max-microvolt = <1300000>;
320      };
321    };
322...
323