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