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 { 50 gpios = <&gpio1 RK_PD0 GPIO_ACTIVE_HIGH>; 51 linux,default-trigger = "mmc0"; 52 }; 53 54 heartbeat-led { 55 gpios = <&gpio1 RK_PD1 GPIO_ACTIVE_HIGH>; 56 linux,default-trigger = "heartbeat"; 57 }; 58 59 pwr-led { 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&gmac { 117 assigned-clocks = <&cru SCLK_MAC>; 118 assigned-clock-parents = <&ext_gmac>; 119 clock_in_out = "input"; 120 phy-mode = "rgmii"; 121 phy-supply = <&vcc33_lan>; 122 pinctrl-names = "default"; 123 pinctrl-0 = <&rgmii_pins>; 124 snps,reset-gpio = <&gpio4 7 0>; 125 snps,reset-active-low; 126 snps,reset-delays-us = <0 10000 1000000>; 127 tx_delay = <0x30>; 128 rx_delay = <0x10>; 129 status = "ok"; 130}; 131 132&gpu { 133 mali-supply = <&vdd_gpu>; 134 status = "okay"; 135}; 136 137&hdmi { 138 ddc-i2c-bus = <&i2c5>; 139 status = "okay"; 140}; 141 142&i2c0 { 143 clock-frequency = <400000>; 144 status = "okay"; 145 146 rk808: pmic@1b { 147 compatible = "rockchip,rk808"; 148 reg = <0x1b>; 149 interrupt-parent = <&gpio0>; 150 interrupts = <4 IRQ_TYPE_LEVEL_LOW>; 151 #clock-cells = <1>; 152 clock-output-names = "xin32k", "rk808-clkout2"; 153 dvs-gpios = <&gpio0 11 GPIO_ACTIVE_HIGH>, 154 <&gpio0 12 GPIO_ACTIVE_HIGH>; 155 pinctrl-names = "default"; 156 pinctrl-0 = <&pmic_int &global_pwroff &dvs_1 &dvs_2>; 157 rockchip,system-power-controller; 158 wakeup-source; 159 160 vcc1-supply = <&vcc_sys>; 161 vcc2-supply = <&vcc_sys>; 162 vcc3-supply = <&vcc_sys>; 163 vcc4-supply = <&vcc_sys>; 164 vcc6-supply = <&vcc_sys>; 165 vcc7-supply = <&vcc_sys>; 166 vcc8-supply = <&vcc_io>; 167 vcc9-supply = <&vcc_io>; 168 vcc10-supply = <&vcc_io>; 169 vcc11-supply = <&vcc_sys>; 170 vcc12-supply = <&vcc_io>; 171 vddio-supply = <&vcc_io>; 172 173 regulators { 174 vdd_cpu: DCDC_REG1 { 175 regulator-always-on; 176 regulator-boot-on; 177 regulator-min-microvolt = <750000>; 178 regulator-max-microvolt = <1350000>; 179 regulator-name = "vdd_arm"; 180 regulator-ramp-delay = <6000>; 181 regulator-state-mem { 182 regulator-off-in-suspend; 183 }; 184 }; 185 186 vdd_gpu: DCDC_REG2 { 187 regulator-always-on; 188 regulator-boot-on; 189 regulator-min-microvolt = <850000>; 190 regulator-max-microvolt = <1250000>; 191 regulator-name = "vdd_gpu"; 192 regulator-ramp-delay = <6000>; 193 regulator-state-mem { 194 regulator-on-in-suspend; 195 regulator-suspend-microvolt = <1000000>; 196 }; 197 }; 198 199 vcc_ddr: DCDC_REG3 { 200 regulator-always-on; 201 regulator-boot-on; 202 regulator-name = "vcc_ddr"; 203 regulator-state-mem { 204 regulator-on-in-suspend; 205 }; 206 }; 207 208 vcc_io: DCDC_REG4 { 209 regulator-always-on; 210 regulator-boot-on; 211 regulator-min-microvolt = <3300000>; 212 regulator-max-microvolt = <3300000>; 213 regulator-name = "vcc_io"; 214 regulator-state-mem { 215 regulator-on-in-suspend; 216 regulator-suspend-microvolt = <3300000>; 217 }; 218 }; 219 220 vcc18_ldo1: LDO_REG1 { 221 regulator-always-on; 222 regulator-boot-on; 223 regulator-min-microvolt = <1800000>; 224 regulator-max-microvolt = <1800000>; 225 regulator-name = "vcc18_ldo1"; 226 regulator-state-mem { 227 regulator-on-in-suspend; 228 regulator-suspend-microvolt = <1800000>; 229 }; 230 }; 231 232 vcc33_mipi: LDO_REG2 { 233 regulator-always-on; 234 regulator-boot-on; 235 regulator-min-microvolt = <3300000>; 236 regulator-max-microvolt = <3300000>; 237 regulator-name = "vcc33_mipi"; 238 regulator-state-mem { 239 regulator-off-in-suspend; 240 }; 241 }; 242 243 vdd_10: LDO_REG3 { 244 regulator-always-on; 245 regulator-boot-on; 246 regulator-min-microvolt = <1000000>; 247 regulator-max-microvolt = <1000000>; 248 regulator-name = "vdd_10"; 249 regulator-state-mem { 250 regulator-on-in-suspend; 251 regulator-suspend-microvolt = <1000000>; 252 }; 253 }; 254 255 vcc18_codec: LDO_REG4 { 256 regulator-always-on; 257 regulator-boot-on; 258 regulator-min-microvolt = <1800000>; 259 regulator-max-microvolt = <1800000>; 260 regulator-name = "vcc18_codec"; 261 regulator-state-mem { 262 regulator-on-in-suspend; 263 regulator-suspend-microvolt = <1800000>; 264 }; 265 }; 266 267 vccio_sd: LDO_REG5 { 268 regulator-boot-on; 269 regulator-min-microvolt = <1800000>; 270 regulator-max-microvolt = <3300000>; 271 regulator-name = "vccio_sd"; 272 regulator-state-mem { 273 regulator-on-in-suspend; 274 regulator-suspend-microvolt = <3300000>; 275 }; 276 }; 277 278 vdd10_lcd: LDO_REG6 { 279 regulator-always-on; 280 regulator-boot-on; 281 regulator-min-microvolt = <1000000>; 282 regulator-max-microvolt = <1000000>; 283 regulator-name = "vdd10_lcd"; 284 regulator-state-mem { 285 regulator-on-in-suspend; 286 regulator-suspend-microvolt = <1000000>; 287 }; 288 }; 289 290 vcc_18: LDO_REG7 { 291 regulator-always-on; 292 regulator-boot-on; 293 regulator-min-microvolt = <1800000>; 294 regulator-max-microvolt = <1800000>; 295 regulator-name = "vcc_18"; 296 regulator-state-mem { 297 regulator-on-in-suspend; 298 regulator-suspend-microvolt = <1800000>; 299 }; 300 }; 301 302 vcc18_lcd: LDO_REG8 { 303 regulator-always-on; 304 regulator-boot-on; 305 regulator-min-microvolt = <1800000>; 306 regulator-max-microvolt = <1800000>; 307 regulator-name = "vcc18_lcd"; 308 regulator-state-mem { 309 regulator-on-in-suspend; 310 regulator-suspend-microvolt = <1800000>; 311 }; 312 }; 313 314 vcc33_sd: SWITCH_REG1 { 315 regulator-always-on; 316 regulator-boot-on; 317 regulator-name = "vcc33_sd"; 318 regulator-state-mem { 319 regulator-on-in-suspend; 320 }; 321 }; 322 323 vcc33_lan: SWITCH_REG2 { 324 regulator-always-on; 325 regulator-boot-on; 326 regulator-name = "vcc33_lan"; 327 regulator-state-mem { 328 regulator-on-in-suspend; 329 }; 330 }; 331 }; 332 }; 333}; 334 335&i2c2 { 336 status = "okay"; 337}; 338 339&i2c5 { 340 status = "okay"; 341}; 342 343&i2s { 344 #sound-dai-cells = <0>; 345 status = "okay"; 346}; 347 348&io_domains { 349 status = "okay"; 350 351 sdcard-supply = <&vccio_sd>; 352 wifi-supply = <&vcc_18>; 353}; 354 355&pinctrl { 356 pcfg_pull_none_drv_8ma: pcfg-pull-none-drv-8ma { 357 drive-strength = <8>; 358 }; 359 360 pcfg_pull_up_drv_8ma: pcfg-pull-up-drv-8ma { 361 bias-pull-up; 362 drive-strength = <8>; 363 }; 364 365 backlight { 366 bl_en: bl-en { 367 rockchip,pins = <7 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>; 368 }; 369 }; 370 371 buttons { 372 pwrbtn: pwrbtn { 373 rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>; 374 }; 375 }; 376 377 eth_phy { 378 eth_phy_pwr: eth-phy-pwr { 379 rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>; 380 }; 381 }; 382 383 pmic { 384 pmic_int: pmic-int { 385 rockchip,pins = <0 RK_PA4 RK_FUNC_GPIO \ 386 &pcfg_pull_up>; 387 }; 388 389 dvs_1: dvs-1 { 390 rockchip,pins = <0 RK_PB3 RK_FUNC_GPIO \ 391 &pcfg_pull_down>; 392 }; 393 394 dvs_2: dvs-2 { 395 rockchip,pins = <0 RK_PB4 RK_FUNC_GPIO \ 396 &pcfg_pull_down>; 397 }; 398 }; 399 400 sdmmc { 401 sdmmc_bus4: sdmmc-bus4 { 402 rockchip,pins = <6 RK_PC0 1 &pcfg_pull_up_drv_8ma>, 403 <6 RK_PC1 1 &pcfg_pull_up_drv_8ma>, 404 <6 RK_PC2 1 &pcfg_pull_up_drv_8ma>, 405 <6 RK_PC3 1 &pcfg_pull_up_drv_8ma>; 406 }; 407 408 sdmmc_clk: sdmmc-clk { 409 rockchip,pins = <6 RK_PC4 1 \ 410 &pcfg_pull_none_drv_8ma>; 411 }; 412 413 sdmmc_cmd: sdmmc-cmd { 414 rockchip,pins = <6 RK_PC5 1 &pcfg_pull_up_drv_8ma>; 415 }; 416 417 sdmmc_pwr: sdmmc-pwr { 418 rockchip,pins = <7 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>; 419 }; 420 }; 421 422 usb { 423 host_vbus_drv: host-vbus-drv { 424 rockchip,pins = <0 RK_PB6 RK_FUNC_GPIO &pcfg_pull_none>; 425 }; 426 427 pwr_3g: pwr-3g { 428 rockchip,pins = <7 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>; 429 }; 430 }; 431 432 sdio { 433 wifi_enable: wifi-enable { 434 rockchip,pins = <4 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>, 435 <4 RK_PD4 RK_FUNC_GPIO &pcfg_pull_none>; 436 }; 437 }; 438}; 439 440&pwm0 { 441 status = "okay"; 442}; 443 444&saradc { 445 vref-supply = <&vcc18_ldo1>; 446 status = "okay"; 447}; 448 449&sdmmc { 450 bus-width = <4>; 451 cap-mmc-highspeed; 452 cap-sd-highspeed; 453 broken-cd; 454 disable-wp; /* wp not hooked up */ 455 pinctrl-names = "default"; 456 pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_bus4>; 457 status = "okay"; 458 vmmc-supply = <&vcc33_sd>; 459 vqmmc-supply = <&vccio_sd>; 460}; 461 462&sdio0 { 463 bus-width = <4>; 464 cap-sd-highspeed; 465 cap-sdio-irq; 466 keep-power-in-suspend; 467 max-frequency = <50000000>; 468 mmc-pwrseq = <&sdio_pwrseq>; 469 non-removable; 470 pinctrl-names = "default"; 471 pinctrl-0 = <&sdio0_bus4>, <&sdio0_cmd>, <&sdio0_clk>, <&sdio0_int>; 472 sd-uhs-sdr12; 473 sd-uhs-sdr25; 474 sd-uhs-sdr50; 475 vmmc-supply = <&vcc_io>; 476 vqmmc-supply = <&vcc_18>; 477 status = "okay"; 478}; 479 480&tsadc { 481 rockchip,hw-tshut-mode = <1>; /* tshut mode 0:CRU 1:GPIO */ 482 rockchip,hw-tshut-polarity = <1>; /* tshut polarity 0:LOW 1:HIGH */ 483 status = "okay"; 484}; 485 486&uart0 { 487 status = "okay"; 488}; 489 490&uart1 { 491 status = "okay"; 492}; 493 494&uart2 { 495 status = "okay"; 496}; 497 498&uart3 { 499 status = "okay"; 500}; 501 502&uart4 { 503 status = "okay"; 504}; 505 506&usbphy { 507 status = "okay"; 508}; 509 510&usb_host0_ehci { 511 status = "okay"; 512}; 513 514&usb_host1 { 515 status = "okay"; 516}; 517 518&usb_otg { 519 status = "okay"; 520}; 521 522&vopb { 523 status = "okay"; 524}; 525 526&vopb_mmu { 527 status = "okay"; 528}; 529 530&vopl { 531 status = "okay"; 532}; 533 534&vopl_mmu { 535 status = "okay"; 536}; 537 538&wdt { 539 status = "okay"; 540}; 541