GNU Linux-libre 5.19-rc6-gnu
[releases.git] / Documentation / devicetree / bindings / regulator / nxp,pca9450-regulator.yaml
1 # SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2 %YAML 1.2
3 ---
4 $id: http://devicetree.org/schemas/regulator/nxp,pca9450-regulator.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: NXP PCA9450A/B/C Power Management Integrated Circuit regulators
8
9 maintainers:
10   - Robin Gong <yibin.gong@nxp.com>
11
12 description: |
13   Regulator nodes should be named to BUCK_<number> and LDO_<number>. The
14   definition for each of these nodes is defined using the standard
15   binding for regulators at
16   Documentation/devicetree/bindings/regulator/regulator.txt.
17   Datasheet is available at
18   https://www.nxp.com/docs/en/data-sheet/PCA9450DS.pdf
19
20 #The valid names for PCA9450 regulator nodes are:
21 #BUCK1, BUCK2, BUCK3, BUCK4, BUCK5, BUCK6,
22 #LDO1, LDO2, LDO3, LDO4, LDO5
23 #Note: Buck3 removed on PCA9450B and connect with Buck1 on PCA9450C.
24
25 properties:
26   compatible:
27     enum:
28       - nxp,pca9450a
29       - nxp,pca9450b
30       - nxp,pca9450c
31
32   reg:
33     maxItems: 1
34
35   interrupts:
36     maxItems: 1
37
38   regulators:
39     type: object
40     description: |
41       list of regulators provided by this controller
42
43     patternProperties:
44       "^LDO[1-5]$":
45         type: object
46         $ref: regulator.yaml#
47         description:
48           Properties for single LDO regulator.
49
50         properties:
51           regulator-name:
52             pattern: "^LDO[1-5]$"
53             description:
54               should be "LDO1", ..., "LDO5"
55
56         unevaluatedProperties: false
57
58       "^BUCK[1-6]$":
59         type: object
60         $ref: regulator.yaml#
61         description:
62           Properties for single BUCK regulator.
63
64         properties:
65           regulator-name:
66             pattern: "^BUCK[1-6]$"
67             description:
68               should be "BUCK1", ..., "BUCK6"
69
70           nxp,dvs-run-voltage:
71             $ref: "/schemas/types.yaml#/definitions/uint32"
72             minimum: 600000
73             maximum: 2187500
74             description:
75               PMIC default "RUN" state voltage in uV. Only Buck1~3 have such
76               dvs(dynamic voltage scaling) property.
77
78           nxp,dvs-standby-voltage:
79             $ref: "/schemas/types.yaml#/definitions/uint32"
80             minimum: 600000
81             maximum: 2187500
82             description:
83               PMIC default "STANDBY" state voltage in uV. Only Buck1~3 have such
84               dvs(dynamic voltage scaling) property.
85
86         unevaluatedProperties: false
87
88     additionalProperties: false
89
90   sd-vsel-gpios:
91     description: GPIO that is used to switch LDO5 between being configured by
92       LDO5CTRL_L or LDO5CTRL_H register. Use this if the SD_VSEL signal is
93       connected to a host GPIO.
94
95   nxp,i2c-lt-enable:
96     type: boolean
97     description:
98       Indicates that the I2C Level Translator is used.
99
100   nxp,wdog_b-warm-reset:
101     type: boolean
102     description:
103       When WDOG_B signal is asserted a warm reset will be done instead of cold
104       reset.
105
106 required:
107   - compatible
108   - reg
109   - interrupts
110   - regulators
111
112 additionalProperties: false
113
114 examples:
115   - |
116     #include <dt-bindings/interrupt-controller/irq.h>
117
118     i2c {
119         #address-cells = <1>;
120         #size-cells = <0>;
121         pmic: pmic@25 {
122             compatible = "nxp,pca9450b";
123             reg = <0x25>;
124             pinctrl-0 = <&pinctrl_pmic>;
125             interrupt-parent = <&gpio1>;
126             interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
127
128             regulators {
129                 buck1: BUCK1 {
130                     regulator-name = "BUCK1";
131                     regulator-min-microvolt = <600000>;
132                     regulator-max-microvolt = <2187500>;
133                     regulator-boot-on;
134                     regulator-always-on;
135                     regulator-ramp-delay = <3125>;
136                 };
137                 buck2: BUCK2 {
138                     regulator-name = "BUCK2";
139                     regulator-min-microvolt = <600000>;
140                     regulator-max-microvolt = <2187500>;
141                     regulator-boot-on;
142                     regulator-always-on;
143                     regulator-ramp-delay = <3125>;
144                     nxp,dvs-run-voltage = <950000>;
145                     nxp,dvs-standby-voltage = <850000>;
146                 };
147                 buck4: BUCK4 {
148                     regulator-name = "BUCK4";
149                     regulator-min-microvolt = <600000>;
150                     regulator-max-microvolt = <3400000>;
151                     regulator-boot-on;
152                     regulator-always-on;
153                 };
154                 buck5: BUCK5 {
155                     regulator-name = "BUCK5";
156                     regulator-min-microvolt = <600000>;
157                     regulator-max-microvolt = <3400000>;
158                     regulator-boot-on;
159                     regulator-always-on;
160                 };
161                 buck6: BUCK6 {
162                     regulator-name = "BUCK6";
163                     regulator-min-microvolt = <600000>;
164                     regulator-max-microvolt = <3400000>;
165                     regulator-boot-on;
166                     regulator-always-on;
167                 };
168
169                 ldo1: LDO1 {
170                     regulator-name = "LDO1";
171                     regulator-min-microvolt = <1600000>;
172                     regulator-max-microvolt = <3300000>;
173                     regulator-boot-on;
174                     regulator-always-on;
175                 };
176                 ldo2: LDO2 {
177                     regulator-name = "LDO2";
178                     regulator-min-microvolt = <800000>;
179                     regulator-max-microvolt = <1150000>;
180                     regulator-boot-on;
181                     regulator-always-on;
182                 };
183                 ldo3: LDO3 {
184                     regulator-name = "LDO3";
185                     regulator-min-microvolt = <800000>;
186                     regulator-max-microvolt = <3300000>;
187                     regulator-boot-on;
188                     regulator-always-on;
189                 };
190                 ldo4: LDO4 {
191                     regulator-name = "LDO4";
192                     regulator-min-microvolt = <800000>;
193                     regulator-max-microvolt = <3300000>;
194                     regulator-boot-on;
195                     regulator-always-on;
196                 };
197                 ldo5: LDO5 {
198                     regulator-name = "LDO5";
199                     regulator-min-microvolt = <1800000>;
200                     regulator-max-microvolt = <3300000>;
201                     regulator-boot-on;
202                     regulator-always-on;
203                 };
204             };
205         };
206     };