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