xref: /linux/Documentation/devicetree/bindings/regulator/nxp,pca9450-regulator.yaml (revision 7a012a692e7cfbca245d195a80f23634d3d74fcc)
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  Support PF9453, Datasheet is available at
21  https://www.nxp.com/docs/en/data-sheet/PF9453_SDS.pdf
22
23# The valid names for PCA9450 regulator nodes are:
24# BUCK1, BUCK2, BUCK3, BUCK4, BUCK5, BUCK6,
25# LDO1, LDO2, LDO3, LDO4, LDO5
26# Note: Buck3 removed on PCA9450B and connect with Buck1 on PCA9450C.
27
28properties:
29  compatible:
30    enum:
31      - nxp,pca9450a
32      - nxp,pca9450b
33      - nxp,pca9450c
34      - nxp,pca9451a
35      - nxp,pca9452
36      - nxp,pf9453
37
38  reg:
39    maxItems: 1
40
41  interrupts:
42    maxItems: 1
43
44  regulators:
45    type: object
46    description: |
47      list of regulators provided by this controller
48
49    properties:
50      LDO5:
51        type: object
52        $ref: regulator.yaml#
53        description:
54          Properties for single LDO5 regulator.
55
56        properties:
57          nxp,sd-vsel-fixed-low:
58            type: boolean
59            description:
60              Let the driver know that SD_VSEL is hardwired to low level and
61              there is no GPIO to get the actual value from.
62
63          sd-vsel-gpios:
64            description:
65              GPIO that can be used to read the current status of the SD_VSEL
66              signal in order for the driver to know if LDO5CTRL_L or LDO5CTRL_H
67              is used by the hardware.
68
69        unevaluatedProperties: false
70
71    patternProperties:
72      "^LDO([1-4]|-SNVS)$":
73        type: object
74        $ref: regulator.yaml#
75        description:
76          Properties for single LDO regulator.
77
78        unevaluatedProperties: false
79
80      "^BUCK[1-6]$":
81        type: object
82        $ref: regulator.yaml#
83        description:
84          Properties for single BUCK regulator.
85
86        properties:
87          nxp,dvs-run-voltage:
88            $ref: /schemas/types.yaml#/definitions/uint32
89            minimum: 600000
90            maximum: 2187500
91            description:
92              PMIC default "RUN" state voltage in uV. Only Buck1~3 have such
93              dvs(dynamic voltage scaling) property.
94
95          nxp,dvs-standby-voltage:
96            $ref: /schemas/types.yaml#/definitions/uint32
97            minimum: 600000
98            maximum: 2187500
99            description:
100              PMIC default "STANDBY" state voltage in uV. Only Buck1~3 have such
101              dvs(dynamic voltage scaling) property.
102
103        unevaluatedProperties: false
104
105    additionalProperties: false
106
107  nxp,i2c-lt-enable:
108    type: boolean
109    description:
110      Indicates that the I2C Level Translator is used.
111
112  nxp,wdog_b-warm-reset:
113    type: boolean
114    description:
115      When WDOG_B signal is asserted a warm reset will be done instead of cold
116      reset.
117
118required:
119  - compatible
120  - reg
121  - regulators
122
123additionalProperties: false
124
125allOf:
126  - if:
127      properties:
128        compatible:
129          contains:
130            const: nxp,pf9453
131    then:
132      properties:
133        regulators:
134          patternProperties:
135            "^LDO[3-4]$": false
136            "^BUCK[5-6]$": false
137    else:
138      properties:
139        regulators:
140          properties:
141            LDO-SNVS: false
142
143examples:
144  - |
145    #include <dt-bindings/interrupt-controller/irq.h>
146
147    i2c {
148        #address-cells = <1>;
149        #size-cells = <0>;
150        pmic: pmic@25 {
151            compatible = "nxp,pca9450b";
152            reg = <0x25>;
153            pinctrl-0 = <&pinctrl_pmic>;
154            interrupt-parent = <&gpio1>;
155            interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
156
157            regulators {
158                buck1: BUCK1 {
159                    regulator-name = "BUCK1";
160                    regulator-min-microvolt = <600000>;
161                    regulator-max-microvolt = <2187500>;
162                    regulator-boot-on;
163                    regulator-always-on;
164                    regulator-ramp-delay = <3125>;
165                };
166                buck2: BUCK2 {
167                    regulator-name = "BUCK2";
168                    regulator-min-microvolt = <600000>;
169                    regulator-max-microvolt = <2187500>;
170                    regulator-boot-on;
171                    regulator-always-on;
172                    regulator-ramp-delay = <3125>;
173                    nxp,dvs-run-voltage = <950000>;
174                    nxp,dvs-standby-voltage = <850000>;
175                };
176                buck4: BUCK4 {
177                    regulator-name = "BUCK4";
178                    regulator-min-microvolt = <600000>;
179                    regulator-max-microvolt = <3400000>;
180                    regulator-boot-on;
181                    regulator-always-on;
182                };
183                buck5: BUCK5 {
184                    regulator-name = "BUCK5";
185                    regulator-min-microvolt = <600000>;
186                    regulator-max-microvolt = <3400000>;
187                    regulator-boot-on;
188                    regulator-always-on;
189                };
190                buck6: BUCK6 {
191                    regulator-name = "BUCK6";
192                    regulator-min-microvolt = <600000>;
193                    regulator-max-microvolt = <3400000>;
194                    regulator-boot-on;
195                    regulator-always-on;
196                };
197
198                ldo1: LDO1 {
199                    regulator-name = "LDO1";
200                    regulator-min-microvolt = <1600000>;
201                    regulator-max-microvolt = <3300000>;
202                    regulator-boot-on;
203                    regulator-always-on;
204                };
205                ldo2: LDO2 {
206                    regulator-name = "LDO2";
207                    regulator-min-microvolt = <800000>;
208                    regulator-max-microvolt = <1150000>;
209                    regulator-boot-on;
210                    regulator-always-on;
211                };
212                ldo3: LDO3 {
213                    regulator-name = "LDO3";
214                    regulator-min-microvolt = <800000>;
215                    regulator-max-microvolt = <3300000>;
216                    regulator-boot-on;
217                    regulator-always-on;
218                };
219                ldo4: LDO4 {
220                    regulator-name = "LDO4";
221                    regulator-min-microvolt = <800000>;
222                    regulator-max-microvolt = <3300000>;
223                    regulator-boot-on;
224                    regulator-always-on;
225                };
226                ldo5: LDO5 {
227                    regulator-name = "LDO5";
228                    regulator-min-microvolt = <1800000>;
229                    regulator-max-microvolt = <3300000>;
230                    regulator-boot-on;
231                    regulator-always-on;
232                };
233            };
234        };
235    };
236