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 <[email protected]>
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      - nxp,pca9451a
32      - nxp,pca9452
33
34  reg:
35    maxItems: 1
36
37  interrupts:
38    maxItems: 1
39
40  regulators:
41    type: object
42    description: |
43      list of regulators provided by this controller
44
45    patternProperties:
46      "^LDO[1-5]$":
47        type: object
48        $ref: regulator.yaml#
49        description:
50          Properties for single LDO regulator.
51
52        unevaluatedProperties: false
53
54      "^BUCK[1-6]$":
55        type: object
56        $ref: regulator.yaml#
57        description:
58          Properties for single BUCK regulator.
59
60        properties:
61          nxp,dvs-run-voltage:
62            $ref: /schemas/types.yaml#/definitions/uint32
63            minimum: 600000
64            maximum: 2187500
65            description:
66              PMIC default "RUN" state voltage in uV. Only Buck1~3 have such
67              dvs(dynamic voltage scaling) property.
68
69          nxp,dvs-standby-voltage:
70            $ref: /schemas/types.yaml#/definitions/uint32
71            minimum: 600000
72            maximum: 2187500
73            description:
74              PMIC default "STANDBY" state voltage in uV. Only Buck1~3 have such
75              dvs(dynamic voltage scaling) property.
76
77        unevaluatedProperties: false
78
79    additionalProperties: false
80
81  sd-vsel-gpios:
82    description: GPIO that is used to switch LDO5 between being configured by
83      LDO5CTRL_L or LDO5CTRL_H register. Use this if the SD_VSEL signal is
84      connected to a host GPIO.
85
86  nxp,i2c-lt-enable:
87    type: boolean
88    description:
89      Indicates that the I2C Level Translator is used.
90
91  nxp,wdog_b-warm-reset:
92    type: boolean
93    description:
94      When WDOG_B signal is asserted a warm reset will be done instead of cold
95      reset.
96
97required:
98  - compatible
99  - reg
100  - regulators
101
102additionalProperties: false
103
104examples:
105  - |
106    #include <dt-bindings/interrupt-controller/irq.h>
107
108    i2c {
109        #address-cells = <1>;
110        #size-cells = <0>;
111        pmic: pmic@25 {
112            compatible = "nxp,pca9450b";
113            reg = <0x25>;
114            pinctrl-0 = <&pinctrl_pmic>;
115            interrupt-parent = <&gpio1>;
116            interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
117
118            regulators {
119                buck1: BUCK1 {
120                    regulator-name = "BUCK1";
121                    regulator-min-microvolt = <600000>;
122                    regulator-max-microvolt = <2187500>;
123                    regulator-boot-on;
124                    regulator-always-on;
125                    regulator-ramp-delay = <3125>;
126                };
127                buck2: BUCK2 {
128                    regulator-name = "BUCK2";
129                    regulator-min-microvolt = <600000>;
130                    regulator-max-microvolt = <2187500>;
131                    regulator-boot-on;
132                    regulator-always-on;
133                    regulator-ramp-delay = <3125>;
134                    nxp,dvs-run-voltage = <950000>;
135                    nxp,dvs-standby-voltage = <850000>;
136                };
137                buck4: BUCK4 {
138                    regulator-name = "BUCK4";
139                    regulator-min-microvolt = <600000>;
140                    regulator-max-microvolt = <3400000>;
141                    regulator-boot-on;
142                    regulator-always-on;
143                };
144                buck5: BUCK5 {
145                    regulator-name = "BUCK5";
146                    regulator-min-microvolt = <600000>;
147                    regulator-max-microvolt = <3400000>;
148                    regulator-boot-on;
149                    regulator-always-on;
150                };
151                buck6: BUCK6 {
152                    regulator-name = "BUCK6";
153                    regulator-min-microvolt = <600000>;
154                    regulator-max-microvolt = <3400000>;
155                    regulator-boot-on;
156                    regulator-always-on;
157                };
158
159                ldo1: LDO1 {
160                    regulator-name = "LDO1";
161                    regulator-min-microvolt = <1600000>;
162                    regulator-max-microvolt = <3300000>;
163                    regulator-boot-on;
164                    regulator-always-on;
165                };
166                ldo2: LDO2 {
167                    regulator-name = "LDO2";
168                    regulator-min-microvolt = <800000>;
169                    regulator-max-microvolt = <1150000>;
170                    regulator-boot-on;
171                    regulator-always-on;
172                };
173                ldo3: LDO3 {
174                    regulator-name = "LDO3";
175                    regulator-min-microvolt = <800000>;
176                    regulator-max-microvolt = <3300000>;
177                    regulator-boot-on;
178                    regulator-always-on;
179                };
180                ldo4: LDO4 {
181                    regulator-name = "LDO4";
182                    regulator-min-microvolt = <800000>;
183                    regulator-max-microvolt = <3300000>;
184                    regulator-boot-on;
185                    regulator-always-on;
186                };
187                ldo5: LDO5 {
188                    regulator-name = "LDO5";
189                    regulator-min-microvolt = <1800000>;
190                    regulator-max-microvolt = <3300000>;
191                    regulator-boot-on;
192                    regulator-always-on;
193                };
194            };
195        };
196    };
197