1// SPDX-License-Identifier: GPL-2.0+ 2/* 3 * Copyright (c) 2018 Linaro Ltd. 4 */ 5 6#include <dt-bindings/pwm/pwm.h> 7#include <dt-bindings/pinctrl/rockchip.h> 8#include "rk3399.dtsi" 9 10/ { 11 vcc1v8_s0: vcc1v8-s0 { 12 compatible = "regulator-fixed"; 13 regulator-name = "vcc1v8_s0"; 14 regulator-min-microvolt = <1800000>; 15 regulator-max-microvolt = <1800000>; 16 regulator-always-on; 17 }; 18 19 vcc_sys: vcc-sys { 20 compatible = "regulator-fixed"; 21 regulator-name = "vcc_sys"; 22 regulator-min-microvolt = <5000000>; 23 regulator-max-microvolt = <5000000>; 24 regulator-always-on; 25 }; 26 27 vcc3v3_sys: vcc3v3-sys { 28 compatible = "regulator-fixed"; 29 regulator-name = "vcc3v3_sys"; 30 regulator-min-microvolt = <3300000>; 31 regulator-max-microvolt = <3300000>; 32 regulator-always-on; 33 vin-supply = <&vcc_sys>; 34 }; 35 36 vcc3v3_pcie: vcc3v3-pcie-regulator { 37 compatible = "regulator-fixed"; 38 enable-active-high; 39 pinctrl-names = "default"; 40 pinctrl-0 = <&pcie_drv>; 41 regulator-boot-on; 42 regulator-name = "vcc3v3_pcie"; 43 regulator-min-microvolt = <3300000>; 44 regulator-max-microvolt = <3300000>; 45 vin-supply = <&vcc3v3_sys>; 46 }; 47 48 vcc5v0_host: vcc5v0-host-regulator { 49 compatible = "regulator-fixed"; 50 enable-active-high; 51 pinctrl-names = "default"; 52 pinctrl-0 = <&host_vbus_drv>; 53 regulator-name = "vcc5v0_host"; 54 regulator-min-microvolt = <5000000>; 55 regulator-max-microvolt = <5000000>; 56 regulator-always-on; 57 vin-supply = <&vcc_sys>; 58 }; 59 60 vdd_log: vdd-log { 61 compatible = "pwm-regulator"; 62 pwms = <&pwm2 0 25000 0>; 63 regulator-name = "vdd_log"; 64 regulator-min-microvolt = <800000>; 65 regulator-max-microvolt = <1400000>; 66 regulator-always-on; 67 regulator-boot-on; 68 vin-supply = <&vcc_sys>; 69 }; 70 71}; 72 73&cpu_l0 { 74 cpu-supply = <&vdd_cpu_l>; 75}; 76 77&cpu_l1 { 78 cpu-supply = <&vdd_cpu_l>; 79}; 80 81&cpu_l2 { 82 cpu-supply = <&vdd_cpu_l>; 83}; 84 85&cpu_l3 { 86 cpu-supply = <&vdd_cpu_l>; 87}; 88 89&cpu_b0 { 90 cpu-supply = <&vdd_cpu_b>; 91}; 92 93&cpu_b1 { 94 cpu-supply = <&vdd_cpu_b>; 95}; 96 97&emmc_phy { 98 status = "okay"; 99}; 100 101&hdmi { 102 status = "okay"; 103}; 104 105&i2c0 { 106 clock-frequency = <400000>; 107 i2c-scl-rising-time-ns = <168>; 108 i2c-scl-falling-time-ns = <4>; 109 status = "okay"; 110 111 vdd_cpu_b: regulator@40 { 112 compatible = "silergy,syr827"; 113 reg = <0x40>; 114 fcs,suspend-voltage-selector = <1>; 115 regulator-name = "vdd_cpu_b"; 116 regulator-min-microvolt = <712500>; 117 regulator-max-microvolt = <1500000>; 118 regulator-ramp-delay = <1000>; 119 regulator-always-on; 120 regulator-boot-on; 121 vin-supply = <&vcc_sys>; 122 status = "okay"; 123 124 regulator-state-mem { 125 regulator-off-in-suspend; 126 }; 127 }; 128 129 vdd_gpu: regulator@41 { 130 compatible = "silergy,syr828"; 131 reg = <0x41>; 132 fcs,suspend-voltage-selector = <1>; 133 regulator-name = "vdd_gpu"; 134 regulator-min-microvolt = <712500>; 135 regulator-max-microvolt = <1500000>; 136 regulator-ramp-delay = <1000>; 137 regulator-always-on; 138 regulator-boot-on; 139 vin-supply = <&vcc_sys>; 140 regulator-state-mem { 141 regulator-off-in-suspend; 142 }; 143 }; 144 145 rk808: pmic@1b { 146 compatible = "rockchip,rk808"; 147 reg = <0x1b>; 148 interrupt-parent = <&gpio1>; 149 interrupts = <21 IRQ_TYPE_LEVEL_LOW>; 150 pinctrl-names = "default"; 151 pinctrl-0 = <&pmic_int_l>; 152 rockchip,system-power-controller; 153 wakeup-source; 154 #clock-cells = <1>; 155 clock-output-names = "xin32k", "rk808-clkout2"; 156 157 vcc1-supply = <&vcc_sys>; 158 vcc2-supply = <&vcc_sys>; 159 vcc3-supply = <&vcc_sys>; 160 vcc4-supply = <&vcc_sys>; 161 vcc6-supply = <&vcc_sys>; 162 vcc7-supply = <&vcc_sys>; 163 vcc8-supply = <&vcc3v3_sys>; 164 vcc9-supply = <&vcc_sys>; 165 vcc10-supply = <&vcc_sys>; 166 vcc11-supply = <&vcc_sys>; 167 vcc12-supply = <&vcc3v3_sys>; 168 vddio-supply = <&vcc_1v8>; 169 170 regulators { 171 vdd_center: DCDC_REG1 { 172 regulator-name = "vdd_center"; 173 regulator-min-microvolt = <750000>; 174 regulator-max-microvolt = <1350000>; 175 regulator-always-on; 176 regulator-boot-on; 177 regulator-state-mem { 178 regulator-off-in-suspend; 179 }; 180 }; 181 182 vdd_cpu_l: DCDC_REG2 { 183 regulator-name = "vdd_cpu_l"; 184 regulator-min-microvolt = <750000>; 185 regulator-max-microvolt = <1350000>; 186 regulator-always-on; 187 regulator-boot-on; 188 regulator-state-mem { 189 regulator-off-in-suspend; 190 }; 191 }; 192 193 vcc_ddr: DCDC_REG3 { 194 regulator-name = "vcc_ddr"; 195 regulator-always-on; 196 regulator-boot-on; 197 regulator-state-mem { 198 regulator-on-in-suspend; 199 }; 200 }; 201 202 vcc_1v8: DCDC_REG4 { 203 regulator-name = "vcc_1v8"; 204 regulator-min-microvolt = <1800000>; 205 regulator-max-microvolt = <1800000>; 206 regulator-always-on; 207 regulator-boot-on; 208 regulator-state-mem { 209 regulator-on-in-suspend; 210 regulator-suspend-microvolt = <1800000>; 211 }; 212 }; 213 214 vcc1v8_dvp: LDO_REG1 { 215 regulator-name = "vcc1v8_dvp"; 216 regulator-min-microvolt = <1800000>; 217 regulator-max-microvolt = <1800000>; 218 regulator-always-on; 219 regulator-boot-on; 220 regulator-state-mem { 221 regulator-on-in-suspend; 222 regulator-suspend-microvolt = <1800000>; 223 }; 224 }; 225 226 vcca1v8_hdmi: LDO_REG2 { 227 regulator-name = "vcca1v8_hdmi"; 228 regulator-min-microvolt = <1800000>; 229 regulator-max-microvolt = <1800000>; 230 regulator-always-on; 231 regulator-boot-on; 232 regulator-state-mem { 233 regulator-on-in-suspend; 234 regulator-suspend-microvolt = <1800000>; 235 }; 236 }; 237 238 vcca_1v8: LDO_REG3 { 239 regulator-name = "vcca_1v8"; 240 regulator-min-microvolt = <1800000>; 241 regulator-max-microvolt = <1800000>; 242 regulator-always-on; 243 regulator-boot-on; 244 regulator-state-mem { 245 regulator-on-in-suspend; 246 regulator-suspend-microvolt = <1800000>; 247 }; 248 }; 249 250 vcc_sd: LDO_REG4 { 251 regulator-name = "vcc_sd"; 252 regulator-min-microvolt = <1800000>; 253 regulator-max-microvolt = <3300000>; 254 regulator-always-on; 255 regulator-boot-on; 256 regulator-state-mem { 257 regulator-on-in-suspend; 258 regulator-suspend-microvolt = <3300000>; 259 }; 260 }; 261 262 vcc3v0_sd: LDO_REG5 { 263 regulator-name = "vcc3v0_sd"; 264 regulator-min-microvolt = <3000000>; 265 regulator-max-microvolt = <3000000>; 266 regulator-always-on; 267 regulator-boot-on; 268 regulator-state-mem { 269 regulator-on-in-suspend; 270 regulator-suspend-microvolt = <3000000>; 271 }; 272 }; 273 274 vcc_1v5: LDO_REG6 { 275 regulator-name = "vcc_1v5"; 276 regulator-min-microvolt = <1500000>; 277 regulator-max-microvolt = <1500000>; 278 regulator-always-on; 279 regulator-boot-on; 280 regulator-state-mem { 281 regulator-on-in-suspend; 282 regulator-suspend-microvolt = <1500000>; 283 }; 284 }; 285 286 vcca0v9_hdmi: LDO_REG7 { 287 regulator-name = "vcca0v9_hdmi"; 288 regulator-min-microvolt = <900000>; 289 regulator-max-microvolt = <900000>; 290 regulator-always-on; 291 regulator-boot-on; 292 regulator-state-mem { 293 regulator-on-in-suspend; 294 regulator-suspend-microvolt = <900000>; 295 }; 296 }; 297 298 vcc_3v0: LDO_REG8 { 299 regulator-name = "vcc_3v0"; 300 regulator-min-microvolt = <3000000>; 301 regulator-max-microvolt = <3000000>; 302 regulator-always-on; 303 regulator-boot-on; 304 regulator-state-mem { 305 regulator-on-in-suspend; 306 regulator-suspend-microvolt = <3000000>; 307 }; 308 }; 309 310 vcc3v3_s3: SWITCH_REG1 { 311 regulator-name = "vcc3v3_s3"; 312 regulator-always-on; 313 regulator-boot-on; 314 regulator-state-mem { 315 regulator-on-in-suspend; 316 }; 317 }; 318 319 vcc3v3_s0: SWITCH_REG2 { 320 regulator-name = "vcc3v3_s0"; 321 regulator-always-on; 322 regulator-boot-on; 323 regulator-state-mem { 324 regulator-on-in-suspend; 325 }; 326 }; 327 }; 328 }; 329}; 330 331&i2c1 { 332 status = "okay"; 333}; 334 335&i2c2 { 336 status = "okay"; 337}; 338 339&i2c3 { 340 status = "okay"; 341}; 342 343&i2c4 { 344 status = "okay"; 345}; 346 347&io_domains { 348 bt656-supply = <&vcc1v8_s0>; /* bt656_gpio2ab_ms */ 349 audio-supply = <&vcc1v8_s0>; /* audio_gpio3d4a_ms */ 350 sdmmc-supply = <&vcc_sd>; /* sdmmc_gpio4b_ms */ 351 gpio1830-supply = <&vcc_3v0>; /* gpio1833_gpio4cd_ms */ 352 status = "okay"; 353}; 354 355&pcie_phy { 356 status = "okay"; 357}; 358 359&pcie0 { 360 num-lanes = <4>; 361 pinctrl-names = "default"; 362 pinctrl-0 = <&pcie_clkreqn_cpm>; 363 vpcie3v3-supply = <&vcc3v3_pcie>; 364 status = "okay"; 365}; 366 367&pmu_io_domains { 368 pmu1830-supply = <&vcc_1v8>; 369 status = "okay"; 370}; 371 372&pinctrl { 373 sdmmc { 374 sdmmc_bus1: sdmmc-bus1 { 375 rockchip,pins = 376 <4 8 RK_FUNC_1 &pcfg_pull_up_8ma>; 377 }; 378 379 sdmmc_bus4: sdmmc-bus4 { 380 rockchip,pins = 381 <4 8 RK_FUNC_1 &pcfg_pull_up_8ma>, 382 <4 9 RK_FUNC_1 &pcfg_pull_up_8ma>, 383 <4 10 RK_FUNC_1 &pcfg_pull_up_8ma>, 384 <4 11 RK_FUNC_1 &pcfg_pull_up_8ma>; 385 }; 386 387 sdmmc_clk: sdmmc-clk { 388 rockchip,pins = 389 <4 12 RK_FUNC_1 &pcfg_pull_none_18ma>; 390 }; 391 392 sdmmc_cmd: sdmmc-cmd { 393 rockchip,pins = 394 <4 13 RK_FUNC_1 &pcfg_pull_up_8ma>; 395 }; 396 }; 397 398 pmic { 399 pmic_int_l: pmic-int-l { 400 rockchip,pins = 401 <1 21 RK_FUNC_GPIO &pcfg_pull_up>; 402 }; 403 404 vsel1_gpio: vsel1-gpio { 405 rockchip,pins = 406 <1 17 RK_FUNC_GPIO &pcfg_pull_down>; 407 }; 408 409 vsel2_gpio: vsel2-gpio { 410 rockchip,pins = 411 <1 14 RK_FUNC_GPIO &pcfg_pull_down>; 412 }; 413 }; 414}; 415 416&pwm2 { 417 status = "okay"; 418}; 419 420&pwm3 { 421 status = "okay"; 422}; 423 424&sdhci { 425 bus-width = <8>; 426 mmc-hs400-1_8v; 427 mmc-hs400-enhanced-strobe; 428 non-removable; 429 status = "okay"; 430}; 431 432&sdmmc { 433 bus-width = <4>; 434 cap-mmc-highspeed; 435 cap-sd-highspeed; 436 clock-frequency = <100000000>; 437 clock-freq-min-max = <100000 100000000>; 438 cd-gpios = <&gpio0 7 GPIO_ACTIVE_LOW>; 439 disable-wp; 440 sd-uhs-sdr104; 441 vqmmc-supply = <&vcc_sd>; 442 card-detect-delay = <800>; 443 pinctrl-names = "default"; 444 pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_bus4>; 445 status = "okay"; 446}; 447 448&uart0 { 449 pinctrl-names = "default"; 450 pinctrl-0 = <&uart0_xfer &uart0_cts>; 451 status = "okay"; 452}; 453 454&uart2 { 455 status = "okay"; 456}; 457 458&u2phy0 { 459 status = "okay"; 460}; 461 462&u2phy1 { 463 status = "okay"; 464}; 465 466&u2phy0_host { 467 phy-supply = <&vcc5v0_host>; 468 status = "okay"; 469}; 470 471&u2phy1_host { 472 phy-supply = <&vcc5v0_host>; 473 status = "okay"; 474}; 475 476&u2phy0_otg { 477 status = "okay"; 478}; 479 480&u2phy1_otg { 481 status = "okay"; 482}; 483 484&usb_host0_ehci { 485 status = "okay"; 486}; 487 488&usb_host0_ohci { 489 status = "okay"; 490}; 491 492&usb_host1_ehci { 493 status = "okay"; 494}; 495 496&usb_host1_ohci { 497 status = "okay"; 498}; 499 500&vopb { 501 status = "okay"; 502}; 503 504&vopl { 505 status = "okay"; 506}; 507