1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2 3 /dts-v1/; 4 5 #include <dt-bindings/gpio/gpio.h> 6 #include <dt-bindings/input/input.h> 7 #include <dt-bindings/leds/common.h> 8 #include <dt-bindings/pinctrl/rockchip.h> 9 #include <dt-bindings/soc/rockchip,vop2.h> 10 #include <dt-bindings/soc/rockchip,boot-mode.h> 11 #include "rk3566.dtsi" 12 13 / { 14 model = "LCKFB Taishan Pi RK3566"; 15 compatible = "lckfb,tspi-rk3566", "rockchip,rk3566"; 16 17 aliases { 18 mmc0 = &sdmmc0; 19 mmc1 = &sdhci; 20 mmc2 = &sdmmc1; 21 }; 22 23 chosen: chosen { 24 stdout-path = "serial2:1500000n8"; 25 }; 26 27 reserved-memory { 28 #address-cells = <2>; 29 #size-cells = <2>; 30 ranges; 31 32 ramoops: ramoops@110000 { 33 compatible = "ramoops"; 34 reg = <0 0x110000 0 0xf0000>; 35 console-size = <0x80000>; 36 ftrace-size = <0x00000>; 37 pmsg-size = <0x50000>; 38 record-size = <0x20000>; 39 }; 40 }; 41 42 adc_keys: adc-keys { 43 compatible = "adc-keys"; 44 io-channels = <&saradc 0>; 45 io-channel-names = "buttons"; 46 keyup-threshold-microvolt = <1800000>; 47 poll-interval = <100>; 48 49 button-recovery { 50 label = "recovery"; 51 linux,code = <KEY_RESTART>; 52 press-threshold-microvolt = <108>; 53 }; 54 }; 55 56 hdmi_con: hdmi-con { 57 compatible = "hdmi-connector"; 58 type = "d"; 59 60 port { 61 hdmi_con_in: endpoint { 62 remote-endpoint = <&hdmi_out_con>; 63 }; 64 }; 65 }; 66 67 leds: leds { 68 compatible = "gpio-leds"; 69 70 rgb_led_r: rgb-led-r { 71 color = <LED_COLOR_ID_RED>; 72 gpios = <&gpio1 RK_PB2 GPIO_ACTIVE_LOW>; 73 label = "status-red"; 74 }; 75 76 rgb_led_g: rgb-led-g { 77 gpios = <&gpio1 RK_PB1 GPIO_ACTIVE_LOW>; 78 color = <LED_COLOR_ID_GREEN>; 79 label = "status-green"; 80 }; 81 82 rgb_led_b: rgb-led-b { 83 gpios = <&gpio1 RK_PB0 GPIO_ACTIVE_LOW>; 84 color = <LED_COLOR_ID_BLUE>; 85 label = "status-blue"; 86 }; 87 }; 88 89 multi_leds: multi-led { 90 compatible = "leds-group-multicolor"; 91 color = <LED_COLOR_ID_RGB>; 92 label = "status-rgb"; 93 function = LED_FUNCTION_INDICATOR; 94 leds = <&rgb_led_r>, <&rgb_led_g>, <&rgb_led_b>; 95 }; 96 97 vcc12v0_dcin: regulator-12v0-dcin { 98 compatible = "regulator-fixed"; 99 regulator-name = "vcc12v0_dcin"; 100 regulator-always-on; 101 regulator-boot-on; 102 regulator-min-microvolt = <12000000>; 103 regulator-max-microvolt = <12000000>; 104 }; 105 106 vcc3v3_sys: regulator-3v3-vcc-sys { 107 compatible = "regulator-fixed"; 108 regulator-name = "vcc3v3_sys"; 109 regulator-always-on; 110 regulator-boot-on; 111 regulator-min-microvolt = <3300000>; 112 regulator-max-microvolt = <3300000>; 113 vin-supply = <&vcc5v0_sys>; 114 }; 115 116 vcc5v0_sys: regulator-5v0-vcc-sys { 117 compatible = "regulator-fixed"; 118 regulator-name = "vcc5v0_sys"; 119 regulator-always-on; 120 regulator-boot-on; 121 regulator-min-microvolt = <5000000>; 122 regulator-max-microvolt = <5000000>; 123 vin-supply = <&vcc12v0_dcin>; 124 }; 125 126 vcc5v0_host: regulator-5v0-vcc-host { 127 compatible = "regulator-fixed"; 128 enable-active-high; 129 gpio = <&gpio4 RK_PC4 GPIO_ACTIVE_HIGH>; 130 pinctrl-names = "default"; 131 pinctrl-0 = <&vcc5v0_host_en>; 132 regulator-name = "vcc5v0_host"; 133 regulator-min-microvolt = <5000000>; 134 regulator-max-microvolt = <5000000>; 135 vin-supply = <&vcc5v0_sys>; 136 }; 137 138 sdio_pwrseq: sdio-pwrseq { 139 compatible = "mmc-pwrseq-simple"; 140 clocks = <&rk809 1>; 141 clock-names = "ext_clock"; 142 pinctrl-names = "default"; 143 pinctrl-0 = <&wifi_enable_h>; 144 post-power-on-delay-ms = <200>; 145 reset-gpios = <&gpio2 RK_PB1 GPIO_ACTIVE_LOW>; 146 }; 147 148 sound { 149 compatible = "simple-audio-card"; 150 simple-audio-card,format = "i2s"; 151 simple-audio-card,name = "Analog RK809"; 152 simple-audio-card,mclk-fs = <256>; 153 154 simple-audio-card,cpu { 155 sound-dai = <&i2s1_8ch>; 156 }; 157 158 simple-audio-card,codec { 159 sound-dai = <&rk809>; 160 }; 161 }; 162 }; 163 164 &combphy1 { 165 status = "okay"; 166 }; 167 168 &combphy2 { 169 status = "okay"; 170 }; 171 172 &cpu0 { 173 cpu-supply = <&vdd_cpu>; 174 }; 175 176 &cpu1 { 177 cpu-supply = <&vdd_cpu>; 178 }; 179 180 &cpu2 { 181 cpu-supply = <&vdd_cpu>; 182 }; 183 184 &cpu3 { 185 cpu-supply = <&vdd_cpu>; 186 }; 187 188 &gpu { 189 mali-supply = <&vdd_gpu>; 190 status = "okay"; 191 }; 192 193 &hdmi { 194 avdd-0v9-supply = <&vdda0v9_image>; 195 avdd-1v8-supply = <&vcca1v8_image>; 196 status = "okay"; 197 }; 198 199 &hdmi_in { 200 hdmi_in_vp0: endpoint { 201 remote-endpoint = <&vp0_out_hdmi>; 202 }; 203 }; 204 205 &hdmi_out { 206 hdmi_out_con: endpoint { 207 remote-endpoint = <&hdmi_con_in>; 208 }; 209 }; 210 211 &hdmi_sound { 212 status = "okay"; 213 }; 214 215 &i2c0 { 216 status = "okay"; 217 218 vdd_cpu: regulator@1c { 219 compatible = "tcs,tcs4525"; 220 reg = <0x1c>; 221 fcs,suspend-voltage-selector = <1>; 222 regulator-name = "vdd_cpu"; 223 regulator-always-on; 224 regulator-boot-on; 225 regulator-min-microvolt = <800000>; 226 regulator-max-microvolt = <1150000>; 227 regulator-ramp-delay = <2300>; 228 vin-supply = <&vcc5v0_sys>; 229 230 regulator-state-mem { 231 regulator-off-in-suspend; 232 }; 233 }; 234 235 rk809: pmic@20 { 236 compatible = "rockchip,rk809"; 237 reg = <0x20>; 238 assigned-clocks = <&cru I2S1_MCLKOUT_TX>; 239 assigned-clock-parents = <&cru CLK_I2S1_8CH_TX>; 240 #clock-cells = <1>; 241 clock-output-names = "rk808-clkout1", "rk808-clkout2"; 242 clock-names = "mclk"; 243 clocks = <&cru I2S1_MCLKOUT_TX>; 244 interrupt-parent = <&gpio0>; 245 interrupts = <RK_PA3 IRQ_TYPE_LEVEL_LOW>; 246 pinctrl-names = "default"; 247 pinctrl-0 = <&pmic_int>, <&i2s1m0_mclk>; 248 rockchip,system-power-controller; 249 #sound-dai-cells = <0>; 250 wakeup-source; 251 252 vcc1-supply = <&vcc3v3_sys>; 253 vcc2-supply = <&vcc3v3_sys>; 254 vcc3-supply = <&vcc3v3_sys>; 255 vcc4-supply = <&vcc3v3_sys>; 256 vcc5-supply = <&vcc3v3_sys>; 257 vcc6-supply = <&vcc3v3_sys>; 258 vcc7-supply = <&vcc3v3_sys>; 259 vcc8-supply = <&vcc3v3_sys>; 260 vcc9-supply = <&vcc3v3_sys>; 261 262 regulators { 263 vdd_logic: DCDC_REG1 { 264 regulator-name = "vdd_logic"; 265 regulator-always-on; 266 regulator-boot-on; 267 regulator-min-microvolt = <500000>; 268 regulator-max-microvolt = <1350000>; 269 regulator-ramp-delay = <6001>; 270 regulator-initial-mode = <0x2>; 271 272 regulator-state-mem { 273 regulator-off-in-suspend; 274 }; 275 }; 276 277 vdd_gpu: DCDC_REG2 { 278 regulator-name = "vdd_gpu"; 279 regulator-always-on; 280 regulator-boot-on; 281 regulator-min-microvolt = <500000>; 282 regulator-max-microvolt = <1350000>; 283 regulator-ramp-delay = <6001>; 284 regulator-initial-mode = <0x2>; 285 286 regulator-state-mem { 287 regulator-off-in-suspend; 288 }; 289 }; 290 291 vcc_ddr: DCDC_REG3 { 292 regulator-name = "vcc_ddr"; 293 regulator-always-on; 294 regulator-boot-on; 295 regulator-initial-mode = <0x2>; 296 297 regulator-state-mem { 298 regulator-on-in-suspend; 299 }; 300 }; 301 302 vdd_npu: DCDC_REG4 { 303 regulator-name = "vdd_npu"; 304 regulator-always-on; 305 regulator-boot-on; 306 regulator-min-microvolt = <500000>; 307 regulator-max-microvolt = <1350000>; 308 regulator-ramp-delay = <6001>; 309 regulator-initial-mode = <0x2>; 310 311 regulator-state-mem { 312 regulator-off-in-suspend; 313 }; 314 }; 315 316 vdda0v9_image: LDO_REG1 { 317 regulator-name = "vdda0v9_image"; 318 regulator-boot-on; 319 regulator-always-on; 320 regulator-min-microvolt = <900000>; 321 regulator-max-microvolt = <900000>; 322 323 regulator-state-mem { 324 regulator-off-in-suspend; 325 }; 326 }; 327 328 vdda_0v9: LDO_REG2 { 329 regulator-name = "vdda_0v9"; 330 regulator-always-on; 331 regulator-boot-on; 332 regulator-min-microvolt = <900000>; 333 regulator-max-microvolt = <900000>; 334 regulator-state-mem { 335 regulator-off-in-suspend; 336 }; 337 }; 338 339 vdda0v9_pmu: LDO_REG3 { 340 regulator-name = "vdda0v9_pmu"; 341 regulator-always-on; 342 regulator-boot-on; 343 regulator-min-microvolt = <900000>; 344 regulator-max-microvolt = <900000>; 345 346 regulator-state-mem { 347 regulator-on-in-suspend; 348 regulator-suspend-microvolt = <900000>; 349 }; 350 }; 351 352 vccio_acodec: LDO_REG4 { 353 regulator-name = "vccio_acodec"; 354 regulator-always-on; 355 regulator-boot-on; 356 regulator-min-microvolt = <3300000>; 357 regulator-max-microvolt = <3300000>; 358 359 regulator-state-mem { 360 regulator-off-in-suspend; 361 }; 362 }; 363 364 vccio_sd: LDO_REG5 { 365 regulator-name = "vccio_sd"; 366 regulator-always-on; 367 regulator-boot-on; 368 regulator-min-microvolt = <1800000>; 369 regulator-max-microvolt = <3300000>; 370 371 regulator-state-mem { 372 regulator-off-in-suspend; 373 }; 374 }; 375 376 vcc3v3_pmu: LDO_REG6 { 377 regulator-name = "vcc3v3_pmu"; 378 regulator-always-on; 379 regulator-boot-on; 380 regulator-min-microvolt = <3300000>; 381 regulator-max-microvolt = <3300000>; 382 383 regulator-state-mem { 384 regulator-on-in-suspend; 385 regulator-suspend-microvolt = <3300000>; 386 }; 387 }; 388 389 vcca_1v8: LDO_REG7 { 390 regulator-name = "vcca_1v8"; 391 regulator-always-on; 392 regulator-boot-on; 393 regulator-min-microvolt = <1800000>; 394 regulator-max-microvolt = <1800000>; 395 396 regulator-state-mem { 397 regulator-off-in-suspend; 398 }; 399 }; 400 401 vcca1v8_pmu: LDO_REG8 { 402 regulator-name = "vcca1v8_pmu"; 403 regulator-always-on; 404 regulator-boot-on; 405 regulator-min-microvolt = <1800000>; 406 regulator-max-microvolt = <1800000>; 407 408 regulator-state-mem { 409 regulator-on-in-suspend; 410 regulator-suspend-microvolt = <1800000>; 411 }; 412 }; 413 414 vcca1v8_image: LDO_REG9 { 415 regulator-name = "vcca1v8_image"; 416 regulator-always-on; 417 regulator-boot-on; 418 regulator-min-microvolt = <1800000>; 419 regulator-max-microvolt = <1800000>; 420 421 regulator-state-mem { 422 regulator-off-in-suspend; 423 }; 424 }; 425 426 vcc_1v8: DCDC_REG5 { 427 regulator-name = "vcc_1v8"; 428 regulator-always-on; 429 regulator-boot-on; 430 regulator-min-microvolt = <1800000>; 431 regulator-max-microvolt = <1800000>; 432 433 regulator-state-mem { 434 regulator-off-in-suspend; 435 }; 436 }; 437 438 vcc_3v3: SWITCH_REG1 { 439 regulator-name = "vcc_3v3"; 440 regulator-always-on; 441 regulator-boot-on; 442 443 regulator-state-mem { 444 regulator-off-in-suspend; 445 }; 446 }; 447 448 vcc3v3_sd: SWITCH_REG2 { 449 regulator-name = "vcc3v3_sd"; 450 regulator-always-on; 451 regulator-boot-on; 452 453 regulator-state-mem { 454 regulator-off-in-suspend; 455 }; 456 }; 457 }; 458 459 codec { 460 rockchip,mic-in-differential; 461 }; 462 }; 463 }; 464 465 &i2c1 { 466 status = "okay"; 467 /* Touch Screen */ 468 }; 469 470 &i2c4 { 471 pinctrl-names = "default"; 472 pinctrl-0 = <&i2c4m0_xfer>; 473 status = "okay"; 474 /* Camera */ 475 }; 476 477 &i2s0_8ch { 478 status = "okay"; 479 /* HDMI */ 480 }; 481 482 &i2s1_8ch { 483 pinctrl-names = "default"; 484 pinctrl-0 = <&i2s1m0_sclktx &i2s1m0_lrcktx &i2s1m0_sdi0 &i2s1m0_sdo0>; 485 rockchip,trcm-sync-tx-only; 486 status = "okay"; 487 /* PMIC */ 488 }; 489 490 &i2s2_2ch { 491 rockchip,trcm-sync-tx-only; 492 status = "okay"; 493 /* AP6212 Bluetooth */ 494 }; 495 496 &pinctrl { 497 bt { 498 bt_enable_h: bt-enable-h { 499 rockchip,pins = <2 RK_PB7 RK_FUNC_GPIO &pcfg_pull_none>; 500 }; 501 502 bt_host_wake_l: bt-host-wake-l { 503 rockchip,pins = <2 RK_PC0 RK_FUNC_GPIO &pcfg_pull_down>; 504 }; 505 506 bt_wake_l: bt-wake-l { 507 rockchip,pins = <2 RK_PC1 RK_FUNC_GPIO &pcfg_pull_none>; 508 }; 509 }; 510 511 hp-detect { 512 hp_det: hp-det { 513 rockchip,pins = <4 RK_PC6 RK_FUNC_GPIO &pcfg_pull_up>; 514 }; 515 }; 516 517 pmic { 518 pmic_int: pmic-int { 519 rockchip,pins = <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>; 520 }; 521 }; 522 523 sdio-pwrseq { 524 wifi_enable_h: wifi-enable-h { 525 rockchip,pins = <2 RK_PB1 RK_FUNC_GPIO &pcfg_pull_none>; 526 }; 527 528 wifi_host_wake_h: wifi-host-wake-l { 529 rockchip,pins = <2 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>; 530 }; 531 }; 532 533 usb2 { 534 vcc5v0_host_en: vcc5v0-host-en { 535 rockchip,pins = <4 RK_PC4 RK_FUNC_GPIO &pcfg_pull_none>; 536 }; 537 }; 538 }; 539 540 &pmu_io_domains { 541 pmuio1-supply = <&vcc3v3_pmu>; 542 pmuio2-supply = <&vcc3v3_pmu>; 543 vccio1-supply = <&vccio_acodec>; 544 vccio2-supply = <&vcc_1v8>; 545 vccio3-supply = <&vccio_sd>; 546 vccio4-supply = <&vcc_1v8>; 547 vccio5-supply = <&vcc_3v3>; 548 vccio6-supply = <&vcc_1v8>; 549 vccio7-supply = <&vcc_3v3>; 550 status = "okay"; 551 }; 552 553 &pmugrf { 554 reboot-mode { 555 compatible = "syscon-reboot-mode"; 556 offset = <0x200>; 557 mode-normal = <BOOT_NORMAL>; 558 mode-loader = <BOOT_BL_DOWNLOAD>; 559 mode-recovery = <BOOT_RECOVERY>; 560 mode-bootloader = <BOOT_FASTBOOT>; 561 }; 562 }; 563 564 &saradc { 565 vref-supply = <&vcca_1v8>; 566 status = "okay"; 567 /* Channel 0: Recovery Button */ 568 /* Channel 1: Hardware ID */ 569 }; 570 571 &sdhci { 572 bus-width = <8>; 573 max-frequency = <200000000>; 574 non-removable; 575 pinctrl-names = "default"; 576 pinctrl-0 = <&emmc_bus8 &emmc_clk &emmc_cmd &emmc_datastrobe &emmc_rstnout>; 577 vmmc-supply = <&vcc_3v3>; 578 vqmmc-supply = <&vcc_1v8>; 579 status = "okay"; 580 }; 581 582 &sdmmc0 { 583 bus-width = <4>; 584 cap-mmc-highspeed; 585 cap-sd-highspeed; 586 disable-wp; 587 max-frequency = <150000000>; 588 pinctrl-names = "default"; 589 pinctrl-0 = <&sdmmc0_bus4 &sdmmc0_clk &sdmmc0_cmd &sdmmc0_det>; 590 sd-uhs-sdr104; 591 vmmc-supply = <&vcc3v3_sd>; 592 vqmmc-supply = <&vcc_1v8>; 593 status = "okay"; 594 }; 595 596 &sdmmc1 { 597 bus-width = <4>; 598 cap-sd-highspeed; 599 cap-sdio-irq; 600 disable-wp; 601 keep-power-in-suspend; 602 max-frequency = <150000000>; 603 mmc-pwrseq = <&sdio_pwrseq>; 604 non-removable; 605 pinctrl-names = "default"; 606 pinctrl-0 = <&sdmmc1_bus4 &sdmmc1_cmd &sdmmc1_clk>; 607 sd-uhs-sdr104; 608 vmmc-supply = <&vcc3v3_sys>; 609 vqmmc-supply = <&vcc_1v8>; 610 #address-cells = <1>; 611 #size-cells = <0>; 612 status = "okay"; 613 614 brcmf: wifi@1 { 615 compatible = "brcm,bcm4329-fmac"; 616 reg = <1>; 617 interrupt-parent = <&gpio2>; 618 interrupts = <RK_PB2 IRQ_TYPE_LEVEL_HIGH>; 619 interrupt-names = "host-wake"; 620 pinctrl-names = "default"; 621 pinctrl-0 = <&wifi_host_wake_h>; 622 }; 623 }; 624 625 &tsadc { 626 rockchip,hw-tshut-mode = <1>; 627 rockchip,hw-tshut-polarity = <0>; 628 status = "okay"; 629 }; 630 631 &uart1 { 632 pinctrl-names = "default"; 633 pinctrl-0 = <&uart1m0_xfer &uart1m0_ctsn &uart1m0_rtsn>; 634 uart-has-rtscts; 635 status = "okay"; 636 637 bluetooth: bluetooth { 638 compatible = "brcm,bcm43438-bt"; 639 clocks = <&rk809 1>; 640 clock-names = "lpo"; 641 max-speed = <3000000>; 642 pinctrl-names = "default"; 643 pinctrl-0 = <&bt_host_wake_l &bt_wake_l &bt_enable_h>; 644 shutdown-gpios = <&gpio2 RK_PB7 GPIO_ACTIVE_HIGH>; 645 vbat-supply = <&vcc3v3_sys>; 646 vddio-supply = <&vcc_1v8>; 647 }; 648 }; 649 650 &uart2 { 651 pinctrl-names = "default"; 652 pinctrl-0 = <&uart2m0_xfer>; 653 status = "okay"; 654 }; 655 656 &usb_host0_ohci { 657 status = "okay"; 658 }; 659 660 &usb_host0_ehci { 661 status = "okay"; 662 }; 663 664 &usb_host0_xhci { 665 dr_mode = "otg"; 666 status = "okay"; 667 }; 668 669 &usb_host1_ohci { 670 status = "okay"; 671 }; 672 673 &usb_host1_ehci { 674 status = "okay"; 675 }; 676 677 &usb_host1_xhci { 678 dr_mode = "host"; 679 status = "okay"; 680 }; 681 682 &usb2phy0 { 683 status = "okay"; 684 }; 685 686 &usb2phy0_host { 687 phy-supply = <&vcc5v0_sys>; 688 status = "okay"; 689 }; 690 691 &usb2phy0_otg { 692 phy-supply = <&vcc5v0_sys>; 693 status = "okay"; 694 }; 695 696 &usb2phy1 { 697 status = "okay"; 698 }; 699 700 &usb2phy1_host { 701 phy-supply = <&vcc5v0_host>; 702 status = "okay"; 703 }; 704 705 &usb2phy1_otg { 706 phy-supply = <&vcc5v0_host>; 707 status = "okay"; 708 }; 709 710 &vop { 711 assigned-clocks = <&cru DCLK_VOP0>, <&cru DCLK_VOP1>; 712 assigned-clock-parents = <&pmucru PLL_HPLL>, <&cru PLL_VPLL>; 713 status = "okay"; 714 }; 715 716 &vop_mmu { 717 status = "okay"; 718 }; 719 720 &vp0 { 721 vp0_out_hdmi: endpoint@ROCKCHIP_VOP2_EP_HDMI0 { 722 reg = <ROCKCHIP_VOP2_EP_HDMI0>; 723 remote-endpoint = <&hdmi_in_vp0>; 724 }; 725 };
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.