blob: 674792567fa6e288c94169406cd69b0e2262d5b2 [file] [log] [blame]
Joseph Chen636ffbd2021-06-02 15:58:23 +08001// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
3 * Copyright (c) 2021 Rockchip Electronics Co., Ltd.
4 *
5 */
6
7/dts-v1/;
8#include <dt-bindings/gpio/gpio.h>
Chris Morgane2df30c2023-02-13 16:27:37 -06009#include <dt-bindings/leds/common.h>
Joseph Chen636ffbd2021-06-02 15:58:23 +080010#include <dt-bindings/pinctrl/rockchip.h>
Chris Morgane2df30c2023-02-13 16:27:37 -060011#include <dt-bindings/soc/rockchip,vop2.h>
Joseph Chen636ffbd2021-06-02 15:58:23 +080012#include "rk3568.dtsi"
13
14/ {
15 model = "Rockchip RK3568 EVB1 DDR4 V10 Board";
16 compatible = "rockchip,rk3568-evb1-v10", "rockchip,rk3568";
17
Chris Morgane2df30c2023-02-13 16:27:37 -060018 aliases {
19 ethernet0 = &gmac0;
20 ethernet1 = &gmac1;
21 mmc0 = &sdmmc0;
22 mmc1 = &sdhci;
23 };
24
Joseph Chen636ffbd2021-06-02 15:58:23 +080025 chosen: chosen {
26 stdout-path = "serial2:1500000n8";
27 };
28
29 dc_12v: dc-12v {
30 compatible = "regulator-fixed";
31 regulator-name = "dc_12v";
32 regulator-always-on;
33 regulator-boot-on;
34 regulator-min-microvolt = <12000000>;
35 regulator-max-microvolt = <12000000>;
36 };
37
Chris Morgane2df30c2023-02-13 16:27:37 -060038 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 leds {
50 compatible = "gpio-leds";
51
52 led_work: led-0 {
53 gpios = <&gpio0 RK_PC0 GPIO_ACTIVE_HIGH>;
54 function = LED_FUNCTION_HEARTBEAT;
55 color = <LED_COLOR_ID_BLUE>;
56 linux,default-trigger = "heartbeat";
57 pinctrl-names = "default";
58 pinctrl-0 = <&led_work_en>;
59 };
60 };
61
62 rk809-sound {
63 compatible = "simple-audio-card";
64 simple-audio-card,format = "i2s";
65 simple-audio-card,name = "Analog RK809";
66 simple-audio-card,mclk-fs = <256>;
67
68 simple-audio-card,cpu {
69 sound-dai = <&i2s1_8ch>;
70 };
71 simple-audio-card,codec {
72 sound-dai = <&rk809>;
73 };
74 };
75
Joseph Chen636ffbd2021-06-02 15:58:23 +080076 vcc3v3_sys: vcc3v3-sys {
77 compatible = "regulator-fixed";
78 regulator-name = "vcc3v3_sys";
79 regulator-always-on;
80 regulator-boot-on;
81 regulator-min-microvolt = <3300000>;
82 regulator-max-microvolt = <3300000>;
83 vin-supply = <&dc_12v>;
84 };
85
86 vcc5v0_sys: vcc5v0-sys {
87 compatible = "regulator-fixed";
88 regulator-name = "vcc5v0_sys";
89 regulator-always-on;
90 regulator-boot-on;
91 regulator-min-microvolt = <5000000>;
92 regulator-max-microvolt = <5000000>;
93 vin-supply = <&dc_12v>;
94 };
95
Chris Morgane2df30c2023-02-13 16:27:37 -060096 vcc5v0_usb: vcc5v0-usb {
97 compatible = "regulator-fixed";
98 regulator-name = "vcc5v0_usb";
99 regulator-always-on;
100 regulator-boot-on;
101 regulator-min-microvolt = <5000000>;
102 regulator-max-microvolt = <5000000>;
103 vin-supply = <&dc_12v>;
104 };
105
106 vcc5v0_usb_host: vcc5v0-usb-host {
107 compatible = "regulator-fixed";
108 enable-active-high;
109 gpio = <&gpio0 RK_PA6 GPIO_ACTIVE_HIGH>;
110 pinctrl-names = "default";
111 pinctrl-0 = <&vcc5v0_usb_host_en>;
112 regulator-name = "vcc5v0_usb_host";
113 regulator-min-microvolt = <5000000>;
114 regulator-max-microvolt = <5000000>;
115 vin-supply = <&vcc5v0_usb>;
116 };
117
118 vcc5v0_usb_otg: vcc5v0-usb-otg {
119 compatible = "regulator-fixed";
120 enable-active-high;
121 gpio = <&gpio0 RK_PA5 GPIO_ACTIVE_HIGH>;
122 pinctrl-names = "default";
123 pinctrl-0 = <&vcc5v0_usb_otg_en>;
124 regulator-name = "vcc5v0_usb_otg";
125 regulator-min-microvolt = <5000000>;
126 regulator-max-microvolt = <5000000>;
127 vin-supply = <&vcc5v0_usb>;
128 };
129
Joseph Chen636ffbd2021-06-02 15:58:23 +0800130 vcc3v3_lcd0_n: vcc3v3-lcd0-n {
131 compatible = "regulator-fixed";
132 regulator-name = "vcc3v3_lcd0_n";
Chris Morgane2df30c2023-02-13 16:27:37 -0600133 regulator-min-microvolt = <3300000>;
134 regulator-max-microvolt = <3300000>;
135 enable-active-high;
136 gpio = <&gpio0 RK_PC7 GPIO_ACTIVE_HIGH>;
137 vin-supply = <&vcc3v3_sys>;
138 pinctrl-names = "default";
139 pinctrl-0 = <&vcc3v3_lcd0_n_en>;
Joseph Chen636ffbd2021-06-02 15:58:23 +0800140
141 regulator-state-mem {
142 regulator-off-in-suspend;
143 };
144 };
145
146 vcc3v3_lcd1_n: vcc3v3-lcd1-n {
147 compatible = "regulator-fixed";
148 regulator-name = "vcc3v3_lcd1_n";
Chris Morgane2df30c2023-02-13 16:27:37 -0600149 regulator-min-microvolt = <3300000>;
150 regulator-max-microvolt = <3300000>;
151 enable-active-high;
152 gpio = <&gpio0 RK_PC5 GPIO_ACTIVE_HIGH>;
153 vin-supply = <&vcc3v3_sys>;
154 pinctrl-names = "default";
155 pinctrl-0 = <&vcc3v3_lcd1_n_en>;
Joseph Chen636ffbd2021-06-02 15:58:23 +0800156
157 regulator-state-mem {
158 regulator-off-in-suspend;
159 };
160 };
161};
162
Chris Morgane2df30c2023-02-13 16:27:37 -0600163&combphy0 {
164 status = "okay";
165};
166
167&combphy1 {
168 status = "okay";
169};
170
171&cpu0 {
172 cpu-supply = <&vdd_cpu>;
173};
174
175&cpu1 {
176 cpu-supply = <&vdd_cpu>;
177};
178
179&cpu2 {
180 cpu-supply = <&vdd_cpu>;
181};
182
183&cpu3 {
184 cpu-supply = <&vdd_cpu>;
185};
186
187&gmac0 {
188 assigned-clocks = <&cru SCLK_GMAC0_RX_TX>, <&cru SCLK_GMAC0>;
189 assigned-clock-parents = <&cru SCLK_GMAC0_RGMII_SPEED>;
190 assigned-clock-rates = <0>, <125000000>;
191 clock_in_out = "output";
192 phy-handle = <&rgmii_phy0>;
193 phy-mode = "rgmii-id";
194 pinctrl-names = "default";
195 pinctrl-0 = <&gmac0_miim
196 &gmac0_tx_bus2
197 &gmac0_rx_bus2
198 &gmac0_rgmii_clk
199 &gmac0_rgmii_bus>;
200 status = "okay";
201};
202
203&gmac1 {
204 assigned-clocks = <&cru SCLK_GMAC1_RX_TX>, <&cru SCLK_GMAC1>;
205 assigned-clock-parents = <&cru SCLK_GMAC1_RGMII_SPEED>;
206 assigned-clock-rates = <0>, <125000000>;
207 clock_in_out = "output";
208 phy-handle = <&rgmii_phy1>;
209 phy-mode = "rgmii-id";
210 pinctrl-names = "default";
211 pinctrl-0 = <&gmac1m1_miim
212 &gmac1m1_tx_bus2
213 &gmac1m1_rx_bus2
214 &gmac1m1_rgmii_clk
215 &gmac1m1_rgmii_bus>;
216 status = "okay";
217};
218
219&gpu {
220 mali-supply = <&vdd_gpu>;
221 status = "okay";
222};
223
224&hdmi {
225 avdd-0v9-supply = <&vdda0v9_image>;
226 avdd-1v8-supply = <&vcca1v8_image>;
227 status = "okay";
228};
229
230&hdmi_in {
231 hdmi_in_vp0: endpoint {
232 remote-endpoint = <&vp0_out_hdmi>;
233 };
234};
235
236&hdmi_out {
237 hdmi_out_con: endpoint {
238 remote-endpoint = <&hdmi_con_in>;
239 };
240};
241
242&hdmi_sound {
243 status = "okay";
244};
245
246&i2c0 {
247 status = "okay";
248
249 vdd_cpu: regulator@1c {
250 compatible = "tcs,tcs4525";
251 reg = <0x1c>;
252 fcs,suspend-voltage-selector = <1>;
253 regulator-name = "vdd_cpu";
254 regulator-always-on;
255 regulator-boot-on;
256 regulator-min-microvolt = <800000>;
257 regulator-max-microvolt = <1150000>;
258 regulator-ramp-delay = <2300>;
259 vin-supply = <&vcc5v0_sys>;
260
261 regulator-state-mem {
262 regulator-off-in-suspend;
263 };
264 };
265
266 rk809: pmic@20 {
267 compatible = "rockchip,rk809";
268 reg = <0x20>;
269 interrupt-parent = <&gpio0>;
270 interrupts = <RK_PA3 IRQ_TYPE_LEVEL_LOW>;
271 assigned-clocks = <&cru I2S1_MCLKOUT_TX>;
272 assigned-clock-parents = <&cru CLK_I2S1_8CH_TX>;
273 #clock-cells = <1>;
274 clock-names = "mclk";
275 clocks = <&cru I2S1_MCLKOUT_TX>;
276 pinctrl-names = "default";
277 pinctrl-0 = <&pmic_int>, <&i2s1m0_mclk>;
278 rockchip,system-power-controller;
279 #sound-dai-cells = <0>;
280 vcc1-supply = <&vcc3v3_sys>;
281 vcc2-supply = <&vcc3v3_sys>;
282 vcc3-supply = <&vcc3v3_sys>;
283 vcc4-supply = <&vcc3v3_sys>;
284 vcc5-supply = <&vcc3v3_sys>;
285 vcc6-supply = <&vcc3v3_sys>;
286 vcc7-supply = <&vcc3v3_sys>;
287 vcc8-supply = <&vcc3v3_sys>;
288 vcc9-supply = <&vcc3v3_sys>;
289 wakeup-source;
290
291 regulators {
292 vdd_logic: DCDC_REG1 {
293 regulator-name = "vdd_logic";
294 regulator-always-on;
295 regulator-boot-on;
296 regulator-init-microvolt = <900000>;
297 regulator-initial-mode = <0x2>;
298 regulator-min-microvolt = <500000>;
299 regulator-max-microvolt = <1350000>;
300 regulator-ramp-delay = <6001>;
301
302 regulator-state-mem {
303 regulator-off-in-suspend;
304 };
305 };
306
307 vdd_gpu: DCDC_REG2 {
308 regulator-name = "vdd_gpu";
309 regulator-always-on;
310 regulator-init-microvolt = <900000>;
311 regulator-initial-mode = <0x2>;
312 regulator-min-microvolt = <500000>;
313 regulator-max-microvolt = <1350000>;
314 regulator-ramp-delay = <6001>;
315
316 regulator-state-mem {
317 regulator-off-in-suspend;
318 };
319 };
320
321 vcc_ddr: DCDC_REG3 {
322 regulator-name = "vcc_ddr";
323 regulator-always-on;
324 regulator-boot-on;
325 regulator-initial-mode = <0x2>;
326
327 regulator-state-mem {
328 regulator-on-in-suspend;
329 };
330 };
331
332 vdd_npu: DCDC_REG4 {
333 regulator-name = "vdd_npu";
334 regulator-init-microvolt = <900000>;
335 regulator-initial-mode = <0x2>;
336 regulator-min-microvolt = <500000>;
337 regulator-max-microvolt = <1350000>;
338 regulator-ramp-delay = <6001>;
339
340 regulator-state-mem {
341 regulator-off-in-suspend;
342 };
343 };
344
345 vcc_1v8: DCDC_REG5 {
346 regulator-name = "vcc_1v8";
347 regulator-always-on;
348 regulator-boot-on;
349 regulator-min-microvolt = <1800000>;
350 regulator-max-microvolt = <1800000>;
351
352 regulator-state-mem {
353 regulator-off-in-suspend;
354 };
355 };
356
357 vdda0v9_image: LDO_REG1 {
358 regulator-name = "vdda0v9_image";
359 regulator-min-microvolt = <900000>;
360 regulator-max-microvolt = <900000>;
361
362 regulator-state-mem {
363 regulator-off-in-suspend;
364 };
365 };
366
367 vdda_0v9: LDO_REG2 {
368 regulator-name = "vdda_0v9";
369 regulator-always-on;
370 regulator-boot-on;
371 regulator-min-microvolt = <900000>;
372 regulator-max-microvolt = <900000>;
373
374 regulator-state-mem {
375 regulator-off-in-suspend;
376 };
377 };
378
379 vdda0v9_pmu: LDO_REG3 {
380 regulator-name = "vdda0v9_pmu";
381 regulator-always-on;
382 regulator-boot-on;
383 regulator-min-microvolt = <900000>;
384 regulator-max-microvolt = <900000>;
385
386 regulator-state-mem {
387 regulator-on-in-suspend;
388 regulator-suspend-microvolt = <900000>;
389 };
390 };
391
392 vccio_acodec: LDO_REG4 {
393 regulator-name = "vccio_acodec";
394 regulator-always-on;
395 regulator-min-microvolt = <3300000>;
396 regulator-max-microvolt = <3300000>;
397
398 regulator-state-mem {
399 regulator-off-in-suspend;
400 };
401 };
402
403 vccio_sd: LDO_REG5 {
404 regulator-name = "vccio_sd";
405 regulator-min-microvolt = <1800000>;
406 regulator-max-microvolt = <3300000>;
407
408 regulator-state-mem {
409 regulator-off-in-suspend;
410 };
411 };
412
413 vcc3v3_pmu: LDO_REG6 {
414 regulator-name = "vcc3v3_pmu";
415 regulator-always-on;
416 regulator-boot-on;
417 regulator-min-microvolt = <3300000>;
418 regulator-max-microvolt = <3300000>;
419
420 regulator-state-mem {
421 regulator-on-in-suspend;
422 regulator-suspend-microvolt = <3300000>;
423 };
424 };
425
426 vcca_1v8: LDO_REG7 {
427 regulator-name = "vcca_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 vcca1v8_pmu: LDO_REG8 {
439 regulator-name = "vcca1v8_pmu";
440 regulator-always-on;
441 regulator-boot-on;
442 regulator-min-microvolt = <1800000>;
443 regulator-max-microvolt = <1800000>;
444
445 regulator-state-mem {
446 regulator-on-in-suspend;
447 regulator-suspend-microvolt = <1800000>;
448 };
449 };
450
451 vcca1v8_image: LDO_REG9 {
452 regulator-name = "vcca1v8_image";
453 regulator-min-microvolt = <1800000>;
454 regulator-max-microvolt = <1800000>;
455
456 regulator-state-mem {
457 regulator-off-in-suspend;
458 };
459 };
460
461 vcc_3v3: SWITCH_REG1 {
462 regulator-name = "vcc_3v3";
463 regulator-always-on;
464 regulator-boot-on;
465
466 regulator-state-mem {
467 regulator-off-in-suspend;
468 };
469 };
470
471 vcc3v3_sd: SWITCH_REG2 {
472 regulator-name = "vcc3v3_sd";
473
474 regulator-state-mem {
475 regulator-off-in-suspend;
476 };
477 };
478 };
479
480 codec {
481 mic-in-differential;
482 };
483 };
484};
485
486&i2c1 {
487 status = "okay";
488
489 touchscreen0: goodix@14 {
490 compatible = "goodix,gt1151";
491 reg = <0x14>;
492 interrupt-parent = <&gpio0>;
493 interrupts = <RK_PB5 IRQ_TYPE_EDGE_FALLING>;
494 AVDD28-supply = <&vcc3v3_lcd0_n>;
495 irq-gpios = <&gpio0 RK_PB5 GPIO_ACTIVE_HIGH>;
496 pinctrl-names = "default";
497 pinctrl-0 = <&touch_int &touch_rst>;
498 reset-gpios = <&gpio0 RK_PB6 GPIO_ACTIVE_HIGH>;
499 VDDIO-supply = <&vcc3v3_lcd0_n>;
500 };
501};
502
503&i2s0_8ch {
504 status = "okay";
505};
506
507&i2s1_8ch {
508 rockchip,trcm-sync-tx-only;
509 status = "okay";
510};
511
512&mdio0 {
513 rgmii_phy0: ethernet-phy@0 {
514 compatible = "ethernet-phy-ieee802.3-c22";
515 reg = <0x0>;
516 reset-assert-us = <20000>;
517 reset-deassert-us = <100000>;
518 reset-gpios = <&gpio2 RK_PD3 GPIO_ACTIVE_LOW>;
519 };
520};
521
522&mdio1 {
523 rgmii_phy1: ethernet-phy@0 {
524 compatible = "ethernet-phy-ieee802.3-c22";
525 reg = <0x0>;
526 reset-assert-us = <20000>;
527 reset-deassert-us = <100000>;
528 reset-gpios = <&gpio2 RK_PD1 GPIO_ACTIVE_LOW>;
529 };
530};
531
532&pinctrl {
533 display {
534 vcc3v3_lcd0_n_en: vcc3v3_lcd0_n_en {
535 rockchip,pins = <0 RK_PC7 0 &pcfg_pull_none>;
536 };
537 vcc3v3_lcd1_n_en: vcc3v3_lcd1_n_en {
538 rockchip,pins = <0 RK_PC5 0 &pcfg_pull_none>;
539 };
540 };
541
542 leds {
543 led_work_en: led_work_en {
544 rockchip,pins = <0 RK_PC0 RK_FUNC_GPIO &pcfg_pull_none>;
545 };
546 };
547
548 pmic {
549 pmic_int: pmic_int {
550 rockchip,pins =
551 <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>;
552 };
553 };
554
555 touchscreen {
556 touch_int: touch_int {
557 rockchip,pins = <0 RK_PB5 RK_FUNC_GPIO &pcfg_pull_up>;
558 };
559 touch_rst: touch_rst {
560 rockchip,pins = <0 RK_PB6 RK_FUNC_GPIO &pcfg_pull_none>;
561 };
562 };
563
564 usb {
565 vcc5v0_usb_host_en: vcc5v0_usb_host_en {
566 rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>;
567 };
568 vcc5v0_usb_otg_en: vcc5v0_usb_otg_en {
569 rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>;
570 };
571 };
572};
573
574&pmu_io_domains {
575 pmuio1-supply = <&vcc3v3_pmu>;
576 pmuio2-supply = <&vcc3v3_pmu>;
577 vccio1-supply = <&vccio_acodec>;
578 vccio2-supply = <&vcc_1v8>;
579 vccio3-supply = <&vccio_sd>;
580 vccio4-supply = <&vcc_1v8>;
581 vccio5-supply = <&vcc_3v3>;
582 vccio6-supply = <&vcc_1v8>;
583 vccio7-supply = <&vcc_3v3>;
584 status = "okay";
585};
586
587&saradc {
588 vref-supply = <&vcca_1v8>;
589 status = "okay";
590};
591
Joseph Chen636ffbd2021-06-02 15:58:23 +0800592&sdhci {
593 bus-width = <8>;
594 max-frequency = <200000000>;
595 non-removable;
Chris Morgane2df30c2023-02-13 16:27:37 -0600596 pinctrl-names = "default";
597 pinctrl-0 = <&emmc_bus8 &emmc_clk &emmc_cmd &emmc_datastrobe>;
598 status = "okay";
599};
600
601&sdmmc0 {
602 bus-width = <4>;
603 cap-sd-highspeed;
604 cd-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_LOW>;
605 disable-wp;
606 pinctrl-names = "default";
607 pinctrl-0 = <&sdmmc0_bus4 &sdmmc0_clk &sdmmc0_cmd &sdmmc0_det>;
608 sd-uhs-sdr104;
609 vmmc-supply = <&vcc3v3_sd>;
610 vqmmc-supply = <&vccio_sd>;
611 status = "okay";
612};
613
614&tsadc {
615 rockchip,hw-tshut-mode = <1>;
616 rockchip,hw-tshut-polarity = <0>;
Joseph Chen636ffbd2021-06-02 15:58:23 +0800617 status = "okay";
618};
619
620&uart2 {
621 status = "okay";
622};
Chris Morgane2df30c2023-02-13 16:27:37 -0600623
624&usb_host0_ehci {
625 status = "okay";
626};
627
628&usb_host0_ohci {
629 status = "okay";
630};
631
632&usb_host0_xhci {
633 extcon = <&usb2phy0>;
634 status = "okay";
635};
636
637&usb_host1_ehci {
638 status = "okay";
639};
640
641&usb_host1_ohci {
642 status = "okay";
643};
644
645&usb_host1_xhci {
646 status = "okay";
647};
648
649&usb2phy0 {
650 status = "okay";
651};
652
653&usb2phy0_host {
654 phy-supply = <&vcc5v0_usb_host>;
655 status = "okay";
656};
657
658&usb2phy0_otg {
659 phy-supply = <&vcc5v0_usb_otg>;
660 status = "okay";
661};
662
663&usb2phy1 {
664 status = "okay";
665};
666
667&usb2phy1_host {
668 phy-supply = <&vcc5v0_usb_host>;
669 status = "okay";
670};
671
672&usb2phy1_otg {
673 phy-supply = <&vcc5v0_usb_host>;
674 status = "okay";
675};
676
677&vop {
678 assigned-clocks = <&cru DCLK_VOP0>, <&cru DCLK_VOP1>;
679 assigned-clock-parents = <&pmucru PLL_HPLL>, <&cru PLL_VPLL>;
680 status = "okay";
681};
682
683&vop_mmu {
684 status = "okay";
685};
686
687&vp0 {
688 vp0_out_hdmi: endpoint@ROCKCHIP_VOP2_EP_HDMI0 {
689 reg = <ROCKCHIP_VOP2_EP_HDMI0>;
690 remote-endpoint = <&hdmi_in_vp0>;
691 };
692};