1RK8XX Power Management Integrated Circuit 2 3The rk8xx family current members: 4rk805 5rk808 6rk809 7rk817 8rk818 9 10Required properties: 11- compatible: "rockchip,rk805" 12- compatible: "rockchip,rk808" 13- compatible: "rockchip,rk809" 14- compatible: "rockchip,rk817" 15- compatible: "rockchip,rk818" 16- reg: I2C slave address 17- interrupts: the interrupt outputs of the controller. 18- #clock-cells: from common clock binding; shall be set to 1 (multiple clock 19 outputs). See <dt-bindings/clock/rockchip,rk808.h> for clock IDs. 20 21Optional properties: 22- clock-output-names: From common clock binding to override the 23 default output clock name 24- rockchip,system-power-controller: Telling whether or not this pmic is controlling 25 the system power. 26- wakeup-source: Device can be used as a wakeup source. 27 28Optional RK805 properties: 29- vcc1-supply: The input supply for DCDC_REG1 30- vcc2-supply: The input supply for DCDC_REG2 31- vcc3-supply: The input supply for DCDC_REG3 32- vcc4-supply: The input supply for DCDC_REG4 33- vcc5-supply: The input supply for LDO_REG1 and LDO_REG2 34- vcc6-supply: The input supply for LDO_REG3 35 36Optional RK808 properties: 37- vcc1-supply: The input supply for DCDC_REG1 38- vcc2-supply: The input supply for DCDC_REG2 39- vcc3-supply: The input supply for DCDC_REG3 40- vcc4-supply: The input supply for DCDC_REG4 41- vcc6-supply: The input supply for LDO_REG1 and LDO_REG2 42- vcc7-supply: The input supply for LDO_REG3 and LDO_REG7 43- vcc8-supply: The input supply for SWITCH_REG1 44- vcc9-supply: The input supply for LDO_REG4 and LDO_REG5 45- vcc10-supply: The input supply for LDO_REG6 46- vcc11-supply: The input supply for LDO_REG8 47- vcc12-supply: The input supply for SWITCH_REG2 48- dvs-gpios: buck1/2 can be controlled by gpio dvs, this is GPIO specifiers 49 for 2 host gpio's used for dvs. The format of the gpio specifier depends in 50 the gpio controller. If DVS GPIOs aren't present, voltage changes will happen 51 very quickly with no slow ramp time. 52 53Optional shared RK809 and RK817 properties: 54- vcc1-supply: The input supply for DCDC_REG1 55- vcc2-supply: The input supply for DCDC_REG2 56- vcc3-supply: The input supply for DCDC_REG3 57- vcc4-supply: The input supply for DCDC_REG4 58- vcc5-supply: The input supply for LDO_REG1, LDO_REG2, LDO_REG3 59- vcc6-supply: The input supply for LDO_REG4, LDO_REG5, LDO_REG6 60- vcc7-supply: The input supply for LDO_REG7, LDO_REG8, LDO_REG9 61 62Optional RK809 properties: 63- vcc8-supply: The input supply for SWITCH_REG1 64- vcc9-supply: The input supply for DCDC_REG5, SWITCH_REG2 65 66Optional RK817 properties: 67- clocks: The input clock for the audio codec 68- clock-names: The clock name for the codec clock. Should be "mclk". 69- #sound-dai-cells: Needed for the interpretation of sound dais. Should be 0. 70 71- vcc8-supply: The input supply for BOOST 72- vcc9-supply: The input supply for OTG_SWITCH 73- codec: The child node for the codec to hold additional properties. 74 If no additional properties are required for the codec, this 75 node can be omitted. 76 77- rockchip,mic-in-differential: Telling if the microphone uses differential 78 mode. Should be under the codec child node. 79 80Optional RK818 properties: 81- vcc1-supply: The input supply for DCDC_REG1 82- vcc2-supply: The input supply for DCDC_REG2 83- vcc3-supply: The input supply for DCDC_REG3 84- vcc4-supply: The input supply for DCDC_REG4 85- boost-supply: The input supply for DCDC_BOOST 86- vcc6-supply: The input supply for LDO_REG1 and LDO_REG2 87- vcc7-supply: The input supply for LDO_REG3, LDO_REG5 and LDO_REG7 88- vcc8-supply: The input supply for LDO_REG4, LDO_REG6 and LDO_REG8 89- vcc9-supply: The input supply for LDO_REG9 and SWITCH_REG 90- h_5v-supply: The input supply for HDMI_SWITCH 91- usb-supply: The input supply for OTG_SWITCH 92 93Regulators: All the regulators of RK8XX to be instantiated shall be 94listed in a child node named 'regulators'. Each regulator is represented 95by a child node of the 'regulators' node. 96 97 regulator-name { 98 /* standard regulator bindings here */ 99 }; 100 101Following regulators of the RK805 PMIC regulators are supported. Note that 102the 'n' in regulator name, as in DCDC_REGn or LDOn, represents the DCDC or LDO 103number as described in RK805 datasheet. 104 105 - DCDC_REGn 106 - valid values for n are 1 to 4. 107 - LDO_REGn 108 - valid values for n are 1 to 3 109 110Following regulators of the RK808 PMIC block are supported. Note that 111the 'n' in regulator name, as in DCDC_REGn or LDOn, represents the DCDC or LDO 112number as described in RK808 datasheet. 113 114 - DCDC_REGn 115 - valid values for n are 1 to 4. 116 - LDO_REGn 117 - valid values for n are 1 to 8. 118 - SWITCH_REGn 119 - valid values for n are 1 to 2 120 121Following regulators of the RK809 and RK817 PMIC blocks are supported. Note that 122the 'n' in regulator name, as in DCDC_REGn or LDOn, represents the DCDC or LDO 123number as described in RK809 and RK817 datasheets. 124 125 - DCDC_REGn 126 - valid values for n are 1 to 5 for RK809. 127 - valid values for n are 1 to 4 for RK817. 128 - LDO_REGn 129 - valid values for n are 1 to 9 for RK809. 130 - valid values for n are 1 to 9 for RK817. 131 - SWITCH_REGn 132 - valid values for n are 1 to 2 for RK809. 133 - BOOST for RK817 134 - OTG_SWITCH for RK817 135 136Following regulators of the RK818 PMIC block are supported. Note that 137the 'n' in regulator name, as in DCDC_REGn or LDOn, represents the DCDC or LDO 138number as described in RK818 datasheet. 139 140 - DCDC_REGn 141 - valid values for n are 1 to 4. 142 - LDO_REGn 143 - valid values for n are 1 to 9. 144 - SWITCH_REG 145 - HDMI_SWITCH 146 - OTG_SWITCH 147 148It is necessary to configure three pins for both the RK809 and RK817, the three 149pins are "gpio_ts" "gpio_gt" "gpio_slp". 150 The gpio_gt and gpio_ts pins support the gpio function. 151 The gpio_slp pin is for controlling the pmic states, as below: 152 - reset 153 - power down 154 - sleep 155 156Standard regulator bindings are used inside regulator subnodes. Check 157 Documentation/devicetree/bindings/regulator/regulator.txt 158for more details 159 160Example: 161 rk808: pmic@1b { 162 compatible = "rockchip,rk808"; 163 clock-output-names = "xin32k", "rk808-clkout2"; 164 interrupt-parent = <&gpio0>; 165 interrupts = <4 IRQ_TYPE_LEVEL_LOW>; 166 pinctrl-names = "default"; 167 pinctrl-0 = <&pmic_int &dvs_1 &dvs_2>; 168 dvs-gpios = <&gpio7 11 GPIO_ACTIVE_HIGH>, 169 <&gpio7 15 GPIO_ACTIVE_HIGH>; 170 reg = <0x1b>; 171 rockchip,system-power-controller; 172 wakeup-source; 173 #clock-cells = <1>; 174 175 vcc8-supply = <&vcc_18>; 176 vcc9-supply = <&vcc_io>; 177 vcc10-supply = <&vcc_io>; 178 vcc12-supply = <&vcc_io>; 179 vddio-supply = <&vccio_pmu>; 180 181 regulators { 182 vdd_cpu: DCDC_REG1 { 183 regulator-always-on; 184 regulator-boot-on; 185 regulator-min-microvolt = <750000>; 186 regulator-max-microvolt = <1300000>; 187 regulator-name = "vdd_arm"; 188 }; 189 190 vdd_gpu: DCDC_REG2 { 191 regulator-always-on; 192 regulator-boot-on; 193 regulator-min-microvolt = <850000>; 194 regulator-max-microvolt = <1250000>; 195 regulator-name = "vdd_gpu"; 196 }; 197 198 vcc_ddr: DCDC_REG3 { 199 regulator-always-on; 200 regulator-boot-on; 201 regulator-name = "vcc_ddr"; 202 }; 203 204 vcc_io: DCDC_REG4 { 205 regulator-always-on; 206 regulator-boot-on; 207 regulator-min-microvolt = <3300000>; 208 regulator-max-microvolt = <3300000>; 209 regulator-name = "vcc_io"; 210 }; 211 212 vccio_pmu: LDO_REG1 { 213 regulator-always-on; 214 regulator-boot-on; 215 regulator-min-microvolt = <3300000>; 216 regulator-max-microvolt = <3300000>; 217 regulator-name = "vccio_pmu"; 218 }; 219 220 vcc_tp: LDO_REG2 { 221 regulator-always-on; 222 regulator-boot-on; 223 regulator-min-microvolt = <3300000>; 224 regulator-max-microvolt = <3300000>; 225 regulator-name = "vcc_tp"; 226 }; 227 228 vdd_10: LDO_REG3 { 229 regulator-always-on; 230 regulator-boot-on; 231 regulator-min-microvolt = <1000000>; 232 regulator-max-microvolt = <1000000>; 233 regulator-name = "vdd_10"; 234 }; 235 236 vcc18_lcd: LDO_REG4 { 237 regulator-always-on; 238 regulator-boot-on; 239 regulator-min-microvolt = <1800000>; 240 regulator-max-microvolt = <1800000>; 241 regulator-name = "vcc18_lcd"; 242 }; 243 244 vccio_sd: LDO_REG5 { 245 regulator-always-on; 246 regulator-boot-on; 247 regulator-min-microvolt = <1800000>; 248 regulator-max-microvolt = <3300000>; 249 regulator-name = "vccio_sd"; 250 }; 251 252 vdd10_lcd: LDO_REG6 { 253 regulator-always-on; 254 regulator-boot-on; 255 regulator-min-microvolt = <1000000>; 256 regulator-max-microvolt = <1000000>; 257 regulator-name = "vdd10_lcd"; 258 }; 259 260 vcc_18: LDO_REG7 { 261 regulator-always-on; 262 regulator-boot-on; 263 regulator-min-microvolt = <1800000>; 264 regulator-max-microvolt = <1800000>; 265 regulator-name = "vcc_18"; 266 }; 267 268 vcca_codec: LDO_REG8 { 269 regulator-always-on; 270 regulator-boot-on; 271 regulator-min-microvolt = <3300000>; 272 regulator-max-microvolt = <3300000>; 273 regulator-name = "vcca_codec"; 274 }; 275 276 vcc_wl: SWITCH_REG1 { 277 regulator-always-on; 278 regulator-boot-on; 279 regulator-name = "vcc_wl"; 280 }; 281 282 vcc_lcd: SWITCH_REG2 { 283 regulator-always-on; 284 regulator-boot-on; 285 regulator-name = "vcc_lcd"; 286 }; 287 }; 288 }; 289 290 rk817: pmic@20 { 291 compatible = "rockchip,rk817"; 292 reg = <0x20>; 293 interrupt-parent = <&gpio0>; 294 interrupts = <RK_PB2 IRQ_TYPE_LEVEL_LOW>; 295 clock-output-names = "rk808-clkout1", "xin32k"; 296 clock-names = "mclk"; 297 clocks = <&cru SCLK_I2S1_OUT>; 298 pinctrl-names = "default"; 299 pinctrl-0 = <&pmic_int>, <&i2s1_2ch_mclk>; 300 wakeup-source; 301 #clock-cells = <1>; 302 #sound-dai-cells = <0>; 303 304 vcc1-supply = <&vccsys>; 305 vcc2-supply = <&vccsys>; 306 vcc3-supply = <&vccsys>; 307 vcc4-supply = <&vccsys>; 308 vcc5-supply = <&vccsys>; 309 vcc6-supply = <&vccsys>; 310 vcc7-supply = <&vccsys>; 311 312 regulators { 313 vdd_logic: DCDC_REG1 { 314 regulator-name = "vdd_logic"; 315 regulator-min-microvolt = <950000>; 316 regulator-max-microvolt = <1150000>; 317 regulator-ramp-delay = <6001>; 318 regulator-always-on; 319 regulator-boot-on; 320 321 regulator-state-mem { 322 regulator-on-in-suspend; 323 regulator-suspend-microvolt = <950000>; 324 }; 325 }; 326 327 vdd_arm: DCDC_REG2 { 328 regulator-name = "vdd_arm"; 329 regulator-min-microvolt = <950000>; 330 regulator-max-microvolt = <1350000>; 331 regulator-ramp-delay = <6001>; 332 regulator-always-on; 333 regulator-boot-on; 334 335 regulator-state-mem { 336 regulator-off-in-suspend; 337 regulator-suspend-microvolt = <950000>; 338 }; 339 }; 340 341 vcc_ddr: DCDC_REG3 { 342 regulator-name = "vcc_ddr"; 343 regulator-always-on; 344 regulator-boot-on; 345 346 regulator-state-mem { 347 regulator-on-in-suspend; 348 }; 349 }; 350 351 vcc_3v3: DCDC_REG4 { 352 regulator-name = "vcc_3v3"; 353 regulator-min-microvolt = <3300000>; 354 regulator-max-microvolt = <3300000>; 355 regulator-always-on; 356 regulator-boot-on; 357 358 regulator-state-mem { 359 regulator-off-in-suspend; 360 regulator-suspend-microvolt = <3300000>; 361 }; 362 }; 363 364 vcc_1v8: LDO_REG2 { 365 regulator-name = "vcc_1v8"; 366 regulator-min-microvolt = <1800000>; 367 regulator-max-microvolt = <1800000>; 368 regulator-always-on; 369 regulator-boot-on; 370 371 regulator-state-mem { 372 regulator-on-in-suspend; 373 regulator-suspend-microvolt = <1800000>; 374 }; 375 }; 376 377 vdd_1v0: LDO_REG3 { 378 regulator-name = "vdd_1v0"; 379 regulator-min-microvolt = <1000000>; 380 regulator-max-microvolt = <1000000>; 381 regulator-always-on; 382 regulator-boot-on; 383 384 regulator-state-mem { 385 regulator-on-in-suspend; 386 regulator-suspend-microvolt = <1000000>; 387 }; 388 }; 389 390 vcc3v3_pmu: LDO_REG4 { 391 regulator-name = "vcc3v3_pmu"; 392 regulator-min-microvolt = <3300000>; 393 regulator-max-microvolt = <3300000>; 394 regulator-always-on; 395 regulator-boot-on; 396 397 regulator-state-mem { 398 regulator-on-in-suspend; 399 regulator-suspend-microvolt = <3300000>; 400 }; 401 }; 402 403 vccio_sd: LDO_REG5 { 404 regulator-name = "vccio_sd"; 405 regulator-min-microvolt = <1800000>; 406 regulator-max-microvolt = <3300000>; 407 regulator-always-on; 408 regulator-boot-on; 409 410 regulator-state-mem { 411 regulator-on-in-suspend; 412 regulator-suspend-microvolt = <3300000>; 413 }; 414 }; 415 416 vcc_sd: LDO_REG6 { 417 regulator-name = "vcc_sd"; 418 regulator-min-microvolt = <3300000>; 419 regulator-max-microvolt = <3300000>; 420 regulator-boot-on; 421 422 regulator-state-mem { 423 regulator-on-in-suspend; 424 regulator-suspend-microvolt = <3300000>; 425 }; 426 }; 427 428 vcc_bl: LDO_REG7 { 429 regulator-name = "vcc_bl"; 430 regulator-min-microvolt = <3300000>; 431 regulator-max-microvolt = <3300000>; 432 433 regulator-state-mem { 434 regulator-off-in-suspend; 435 regulator-suspend-microvolt = <3300000>; 436 }; 437 }; 438 439 vcc_lcd: LDO_REG8 { 440 regulator-name = "vcc_lcd"; 441 regulator-min-microvolt = <2800000>; 442 regulator-max-microvolt = <2800000>; 443 444 regulator-state-mem { 445 regulator-off-in-suspend; 446 regulator-suspend-microvolt = <2800000>; 447 }; 448 }; 449 450 vcc_cam: LDO_REG9 { 451 regulator-name = "vcc_cam"; 452 regulator-min-microvolt = <3000000>; 453 regulator-max-microvolt = <3000000>; 454 455 regulator-state-mem { 456 regulator-off-in-suspend; 457 regulator-suspend-microvolt = <3000000>; 458 }; 459 }; 460 }; 461 462 rk817_codec: codec { 463 rockchip,mic-in-differential; 464 }; 465 }; 466