Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
[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   - David Collins <collinsd@codeaurora.org>
11
12 description: |
13     rpmh-regulator devices support PMIC regulator management via the Voltage
14     Regulator Manager (VRM) and Oscillator Buffer (XOB) RPMh accelerators.
15     The APPS processor communicates with these hardware blocks via a
16     Resource State Coordinator (RSC) using command packets.  The VRM allows
17     changing three parameters for a given regulator, enable state, output
18     voltage, and operating mode.  The XOB allows changing only a single
19     parameter for a given regulator, its enable state.  Despite its name,
20     the XOB is capable of controlling the enable state of any PMIC peripheral.
21     It is used for clock buffers, low-voltage switches, and LDO/SMPS regulators
22     which have a fixed voltage and mode.
23
24     =======================
25     Required Node Structure
26     =======================
27
28     RPMh regulators must be described in two levels of device nodes.  The first
29     level describes the PMIC containing the regulators and must reside within an
30     RPMh device node.  The second level describes each regulator within the PMIC
31     which is to be used on the board.  Each of these regulators maps to a single
32     RPMh resource.
33
34     The names used for regulator nodes must match those supported by a given
35     PMIC. Supported regulator node names are
36       For PM6150, smps1 - smps5, ldo1 - ldo19
37       For PM6150L, smps1 - smps8, ldo1 - ldo11, bob
38       For PM7325, smps1 - smps8, ldo1 - ldo19
39       For PM8005, smps1 - smps4
40       For PM8009, smps1 - smps2, ldo1 - ldo7
41       For PM8150, smps1 - smps10, ldo1 - ldo18
42       For PM8150L, smps1 - smps8, ldo1 - ldo11, bob, flash, rgb
43       For PM8350, smps1 - smps12, ldo1 - ldo10
44       For PM8350C, smps1 - smps10, ldo1 - ldo13, bob
45       For PM8998, smps1 - smps13, ldo1 - ldo28, lvs1 - lvs2
46       For PMI8998, bob
47       For PMR735A, smps1 - smps3, ldo1 - ldo7
48       For PMX55, smps1 - smps7, ldo1 - ldo16
49
50 properties:
51   compatible:
52     enum:
53       - qcom,pm6150-rpmh-regulators
54       - qcom,pm6150l-rpmh-regulators
55       - qcom,pm7325-rpmh-regulators
56       - qcom,pm8005-rpmh-regulators
57       - qcom,pm8009-rpmh-regulators
58       - qcom,pm8009-1-rpmh-regulators
59       - qcom,pm8150-rpmh-regulators
60       - qcom,pm8150l-rpmh-regulators
61       - qcom,pm8350-rpmh-regulators
62       - qcom,pm8350c-rpmh-regulators
63       - qcom,pm8998-rpmh-regulators
64       - qcom,pmi8998-rpmh-regulators
65       - qcom,pmm8155au-rpmh-regulators
66       - qcom,pmr735a-rpmh-regulators
67       - qcom,pmx55-rpmh-regulators
68
69   qcom,pmic-id:
70     description: |
71         RPMh resource name suffix used for the regulators found
72         on this PMIC.
73     $ref: /schemas/types.yaml#/definitions/string
74     enum: [a, b, c, d, e, f]
75
76   qcom,always-wait-for-ack:
77     description: |
78         Boolean flag which indicates that the application processor
79         must wait for an ACK or a NACK from RPMh for every request
80         sent for this regulator including those which are for a
81         strictly lower power state.
82     $ref: /schemas/types.yaml#/definitions/flag
83
84   vdd-flash-supply:
85     description: Input supply phandle of flash.
86
87   vdd-rgb-supply:
88     description: Input supply phandle of rgb.
89
90   vin-lvs-1-2-supply:
91     description: Input supply phandle of one or more regulators.
92
93   vdd-bob-supply:
94     description: BOB regulator parent supply phandle.
95
96   bob:
97     type: object
98     $ref: "regulator.yaml#"
99     description: BOB regulator node.
100
101 patternProperties:
102   "^vdd-s([0-9]+)-supply$":
103     description: Input supply phandle(s) of one or more regulators.
104
105   "^vdd-(l[0-9]+[-]){1,5}supply$":
106     description: Input supply phandle(s) of one or more regulators.
107
108   "^(smps|ldo|lvs)[0-9]+$":
109     type: object
110     $ref: "regulator.yaml#"
111     description: smps/ldo regulator nodes(s).
112
113 additionalProperties: false
114
115 required:
116   - compatible
117   - qcom,pmic-id
118
119 examples:
120   - |
121     #include <dt-bindings/regulator/qcom,rpmh-regulator.h>
122
123     pm8998-rpmh-regulators {
124         compatible = "qcom,pm8998-rpmh-regulators";
125         qcom,pmic-id = "a";
126
127         vdd-l7-l12-l14-l15-supply = <&pm8998_s5>;
128
129         smps2 {
130             regulator-min-microvolt = <1100000>;
131             regulator-max-microvolt = <1100000>;
132         };
133
134         ldo7 {
135             regulator-min-microvolt = <1800000>;
136             regulator-max-microvolt = <1800000>;
137             regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
138             regulator-allowed-modes =
139                 <RPMH_REGULATOR_MODE_LPM
140                  RPMH_REGULATOR_MODE_HPM>;
141             regulator-allow-set-load;
142         };
143
144         lvs1 {
145             regulator-min-microvolt = <1800000>;
146             regulator-max-microvolt = <1800000>;
147         };
148     };
149
150     pmi8998-rpmh-regulators {
151         compatible = "qcom,pmi8998-rpmh-regulators";
152         qcom,pmic-id = "b";
153
154         bob {
155             regulator-min-microvolt = <3312000>;
156             regulator-max-microvolt = <3600000>;
157             regulator-allowed-modes =
158                 <RPMH_REGULATOR_MODE_AUTO
159                  RPMH_REGULATOR_MODE_HPM>;
160             regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
161         };
162     };
163 ...