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 regulator-allowed-modes: 104 description: | 105 Buck regulator operating modes allowed. Valid values below. 106 Users should use the macros from dt-bindings/regulator/nxp,pca9450-regulator.h 107 0 (PCA9450_BUCK_MODE_AUTO): Auto PFM/PWM mode 108 1 (PCA9450_BUCK_MODE_FORCE_PWM): Forced PWM mode 109 items: 110 enum: [ 0, 1 ] 111 112 unevaluatedProperties: false 113 114 additionalProperties: false 115 116 nxp,i2c-lt-enable: 117 type: boolean 118 description: 119 Indicates that the I2C Level Translator is used. 120 121 nxp,wdog_b-warm-reset: 122 type: boolean 123 description: 124 When WDOG_B signal is asserted a warm reset will be done instead of cold 125 reset. 126 127required: 128 - compatible 129 - reg 130 - regulators 131 132additionalProperties: false 133 134allOf: 135 - if: 136 properties: 137 compatible: 138 contains: 139 const: nxp,pf9453 140 then: 141 properties: 142 regulators: 143 patternProperties: 144 "^LDO[3-4]$": false 145 "^BUCK[5-6]$": false 146 else: 147 properties: 148 regulators: 149 properties: 150 LDO-SNVS: false 151 152examples: 153 - | 154 #include <dt-bindings/interrupt-controller/irq.h> 155 #include <dt-bindings/regulator/nxp,pca9450-regulator.h> 156 157 i2c { 158 #address-cells = <1>; 159 #size-cells = <0>; 160 pmic: pmic@25 { 161 compatible = "nxp,pca9450b"; 162 reg = <0x25>; 163 pinctrl-0 = <&pinctrl_pmic>; 164 interrupt-parent = <&gpio1>; 165 interrupts = <3 IRQ_TYPE_LEVEL_LOW>; 166 167 regulators { 168 buck1: BUCK1 { 169 regulator-name = "BUCK1"; 170 regulator-min-microvolt = <600000>; 171 regulator-max-microvolt = <2187500>; 172 regulator-boot-on; 173 regulator-always-on; 174 regulator-ramp-delay = <3125>; 175 }; 176 buck2: BUCK2 { 177 regulator-name = "BUCK2"; 178 regulator-min-microvolt = <600000>; 179 regulator-max-microvolt = <2187500>; 180 regulator-boot-on; 181 regulator-always-on; 182 regulator-ramp-delay = <3125>; 183 nxp,dvs-run-voltage = <950000>; 184 nxp,dvs-standby-voltage = <850000>; 185 }; 186 buck4: BUCK4 { 187 regulator-name = "BUCK4"; 188 regulator-min-microvolt = <600000>; 189 regulator-max-microvolt = <3400000>; 190 regulator-boot-on; 191 regulator-always-on; 192 regulator-initial-mode = <PCA9450_BUCK_MODE_FORCE_PWM>; 193 regulator-allowed-modes = <PCA9450_BUCK_MODE_FORCE_PWM>; 194 }; 195 buck5: BUCK5 { 196 regulator-name = "BUCK5"; 197 regulator-min-microvolt = <600000>; 198 regulator-max-microvolt = <3400000>; 199 regulator-boot-on; 200 regulator-always-on; 201 regulator-allowed-modes = <PCA9450_BUCK_MODE_AUTO 202 PCA9450_BUCK_MODE_FORCE_PWM>; 203 }; 204 buck6: BUCK6 { 205 regulator-name = "BUCK6"; 206 regulator-min-microvolt = <600000>; 207 regulator-max-microvolt = <3400000>; 208 regulator-boot-on; 209 regulator-always-on; 210 }; 211 212 ldo1: LDO1 { 213 regulator-name = "LDO1"; 214 regulator-min-microvolt = <1600000>; 215 regulator-max-microvolt = <3300000>; 216 regulator-boot-on; 217 regulator-always-on; 218 }; 219 ldo2: LDO2 { 220 regulator-name = "LDO2"; 221 regulator-min-microvolt = <800000>; 222 regulator-max-microvolt = <1150000>; 223 regulator-boot-on; 224 regulator-always-on; 225 }; 226 ldo3: LDO3 { 227 regulator-name = "LDO3"; 228 regulator-min-microvolt = <800000>; 229 regulator-max-microvolt = <3300000>; 230 regulator-boot-on; 231 regulator-always-on; 232 }; 233 ldo4: LDO4 { 234 regulator-name = "LDO4"; 235 regulator-min-microvolt = <800000>; 236 regulator-max-microvolt = <3300000>; 237 regulator-boot-on; 238 regulator-always-on; 239 }; 240 ldo5: LDO5 { 241 regulator-name = "LDO5"; 242 regulator-min-microvolt = <1800000>; 243 regulator-max-microvolt = <3300000>; 244 regulator-boot-on; 245 regulator-always-on; 246 }; 247 }; 248 }; 249 }; 250