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
7title: NXP PCA9450A/B/C Power Management Integrated Circuit regulators
8
9maintainers:
10  - Robin Gong <yibin.gong@nxp.com>
11
12description: |
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
25properties:
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
106required:
107  - compatible
108  - reg
109  - interrupts
110  - regulators
111
112additionalProperties: false
113
114examples:
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    };
207