1// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2 3/* 4 * Author: Piotr Oniszczuk piotr.oniszczuk@gmail.com 5 * Based on Quartz64 DT by: Peter Geis pgwipeout@gmail.com 6 */ 7 8/dts-v1/; 9 10#include <dt-bindings/gpio/gpio.h> 11#include <dt-bindings/leds/common.h> 12#include <dt-bindings/pinctrl/rockchip.h> 13#include <dt-bindings/soc/rockchip,vop2.h> 14#include "rk3566.dtsi" 15 16/ { 17 model = "Rockchip RK3566 BOX DEMO Board"; 18 compatible = "rockchip,rk3566-box-demo", "rockchip,rk3566"; 19 20 aliases { 21 ethernet0 = &gmac1; 22 mmc0 = &sdmmc0; 23 mmc1 = &sdmmc1; 24 mmc2 = &sdhci; 25 }; 26 27 chosen: chosen { 28 stdout-path = "serial2:1500000n8"; 29 }; 30 31 gmac1_clkin: external-gmac1-clock { 32 compatible = "fixed-clock"; 33 clock-frequency = <125000000>; 34 clock-output-names = "gmac1_clkin"; 35 #clock-cells = <0>; 36 }; 37 38 hdmi-con { 39 compatible = "hdmi-connector"; 40 type = "a"; 41 42 port { 43 hdmi_con_in: endpoint { 44 remote-endpoint = <&hdmi_out_con>; 45 }; 46 }; 47 }; 48 49 ir-receiver { 50 compatible = "gpio-ir-receiver"; 51 gpios = <&gpio4 RK_PC3 GPIO_ACTIVE_LOW>; 52 pinctrl-0 = <&ir_int>; 53 linux,rc-map-name = "rc-beelink-gs1"; 54 status = "okay"; 55 }; 56 57 leds { 58 compatible = "gpio-leds"; 59 60 led_work: led-0 { 61 gpios = <&gpio0 RK_PC3 GPIO_ACTIVE_HIGH>; 62 function = LED_FUNCTION_HEARTBEAT; 63 color = <LED_COLOR_ID_BLUE>; 64 linux,default-trigger = "heartbeat"; 65 pinctrl-names = "default"; 66 pinctrl-0 = <&led_work_en>; 67 }; 68 }; 69 70 sdio_pwrseq: sdio-pwrseq { 71 status = "okay"; 72 compatible = "mmc-pwrseq-simple"; 73 clocks = <&pmucru CLK_RTC_32K>; 74 clock-names = "ext_clock"; 75 pinctrl-names = "default"; 76 pinctrl-0 = <&wifi_enable_h &wifi_32k>; 77 reset-gpios = <&gpio2 RK_PB1 GPIO_ACTIVE_LOW>; 78 }; 79 80 spdif_dit: spdif-dit { 81 compatible = "linux,spdif-dit"; 82 #sound-dai-cells = <0>; 83 }; 84 85 spdif_sound: spdif-sound { 86 compatible = "simple-audio-card"; 87 simple-audio-card,name = "SPDIF"; 88 89 simple-audio-card,cpu { 90 sound-dai = <&spdif>; 91 }; 92 93 simple-audio-card,codec { 94 sound-dai = <&spdif_dit>; 95 }; 96 }; 97 98 vcc12v0_dcin: regulator-vcc12v0-dcin { 99 compatible = "regulator-fixed"; 100 regulator-name = "vcc12v0_dcin"; 101 regulator-always-on; 102 regulator-boot-on; 103 regulator-min-microvolt = <12000000>; 104 regulator-max-microvolt = <12000000>; 105 }; 106 107 vcc5v0_sys: regulator-vcc5v0-sys { 108 compatible = "regulator-fixed"; 109 regulator-name = "vcc5v0_sys"; 110 regulator-always-on; 111 regulator-boot-on; 112 regulator-min-microvolt = <5000000>; 113 regulator-max-microvolt = <5000000>; 114 vin-supply = <&vcc12v0_dcin>; 115 }; 116 117 vcc3v3_sys: regulator-vcc3v3-sys { 118 compatible = "regulator-fixed"; 119 regulator-name = "vcc3v3_sys"; 120 regulator-always-on; 121 regulator-boot-on; 122 regulator-min-microvolt = <3300000>; 123 regulator-max-microvolt = <3300000>; 124 vin-supply = <&vcc12v0_dcin>; 125 }; 126 127 vcc_3v3: regulator-vcc-3v3 { 128 compatible = "regulator-fixed"; 129 regulator-name = "vcc_3v3"; 130 regulator-always-on; 131 regulator-boot-on; 132 regulator-min-microvolt = <3300000>; 133 regulator-max-microvolt = <3300000>; 134 vin-supply = <&vcc3v3_sys>; 135 }; 136 137 vcc5v0_usb_host: regulator-vcc5v0-usb-host { 138 compatible = "regulator-fixed"; 139 enable-active-high; 140 gpio = <&gpio0 RK_PA6 GPIO_ACTIVE_HIGH>; 141 pinctrl-names = "default"; 142 pinctrl-0 = <&vcc5v0_usb_host_en>; 143 regulator-name = "vcc5v0_usb_host"; 144 regulator-min-microvolt = <5000000>; 145 regulator-max-microvolt = <5000000>; 146 vin-supply = <&vcc5v0_sys>; 147 }; 148 149 vcc5v0_usb2_otg: regulator-vcc5v0-usb2-otg { 150 compatible = "regulator-fixed"; 151 enable-active-high; 152 gpio = <&gpio0 RK_PC6 GPIO_ACTIVE_HIGH>; 153 pinctrl-names = "default"; 154 pinctrl-0 = <&vcc5v0_usb2_otg_en>; 155 regulator-name = "vcc5v0_usb_otg"; 156 regulator-min-microvolt = <5000000>; 157 regulator-max-microvolt = <5000000>; 158 vin-supply = <&vcc5v0_sys>; 159 }; 160 161 vcca_1v8: regulator-vcca-1v8 { 162 compatible = "regulator-fixed"; 163 regulator-name = "vcca_1v8"; 164 regulator-always-on; 165 regulator-boot-on; 166 regulator-min-microvolt = <1800000>; 167 regulator-max-microvolt = <1800000>; 168 vin-supply = <&vcc3v3_sys>; 169 }; 170 171 vdda_0v9: regulator-vdda-0v9 { 172 compatible = "regulator-fixed"; 173 regulator-name = "vdda_0v9"; 174 regulator-always-on; 175 regulator-boot-on; 176 regulator-min-microvolt = <900000>; 177 regulator-max-microvolt = <900000>; 178 vin-supply = <&vcc3v3_sys>; 179 }; 180 181 vdd_fixed: regulator-vdd-fixed { 182 compatible = "regulator-fixed"; 183 regulator-name = "vdd_fixed"; 184 regulator-min-microvolt = <950000>; 185 regulator-max-microvolt = <950000>; 186 regulator-always-on; 187 regulator-boot-on; 188 vin-supply = <&vcc5v0_sys>; 189 }; 190 191 vdd_cpu: regulator-vdd-cpu { 192 compatible = "pwm-regulator"; 193 pwms = <&pwm0 0 5000 1>; 194 regulator-name = "vdd_cpu"; 195 regulator-min-microvolt = <800000>; 196 regulator-max-microvolt = <1200000>; 197 regulator-always-on; 198 regulator-boot-on; 199 regulator-settling-time-up-us = <250>; 200 pwm-supply = <&vcc5v0_sys>; 201 }; 202 203 vdd_logic: regulator-vdd-logic { 204 compatible = "pwm-regulator"; 205 pwms = <&pwm1 0 5000 1>; 206 regulator-name = "vdd_logic"; 207 regulator-min-microvolt = <800000>; 208 regulator-max-microvolt = <1100000>; 209 regulator-always-on; 210 regulator-boot-on; 211 regulator-settling-time-up-us = <250>; 212 pwm-supply = <&vcc5v0_sys>; 213 }; 214}; 215 216&combphy1 { 217 status = "okay"; 218}; 219 220&combphy2 { 221 status = "okay"; 222}; 223 224&cpu0 { 225 cpu-supply = <&vdd_cpu>; 226}; 227 228&cpu1 { 229 cpu-supply = <&vdd_cpu>; 230}; 231 232&cpu2 { 233 cpu-supply = <&vdd_cpu>; 234}; 235 236&cpu3 { 237 cpu-supply = <&vdd_cpu>; 238}; 239 240&gmac1 { 241 assigned-clocks = <&cru SCLK_GMAC1_RX_TX>, <&cru SCLK_GMAC1>; 242 assigned-clock-parents = <&cru SCLK_GMAC1_RGMII_SPEED>, <&gmac1_clkin>; 243 phy-mode = "rgmii"; 244 clock_in_out = "input"; 245 pinctrl-names = "default"; 246 pinctrl-0 = <&gmac1m1_miim 247 &gmac1m1_tx_bus2 248 &gmac1m1_rx_bus2 249 &gmac1m1_rgmii_clk 250 &gmac1m1_rgmii_bus 251 &gmac1m1_clkinout>; 252 snps,reset-gpio = <&gpio4 RK_PC2 GPIO_ACTIVE_LOW>; 253 snps,reset-active-low; 254 /* Reset time is 20ms, 100ms for rtl8211f */ 255 snps,reset-delays-us = <0 20000 100000>; 256 257 tx_delay = <0x4f>; 258 rx_delay = <0x2d>; 259 phy-handle = <&rgmii_phy1>; 260 status = "okay"; 261}; 262 263&mdio1 { 264 rgmii_phy1: ethernet-phy@1 { 265 compatible = "ethernet-phy-ieee802.3-c22"; 266 reg = <0x1>; 267 }; 268}; 269 270&hdmi { 271 assigned-clocks = <&cru CLK_HDMI_CEC>; 272 assigned-clock-rates = <32768>; 273 avdd-0v9-supply = <&vdda_0v9>; 274 avdd-1v8-supply = <&vcca_1v8>; 275 status = "okay"; 276}; 277 278&hdmi_in { 279 hdmi_in_vp0: endpoint { 280 remote-endpoint = <&vp0_out_hdmi>; 281 }; 282}; 283 284&hdmi_out { 285 hdmi_out_con: endpoint { 286 remote-endpoint = <&hdmi_con_in>; 287 }; 288}; 289 290&hdmi_sound { 291 status = "okay"; 292}; 293 294&gpu { 295 status = "okay"; 296}; 297 298&i2s0_8ch { 299 status = "okay"; 300}; 301 302&i2s1_8ch { 303 rockchip,trcm-sync-tx-only; 304 status = "okay"; 305}; 306 307&pinctrl { 308 bt { 309 bt_enable_h: bt-enable-h { 310 rockchip,pins = <2 RK_PB7 RK_FUNC_GPIO &pcfg_pull_none>; 311 }; 312 313 bt_host_wake_l: bt-host-wake-l { 314 rockchip,pins = <2 RK_PC0 RK_FUNC_GPIO &pcfg_pull_down>; 315 }; 316 317 bt_wake_l: bt-wake-l { 318 rockchip,pins = <2 RK_PC1 RK_FUNC_GPIO &pcfg_pull_none>; 319 }; 320 }; 321 322 sdio-pwrseq { 323 wifi_enable_h: wifi-enable-h { 324 rockchip,pins = <2 RK_PB1 RK_FUNC_GPIO &pcfg_pull_none>; 325 }; 326 327 wifi_host_wake_h: wifi-host-wake-l { 328 rockchip,pins = <2 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>; 329 }; 330 331 wifi_32k: wifi-32k { 332 rockchip,pins = <2 RK_PC6 1 &pcfg_pull_none>; 333 }; 334 }; 335 336 usb { 337 vcc5v0_usb_host_en: vcc5v0_usb_host_en { 338 rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>; 339 }; 340 341 vcc5v0_usb2_otg_en: vcc5v0_usb2_otg_en { 342 rockchip,pins = <0 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>; 343 }; 344 345 }; 346 347 ir { 348 ir_int: ir-int { 349 rockchip,pins = <4 RK_PC3 RK_FUNC_GPIO &pcfg_pull_none>; 350 }; 351 }; 352 353 led { 354 led_work_en: led_work_en { 355 rockchip,pins = <0 RK_PC3 RK_FUNC_GPIO &pcfg_pull_none>; 356 }; 357 }; 358}; 359 360&pmu_io_domains { 361 pmuio2-supply = <&vcc_3v3>; 362 vccio1-supply = <&vcc_3v3>; 363 vccio3-supply = <&vcc_3v3>; 364 vccio4-supply = <&vcca_1v8>; 365 vccio5-supply = <&vcc_3v3>; 366 vccio6-supply = <&vcca_1v8>; 367 vccio7-supply = <&vcc_3v3>; 368 status = "okay"; 369}; 370 371&pwm0 { 372 status = "okay"; 373}; 374 375&pwm1 { 376 status = "okay"; 377}; 378 379&sdhci { 380 bus-width = <8>; 381 mmc-hs200-1_8v; 382 non-removable; 383 status = "okay"; 384}; 385 386&sdmmc0 { 387 bus-width = <4>; 388 cap-sd-highspeed; 389 cd-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_LOW>; 390 disable-wp; 391 pinctrl-names = "default"; 392 pinctrl-0 = <&sdmmc0_bus4 &sdmmc0_clk &sdmmc0_cmd &sdmmc0_det>; 393 vmmc-supply = <&vcc_3v3>; 394 status = "okay"; 395}; 396 397&sdmmc1 { 398 /* WiFi & BT combo module AMPAK AP6398S */ 399 #address-cells = <1>; 400 #size-cells = <0>; 401 bus-width = <4>; 402 clock-frequency = <150000000>; 403 cap-sdio-irq; 404 cap-sd-highspeed; 405 sd-uhs-sdr104; 406 keep-power-in-suspend; 407 mmc-pwrseq = <&sdio_pwrseq>; 408 non-removable; 409 pinctrl-names = "default"; 410 pinctrl-0 = <&sdmmc1_bus4 &sdmmc1_cmd &sdmmc1_clk>; 411 vmmc-supply = <&vcc_3v3>; 412 vqmmc-supply = <&vcca_1v8>; 413 status = "okay"; 414 415 brcmf: wifi@1 { 416 compatible = "brcm,bcm4329-fmac"; 417 reg = <1>; 418 interrupt-parent = <&gpio2>; 419 interrupts = <RK_PB2 GPIO_ACTIVE_HIGH>; 420 interrupt-names = "host-wake"; 421 pinctrl-names = "default"; 422 pinctrl-0 = <&wifi_host_wake_h>; 423 }; 424}; 425 426&spdif { 427 status = "okay"; 428}; 429 430&spi1 { 431 pinctrl-names = "default"; 432 pinctrl-0 = <&spi1m1_cs0 &spi1m1_pins>; 433}; 434 435&tsadc { 436 /* tshut mode 0:CRU 1:GPIO */ 437 rockchip,hw-tshut-mode = <1>; 438 /* tshut polarity 0:LOW 1:HIGH */ 439 rockchip,hw-tshut-polarity = <0>; 440 status = "okay"; 441}; 442 443&uart1 { 444 pinctrl-names = "default"; 445 pinctrl-0 = <&uart1m0_xfer &uart1m0_ctsn>; 446 status = "okay"; 447 uart-has-rtscts; 448 449 bluetooth { 450 compatible = "brcm,bcm43438-bt"; 451 clocks = <&pmucru CLK_RTC_32K>; 452 clock-names = "ext_clock"; 453 device-wake-gpios = <&gpio2 RK_PC1 GPIO_ACTIVE_HIGH>; 454 host-wake-gpios = <&gpio2 RK_PC0 GPIO_ACTIVE_HIGH>; 455 shutdown-gpios = <&gpio2 RK_PB7 GPIO_ACTIVE_HIGH>; 456 pinctrl-names = "default"; 457 pinctrl-0 = <&bt_host_wake_l &bt_wake_l &bt_enable_h>; 458 vbat-supply = <&vcc3v3_sys>; 459 vddio-supply = <&vcca_1v8>; 460 }; 461}; 462 463&uart2 { 464 status = "okay"; 465}; 466 467&vop { 468 assigned-clocks = <&cru DCLK_VOP0>, <&cru DCLK_VOP1>; 469 assigned-clock-parents = <&pmucru PLL_HPLL>, <&cru PLL_VPLL>; 470 status = "okay"; 471}; 472 473&vop_mmu { 474 status = "okay"; 475}; 476 477&vp0 { 478 vp0_out_hdmi: endpoint@ROCKCHIP_VOP2_EP_HDMI0 { 479 reg = <ROCKCHIP_VOP2_EP_HDMI0>; 480 remote-endpoint = <&hdmi_in_vp0>; 481 }; 482}; 483 484&vpu { 485 status = "okay"; 486}; 487 488&vdpu_mmu { 489 status = "okay"; 490}; 491 492&usb2phy0_host { 493 phy-supply = <&vcc5v0_usb_host>; 494 status = "okay"; 495}; 496 497&usb2phy0_otg { 498 phy-supply = <&vcc5v0_usb2_otg>; 499 status = "okay"; 500}; 501 502&usb2phy1_host { 503 phy-supply = <&vcc5v0_usb_host>; 504 status = "okay"; 505}; 506 507&usb2phy1_otg { 508 phy-supply = <&vcc5v0_usb_host>; 509 status = "okay"; 510}; 511 512&usb2phy1 { 513 status = "okay"; 514}; 515 516&usb_host0_ehci { 517 status = "okay"; 518}; 519 520&usb_host0_ohci { 521 status = "okay"; 522}; 523 524&usb_host1_ehci { 525 status = "okay"; 526}; 527 528&usb_host1_ohci { 529 status = "okay"; 530}; 531 532&usb_host1_xhci { 533 status = "okay"; 534}; 535