File Index
Files and directories
Sign in
FILE

nxp,pca9450-regulator.yaml

File preview with syntax highlighting.

linux-6.19.14/Documentation/devicetree/bindings/regulator/nxp,pca9450-regulator.yaml 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
  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  inl1-supply:
 45    description: Regulator supply for the INL1 pin group, powering LDOx
 46
 47  inb13-supply:
 48    description:
 49      Regulator supply for the INB13 pin group, powering BUCK1 and BUCK3.
 50
 51  inb26-supply:
 52    description:
 53      Regulator supply for the INB26 pin group, powering BUCK2 and BUCK6.
 54
 55  inb45-supply:
 56    description:
 57      Regulator supply for the INB45 pin group, powering BUCK4 and BUCK5.
 58
 59  regulators:
 60    type: object
 61    description: |
 62      list of regulators provided by this controller
 63
 64    properties:
 65      LDO5:
 66        type: object
 67        $ref: regulator.yaml#
 68        description:
 69          Properties for single LDO5 regulator.
 70
 71        properties:
 72          nxp,sd-vsel-fixed-low:
 73            type: boolean
 74            description:
 75              Let the driver know that SD_VSEL is hardwired to low level and
 76              there is no GPIO to get the actual value from.
 77
 78          sd-vsel-gpios:
 79            description:
 80              GPIO that can be used to read the current status of the SD_VSEL
 81              signal in order for the driver to know if LDO5CTRL_L or LDO5CTRL_H
 82              is used by the hardware.
 83
 84        unevaluatedProperties: false
 85
 86    patternProperties:
 87      "^LDO([1-4]|-SNVS)$":
 88        type: object
 89        $ref: regulator.yaml#
 90        description:
 91          Properties for single LDO regulator.
 92
 93        unevaluatedProperties: false
 94
 95      "^BUCK[1-6]$":
 96        type: object
 97        $ref: regulator.yaml#
 98        description:
 99          Properties for single BUCK regulator.
100
101        properties:
102          nxp,dvs-run-voltage:
103            $ref: /schemas/types.yaml#/definitions/uint32
104            minimum: 600000
105            maximum: 2187500
106            description:
107              PMIC default "RUN" state voltage in uV. Only Buck1~3 have such
108              dvs(dynamic voltage scaling) property.
109
110          nxp,dvs-standby-voltage:
111            $ref: /schemas/types.yaml#/definitions/uint32
112            minimum: 600000
113            maximum: 2187500
114            description:
115              PMIC default "STANDBY" state voltage in uV. Only Buck1~3 have such
116              dvs(dynamic voltage scaling) property.
117
118          regulator-allowed-modes:
119            description: |
120              Buck regulator operating modes allowed. Valid values below.
121              Users should use the macros from dt-bindings/regulator/nxp,pca9450-regulator.h
122                0 (PCA9450_BUCK_MODE_AUTO): Auto PFM/PWM mode
123                1 (PCA9450_BUCK_MODE_FORCE_PWM): Forced PWM mode
124            items:
125              enum: [ 0, 1 ]
126
127        unevaluatedProperties: false
128
129    additionalProperties: false
130
131  nxp,i2c-lt-enable:
132    type: boolean
133    description:
134      Indicates that the I2C Level Translator is used.
135
136  nxp,wdog_b-warm-reset:
137    type: boolean
138    description:
139      When WDOG_B signal is asserted a warm reset will be done instead of cold
140      reset.
141
142  nxp,pmic-on-req-on-debounce-us:
143    enum: [ 120, 20000, 100000, 750000 ]
144    description: Debounce time for PMIC_ON_REQ high.
145
146  nxp,pmic-on-req-off-debounce-us:
147    enum: [ 120, 2000 ]
148    description: Debounce time for PMIC_ON_REQ is asserted low
149
150  nxp,power-on-step-ms:
151    enum: [ 1, 2, 4, 8]
152    description: Time step configuration during power on sequence
153
154  nxp,power-down-step-ms:
155    enum: [ 2, 4, 8, 16 ]
156    description: Time step configuration during power down sequence
157
158  nxp,restart-ms:
159    enum: [ 250, 500 ]
160    description: Time to stay off regulators during Cold reset
161
162  npx,pmic-rst-b-debounce-ms:
163    enum: [ 10, 50, 100, 500, 1000, 2000, 4000, 8000 ]
164    description: PMIC_RST_B debounce time
165
166required:
167  - compatible
168  - reg
169  - regulators
170
171additionalProperties: false
172
173allOf:
174  - if:
175      properties:
176        compatible:
177          contains:
178            const: nxp,pf9453
179    then:
180      properties:
181        regulators:
182          patternProperties:
183            "^LDO[3-4]$": false
184            "^BUCK[5-6]$": false
185    else:
186      properties:
187        regulators:
188          properties:
189            LDO-SNVS: false
190
191examples:
192  - |
193    #include <dt-bindings/interrupt-controller/irq.h>
194    #include <dt-bindings/regulator/nxp,pca9450-regulator.h>
195
196    i2c {
197        #address-cells = <1>;
198        #size-cells = <0>;
199        pmic: pmic@25 {
200            compatible = "nxp,pca9450b";
201            reg = <0x25>;
202            pinctrl-0 = <&pinctrl_pmic>;
203            interrupt-parent = <&gpio1>;
204            interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
205
206            regulators {
207                buck1: BUCK1 {
208                    regulator-name = "BUCK1";
209                    regulator-min-microvolt = <600000>;
210                    regulator-max-microvolt = <2187500>;
211                    regulator-boot-on;
212                    regulator-always-on;
213                    regulator-ramp-delay = <3125>;
214                };
215                buck2: BUCK2 {
216                    regulator-name = "BUCK2";
217                    regulator-min-microvolt = <600000>;
218                    regulator-max-microvolt = <2187500>;
219                    regulator-boot-on;
220                    regulator-always-on;
221                    regulator-ramp-delay = <3125>;
222                    nxp,dvs-run-voltage = <950000>;
223                    nxp,dvs-standby-voltage = <850000>;
224                };
225                buck4: BUCK4 {
226                    regulator-name = "BUCK4";
227                    regulator-min-microvolt = <600000>;
228                    regulator-max-microvolt = <3400000>;
229                    regulator-boot-on;
230                    regulator-always-on;
231                    regulator-initial-mode = <PCA9450_BUCK_MODE_FORCE_PWM>;
232                    regulator-allowed-modes = <PCA9450_BUCK_MODE_FORCE_PWM>;
233                };
234                buck5: BUCK5 {
235                    regulator-name = "BUCK5";
236                    regulator-min-microvolt = <600000>;
237                    regulator-max-microvolt = <3400000>;
238                    regulator-boot-on;
239                    regulator-always-on;
240                    regulator-allowed-modes = <PCA9450_BUCK_MODE_AUTO
241                                               PCA9450_BUCK_MODE_FORCE_PWM>;
242                };
243                buck6: BUCK6 {
244                    regulator-name = "BUCK6";
245                    regulator-min-microvolt = <600000>;
246                    regulator-max-microvolt = <3400000>;
247                    regulator-boot-on;
248                    regulator-always-on;
249                };
250
251                ldo1: LDO1 {
252                    regulator-name = "LDO1";
253                    regulator-min-microvolt = <1600000>;
254                    regulator-max-microvolt = <3300000>;
255                    regulator-boot-on;
256                    regulator-always-on;
257                };
258                ldo2: LDO2 {
259                    regulator-name = "LDO2";
260                    regulator-min-microvolt = <800000>;
261                    regulator-max-microvolt = <1150000>;
262                    regulator-boot-on;
263                    regulator-always-on;
264                };
265                ldo3: LDO3 {
266                    regulator-name = "LDO3";
267                    regulator-min-microvolt = <800000>;
268                    regulator-max-microvolt = <3300000>;
269                    regulator-boot-on;
270                    regulator-always-on;
271                };
272                ldo4: LDO4 {
273                    regulator-name = "LDO4";
274                    regulator-min-microvolt = <800000>;
275                    regulator-max-microvolt = <3300000>;
276                    regulator-boot-on;
277                    regulator-always-on;
278                };
279                ldo5: LDO5 {
280                    regulator-name = "LDO5";
281                    regulator-min-microvolt = <1800000>;
282                    regulator-max-microvolt = <3300000>;
283                    regulator-boot-on;
284                    regulator-always-on;
285                };
286            };
287        };
288    };
~/ Read-only file preview.