1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2 /* 3 * Copyright (c) 2019 Shenzhen Wesion Technolo 4 * (https://www.khadas.com) 5 */ 6 7 /dts-v1/; 8 #include <dt-bindings/input/linux-event-codes. 9 #include <dt-bindings/interrupt-controller/irq 10 #include <dt-bindings/pwm/pwm.h> 11 #include "rk3399.dtsi" 12 13 / { 14 aliases { 15 mmc0 = &sdio0; 16 mmc1 = &sdmmc; 17 mmc2 = &sdhci; 18 }; 19 20 chosen { 21 stdout-path = "serial2:1500000 22 }; 23 24 clkin_gmac: external-gmac-clock { 25 compatible = "fixed-clock"; 26 clock-frequency = <125000000>; 27 clock-output-names = "clkin_gm 28 #clock-cells = <0>; 29 }; 30 31 sdio_pwrseq: sdio-pwrseq { 32 compatible = "mmc-pwrseq-simpl 33 clocks = <&rk808 1>; 34 clock-names = "ext_clock"; 35 pinctrl-names = "default"; 36 pinctrl-0 = <&wifi_enable_h>; 37 38 /* 39 * On the module itself this i 40 * on the actual card populate 41 * - SDIO_RESET_L_WL_REG_ON 42 * - PDN (power down when low) 43 */ 44 reset-gpios = <&gpio2 RK_PD4 G 45 }; 46 47 /* switched by pmic_sleep */ 48 vcc1v8_s3: vcca1v8_s3: vcc1v8-s3 { 49 compatible = "regulator-fixed" 50 regulator-name = "vcc1v8_s3"; 51 regulator-always-on; 52 regulator-boot-on; 53 regulator-min-microvolt = <180 54 regulator-max-microvolt = <180 55 vin-supply = <&vcc_1v8>; 56 }; 57 58 vcc3v3_pcie: vcc3v3-pcie-regulator { 59 compatible = "regulator-fixed" 60 regulator-name = "vcc3v3_pcie" 61 regulator-always-on; 62 regulator-boot-on; 63 regulator-min-microvolt = <330 64 regulator-max-microvolt = <330 65 vin-supply = <&vsys_3v3>; 66 }; 67 68 /* Actually 3 regulators (host0, 1, 2) 69 vcc5v0_host: vcc5v0-host-regulator { 70 compatible = "regulator-fixed" 71 enable-active-high; 72 gpio = <&gpio4 RK_PD1 GPIO_ACT 73 pinctrl-names = "default"; 74 pinctrl-0 = <&vcc5v0_host_en>; 75 regulator-name = "vcc5v0_host" 76 regulator-always-on; 77 vin-supply = <&vsys_5v0>; 78 }; 79 80 vdd_log: vdd-log { 81 compatible = "pwm-regulator"; 82 pwms = <&pwm2 0 25000 1>; 83 pwm-supply = <&vsys_3v3>; 84 regulator-name = "vdd_log"; 85 regulator-always-on; 86 regulator-boot-on; 87 regulator-min-microvolt = <800 88 regulator-max-microvolt = <140 89 }; 90 91 vsys: vsys { 92 compatible = "regulator-fixed" 93 regulator-name = "vsys"; 94 regulator-always-on; 95 regulator-boot-on; 96 }; 97 98 vsys_3v3: vsys-3v3 { 99 compatible = "regulator-fixed" 100 regulator-name = "vsys_3v3"; 101 regulator-always-on; 102 regulator-boot-on; 103 regulator-min-microvolt = <330 104 regulator-max-microvolt = <330 105 vin-supply = <&vsys>; 106 }; 107 108 vsys_5v0: vsys-5v0 { 109 compatible = "regulator-fixed" 110 regulator-name = "vsys_5v0"; 111 regulator-always-on; 112 regulator-boot-on; 113 regulator-min-microvolt = <500 114 regulator-max-microvolt = <500 115 vin-supply = <&vsys>; 116 }; 117 118 adc-keys { 119 compatible = "adc-keys"; 120 io-channels = <&saradc 1>; 121 io-channel-names = "buttons"; 122 keyup-threshold-microvolt = <1 123 poll-interval = <100>; 124 125 button-recovery { 126 label = "Recovery"; 127 linux,code = <KEY_VEND 128 press-threshold-microv 129 }; 130 }; 131 132 gpio-keys { 133 compatible = "gpio-keys"; 134 autorepeat; 135 pinctrl-names = "default"; 136 pinctrl-0 = <&pwrbtn>; 137 138 key-power { 139 debounce-interval = <1 140 gpios = <&gpio0 RK_PA5 141 label = "GPIO Key Powe 142 linux,code = <KEY_POWE 143 wakeup-source; 144 }; 145 }; 146 147 ir-receiver { 148 compatible = "gpio-ir-receiver 149 gpios = <&gpio1 RK_PB6 GPIO_AC 150 linux,rc-map-name = "rc-khadas 151 pinctrl-names = "default"; 152 pinctrl-0 = <&ir_rx>; 153 }; 154 155 leds { 156 compatible = "gpio-leds"; 157 pinctrl-names = "default"; 158 pinctrl-0 = <&sys_led_pin>, <& 159 160 sys_led: led-0 { 161 label = "sys_led"; 162 linux,default-trigger 163 gpios = <&gpio0 RK_PA6 164 }; 165 166 user_led: led-1 { 167 label = "user_led"; 168 default-state = "off"; 169 gpios = <&gpio4 RK_PD0 170 }; 171 }; 172 173 fan: pwm-fan { 174 compatible = "pwm-fan"; 175 cooling-levels = <0 150 200 25 176 #cooling-cells = <2>; 177 fan-supply = <&vsys_5v0>; 178 pwms = <&pwm0 0 40000 0>; 179 }; 180 }; 181 182 &cpu_l0 { 183 cpu-supply = <&vdd_cpu_l>; 184 }; 185 186 &cpu_l1 { 187 cpu-supply = <&vdd_cpu_l>; 188 }; 189 190 &cpu_l2 { 191 cpu-supply = <&vdd_cpu_l>; 192 }; 193 194 &cpu_l3 { 195 cpu-supply = <&vdd_cpu_l>; 196 }; 197 198 &cpu_b0 { 199 cpu-supply = <&vdd_cpu_b>; 200 }; 201 202 &cpu_b1 { 203 cpu-supply = <&vdd_cpu_b>; 204 }; 205 206 &cpu_thermal { 207 trips { 208 cpu_warm: cpu_warm { 209 temperature = <55000>; 210 hysteresis = <2000>; 211 type = "active"; 212 }; 213 214 cpu_hot: cpu_hot { 215 temperature = <65000>; 216 hysteresis = <2000>; 217 type = "active"; 218 }; 219 }; 220 221 cooling-maps { 222 map2 { 223 trip = <&cpu_warm>; 224 cooling-device = <&fan 225 }; 226 227 map3 { 228 trip = <&cpu_hot>; 229 cooling-device = <&fan 230 }; 231 }; 232 }; 233 234 &emmc_phy { 235 status = "okay"; 236 }; 237 238 &gmac { 239 assigned-clocks = <&cru SCLK_RMII_SRC> 240 assigned-clock-parents = <&clkin_gmac> 241 clock_in_out = "input"; 242 phy-supply = <&vcc_lan>; 243 phy-mode = "rgmii"; 244 pinctrl-names = "default"; 245 pinctrl-0 = <&rgmii_pins>; 246 snps,reset-gpio = <&gpio3 RK_PB7 GPIO_ 247 snps,reset-active-low; 248 snps,reset-delays-us = <0 10000 50000> 249 tx_delay = <0x28>; 250 rx_delay = <0x11>; 251 }; 252 253 &gpu { 254 mali-supply = <&vdd_gpu>; 255 status = "okay"; 256 }; 257 258 &gpu_thermal { 259 trips { 260 gpu_warm: gpu_warm { 261 temperature = <55000>; 262 hysteresis = <2000>; 263 type = "active"; 264 }; 265 266 gpu_hot: gpu_hot { 267 temperature = <65000>; 268 hysteresis = <2000>; 269 type = "active"; 270 }; 271 }; 272 273 cooling-maps { 274 map1 { 275 trip = <&gpu_warm>; 276 cooling-device = <&fan 277 }; 278 279 map2 { 280 trip = <&gpu_hot>; 281 cooling-device = <&fan 282 }; 283 }; 284 }; 285 286 &hdmi { 287 ddc-i2c-bus = <&i2c3>; 288 pinctrl-names = "default"; 289 pinctrl-0 = <&hdmi_cec>; 290 status = "okay"; 291 }; 292 293 &hdmi_sound { 294 status = "okay"; 295 }; 296 297 &i2c3 { 298 i2c-scl-rising-time-ns = <450>; 299 i2c-scl-falling-time-ns = <15>; 300 status = "okay"; 301 }; 302 303 &i2c4 { 304 clock-frequency = <400000>; 305 i2c-scl-rising-time-ns = <168>; 306 i2c-scl-falling-time-ns = <4>; 307 status = "okay"; 308 309 rk808: pmic@1b { 310 compatible = "rockchip,rk808"; 311 reg = <0x1b>; 312 interrupt-parent = <&gpio1>; 313 interrupts = <RK_PC6 IRQ_TYPE_ 314 #clock-cells = <1>; 315 clock-output-names = "xin32k", 316 pinctrl-names = "default"; 317 pinctrl-0 = <&pmic_int_l>; 318 rockchip,system-power-controll 319 wakeup-source; 320 321 vcc1-supply = <&vsys_3v3>; 322 vcc2-supply = <&vsys_3v3>; 323 vcc3-supply = <&vsys_3v3>; 324 vcc4-supply = <&vsys_3v3>; 325 vcc6-supply = <&vsys_3v3>; 326 vcc7-supply = <&vsys_3v3>; 327 vcc8-supply = <&vsys_3v3>; 328 vcc9-supply = <&vsys_3v3>; 329 vcc10-supply = <&vsys_3v3>; 330 vcc11-supply = <&vsys_3v3>; 331 vcc12-supply = <&vsys_3v3>; 332 vddio-supply = <&vcc_1v8>; 333 334 regulators { 335 vdd_center: DCDC_REG1 336 regulator-name 337 regulator-alwa 338 regulator-boot 339 regulator-min- 340 regulator-max- 341 regulator-ramp 342 343 regulator-stat 344 regula 345 }; 346 }; 347 348 vdd_cpu_l: DCDC_REG2 { 349 regulator-name 350 regulator-alwa 351 regulator-boot 352 regulator-min- 353 regulator-max- 354 regulator-ramp 355 356 regulator-stat 357 regula 358 }; 359 }; 360 361 vcc_ddr: DCDC_REG3 { 362 regulator-name 363 regulator-alwa 364 regulator-boot 365 366 regulator-stat 367 regula 368 }; 369 }; 370 371 vcc_1v8: DCDC_REG4 { 372 regulator-name 373 regulator-alwa 374 regulator-boot 375 regulator-min- 376 regulator-max- 377 378 regulator-stat 379 regula 380 regula 381 }; 382 }; 383 384 vcc1v8_apio2: LDO_REG1 385 regulator-name 386 regulator-alwa 387 regulator-boot 388 regulator-min- 389 regulator-max- 390 391 regulator-stat 392 regula 393 }; 394 }; 395 396 vcc_vldo2: LDO_REG2 { 397 regulator-name 398 regulator-alwa 399 regulator-boot 400 regulator-min- 401 regulator-max- 402 403 regulator-stat 404 regula 405 }; 406 }; 407 408 vcc1v8_pmupll: LDO_REG 409 regulator-name 410 regulator-alwa 411 regulator-boot 412 regulator-min- 413 regulator-max- 414 415 regulator-stat 416 regula 417 regula 418 }; 419 }; 420 421 vccio_sd: LDO_REG4 { 422 regulator-name 423 regulator-alwa 424 regulator-boot 425 regulator-min- 426 regulator-max- 427 428 regulator-stat 429 regula 430 regula 431 }; 432 }; 433 434 vcc_vldo5: LDO_REG5 { 435 regulator-name 436 regulator-alwa 437 regulator-boot 438 regulator-min- 439 regulator-max- 440 441 regulator-stat 442 regula 443 }; 444 }; 445 446 vcc_1v5: LDO_REG6 { 447 regulator-name 448 regulator-alwa 449 regulator-boot 450 regulator-min- 451 regulator-max- 452 453 regulator-stat 454 regula 455 regula 456 }; 457 }; 458 459 vcc1v8_codec: LDO_REG7 460 regulator-name 461 regulator-alwa 462 regulator-boot 463 regulator-min- 464 regulator-max- 465 466 regulator-stat 467 regula 468 }; 469 }; 470 471 vcc_3v0: LDO_REG8 { 472 regulator-name 473 regulator-alwa 474 regulator-boot 475 regulator-min- 476 regulator-max- 477 478 regulator-stat 479 regula 480 regula 481 }; 482 }; 483 484 vcc3v3_s3: vcc_lan: SW 485 regulator-name 486 regulator-alwa 487 regulator-boot 488 489 regulator-stat 490 regula 491 }; 492 }; 493 494 vcc3v3_s0: SWITCH_REG2 495 regulator-name 496 regulator-alwa 497 regulator-boot 498 499 regulator-stat 500 regula 501 }; 502 }; 503 }; 504 }; 505 506 vdd_cpu_b: regulator@40 { 507 compatible = "silergy,syr827"; 508 reg = <0x40>; 509 fcs,suspend-voltage-selector = 510 pinctrl-names = "default"; 511 pinctrl-0 = <&cpu_b_sleep>; 512 regulator-name = "vdd_cpu_b"; 513 regulator-min-microvolt = <712 514 regulator-max-microvolt = <150 515 regulator-ramp-delay = <1000>; 516 regulator-always-on; 517 regulator-boot-on; 518 vin-supply = <&vsys_3v3>; 519 520 regulator-state-mem { 521 regulator-off-in-suspe 522 }; 523 }; 524 525 vdd_gpu: regulator@41 { 526 compatible = "silergy,syr828"; 527 reg = <0x41>; 528 fcs,suspend-voltage-selector = 529 pinctrl-names = "default"; 530 pinctrl-0 = <&gpu_sleep>; 531 regulator-name = "vdd_gpu"; 532 regulator-min-microvolt = <712 533 regulator-max-microvolt = <150 534 regulator-ramp-delay = <1000>; 535 regulator-always-on; 536 regulator-boot-on; 537 vin-supply = <&vsys_3v3>; 538 539 regulator-state-mem { 540 regulator-off-in-suspe 541 }; 542 }; 543 }; 544 545 &i2c8 { 546 clock-frequency = <400000>; 547 i2c-scl-rising-time-ns = <160>; 548 i2c-scl-falling-time-ns = <30>; 549 status = "okay"; 550 }; 551 552 &i2s0 { 553 rockchip,playback-channels = <8>; 554 rockchip,capture-channels = <8>; 555 status = "okay"; 556 }; 557 558 &i2s1 { 559 rockchip,playback-channels = <2>; 560 rockchip,capture-channels = <2>; 561 status = "okay"; 562 }; 563 564 &i2s2 { 565 status = "okay"; 566 }; 567 568 &io_domains { 569 bt656-supply = <&vcc1v8_apio2>; 570 audio-supply = <&vcc1v8_codec>; 571 sdmmc-supply = <&vccio_sd>; 572 gpio1830-supply = <&vcc_3v0>; 573 status = "okay"; 574 }; 575 576 &pmu_io_domains { 577 pmu1830-supply = <&vcc_1v8>; 578 status = "okay"; 579 }; 580 581 &pinctrl { 582 bt { 583 bt_host_wake_l: bt-host-wake-l 584 rockchip,pins = <0 RK_ 585 }; 586 587 bt_reg_on_h: bt-reg-on-h { 588 rockchip,pins = <2 RK_ 589 }; 590 591 bt_wake_l: bt-wake-l { 592 rockchip,pins = <2 RK_ 593 }; 594 }; 595 596 buttons { 597 pwrbtn: pwrbtn { 598 rockchip,pins = <0 RK_ 599 }; 600 }; 601 602 ir { 603 ir_rx: ir-rx { 604 rockchip,pins = <1 RK_PB6 605 }; 606 }; 607 608 leds { 609 sys_led_pin: sys-led-pin { 610 rockchip,pins = <0 RK_ 611 }; 612 613 user_led_pin: user-led-pin { 614 rockchip,pins = <4 RK_ 615 }; 616 }; 617 618 pmic { 619 pmic_int_l: pmic-int-l { 620 rockchip,pins = <1 RK_ 621 }; 622 623 cpu_b_sleep: cpu-b-sleep { 624 rockchip,pins = <1 RK_ 625 }; 626 627 gpu_sleep: gpu-sleep { 628 rockchip,pins = <0 RK_ 629 }; 630 }; 631 632 sdio-pwrseq { 633 wifi_enable_h: wifi-enable-h { 634 rockchip,pins = <2 RK_ 635 }; 636 }; 637 638 usb2 { 639 vcc5v0_host_en: vcc5v0-host-en 640 rockchip,pins = <4 RK_ 641 }; 642 }; 643 644 wifi { 645 wifi_host_wake_l: wifi-host-wa 646 rockchip,pins = <0 RK_ 647 }; 648 }; 649 }; 650 651 &pwm0 { 652 status = "okay"; 653 }; 654 655 &pwm2 { 656 status = "okay"; 657 }; 658 659 &saradc { 660 vref-supply = <&vcca1v8_s3>; 661 status = "okay"; 662 }; 663 664 &sdio0 { 665 /* WiFi & BT combo module Ampak AP6356 666 bus-width = <4>; 667 cap-sdio-irq; 668 cap-sd-highspeed; 669 keep-power-in-suspend; 670 mmc-pwrseq = <&sdio_pwrseq>; 671 non-removable; 672 pinctrl-names = "default"; 673 pinctrl-0 = <&sdio0_bus4 &sdio0_cmd &s 674 sd-uhs-sdr104; 675 vqmmc-supply = <&vcc1v8_s3>; 676 vmmc-supply = <&vccio_sd>; 677 #address-cells = <1>; 678 #size-cells = <0>; 679 status = "okay"; 680 681 brcmf: wifi@1 { 682 reg = <1>; 683 compatible = "brcm,bcm4329-fma 684 interrupt-parent = <&gpio0>; 685 interrupts = <RK_PA3 IRQ_TYPE_ 686 interrupt-names = "host-wake"; 687 brcm,drive-strength = <5>; 688 pinctrl-names = "default"; 689 pinctrl-0 = <&wifi_host_wake_l 690 }; 691 }; 692 693 &sdmmc { 694 bus-width = <4>; 695 cap-mmc-highspeed; 696 cap-sd-highspeed; 697 cd-gpios = <&gpio0 RK_PA7 GPIO_ACTIVE_ 698 disable-wp; 699 max-frequency = <150000000>; 700 pinctrl-names = "default"; 701 pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sd 702 status = "okay"; 703 }; 704 705 &sdhci { 706 bus-width = <8>; 707 mmc-hs400-1_8v; 708 non-removable; 709 status = "okay"; 710 }; 711 712 &spi1 { 713 status = "okay"; 714 715 spiflash: flash@0 { 716 compatible = "winbond,w25q128f 717 reg = <0>; 718 spi-max-frequency = <104000000 719 }; 720 }; 721 722 &tcphy0 { 723 status = "okay"; 724 }; 725 726 &tcphy1 { 727 status = "okay"; 728 }; 729 730 &tsadc { 731 /* tshut mode 0:CRU 1:GPIO */ 732 rockchip,hw-tshut-mode = <1>; 733 /* tshut polarity 0:LOW 1:HIGH */ 734 rockchip,hw-tshut-polarity = <1>; 735 status = "okay"; 736 }; 737 738 &u2phy0 { 739 status = "okay"; 740 741 u2phy0_otg: otg-port { 742 status = "okay"; 743 }; 744 745 u2phy0_host: host-port { 746 phy-supply = <&vcc5v0_host>; 747 status = "okay"; 748 }; 749 }; 750 751 &u2phy1 { 752 status = "okay"; 753 754 u2phy1_otg: otg-port { 755 status = "okay"; 756 }; 757 758 u2phy1_host: host-port { 759 phy-supply = <&vcc5v0_host>; 760 status = "okay"; 761 }; 762 }; 763 764 &uart0 { 765 pinctrl-names = "default"; 766 pinctrl-0 = <&uart0_xfer &uart0_rts &u 767 status = "okay"; 768 769 bluetooth { 770 compatible = "brcm,bcm43438-bt 771 clocks = <&rk808 1>; 772 clock-names = "lpo"; 773 device-wakeup-gpios = <&gpio2 774 host-wakeup-gpios = <&gpio0 RK 775 shutdown-gpios = <&gpio2 RK_PD 776 max-speed = <4000000>; 777 pinctrl-names = "default"; 778 pinctrl-0 = <&bt_reg_on_h &bt_ 779 vbat-supply = <&vsys_3v3>; 780 vddio-supply = <&vcc_1v8>; 781 }; 782 }; 783 784 &uart2 { 785 status = "okay"; 786 }; 787 788 &usb_host0_ehci { 789 status = "okay"; 790 }; 791 792 &usb_host0_ohci { 793 status = "okay"; 794 }; 795 796 &usb_host1_ehci { 797 status = "okay"; 798 }; 799 800 &usb_host1_ohci { 801 status = "okay"; 802 }; 803 804 &usbdrd3_0 { 805 status = "okay"; 806 }; 807 808 &usbdrd_dwc3_0 { 809 status = "okay"; 810 dr_mode = "otg"; 811 }; 812 813 &usbdrd3_1 { 814 status = "okay"; 815 }; 816 817 &usbdrd_dwc3_1 { 818 status = "okay"; 819 dr_mode = "host"; 820 }; 821 822 &vopb { 823 status = "okay"; 824 }; 825 826 &vopb_mmu { 827 status = "okay"; 828 }; 829 830 &vopl { 831 status = "okay"; 832 }; 833 834 &vopl_mmu { 835 status = "okay"; 836 };
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.