xref: /linux/arch/arm64/boot/dts/rockchip/rk3576-lckfb-tspi-3m.dts (revision cbe8aadf1551f3f4a853f24b3b96d9f0eea49c53)
1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
3 * Copyright (c) 2026 LCKFB
4 */
5
6/dts-v1/;
7
8#include <dt-bindings/gpio/gpio.h>
9#include <dt-bindings/input/input.h>
10#include <dt-bindings/interrupt-controller/irq.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 <dt-bindings/usb/pd.h>
15#include "rk3576.dtsi"
16
17/ {
18	model = "LCKFB TaishanPi 3M";
19	compatible = "lckfb,tspi-3m-rk3576", "rockchip,rk3576";
20
21	aliases {
22		mmc0 = &sdhci;
23		mmc1 = &sdmmc;
24	};
25
26	chosen {
27		stdout-path = "serial0:1500000n8";
28	};
29
30	adc-keys {
31		compatible = "adc-keys";
32		io-channels = <&saradc 1>;
33		io-channel-names = "buttons";
34		keyup-threshold-microvolt = <1800000>;
35		poll-interval = <100>;
36
37		button-recovery {
38			label = "Recovery";
39			linux,code = <KEY_VENDOR>;
40			press-threshold-microvolt = <18000>;
41		};
42	};
43
44	leds {
45		compatible = "gpio-leds";
46
47		led-0 {
48			color = <LED_COLOR_ID_GREEN>;
49			function = LED_FUNCTION_HEARTBEAT;
50			gpios = <&gpio0 RK_PA0 GPIO_ACTIVE_LOW>;
51			linux,default-trigger = "heartbeat";
52		};
53	};
54
55	hdmi-con {
56		compatible = "hdmi-connector";
57		type = "a";
58
59		port {
60			hdmi_con_in: endpoint {
61				remote-endpoint = <&hdmi_out_con>;
62			};
63		};
64	};
65
66	vcc_5v0_usb2_host: regulator-vcc-5v0-usb2-host {
67		compatible = "regulator-fixed";
68		enable-active-high;
69		gpio = <&gpio2 RK_PB5 GPIO_ACTIVE_HIGH>;
70		pinctrl-names = "default";
71		pinctrl-0 = <&usb2_host_pwren>;
72		regulator-max-microvolt = <5000000>;
73		regulator-min-microvolt = <5000000>;
74		regulator-name = "vcc_5v0_usb2_host";
75		vin-supply = <&vcc_5v0_sys>;
76	};
77
78	vcc_5v0_usb3_host: regulator-vcc-5v0-usb3-host {
79		compatible = "regulator-fixed";
80		enable-active-high;
81		gpio = <&gpio0 RK_PC3 GPIO_ACTIVE_HIGH>;
82		pinctrl-names = "default";
83		pinctrl-0 = <&usb3_host_pwren>;
84		regulator-max-microvolt = <5000000>;
85		regulator-min-microvolt = <5000000>;
86		regulator-name = "vcc_5v0_usb3_host";
87		vin-supply = <&vcc_5v0_sys>;
88	};
89
90	vcc_5v0_typec: regulator-vcc-5v0-typec {
91		compatible = "regulator-fixed";
92		enable-active-high;
93		gpio = <&gpio0 RK_PB6 GPIO_ACTIVE_HIGH>;
94		pinctrl-names = "default";
95		pinctrl-0 = <&typec_vbus_en>;
96		regulator-max-microvolt = <5000000>;
97		regulator-min-microvolt = <5000000>;
98		regulator-name = "vcc_5v0_typec";
99		vin-supply = <&vcc_5v0_sys>;
100	};
101
102	vcc_5v0_sys: regulator-vcc-5v0-sys {
103		compatible = "regulator-fixed";
104		regulator-name = "vcc_5v0_sys";
105		regulator-always-on;
106		regulator-boot-on;
107		regulator-min-microvolt = <5000000>;
108		regulator-max-microvolt = <5000000>;
109	};
110
111	vcc_1v1_nldo_s3: regulator-vcc-1v1-nldo-s3 {
112		compatible = "regulator-fixed";
113		regulator-name = "vcc_1v1_nldo_s3";
114		regulator-always-on;
115		regulator-boot-on;
116		regulator-min-microvolt = <1100000>;
117		regulator-max-microvolt = <1100000>;
118		vin-supply = <&vcc_5v0_sys>;
119	};
120
121	vcc_2v0_pldo_s3: regulator-vcc-2v0-pldo-s3 {
122		compatible = "regulator-fixed";
123		regulator-name = "vcc_2v0_pldo_s3";
124		regulator-always-on;
125		regulator-boot-on;
126		regulator-min-microvolt = <2000000>;
127		regulator-max-microvolt = <2000000>;
128		vin-supply = <&vcc_5v0_sys>;
129	};
130
131	vcc_3v3_minipcie: regulator-vcc-3v3-minipcie {
132		compatible = "regulator-fixed";
133		enable-active-high;
134		gpio = <&gpio1 RK_PD5 GPIO_ACTIVE_HIGH>;
135		pinctrl-names = "default";
136		pinctrl-0 = <&minipcie_pwren>;
137		regulator-boot-on;
138		regulator-max-microvolt = <3300000>;
139		regulator-min-microvolt = <3300000>;
140		regulator-name = "vcc_3v3_minipcie";
141		startup-delay-us = <5000>;
142		vin-supply = <&vcc_5v0_sys>;
143	};
144
145	vcc_3v3_wl: regulator-3v3-wl {
146		compatible = "regulator-fixed";
147		gpio = <&gpio0 RK_PD1 GPIO_ACTIVE_LOW>;
148		pinctrl-names = "default";
149		pinctrl-0 = <&wifi_pwren_l>;
150		regulator-boot-on;
151		regulator-max-microvolt = <3300000>;
152		regulator-min-microvolt = <3300000>;
153		regulator-name = "vcc_3v3_wl";
154		vin-supply = <&vcc_3v3_s0>;
155	};
156
157	vcc_3v3_s0: regulator-vcc-3v3-s0 {
158		compatible = "regulator-fixed";
159		regulator-name = "vcc_3v3_s0";
160		regulator-always-on;
161		regulator-boot-on;
162		regulator-min-microvolt = <3300000>;
163		regulator-max-microvolt = <3300000>;
164		vin-supply = <&vcc_3v3_s3>;
165	};
166
167	sdio_pwrseq: sdio-pwrseq {
168		compatible = "mmc-pwrseq-simple";
169		clock-names = "ext_clock";
170		clocks = <&hym8563>;
171		pinctrl-names = "default";
172		pinctrl-0 = <&wifi_reg_on_h>;
173		post-power-on-delay-ms = <200>;
174		reset-gpios = <&gpio1 RK_PC6 GPIO_ACTIVE_LOW>;
175	};
176
177	usb_a_3_0: usb-a-connector-0 {
178		compatible = "usb-a-connector";
179		label = "USB 3.0 Type-A";
180		vbus-supply = <&vcc_5v0_usb3_host>;
181
182		ports {
183			#address-cells = <1>;
184			#size-cells = <0>;
185
186			port@0 {
187				reg = <0>;
188
189				usb_a_3_0_hs: endpoint {
190					remote-endpoint = <&usb_hub_port1>;
191				};
192			};
193
194			port@1 {
195				reg = <1>;
196
197				usb_a_3_0_ss: endpoint {
198					remote-endpoint = <&usb_drd1_ss>;
199				};
200			};
201		};
202	};
203
204	usb_a_2_0_1: usb-a-connector-1 {
205		compatible = "usb-a-connector";
206		label = "USB 2.0 Type-A 1";
207		vbus-supply = <&vcc_5v0_usb3_host>;
208
209		port {
210			usb_a_2_0_1_hs: endpoint {
211				remote-endpoint = <&usb_hub_port2>;
212			};
213		};
214	};
215
216	usb_a_2_0_2: usb-a-connector-2 {
217		compatible = "usb-a-connector";
218		label = "USB 2.0 Type-A 2";
219		vbus-supply = <&vcc_5v0_usb2_host>;
220
221		port {
222			usb_a_2_0_2_hs: endpoint {
223				remote-endpoint = <&usb_hub_port3>;
224			};
225		};
226	};
227
228	usb_a_2_0_3: usb-a-connector-3 {
229		compatible = "usb-a-connector";
230		label = "USB 2.0 Type-A 3";
231		vbus-supply = <&vcc_5v0_usb2_host>;
232
233		port {
234			usb_a_2_0_3_hs: endpoint {
235				remote-endpoint = <&usb_hub_port4>;
236			};
237		};
238	};
239};
240
241&combphy0_ps {
242	status = "okay";
243};
244
245&combphy1_psu {
246	status = "okay";
247};
248
249&cpu_b0 {
250	cpu-supply = <&vdd_cpu_big_s0>;
251};
252
253&cpu_b1 {
254	cpu-supply = <&vdd_cpu_big_s0>;
255};
256
257&cpu_b2 {
258	cpu-supply = <&vdd_cpu_big_s0>;
259};
260
261&cpu_b3 {
262	cpu-supply = <&vdd_cpu_big_s0>;
263};
264
265&cpu_l0 {
266	cpu-supply = <&vdd_cpu_lit_s0>;
267};
268
269&cpu_l1 {
270	cpu-supply = <&vdd_cpu_lit_s0>;
271};
272
273&cpu_l2 {
274	cpu-supply = <&vdd_cpu_lit_s0>;
275};
276
277&cpu_l3 {
278	cpu-supply = <&vdd_cpu_lit_s0>;
279};
280
281&gmac0 {
282	clock_in_out = "input";
283	phy-handle = <&rgmii_phy0>;
284	/* RX delay is added by the PHY, TX delay by the GMAC. */
285	phy-mode = "rgmii-rxid";
286	pinctrl-names = "default";
287	pinctrl-0 = <&eth0m0_miim
288		     &eth0m0_tx_bus2
289		     &eth0m0_rx_bus2
290		     &eth0m0_rgmii_clk
291		     &eth0m0_rgmii_bus
292		     &eth0m0_mclk>;
293	tx_delay = <0x24>;
294	status = "okay";
295};
296
297&hdmi {
298	/* The external level shifters must be on for TMDS operation. */
299	frl-enable-gpios = <&gpio4 RK_PC6 GPIO_ACTIVE_LOW>;
300	status = "okay";
301};
302
303&hdmi_in {
304	hdmi_in_vp0: endpoint {
305		remote-endpoint = <&vp0_out_hdmi>;
306	};
307};
308
309&hdmi_out {
310	hdmi_out_con: endpoint {
311		remote-endpoint = <&hdmi_con_in>;
312	};
313};
314
315&hdmi_sound {
316	simple-audio-card,mclk-fs = <128>;
317	status = "okay";
318
319	simple-audio-card,cpu {
320		dai-tdm-slot-num = <2>;
321		dai-tdm-slot-width = <32>;
322	};
323};
324
325&hdptxphy {
326	status = "okay";
327};
328
329&i2c1 {
330	status = "okay";
331
332	pmic@23 {
333		compatible = "rockchip,rk806";
334		reg = <0x23>;
335		#gpio-cells = <2>;
336		gpio-controller;
337		interrupt-parent = <&gpio0>;
338		interrupts = <6 IRQ_TYPE_LEVEL_LOW>;
339		pinctrl-names = "default";
340		pinctrl-0 = <&pmic_pins
341			     &rk806_dvs1_null
342			     &rk806_dvs2_null
343			     &rk806_dvs3_null>;
344		system-power-controller;
345		vcc1-supply = <&vcc_5v0_sys>;
346		vcc2-supply = <&vcc_5v0_sys>;
347		vcc3-supply = <&vcc_5v0_sys>;
348		vcc4-supply = <&vcc_5v0_sys>;
349		vcc5-supply = <&vcc_5v0_sys>;
350		vcc6-supply = <&vcc_5v0_sys>;
351		vcc7-supply = <&vcc_5v0_sys>;
352		vcc8-supply = <&vcc_5v0_sys>;
353		vcc9-supply = <&vcc_5v0_sys>;
354		vcc10-supply = <&vcc_5v0_sys>;
355		vcc11-supply = <&vcc_2v0_pldo_s3>;
356		vcc12-supply = <&vcc_5v0_sys>;
357		vcc13-supply = <&vcc_1v1_nldo_s3>;
358		vcc14-supply = <&vcc_1v1_nldo_s3>;
359		vcca-supply = <&vcc_5v0_sys>;
360
361		rk806_dvs1_null: dvs1-null-pins {
362			pins = "gpio_pwrctrl1";
363			function = "pin_fun0";
364		};
365
366		rk806_dvs2_null: dvs2-null-pins {
367			pins = "gpio_pwrctrl2";
368			function = "pin_fun0";
369		};
370
371		rk806_dvs3_null: dvs3-null-pins {
372			pins = "gpio_pwrctrl3";
373			function = "pin_fun0";
374		};
375
376		regulators {
377			vdd_cpu_big_s0: dcdc-reg1 {
378				regulator-always-on;
379				regulator-boot-on;
380				regulator-enable-ramp-delay = <400>;
381				regulator-min-microvolt = <550000>;
382				regulator-max-microvolt = <950000>;
383				regulator-name = "vdd_cpu_big_s0";
384				regulator-ramp-delay = <12500>;
385
386				regulator-state-mem {
387					regulator-off-in-suspend;
388				};
389			};
390
391			vdd_npu_s0: dcdc-reg2 {
392				regulator-boot-on;
393				regulator-enable-ramp-delay = <400>;
394				regulator-min-microvolt = <550000>;
395				regulator-max-microvolt = <950000>;
396				regulator-name = "vdd_npu_s0";
397				regulator-ramp-delay = <12500>;
398
399				regulator-state-mem {
400					regulator-off-in-suspend;
401				};
402			};
403
404			vdd_cpu_lit_s0: dcdc-reg3 {
405				regulator-always-on;
406				regulator-boot-on;
407				regulator-min-microvolt = <550000>;
408				regulator-max-microvolt = <950000>;
409				regulator-name = "vdd_cpu_lit_s0";
410				regulator-ramp-delay = <12500>;
411
412				regulator-state-mem {
413					regulator-off-in-suspend;
414				};
415			};
416
417			vcc_3v3_s3: dcdc-reg4 {
418				regulator-always-on;
419				regulator-boot-on;
420				regulator-min-microvolt = <3300000>;
421				regulator-max-microvolt = <3300000>;
422				regulator-name = "vcc_3v3_s3";
423
424				regulator-state-mem {
425					regulator-on-in-suspend;
426				};
427			};
428
429			vdd_gpu_s0: dcdc-reg5 {
430				regulator-boot-on;
431				regulator-enable-ramp-delay = <400>;
432				regulator-min-microvolt = <550000>;
433				regulator-max-microvolt = <900000>;
434				regulator-name = "vdd_gpu_s0";
435				regulator-ramp-delay = <12500>;
436
437				regulator-state-mem {
438					regulator-off-in-suspend;
439				};
440			};
441
442			vddq_ddr_s0: dcdc-reg6 {
443				regulator-always-on;
444				regulator-boot-on;
445				regulator-name = "vddq_ddr_s0";
446
447				regulator-state-mem {
448					regulator-off-in-suspend;
449				};
450			};
451
452			vdd_logic_s0: dcdc-reg7 {
453				regulator-always-on;
454				regulator-boot-on;
455				regulator-min-microvolt = <550000>;
456				regulator-max-microvolt = <800000>;
457				regulator-name = "vdd_logic_s0";
458
459				regulator-state-mem {
460					regulator-off-in-suspend;
461				};
462			};
463
464			vcc_1v8_s3: dcdc-reg8 {
465				regulator-always-on;
466				regulator-boot-on;
467				regulator-min-microvolt = <1800000>;
468				regulator-max-microvolt = <1800000>;
469				regulator-name = "vcc_1v8_s3";
470
471				regulator-state-mem {
472					regulator-on-in-suspend;
473				};
474			};
475
476			vdd2_ddr_s3: dcdc-reg9 {
477				regulator-always-on;
478				regulator-boot-on;
479				regulator-name = "vdd2_ddr_s3";
480
481				regulator-state-mem {
482					regulator-on-in-suspend;
483				};
484			};
485
486			vdd_ddr_s0: dcdc-reg10 {
487				regulator-always-on;
488				regulator-boot-on;
489				regulator-min-microvolt = <550000>;
490				regulator-max-microvolt = <1200000>;
491				regulator-name = "vdd_ddr_s0";
492
493				regulator-state-mem {
494					regulator-off-in-suspend;
495				};
496			};
497
498			vcca_1v8_s0: pldo-reg1 {
499				regulator-always-on;
500				regulator-boot-on;
501				regulator-min-microvolt = <1800000>;
502				regulator-max-microvolt = <1800000>;
503				regulator-name = "vcca_1v8_s0";
504
505				regulator-state-mem {
506					regulator-off-in-suspend;
507				};
508			};
509
510			vcca1v8_pldo2_s0: pldo-reg2 {
511				regulator-always-on;
512				regulator-boot-on;
513				regulator-min-microvolt = <1800000>;
514				regulator-max-microvolt = <1800000>;
515				regulator-name = "vcca1v8_pldo2_s0";
516
517				regulator-state-mem {
518					regulator-off-in-suspend;
519				};
520			};
521
522			vdda_1v2_s0: pldo-reg3 {
523				regulator-always-on;
524				regulator-boot-on;
525				regulator-min-microvolt = <1200000>;
526				regulator-max-microvolt = <1200000>;
527				regulator-name = "vdda_1v2_s0";
528
529				regulator-state-mem {
530					regulator-off-in-suspend;
531				};
532			};
533
534			vcca_3v3_s0: pldo-reg4 {
535				regulator-always-on;
536				regulator-boot-on;
537				regulator-min-microvolt = <3300000>;
538				regulator-max-microvolt = <3300000>;
539				regulator-name = "vcca_3v3_s0";
540
541				regulator-state-mem {
542					regulator-off-in-suspend;
543				};
544			};
545
546			vccio_sd_s0: pldo-reg5 {
547				regulator-always-on;
548				regulator-boot-on;
549				regulator-min-microvolt = <1800000>;
550				regulator-max-microvolt = <3300000>;
551				regulator-name = "vccio_sd_s0";
552
553				regulator-state-mem {
554					regulator-off-in-suspend;
555				};
556			};
557
558			vcca1v8_pldo6_s3: pldo-reg6 {
559				regulator-always-on;
560				regulator-boot-on;
561				regulator-min-microvolt = <1800000>;
562				regulator-max-microvolt = <1800000>;
563				regulator-name = "vcca1v8_pldo6_s3";
564
565				regulator-state-mem {
566					regulator-on-in-suspend;
567				};
568			};
569
570			vdd_0v75_s3: nldo-reg1 {
571				regulator-always-on;
572				regulator-boot-on;
573				regulator-min-microvolt = <750000>;
574				regulator-max-microvolt = <750000>;
575				regulator-name = "vdd_0v75_s3";
576
577				regulator-state-mem {
578					regulator-on-in-suspend;
579				};
580			};
581
582			vdda_ddr_pll_s0: nldo-reg2 {
583				regulator-always-on;
584				regulator-boot-on;
585				regulator-min-microvolt = <850000>;
586				regulator-max-microvolt = <850000>;
587				regulator-name = "vdda_ddr_pll_s0";
588
589				regulator-state-mem {
590					regulator-off-in-suspend;
591				};
592			};
593
594			vdda_hdmi_s0: nldo-reg3 {
595				regulator-always-on;
596				regulator-boot-on;
597				regulator-min-microvolt = <837500>;
598				regulator-max-microvolt = <837500>;
599				regulator-name = "vdda_hdmi_s0";
600
601				regulator-state-mem {
602					regulator-off-in-suspend;
603				};
604			};
605
606			vdda_0v85_s0: nldo-reg4 {
607				regulator-always-on;
608				regulator-boot-on;
609				regulator-min-microvolt = <850000>;
610				regulator-max-microvolt = <850000>;
611				regulator-name = "vdda_0v85_s0";
612
613				regulator-state-mem {
614					regulator-off-in-suspend;
615				};
616			};
617
618			vdda_0v75_s0: nldo-reg5 {
619				regulator-always-on;
620				regulator-boot-on;
621				regulator-min-microvolt = <750000>;
622				regulator-max-microvolt = <750000>;
623				regulator-name = "vdda_0v75_s0";
624
625				regulator-state-mem {
626					regulator-off-in-suspend;
627				};
628			};
629		};
630	};
631};
632
633&i2c2 {
634	status = "okay";
635
636	typec@22 {
637		compatible = "fcs,fusb302";
638		reg = <0x22>;
639		interrupt-parent = <&gpio0>;
640		interrupts = <RK_PB4 IRQ_TYPE_LEVEL_LOW>;
641		pinctrl-names = "default";
642		pinctrl-0 = <&fusb302_int>;
643		vbus-supply = <&vcc_5v0_typec>;
644
645		connector {
646			compatible = "usb-c-connector";
647			data-role = "host";
648			label = "USB-C";
649			power-role = "source";
650			source-pdos = <PDO_FIXED(5000, 500, PDO_FIXED_USB_COMM)>;
651
652			ports {
653				#address-cells = <1>;
654				#size-cells = <0>;
655
656				port@0 {
657					reg = <0>;
658
659					usb_c_hs: endpoint {
660						remote-endpoint = <&usb_drd0_hs>;
661					};
662				};
663
664				port@1 {
665					reg = <1>;
666
667					usb_c_ss: endpoint {
668						remote-endpoint = <&usbdp_phy_ep>;
669					};
670				};
671			};
672		};
673	};
674
675	hym8563: rtc@51 {
676		compatible = "haoyu,hym8563";
677		reg = <0x51>;
678		#clock-cells = <0>;
679		clock-output-names = "hym8563";
680		interrupt-parent = <&gpio0>;
681		interrupts = <RK_PA5 IRQ_TYPE_LEVEL_LOW>;
682		pinctrl-names = "default";
683		pinctrl-0 = <&rtc_int_l>;
684		wakeup-source;
685	};
686};
687
688&mdio0 {
689	rgmii_phy0: ethernet-phy@1 {
690		compatible = "ethernet-phy-id7b74.4412";
691		reg = <0x1>;
692		pinctrl-names = "default";
693		pinctrl-0 = <&gmac0_phy_reset>;
694		reset-assert-us = <20000>;
695		reset-deassert-us = <100000>;
696		reset-gpios = <&gpio2 RK_PB3 GPIO_ACTIVE_LOW>;
697	};
698};
699
700&pinctrl {
701	ethernet {
702		gmac0_phy_reset: gmac0-phy-reset {
703			rockchip,pins = <2 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>;
704		};
705	};
706
707	minipcie {
708		minipcie_pwren: minipcie-pwren {
709			rockchip,pins = <1 RK_PD5 RK_FUNC_GPIO &pcfg_pull_none>;
710		};
711	};
712
713	rtc {
714		rtc_int_l: rtc-int-l {
715			rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>;
716		};
717	};
718
719	wireless-bluetooth {
720		bt_host_wake_h: bt-host-wake-h {
721			rockchip,pins = <0 RK_PB1 RK_FUNC_GPIO &pcfg_pull_down>;
722		};
723
724		bt_reg_on_h: bt-reg-on-h {
725			rockchip,pins = <1 RK_PC7 RK_FUNC_GPIO &pcfg_pull_none>;
726		};
727
728		bt_wake_h: bt-wake-h {
729			rockchip,pins = <1 RK_PD4 RK_FUNC_GPIO &pcfg_pull_none>;
730		};
731	};
732
733	wireless-wlan {
734		wifi_host_wake_h: wifi-host-wake-h {
735			rockchip,pins = <0 RK_PB0 RK_FUNC_GPIO &pcfg_pull_down>;
736		};
737
738		wifi_pwren_l: wifi-pwren-l {
739			rockchip,pins = <0 RK_PD1 RK_FUNC_GPIO &pcfg_pull_up>;
740		};
741
742		wifi_reg_on_h: wifi-reg-on-h {
743			rockchip,pins = <1 RK_PC6 RK_FUNC_GPIO &pcfg_pull_up>;
744		};
745	};
746
747	sdmmc {
748		sdmmc0_det_l: sdmmc0-det-l {
749			rockchip,pins = <0 RK_PA7 RK_FUNC_GPIO &pcfg_pull_up>;
750		};
751	};
752
753	usb-host {
754		usb2_host_pwren: usb2-host-pwren {
755			rockchip,pins = <2 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>;
756		};
757
758		usb3_host_pwren: usb3-host-pwren {
759			rockchip,pins = <0 RK_PC3 RK_FUNC_GPIO &pcfg_pull_none>;
760		};
761	};
762
763	usb-typec {
764		fusb302_int: fusb302-int {
765			rockchip,pins = <0 RK_PB4 RK_FUNC_GPIO &pcfg_pull_up>;
766		};
767
768		typec_vbus_en: typec-vbus-en {
769			rockchip,pins = <0 RK_PB6 RK_FUNC_GPIO &pcfg_pull_none>;
770		};
771	};
772};
773
774&sai6 {
775	rockchip,sai-tx-route = <0>;
776	status = "okay";
777};
778
779&saradc {
780	vref-supply = <&vcca1v8_pldo2_s0>;
781	status = "okay";
782};
783
784&sata0 {
785	target-supply = <&vcc_3v3_minipcie>;
786	status = "okay";
787};
788
789&sdio {
790	bus-width = <4>;
791	cap-sd-highspeed;
792	cap-sdio-irq;
793	keep-power-in-suspend;
794	max-frequency = <100000000>;
795	mmc-pwrseq = <&sdio_pwrseq>;
796	no-mmc;
797	no-sd;
798	non-removable;
799	sd-uhs-sdr104;
800	vmmc-supply = <&vcc_3v3_wl>;
801	#address-cells = <1>;
802	#size-cells = <0>;
803	status = "okay";
804
805	wifi@1 {
806		compatible = "brcm,bcm43456-fmac", "brcm,bcm4329-fmac";
807		reg = <1>;
808		interrupt-parent = <&gpio0>;
809		interrupts = <RK_PB0 IRQ_TYPE_LEVEL_HIGH>;
810		interrupt-names = "host-wake";
811		pinctrl-names = "default";
812		pinctrl-0 = <&wifi_host_wake_h>;
813	};
814};
815
816&sdmmc {
817	bus-width = <4>;
818	cap-sd-highspeed;
819	cd-gpios = <&gpio0 RK_PA7 GPIO_ACTIVE_LOW>;
820	disable-wp;
821	max-frequency = <50000000>;
822	no-mmc;
823	no-sdio;
824	pinctrl-names = "default";
825	/* GPIO0_B6/SDMMC0_PWREN is not connected on this board. */
826	pinctrl-0 = <&sdmmc0_clk &sdmmc0_cmd &sdmmc0_det_l &sdmmc0_bus4>;
827	vmmc-supply = <&vcc_3v3_s0>;
828	vqmmc-supply = <&vccio_sd_s0>;
829	status = "okay";
830};
831
832&sdhci {
833	bus-width = <8>;
834	full-pwr-cycle-in-suspend;
835	mmc-hs400-1_8v;
836	mmc-hs400-enhanced-strobe;
837	no-sd;
838	no-sdio;
839	non-removable;
840	vmmc-supply = <&vcc_3v3_s3>;
841	vqmmc-supply = <&vcc_1v8_s3>;
842	status = "okay";
843};
844
845&tsadc {
846	status = "okay";
847};
848
849&uart0 {
850	status = "okay";
851};
852
853&uart6 {
854	pinctrl-names = "default";
855	pinctrl-0 = <&uart6m1_xfer &uart6m1_ctsn &uart6m1_rtsn>;
856	uart-has-rtscts;
857	status = "okay";
858
859	bluetooth {
860		compatible = "brcm,bcm4345c5";
861		clocks = <&hym8563>;
862		clock-names = "lpo";
863		device-wakeup-gpios = <&gpio1 RK_PD4 GPIO_ACTIVE_HIGH>;
864		interrupt-parent = <&gpio0>;
865		interrupts = <RK_PB1 IRQ_TYPE_LEVEL_HIGH>;
866		interrupt-names = "host-wakeup";
867		max-speed = <1500000>;
868		pinctrl-names = "default";
869		pinctrl-0 = <&bt_host_wake_h &bt_reg_on_h &bt_wake_h>;
870		shutdown-gpios = <&gpio1 RK_PC7 GPIO_ACTIVE_HIGH>;
871		vbat-supply = <&vcc_3v3_wl>;
872	};
873};
874
875&u2phy0 {
876	status = "okay";
877};
878
879&u2phy0_otg {
880	status = "okay";
881};
882
883&u2phy1 {
884	status = "okay";
885};
886
887&u2phy1_otg {
888	status = "okay";
889};
890
891&usbdp_phy {
892	mode-switch;
893	orientation-switch;
894	status = "okay";
895
896	port {
897		usbdp_phy_ep: endpoint {
898			remote-endpoint = <&usb_c_ss>;
899		};
900	};
901};
902
903&usb_drd0_dwc3 {
904	usb-role-switch;
905	status = "okay";
906
907	ports {
908		#address-cells = <1>;
909		#size-cells = <0>;
910
911		port@0 {
912			reg = <0>;
913
914			usb_drd0_hs: endpoint {
915				remote-endpoint = <&usb_c_hs>;
916			};
917		};
918	};
919};
920
921&usb_drd1_dwc3 {
922	#address-cells = <1>;
923	#size-cells = <0>;
924
925	dr_mode = "host";
926	status = "okay";
927
928	usb_hub: hub@1 {
929		compatible = "usb1a40,0201";
930		reg = <1>;
931
932		ports {
933			#address-cells = <1>;
934			#size-cells = <0>;
935
936			port@1 {
937				reg = <1>;
938
939				usb_hub_port1: endpoint {
940					remote-endpoint = <&usb_a_3_0_hs>;
941				};
942			};
943
944			port@2 {
945				reg = <2>;
946
947				usb_hub_port2: endpoint {
948					remote-endpoint = <&usb_a_2_0_1_hs>;
949				};
950			};
951
952			port@3 {
953				reg = <3>;
954
955				usb_hub_port3: endpoint {
956					remote-endpoint = <&usb_a_2_0_2_hs>;
957				};
958			};
959
960			port@4 {
961				reg = <4>;
962
963				usb_hub_port4: endpoint {
964					remote-endpoint = <&usb_a_2_0_3_hs>;
965				};
966			};
967		};
968	};
969
970	ports {
971		#address-cells = <1>;
972		#size-cells = <0>;
973
974		port@1 {
975			reg = <1>;
976
977			usb_drd1_ss: endpoint {
978				remote-endpoint = <&usb_a_3_0_ss>;
979			};
980		};
981	};
982};
983
984&vop {
985	status = "okay";
986};
987
988&vop_mmu {
989	status = "okay";
990};
991
992&vp0 {
993	vp0_out_hdmi: endpoint@ROCKCHIP_VOP2_EP_HDMI0 {
994		reg = <ROCKCHIP_VOP2_EP_HDMI0>;
995		remote-endpoint = <&hdmi_in_vp0>;
996	};
997};
998