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