1// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2/* 3 * Copyright (c) 2017 Fuzhou Rockchip Electronics Co., Ltd. 4 */ 5 6#include "rk3288.dtsi" 7#include <dt-bindings/input/input.h> 8#include <dt-bindings/clock/rockchip,rk808.h> 9 10/ { 11 chosen { 12 stdout-path = "serial2:115200n8"; 13 }; 14 15 memory { 16 reg = <0x0 0x0 0x0 0x80000000>; 17 device_type = "memory"; 18 }; 19 20 ext_gmac: external-gmac-clock { 21 compatible = "fixed-clock"; 22 #clock-cells = <0>; 23 clock-frequency = <125000000>; 24 clock-output-names = "ext_gmac"; 25 }; 26 27 gpio-keys { 28 compatible = "gpio-keys"; 29 #address-cells = <1>; 30 #size-cells = <0>; 31 autorepeat; 32 33 pinctrl-names = "default"; 34 pinctrl-0 = <&pwrbtn>; 35 36 button@0 { 37 gpios = <&gpio0 RK_PA5 GPIO_ACTIVE_LOW>; 38 linux,code = <KEY_POWER>; 39 label = "GPIO Key Power"; 40 linux,input-type = <1>; 41 wakeup-source; 42 debounce-interval = <100>; 43 }; 44 }; 45 46 gpio-leds { 47 compatible = "gpio-leds"; 48 49 act_led: led-0 { 50 gpios = <&gpio1 RK_PD0 GPIO_ACTIVE_HIGH>; 51 linux,default-trigger = "mmc0"; 52 }; 53 54 heartbeat_led: led-1 { 55 gpios = <&gpio1 RK_PD1 GPIO_ACTIVE_HIGH>; 56 linux,default-trigger = "heartbeat"; 57 }; 58 59 pwr_led: led-2 { 60 gpios = <&gpio0 RK_PA3 GPIO_ACTIVE_HIGH>; 61 linux,default-trigger = "default-on"; 62 }; 63 }; 64 65 sdio_pwrseq: sdio-pwrseq { 66 compatible = "mmc-pwrseq-simple"; 67 clocks = <&rk808 RK808_CLKOUT1>; 68 clock-names = "ext_clock"; 69 pinctrl-names = "default"; 70 pinctrl-0 = <&wifi_enable>; 71 reset-gpios = <&gpio4 RK_PD3 GPIO_ACTIVE_LOW>, 72 <&gpio4 RK_PD4 GPIO_ACTIVE_LOW>; 73 }; 74 75 sound { 76 compatible = "simple-audio-card"; 77 simple-audio-card,format = "i2s"; 78 simple-audio-card,name = "rockchip,tinker-codec"; 79 simple-audio-card,mclk-fs = <512>; 80 81 simple-audio-card,codec { 82 sound-dai = <&hdmi>; 83 }; 84 85 simple-audio-card,cpu { 86 sound-dai = <&i2s>; 87 }; 88 }; 89 90 vcc_sys: vsys-regulator { 91 compatible = "regulator-fixed"; 92 regulator-name = "vcc_sys"; 93 regulator-min-microvolt = <5000000>; 94 regulator-max-microvolt = <5000000>; 95 regulator-always-on; 96 regulator-boot-on; 97 }; 98 99 vcc_sd: sdmmc-regulator { 100 compatible = "regulator-fixed"; 101 gpio = <&gpio7 11 GPIO_ACTIVE_LOW>; 102 pinctrl-names = "default"; 103 pinctrl-0 = <&sdmmc_pwr>; 104 regulator-name = "vcc_sd"; 105 regulator-min-microvolt = <3300000>; 106 regulator-max-microvolt = <3300000>; 107 startup-delay-us = <100000>; 108 vin-supply = <&vcc_io>; 109 }; 110}; 111 112&cpu0 { 113 cpu0-supply = <&vdd_cpu>; 114}; 115 116&cpu_opp_table { 117 opp-1704000000 { 118 opp-hz = /bits/ 64 <1704000000>; 119 opp-microvolt = <1350000>; 120 }; 121 opp-1800000000 { 122 opp-hz = /bits/ 64 <1800000000>; 123 opp-microvolt = <1400000>; 124 }; 125}; 126 127&gmac { 128 assigned-clocks = <&cru SCLK_MAC>; 129 assigned-clock-parents = <&ext_gmac>; 130 clock_in_out = "input"; 131 phy-mode = "rgmii"; 132 phy-supply = <&vcc33_lan>; 133 pinctrl-names = "default"; 134 pinctrl-0 = <&rgmii_pins>; 135 snps,reset-gpio = <&gpio4 7 0>; 136 snps,reset-active-low; 137 snps,reset-delays-us = <0 10000 1000000>; 138 tx_delay = <0x30>; 139 rx_delay = <0x10>; 140 status = "okay"; 141}; 142 143&gpu { 144 mali-supply = <&vdd_gpu>; 145 status = "okay"; 146}; 147 148&hdmi { 149 ddc-i2c-bus = <&i2c5>; 150 status = "okay"; 151}; 152 153&i2c0 { 154 clock-frequency = <400000>; 155 status = "okay"; 156 157 rk808: pmic@1b { 158 compatible = "rockchip,rk808"; 159 reg = <0x1b>; 160 interrupt-parent = <&gpio0>; 161 interrupts = <4 IRQ_TYPE_LEVEL_LOW>; 162 #clock-cells = <1>; 163 clock-output-names = "xin32k", "rk808-clkout2"; 164 dvs-gpios = <&gpio0 11 GPIO_ACTIVE_HIGH>, 165 <&gpio0 12 GPIO_ACTIVE_HIGH>; 166 pinctrl-names = "default"; 167 pinctrl-0 = <&pmic_int &global_pwroff &dvs_1 &dvs_2>; 168 rockchip,system-power-controller; 169 wakeup-source; 170 171 vcc1-supply = <&vcc_sys>; 172 vcc2-supply = <&vcc_sys>; 173 vcc3-supply = <&vcc_sys>; 174 vcc4-supply = <&vcc_sys>; 175 vcc6-supply = <&vcc_sys>; 176 vcc7-supply = <&vcc_sys>; 177 vcc8-supply = <&vcc_io>; 178 vcc9-supply = <&vcc_io>; 179 vcc10-supply = <&vcc_io>; 180 vcc11-supply = <&vcc_sys>; 181 vcc12-supply = <&vcc_io>; 182 vddio-supply = <&vcc_io>; 183 184 regulators { 185 vdd_cpu: DCDC_REG1 { 186 regulator-always-on; 187 regulator-boot-on; 188 regulator-min-microvolt = <750000>; 189 regulator-max-microvolt = <1400000>; 190 regulator-name = "vdd_arm"; 191 regulator-ramp-delay = <6000>; 192 regulator-state-mem { 193 regulator-off-in-suspend; 194 }; 195 }; 196 197 vdd_gpu: DCDC_REG2 { 198 regulator-always-on; 199 regulator-boot-on; 200 regulator-min-microvolt = <850000>; 201 regulator-max-microvolt = <1250000>; 202 regulator-name = "vdd_gpu"; 203 regulator-ramp-delay = <6000>; 204 regulator-state-mem { 205 regulator-on-in-suspend; 206 regulator-suspend-microvolt = <1000000>; 207 }; 208 }; 209 210 vcc_ddr: DCDC_REG3 { 211 regulator-always-on; 212 regulator-boot-on; 213 regulator-name = "vcc_ddr"; 214 regulator-state-mem { 215 regulator-on-in-suspend; 216 }; 217 }; 218 219 vcc_io: DCDC_REG4 { 220 regulator-always-on; 221 regulator-boot-on; 222 regulator-min-microvolt = <3300000>; 223 regulator-max-microvolt = <3300000>; 224 regulator-name = "vcc_io"; 225 regulator-state-mem { 226 regulator-on-in-suspend; 227 regulator-suspend-microvolt = <3300000>; 228 }; 229 }; 230 231 vcc18_ldo1: LDO_REG1 { 232 regulator-always-on; 233 regulator-boot-on; 234 regulator-min-microvolt = <1800000>; 235 regulator-max-microvolt = <1800000>; 236 regulator-name = "vcc18_ldo1"; 237 regulator-state-mem { 238 regulator-on-in-suspend; 239 regulator-suspend-microvolt = <1800000>; 240 }; 241 }; 242 243 vcc33_mipi: LDO_REG2 { 244 regulator-always-on; 245 regulator-boot-on; 246 regulator-min-microvolt = <3300000>; 247 regulator-max-microvolt = <3300000>; 248 regulator-name = "vcc33_mipi"; 249 regulator-state-mem { 250 regulator-off-in-suspend; 251 }; 252 }; 253 254 vdd_10: LDO_REG3 { 255 regulator-always-on; 256 regulator-boot-on; 257 regulator-min-microvolt = <1000000>; 258 regulator-max-microvolt = <1000000>; 259 regulator-name = "vdd_10"; 260 regulator-state-mem { 261 regulator-on-in-suspend; 262 regulator-suspend-microvolt = <1000000>; 263 }; 264 }; 265 266 vcc18_codec: LDO_REG4 { 267 regulator-always-on; 268 regulator-boot-on; 269 regulator-min-microvolt = <1800000>; 270 regulator-max-microvolt = <1800000>; 271 regulator-name = "vcc18_codec"; 272 regulator-state-mem { 273 regulator-on-in-suspend; 274 regulator-suspend-microvolt = <1800000>; 275 }; 276 }; 277 278 vccio_sd: LDO_REG5 { 279 regulator-always-on; 280 regulator-boot-on; 281 regulator-min-microvolt = <1800000>; 282 regulator-max-microvolt = <3300000>; 283 regulator-name = "vccio_sd"; 284 regulator-state-mem { 285 regulator-on-in-suspend; 286 regulator-suspend-microvolt = <3300000>; 287 }; 288 }; 289 290 vdd10_lcd: LDO_REG6 { 291 regulator-always-on; 292 regulator-boot-on; 293 regulator-min-microvolt = <1000000>; 294 regulator-max-microvolt = <1000000>; 295 regulator-name = "vdd10_lcd"; 296 regulator-state-mem { 297 regulator-on-in-suspend; 298 regulator-suspend-microvolt = <1000000>; 299 }; 300 }; 301 302 vcc_18: LDO_REG7 { 303 regulator-always-on; 304 regulator-boot-on; 305 regulator-min-microvolt = <1800000>; 306 regulator-max-microvolt = <1800000>; 307 regulator-name = "vcc_18"; 308 regulator-state-mem { 309 regulator-on-in-suspend; 310 regulator-suspend-microvolt = <1800000>; 311 }; 312 }; 313 314 vcc18_lcd: LDO_REG8 { 315 regulator-always-on; 316 regulator-boot-on; 317 regulator-min-microvolt = <1800000>; 318 regulator-max-microvolt = <1800000>; 319 regulator-name = "vcc18_lcd"; 320 regulator-state-mem { 321 regulator-on-in-suspend; 322 regulator-suspend-microvolt = <1800000>; 323 }; 324 }; 325 326 vcc33_sd: SWITCH_REG1 { 327 regulator-always-on; 328 regulator-boot-on; 329 regulator-name = "vcc33_sd"; 330 regulator-state-mem { 331 regulator-on-in-suspend; 332 }; 333 }; 334 335 vcc33_lan: SWITCH_REG2 { 336 regulator-always-on; 337 regulator-boot-on; 338 regulator-name = "vcc33_lan"; 339 regulator-state-mem { 340 regulator-on-in-suspend; 341 }; 342 }; 343 }; 344 }; 345}; 346 347&i2c2 { 348 status = "okay"; 349}; 350 351&i2c5 { 352 status = "okay"; 353}; 354 355&i2s { 356 #sound-dai-cells = <0>; 357 status = "okay"; 358}; 359 360&io_domains { 361 status = "okay"; 362 363 sdcard-supply = <&vccio_sd>; 364 wifi-supply = <&vcc_18>; 365}; 366 367&pinctrl { 368 pcfg_pull_none_drv_8ma: pcfg-pull-none-drv-8ma { 369 drive-strength = <8>; 370 }; 371 372 pcfg_pull_up_drv_8ma: pcfg-pull-up-drv-8ma { 373 bias-pull-up; 374 drive-strength = <8>; 375 }; 376 377 backlight { 378 bl_en: bl-en { 379 rockchip,pins = <7 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>; 380 }; 381 }; 382 383 buttons { 384 pwrbtn: pwrbtn { 385 rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>; 386 }; 387 }; 388 389 eth_phy { 390 eth_phy_pwr: eth-phy-pwr { 391 rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>; 392 }; 393 }; 394 395 pmic { 396 pmic_int: pmic-int { 397 rockchip,pins = <0 RK_PA4 RK_FUNC_GPIO &pcfg_pull_up>; 398 }; 399 400 dvs_1: dvs-1 { 401 rockchip,pins = <0 RK_PB3 RK_FUNC_GPIO &pcfg_pull_down>; 402 }; 403 404 dvs_2: dvs-2 { 405 rockchip,pins = <0 RK_PB4 RK_FUNC_GPIO &pcfg_pull_down>; 406 }; 407 }; 408 409 sdmmc { 410 sdmmc_bus4: sdmmc-bus4 { 411 rockchip,pins = <6 RK_PC0 1 &pcfg_pull_up_drv_8ma>, 412 <6 RK_PC1 1 &pcfg_pull_up_drv_8ma>, 413 <6 RK_PC2 1 &pcfg_pull_up_drv_8ma>, 414 <6 RK_PC3 1 &pcfg_pull_up_drv_8ma>; 415 }; 416 417 sdmmc_clk: sdmmc-clk { 418 rockchip,pins = <6 RK_PC4 1 &pcfg_pull_none_drv_8ma>; 419 }; 420 421 sdmmc_cmd: sdmmc-cmd { 422 rockchip,pins = <6 RK_PC5 1 &pcfg_pull_up_drv_8ma>; 423 }; 424 425 sdmmc_pwr: sdmmc-pwr { 426 rockchip,pins = <7 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>; 427 }; 428 }; 429 430 usb { 431 host_vbus_drv: host-vbus-drv { 432 rockchip,pins = <0 RK_PB6 RK_FUNC_GPIO &pcfg_pull_none>; 433 }; 434 435 pwr_3g: pwr-3g { 436 rockchip,pins = <7 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>; 437 }; 438 }; 439 440 sdio { 441 wifi_enable: wifi-enable { 442 rockchip,pins = <4 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>, 443 <4 RK_PD4 RK_FUNC_GPIO &pcfg_pull_none>; 444 }; 445 }; 446}; 447 448&pwm0 { 449 status = "okay"; 450}; 451 452&saradc { 453 vref-supply = <&vcc18_ldo1>; 454 status = "okay"; 455}; 456 457&sdmmc { 458 bus-width = <4>; 459 cap-mmc-highspeed; 460 cap-sd-highspeed; 461 broken-cd; 462 disable-wp; /* wp not hooked up */ 463 pinctrl-names = "default"; 464 pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_bus4>; 465 status = "okay"; 466 vmmc-supply = <&vcc33_sd>; 467 vqmmc-supply = <&vccio_sd>; 468}; 469 470&sdio0 { 471 bus-width = <4>; 472 cap-sd-highspeed; 473 cap-sdio-irq; 474 keep-power-in-suspend; 475 max-frequency = <50000000>; 476 mmc-pwrseq = <&sdio_pwrseq>; 477 non-removable; 478 pinctrl-names = "default"; 479 pinctrl-0 = <&sdio0_bus4>, <&sdio0_cmd>, <&sdio0_clk>, <&sdio0_int>; 480 sd-uhs-sdr12; 481 sd-uhs-sdr25; 482 sd-uhs-sdr50; 483 vmmc-supply = <&vcc_io>; 484 vqmmc-supply = <&vcc_18>; 485 status = "okay"; 486}; 487 488&tsadc { 489 rockchip,hw-tshut-mode = <1>; /* tshut mode 0:CRU 1:GPIO */ 490 rockchip,hw-tshut-polarity = <1>; /* tshut polarity 0:LOW 1:HIGH */ 491 status = "okay"; 492}; 493 494&uart0 { 495 status = "okay"; 496}; 497 498&uart1 { 499 status = "okay"; 500}; 501 502&uart2 { 503 status = "okay"; 504}; 505 506&uart3 { 507 status = "okay"; 508}; 509 510&uart4 { 511 status = "okay"; 512}; 513 514&usbphy { 515 status = "okay"; 516}; 517 518&usb_host0_ehci { 519 status = "okay"; 520}; 521 522&usb_host1 { 523 status = "okay"; 524}; 525 526&usb_otg { 527 status = "okay"; 528}; 529 530&vopb { 531 status = "okay"; 532}; 533 534&vopb_mmu { 535 status = "okay"; 536}; 537 538&vopl { 539 status = "okay"; 540}; 541 542&vopl_mmu { 543 status = "okay"; 544}; 545 546&wdt { 547 status = "okay"; 548}; 549