1# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 2%YAML 1.2 3--- 4$id: http://devicetree.org/schemas/mfd/rockchip,rk817.yaml# 5$schema: http://devicetree.org/meta-schemas/core.yaml# 6 7title: RK817 Power Management Integrated Circuit 8 9maintainers: 10 - Chris Zhong <zyw@rock-chips.com> 11 - Zhang Qing <zhangqing@rock-chips.com> 12 13description: | 14 Rockchip RK817 series PMIC. This device consists of an i2c controlled MFD 15 that includes regulators, an RTC, a power button, an audio codec, and a 16 battery charger manager. 17 18properties: 19 compatible: 20 enum: 21 - rockchip,rk817 22 23 reg: 24 maxItems: 1 25 26 interrupts: 27 maxItems: 1 28 29 '#clock-cells': 30 description: 31 See <dt-bindings/clock/rockchip,rk808.h> for clock IDs. 32 minimum: 0 33 maximum: 1 34 35 clock-output-names: 36 description: 37 From common clock binding to override the default output clock name. 38 39 rockchip,system-power-controller: 40 type: boolean 41 description: 42 Telling whether or not this PMIC is controlling the system power. 43 44 wakeup-source: 45 type: boolean 46 description: 47 Device can be used as a wakeup source. 48 49 vcc1-supply: 50 description: 51 The input supply for DCDC_REG1. 52 53 vcc2-supply: 54 description: 55 The input supply for DCDC_REG2. 56 57 vcc3-supply: 58 description: 59 The input supply for DCDC_REG3. 60 61 vcc4-supply: 62 description: 63 The input supply for DCDC_REG4. 64 65 vcc5-supply: 66 description: 67 The input supply for LDO_REG1, LDO_REG2, and LDO_REG3. 68 69 vcc6-supply: 70 description: 71 The input supply for LDO_REG4, LDO_REG5, and LDO_REG6. 72 73 vcc7-supply: 74 description: 75 The input supply for LDO_REG7, LDO_REG8, and LDO_REG9. 76 77 vcc8-supply: 78 description: 79 The input supply for BOOST. 80 81 vcc9-supply: 82 description: 83 The input supply for OTG_SWITCH. 84 85 regulators: 86 type: object 87 patternProperties: 88 "^(LDO_REG[1-9]|DCDC_REG[1-4]|BOOST|OTG_SWITCH)$": 89 type: object 90 $ref: ../regulator/regulator.yaml# 91 unevaluatedProperties: false 92 93 clocks: 94 description: 95 The input clock for the audio codec. 96 97 clock-names: 98 description: 99 The clock name for the codec clock. 100 items: 101 - const: mclk 102 103 '#sound-dai-cells': 104 description: 105 Needed for the interpretation of sound dais. 106 const: 0 107 108 codec: 109 description: | 110 The child node for the codec to hold additional properties. If no 111 additional properties are required for the codec, this node can be 112 omitted. 113 type: object 114 properties: 115 rockchip,mic-in-differential: 116 type: boolean 117 description: 118 Describes if the microphone uses differential mode. 119 120allOf: 121 - if: 122 properties: 123 '#clock-cells': 124 const: 0 125 126 then: 127 properties: 128 clock-output-names: 129 maxItems: 1 130 131 else: 132 properties: 133 clock-output-names: 134 maxItems: 2 135 136required: 137 - compatible 138 - reg 139 - interrupts 140 - "#clock-cells" 141 142additionalProperties: false 143 144examples: 145 - | 146 #include <dt-bindings/clock/px30-cru.h> 147 #include <dt-bindings/pinctrl/rockchip.h> 148 #include <dt-bindings/interrupt-controller/irq.h> 149 #include <dt-bindings/gpio/gpio.h> 150 i2c { 151 #address-cells = <1>; 152 #size-cells = <0>; 153 154 rk817: pmic@20 { 155 compatible = "rockchip,rk817"; 156 reg = <0x20>; 157 interrupt-parent = <&gpio0>; 158 interrupts = <RK_PB2 IRQ_TYPE_LEVEL_LOW>; 159 clock-output-names = "rk808-clkout1", "xin32k"; 160 clock-names = "mclk"; 161 clocks = <&cru SCLK_I2S1_OUT>; 162 pinctrl-names = "default"; 163 pinctrl-0 = <&pmic_int>, <&i2s1_2ch_mclk>; 164 wakeup-source; 165 #clock-cells = <1>; 166 #sound-dai-cells = <0>; 167 168 vcc1-supply = <&vccsys>; 169 vcc2-supply = <&vccsys>; 170 vcc3-supply = <&vccsys>; 171 vcc4-supply = <&vccsys>; 172 vcc5-supply = <&vccsys>; 173 vcc6-supply = <&vccsys>; 174 vcc7-supply = <&vccsys>; 175 176 regulators { 177 vdd_logic: DCDC_REG1 { 178 regulator-name = "vdd_logic"; 179 regulator-min-microvolt = <950000>; 180 regulator-max-microvolt = <1150000>; 181 regulator-ramp-delay = <6001>; 182 regulator-always-on; 183 regulator-boot-on; 184 185 regulator-state-mem { 186 regulator-on-in-suspend; 187 regulator-suspend-microvolt = <950000>; 188 }; 189 }; 190 191 vdd_arm: DCDC_REG2 { 192 regulator-name = "vdd_arm"; 193 regulator-min-microvolt = <950000>; 194 regulator-max-microvolt = <1350000>; 195 regulator-ramp-delay = <6001>; 196 regulator-always-on; 197 regulator-boot-on; 198 199 regulator-state-mem { 200 regulator-off-in-suspend; 201 regulator-suspend-microvolt = <950000>; 202 }; 203 }; 204 205 vcc_ddr: DCDC_REG3 { 206 regulator-name = "vcc_ddr"; 207 regulator-always-on; 208 regulator-boot-on; 209 210 regulator-state-mem { 211 regulator-on-in-suspend; 212 }; 213 }; 214 215 vcc_3v3: DCDC_REG4 { 216 regulator-name = "vcc_3v3"; 217 regulator-min-microvolt = <3300000>; 218 regulator-max-microvolt = <3300000>; 219 regulator-always-on; 220 regulator-boot-on; 221 222 regulator-state-mem { 223 regulator-off-in-suspend; 224 regulator-suspend-microvolt = <3300000>; 225 }; 226 }; 227 228 vcc_1v8: LDO_REG2 { 229 regulator-name = "vcc_1v8"; 230 regulator-min-microvolt = <1800000>; 231 regulator-max-microvolt = <1800000>; 232 regulator-always-on; 233 regulator-boot-on; 234 235 regulator-state-mem { 236 regulator-on-in-suspend; 237 regulator-suspend-microvolt = <1800000>; 238 }; 239 }; 240 241 vdd_1v0: LDO_REG3 { 242 regulator-name = "vdd_1v0"; 243 regulator-min-microvolt = <1000000>; 244 regulator-max-microvolt = <1000000>; 245 regulator-always-on; 246 regulator-boot-on; 247 248 regulator-state-mem { 249 regulator-on-in-suspend; 250 regulator-suspend-microvolt = <1000000>; 251 }; 252 }; 253 254 vcc3v3_pmu: LDO_REG4 { 255 regulator-name = "vcc3v3_pmu"; 256 regulator-min-microvolt = <3300000>; 257 regulator-max-microvolt = <3300000>; 258 regulator-always-on; 259 regulator-boot-on; 260 261 regulator-state-mem { 262 regulator-on-in-suspend; 263 regulator-suspend-microvolt = <3300000>; 264 }; 265 }; 266 267 vccio_sd: LDO_REG5 { 268 regulator-name = "vccio_sd"; 269 regulator-min-microvolt = <1800000>; 270 regulator-max-microvolt = <3300000>; 271 regulator-always-on; 272 regulator-boot-on; 273 274 regulator-state-mem { 275 regulator-on-in-suspend; 276 regulator-suspend-microvolt = <3300000>; 277 }; 278 }; 279 280 vcc_sd: LDO_REG6 { 281 regulator-name = "vcc_sd"; 282 regulator-min-microvolt = <3300000>; 283 regulator-max-microvolt = <3300000>; 284 regulator-boot-on; 285 286 regulator-state-mem { 287 regulator-on-in-suspend; 288 regulator-suspend-microvolt = <3300000>; 289 }; 290 }; 291 292 vcc_bl: LDO_REG7 { 293 regulator-name = "vcc_bl"; 294 regulator-min-microvolt = <3300000>; 295 regulator-max-microvolt = <3300000>; 296 297 regulator-state-mem { 298 regulator-off-in-suspend; 299 regulator-suspend-microvolt = <3300000>; 300 }; 301 }; 302 303 vcc_lcd: LDO_REG8 { 304 regulator-name = "vcc_lcd"; 305 regulator-min-microvolt = <2800000>; 306 regulator-max-microvolt = <2800000>; 307 308 regulator-state-mem { 309 regulator-off-in-suspend; 310 regulator-suspend-microvolt = <2800000>; 311 }; 312 }; 313 314 vcc_cam: LDO_REG9 { 315 regulator-name = "vcc_cam"; 316 regulator-min-microvolt = <3000000>; 317 regulator-max-microvolt = <3000000>; 318 319 regulator-state-mem { 320 regulator-off-in-suspend; 321 regulator-suspend-microvolt = <3000000>; 322 }; 323 }; 324 }; 325 326 rk817_codec: codec { 327 rockchip,mic-in-differential; 328 }; 329 }; 330 }; 331