1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
3 * Copyright (c) 2022 Fuzhou Rockchip Electronics Co., Ltd.
4 */
5
6/dts-v1/;
7#include <dt-bindings/input/linux-event-codes.h>
8#include <dt-bindings/pwm/pwm.h>
9#include <dt-bindings/usb/pd.h>
10#include "rk3399.dtsi"
11#include "rk3399-opp.dtsi"
12
13/ {
14	model = "OPEN AI LAB EAIDK-610";
15	compatible = "openailab,eaidk-610", "rockchip,rk3399";
16
17	aliases {
18		ethernet0 = &gmac;
19		mmc0 = &sdio0;
20		mmc1 = &sdmmc;
21		mmc2 = &sdhci;
22	};
23
24	backlight: backlight {
25		compatible = "pwm-backlight";
26		pwms = <&pwm0 0 25000 0>;
27		brightness-levels = <
28			  0   1   2   3   4   5   6   7
29			  8   9  10  11  12  13  14  15
30			 16  17  18  19  20  21  22  23
31			 24  25  26  27  28  29  30  31
32			 32  33  34  35  36  37  38  39
33			 40  41  42  43  44  45  46  47
34			 48  49  50  51  52  53  54  55
35			 56  57  58  59  60  61  62  63
36			 64  65  66  67  68  69  70  71
37			 72  73  74  75  76  77  78  79
38			 80  81  82  83  84  85  86  87
39			 88  89  90  91  92  93  94  95
40			 96  97  98  99 100 101 102 103
41			104 105 106 107 108 109 110 111
42			112 113 114 115 116 117 118 119
43			120 121 122 123 124 125 126 127
44			128 129 130 131 132 133 134 135
45			136 137 138 139 140 141 142 143
46			144 145 146 147 148 149 150 151
47			152 153 154 155 156 157 158 159
48			160 161 162 163 164 165 166 167
49			168 169 170 171 172 173 174 175
50			176 177 178 179 180 181 182 183
51			184 185 186 187 188 189 190 191
52			192 193 194 195 196 197 198 199
53			200 201 202 203 204 205 206 207
54			208 209 210 211 212 213 214 215
55			216 217 218 219 220 221 222 223
56			224 225 226 227 228 229 230 231
57			232 233 234 235 236 237 238 239
58			240 241 242 243 244 245 246 247
59			248 249 250 251 252 253 254 255>;
60		default-brightness-level = <200>;
61	};
62
63	clkin_gmac: external-gmac-clock {
64		compatible = "fixed-clock";
65		clock-frequency = <125000000>;
66		clock-output-names = "clkin_gmac";
67		#clock-cells = <0>;
68	};
69
70	dc_12v: dc-12v {
71		compatible = "regulator-fixed";
72		regulator-name = "dc_12v";
73		regulator-always-on;
74		regulator-boot-on;
75		regulator-min-microvolt = <12000000>;
76		regulator-max-microvolt = <12000000>;
77	};
78
79	gpio-keys {
80		compatible = "gpio-keys";
81		autorepeat;
82		pinctrl-names = "default";
83		pinctrl-0 = <&pwrbtn>;
84
85		key-power {
86			debounce-interval = <100>;
87			gpios = <&gpio0 RK_PA5 GPIO_ACTIVE_LOW>;
88			label = "GPIO Key Power";
89			linux,code = <KEY_POWER>;
90			wakeup-source;
91		};
92	};
93
94	leds {
95		compatible = "gpio-leds";
96		pinctrl-names = "default";
97		pinctrl-0 = <&work_led_pin>, <&user_led_pin>,
98			    <&heartbeat_led_pin>, <&wlan_active_led_pin>,
99			    <&bt_active_led_pin>;
100
101		work_led: led-0 {
102			label = "blue:work";
103			default-state = "on";
104			gpios = <&gpio0 RK_PA2 GPIO_ACTIVE_HIGH>;
105		};
106
107		user_led: led-1 {
108			label = "read:user";
109			default-state = "off";
110			gpios = <&gpio0 RK_PB4 GPIO_ACTIVE_HIGH>;
111		};
112
113		heartbeat_led: led-2 {
114			label = "green:heartbeat";
115			linux,default-trigger = "heartbeat";
116			gpios = <&gpio0 RK_PB5 GPIO_ACTIVE_HIGH>;
117		};
118
119		wlan_active_led: led-3 {
120			label = "yellow:wlan";
121			gpios = <&gpio2 RK_PD3 GPIO_ACTIVE_HIGH>;
122			linux,default-trigger = "phy0tx";
123			default-state = "off";
124		};
125
126		bt_active_led: led-4 {
127			label = "blue:bt";
128			gpios = <&gpio2 RK_PD4 GPIO_ACTIVE_HIGH>;
129			linux,default-trigger = "hci0-power";
130			default-state = "off";
131		};
132	};
133
134	rt5651-sound {
135		compatible = "simple-audio-card";
136		simple-audio-card,name = "realtek,rt5651-codec";
137		simple-audio-card,format = "i2s";
138		simple-audio-card,mclk-fs = <256>;
139		simple-audio-card,widgets =
140			"Microphone", "Mic Jack",
141			"Headphone", "Headphone Jack";
142		simple-audio-card,routing =
143			"Mic Jack", "MICBIAS1",
144			"IN1P", "Mic Jack",
145			"Headphone Jack", "HPOL",
146			"Headphone Jack", "HPOR";
147		simple-audio-card,cpu {
148			sound-dai = <&i2s1>;
149		};
150		simple-audio-card,codec {
151			sound-dai = <&rt5651>;
152		};
153	};
154
155	sdio_pwrseq: sdio-pwrseq {
156		compatible = "mmc-pwrseq-simple";
157		clocks = <&rk808 1>;
158		clock-names = "ext_clock";
159		pinctrl-names = "default";
160		pinctrl-0 = <&wifi_enable_h>;
161
162		/*
163		 * On the module itself this is one of these (depending
164		 * on the actual card populated):
165		 * - SDIO_RESET_L_WL_REG_ON
166		 * - PDN (power down when low)
167		 */
168		reset-gpios = <&gpio0 RK_PB2 GPIO_ACTIVE_LOW>;
169	};
170
171	/* switched by pmic_sleep */
172	vcc1v8_s3: vcca1v8_s3: vcc1v8-s3 {
173		compatible = "regulator-fixed";
174		regulator-name = "vcc1v8_s3";
175		regulator-always-on;
176		regulator-boot-on;
177		regulator-min-microvolt = <1800000>;
178		regulator-max-microvolt = <1800000>;
179		vin-supply = <&vcc_1v8>;
180	};
181
182	vcc3v3_sys: vcc3v3-sys {
183		compatible = "regulator-fixed";
184		regulator-name = "vcc3v3_sys";
185		regulator-always-on;
186		regulator-boot-on;
187		regulator-min-microvolt = <3300000>;
188		regulator-max-microvolt = <3300000>;
189		vin-supply = <&dc_12v>;
190	};
191
192	vcc5v0_sys: vcc5v0-sys {
193		compatible = "regulator-fixed";
194		regulator-name = "vcc5v0_sys";
195		regulator-always-on;
196		regulator-boot-on;
197		regulator-min-microvolt = <5000000>;
198		regulator-max-microvolt = <5000000>;
199		vin-supply = <&dc_12v>;
200	};
201
202	/* For USB3.0 Port1/2 */
203	vcc5v0_host1: vcc5v0-host1-regulator {
204		compatible = "regulator-fixed";
205		enable-active-high;
206		gpio = <&gpio0 RK_PA6 GPIO_ACTIVE_HIGH>;
207		pinctrl-names = "default";
208		pinctrl-0 = <&vcc5v0_host1_en>;
209		regulator-name = "vcc5v0_host1";
210		regulator-always-on;
211		vin-supply = <&vcc5v0_sys>;
212	};
213
214	/* For USB2.0 Port1/2 */
215	vcc5v0_host3: vcc5v0-host3-regulator {
216		compatible = "regulator-fixed";
217		enable-active-high;
218		gpio = <&gpio0 RK_PB0 GPIO_ACTIVE_HIGH>;
219		pinctrl-names = "default";
220		pinctrl-0 = <&vcc5v0_host3_en>;
221		regulator-name = "vcc5v0_host3";
222		regulator-always-on;
223		vin-supply = <&vcc5v0_sys>;
224	};
225
226	vcc5v0_typec: vcc5v0-typec-regulator {
227		compatible = "regulator-fixed";
228		enable-active-high;
229		gpio = <&gpio4 RK_PC5 GPIO_ACTIVE_HIGH>;
230		pinctrl-names = "default";
231		pinctrl-0 = <&vcc5v0_typec_en>;
232		regulator-name = "vcc5v0_typec";
233		regulator-always-on;
234		vin-supply = <&vcc3v3_sys>;
235	};
236
237	vdd_log: vdd-log {
238		compatible = "regulator-fixed";
239		regulator-name = "vdd_log";
240		regulator-always-on;
241		regulator-boot-on;
242		regulator-min-microvolt = <900000>;
243		regulator-max-microvolt = <900000>;
244	};
245};
246
247&cpu_l0 {
248	cpu-supply = <&vdd_cpu_l>;
249};
250
251&cpu_l1 {
252	cpu-supply = <&vdd_cpu_l>;
253};
254
255&cpu_l2 {
256	cpu-supply = <&vdd_cpu_l>;
257};
258
259&cpu_l3 {
260	cpu-supply = <&vdd_cpu_l>;
261};
262
263&cpu_b0 {
264	cpu-supply = <&vdd_cpu_b>;
265};
266
267&cpu_b1 {
268	cpu-supply = <&vdd_cpu_b>;
269};
270
271&emmc_phy {
272	status = "okay";
273};
274
275&gmac {
276	assigned-clocks = <&cru SCLK_RMII_SRC>;
277	assigned-clock-parents = <&clkin_gmac>;
278	clock_in_out = "input";
279	phy-supply = <&vcc_lan>;
280	phy-mode = "rgmii";
281	pinctrl-names = "default";
282	pinctrl-0 = <&rgmii_pins>;
283	snps,reset-gpio = <&gpio3 RK_PB7 GPIO_ACTIVE_LOW>;
284	snps,reset-active-low;
285	snps,reset-delays-us = <0 10000 50000>;
286	tx_delay = <0x28>;
287	rx_delay = <0x11>;
288	status = "okay";
289};
290
291&gpu {
292	mali-supply = <&vdd_gpu>;
293	status = "okay";
294};
295
296&hdmi {
297	ddc-i2c-bus = <&i2c3>;
298	pinctrl-names = "default";
299	pinctrl-0 = <&hdmi_cec>;
300	status = "okay";
301};
302
303&i2c0 {
304	status = "okay";
305
306	rk808: pmic@1b {
307		compatible = "rockchip,rk808";
308		reg = <0x1b>;
309		interrupt-parent = <&gpio1>;
310		interrupts = <21 IRQ_TYPE_LEVEL_LOW>;
311		pinctrl-names = "default";
312		pinctrl-0 = <&pmic_int_l>;
313		rockchip,system-power-controller;
314		wakeup-source;
315		#clock-cells = <1>;
316		clock-output-names = "xin32k", "rk808-clkout2";
317
318		vcc1-supply = <&vcc3v3_sys>;
319		vcc2-supply = <&vcc3v3_sys>;
320		vcc3-supply = <&vcc3v3_sys>;
321		vcc4-supply = <&vcc3v3_sys>;
322		vcc6-supply = <&vcc3v3_sys>;
323		vcc7-supply = <&vcc3v3_sys>;
324		vcc8-supply = <&vcc3v3_sys>;
325		vcc9-supply = <&vcc3v3_sys>;
326		vcc10-supply = <&vcc3v3_sys>;
327		vcc11-supply = <&vcc3v3_sys>;
328		vcc12-supply = <&vcc3v3_sys>;
329		vddio-supply = <&vcc_3v0>;
330
331		regulators {
332			vdd_center: DCDC_REG1 {
333				regulator-name = "vdd_center";
334				regulator-min-microvolt = <750000>;
335				regulator-max-microvolt = <1350000>;
336				regulator-ramp-delay = <6001>;
337				regulator-always-on;
338				regulator-boot-on;
339
340				regulator-state-mem {
341					regulator-off-in-suspend;
342				};
343			};
344
345			vdd_cpu_l: DCDC_REG2 {
346				regulator-name = "vdd_cpu_l";
347				regulator-min-microvolt = <750000>;
348				regulator-max-microvolt = <1350000>;
349				regulator-ramp-delay = <6001>;
350				regulator-always-on;
351				regulator-boot-on;
352
353				regulator-state-mem {
354					regulator-off-in-suspend;
355				};
356			};
357
358			vcc_ddr: DCDC_REG3 {
359				regulator-name = "vcc_ddr";
360				regulator-always-on;
361				regulator-boot-on;
362				regulator-state-mem {
363					regulator-on-in-suspend;
364				};
365			};
366
367			vcc_1v8: DCDC_REG4 {
368				regulator-name = "vcc_1v8";
369				regulator-min-microvolt = <1800000>;
370				regulator-max-microvolt = <1800000>;
371				regulator-always-on;
372				regulator-boot-on;
373
374				regulator-state-mem {
375					regulator-on-in-suspend;
376					regulator-suspend-microvolt = <1800000>;
377				};
378			};
379
380			vcc1v8_dvp: LDO_REG1 {
381				regulator-name = "vcc1v8_dvp";
382				regulator-min-microvolt = <1800000>;
383				regulator-max-microvolt = <1800000>;
384				regulator-always-on;
385				regulator-boot-on;
386
387				regulator-state-mem {
388					regulator-off-in-suspend;
389				};
390			};
391
392			vcc2v8_dvp: LDO_REG2 {
393				regulator-name = "vcc2v8_dvp";
394				regulator-min-microvolt = <2800000>;
395				regulator-max-microvolt = <2800000>;
396				regulator-always-on;
397				regulator-boot-on;
398
399				regulator-state-mem {
400					regulator-off-in-suspend;
401				};
402			};
403
404			vcc1v8_pmu: LDO_REG3 {
405				regulator-name = "vcc1v8_pmu";
406				regulator-min-microvolt = <1800000>;
407				regulator-max-microvolt = <1800000>;
408				regulator-always-on;
409				regulator-boot-on;
410
411				regulator-state-mem {
412					regulator-on-in-suspend;
413					regulator-suspend-microvolt = <1800000>;
414				};
415			};
416
417			vcc_sdio: LDO_REG4 {
418				regulator-name = "vcc_sdio";
419				regulator-min-microvolt = <1800000>;
420				regulator-max-microvolt = <3000000>;
421				regulator-always-on;
422				regulator-boot-on;
423
424				regulator-state-mem {
425					regulator-on-in-suspend;
426					regulator-suspend-microvolt = <3000000>;
427				};
428			};
429
430			vcca3v0_codec: LDO_REG5 {
431				regulator-name = "vcca3v0_codec";
432				regulator-min-microvolt = <3000000>;
433				regulator-max-microvolt = <3000000>;
434				regulator-always-on;
435				regulator-boot-on;
436
437				regulator-state-mem {
438					regulator-off-in-suspend;
439				};
440			};
441
442			vcc_1v5: LDO_REG6 {
443				regulator-name = "vcc_1v5";
444				regulator-min-microvolt = <1500000>;
445				regulator-max-microvolt = <1500000>;
446				regulator-always-on;
447				regulator-boot-on;
448
449				regulator-state-mem {
450					regulator-on-in-suspend;
451					regulator-suspend-microvolt = <1500000>;
452				};
453			};
454
455			vcca1v8_codec: LDO_REG7 {
456				regulator-name = "vcca1v8_codec";
457				regulator-min-microvolt = <1800000>;
458				regulator-max-microvolt = <1800000>;
459				regulator-always-on;
460				regulator-boot-on;
461
462				regulator-state-mem {
463					regulator-off-in-suspend;
464				};
465			};
466
467			vcc_3v0: LDO_REG8 {
468				regulator-name = "vcc_3v0";
469				regulator-min-microvolt = <3000000>;
470				regulator-max-microvolt = <3000000>;
471				regulator-always-on;
472				regulator-boot-on;
473
474				regulator-state-mem {
475					regulator-on-in-suspend;
476					regulator-suspend-microvolt = <3000000>;
477				};
478			};
479
480			vcc3v3_s3: vcc_lan: SWITCH_REG1 {
481				regulator-name = "vcc3v3_s3";
482				regulator-always-on;
483				regulator-boot-on;
484				regulator-state-mem {
485					regulator-off-in-suspend;
486				};
487			};
488
489			vcc3v3_s0: SWITCH_REG2 {
490				regulator-name = "vcc3v3_s0";
491				regulator-always-on;
492				regulator-boot-on;
493				regulator-state-mem {
494					regulator-off-in-suspend;
495				};
496			};
497		};
498	};
499
500	vdd_cpu_b: regulator@40 {
501		compatible = "silergy,syr827";
502		reg = <0x40>;
503		fcs,suspend-voltage-selector = <1>;
504		regulator-name = "vdd_cpu_b";
505		pinctrl-names = "default";
506		pinctrl-0 = <&vsel1_pin>;
507		regulator-min-microvolt = <712500>;
508		regulator-max-microvolt = <1500000>;
509		regulator-ramp-delay = <1000>;
510		regulator-always-on;
511		regulator-boot-on;
512		vin-supply = <&vcc3v3_sys>;
513
514		regulator-state-mem {
515			regulator-off-in-suspend;
516		};
517	};
518
519	vdd_gpu: regulator@41 {
520		compatible = "silergy,syr828";
521		reg = <0x41>;
522		fcs,suspend-voltage-selector = <1>;
523		regulator-name = "vdd_gpu";
524		pinctrl-names = "default";
525		pinctrl-0 = <&vsel2_pin>;
526		regulator-min-microvolt = <712500>;
527		regulator-max-microvolt = <1500000>;
528		regulator-ramp-delay = <1000>;
529		regulator-always-on;
530		regulator-boot-on;
531		vin-supply = <&vcc3v3_sys>;
532
533		regulator-state-mem {
534			regulator-off-in-suspend;
535		};
536	};
537};
538
539&i2c1 {
540	i2c-scl-rising-time-ns = <300>;
541	i2c-scl-falling-time-ns = <15>;
542	status = "okay";
543
544	rt5651: audio-codec@1a {
545		compatible = "rockchip,rt5651";
546		reg = <0x1a>;
547		clocks = <&cru SCLK_I2S_8CH_OUT>;
548		clock-names = "mclk";
549		hp-det-gpio = <&gpio4 RK_PD4 GPIO_ACTIVE_LOW>;
550		spk-con-gpio = <&gpio0 RK_PB3 GPIO_ACTIVE_HIGH>;
551		#sound-dai-cells = <0>;
552	};
553
554};
555
556&i2c3 {
557	i2c-scl-rising-time-ns = <450>;
558	i2c-scl-falling-time-ns = <15>;
559	status = "okay";
560};
561
562&i2c4 {
563	i2c-scl-rising-time-ns = <600>;
564	i2c-scl-falling-time-ns = <20>;
565	status = "okay";
566
567	fusb0: typec-portc@22 {
568		compatible = "fcs,fusb302";
569		reg = <0x22>;
570		interrupt-parent = <&gpio1>;
571		interrupts = <RK_PA2 IRQ_TYPE_LEVEL_LOW>;
572		pinctrl-names = "default";
573		pinctrl-0 = <&fusb0_int>;
574		vbus-supply = <&vcc5v0_typec>;
575
576		ports {
577			#address-cells = <1>;
578			#size-cells = <0>;
579
580			port@0 {
581				reg = <0>;
582				usbc0_role_sw: endpoint@0 {
583					remote-endpoint = <&dwc3_0_role_switch>;
584				};
585			};
586		};
587
588		connector {
589			compatible = "usb-c-connector";
590			data-role = "dual";
591			label = "USB-C";
592
593			ports {
594				#address-cells = <1>;
595				#size-cells = <0>;
596
597				port@0 {
598					reg = <0>;
599
600					usbc_hs: endpoint {
601						remote-endpoint = <&u2phy0_typec_hs>;
602					};
603				};
604
605				port@1 {
606					reg = <1>;
607
608					usbc_ss: endpoint {
609						remote-endpoint = <&tcphy0_typec_ss>;
610					};
611				};
612			};
613		};
614	};
615};
616
617&i2s1 {
618	rockchip,playback-channels = <2>;
619	rockchip,capture-channels = <2>;
620	status = "okay";
621};
622
623&i2s2 {
624	status = "okay";
625};
626
627&io_domains {
628	status = "okay";
629
630	audio-supply = <&vcca1v8_codec>;
631	bt656-supply = <&vcc_3v0>;
632	gpio1830-supply = <&vcc_3v0>;
633	sdmmc-supply = <&vcc_sdio>;
634};
635
636&pmu_io_domains {
637	status = "okay";
638
639	pmu1830-supply = <&vcc_3v0>;
640};
641
642&pinctrl {
643	buttons {
644		pwrbtn: pwrbtn {
645			rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>;
646		};
647	};
648
649	bt {
650		bt_enable_h: bt-enable-h {
651			rockchip,pins = <0 RK_PB1 RK_FUNC_GPIO &pcfg_pull_none>;
652		};
653
654		bt_host_wake_l: bt-host-wake-l {
655			rockchip,pins = <0 RK_PA4 RK_FUNC_GPIO &pcfg_pull_none>;
656		};
657
658		bt_wake_l: bt-wake-l {
659			rockchip,pins = <2 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>;
660		};
661	};
662
663	fusb302x {
664		fusb0_int: fusb0-int {
665			rockchip,pins = <1 RK_PA2 RK_FUNC_GPIO &pcfg_pull_up>;
666		};
667	};
668
669	lcd-panel {
670		lcd_panel_reset: lcd-panel-reset {
671			rockchip,pins = <4 RK_PD6 RK_FUNC_GPIO &pcfg_pull_up>;
672		};
673	};
674
675	leds {
676		work_led_pin: work-led-pin {
677			rockchip,pins = <0 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>;
678		};
679
680		user_led_pin: user-led-pin {
681			rockchip,pins = <0 RK_PB4 RK_FUNC_GPIO &pcfg_pull_none>;
682		};
683
684		heartbeat_led_pin: heartbeat-led-pin {
685			rockchip,pins = <0 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>;
686		};
687
688		wlan_active_led_pin: wlan-led-pin {
689			rockchip,pins = <2 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>;
690		};
691
692		bt_active_led_pin: bt-led-pin {
693			rockchip,pins = <2 RK_PD4 RK_FUNC_GPIO &pcfg_pull_none>;
694		};
695
696
697	};
698
699	pmic {
700		pmic_int_l: pmic-int-l {
701			rockchip,pins = <1 RK_PC5 RK_FUNC_GPIO &pcfg_pull_up>;
702		};
703
704		vsel1_pin: vsel1-pin {
705			rockchip,pins = <1 RK_PC1 RK_FUNC_GPIO &pcfg_pull_down>;
706		};
707
708		vsel2_pin: vsel2-pin {
709			rockchip,pins = <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_down>;
710		};
711	};
712
713	rt5651 {
714		rt5651_hpcon: rt5640-hpcon {
715			rockchip,pins = <4 RK_PD4 RK_FUNC_GPIO &pcfg_pull_none>;
716		};
717	};
718
719	sdio-pwrseq {
720		wifi_enable_h: wifi-enable-h {
721			rockchip,pins = <0 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>;
722		};
723	};
724
725	usb-typec {
726		vcc5v0_typec_en: vcc5v0_typec_en {
727			rockchip,pins = <4 RK_PC5 RK_FUNC_GPIO &pcfg_pull_up>;
728		};
729	};
730
731	usb2 {
732		vcc5v0_host3_en: vcc5v0-host3-en {
733			rockchip,pins = <0 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>;
734		};
735
736		vcc5v0_host1_en: vcc5v0-host1-en {
737			rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>;
738		};
739	};
740
741	wifi {
742		wifi_host_wake_l: wifi-host-wake-l {
743			rockchip,pins = <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_none>;
744		};
745	};
746};
747
748&pwm0 {
749	status = "okay";
750};
751
752&saradc {
753	vref-supply = <&vcca1v8_s3>;
754	status = "okay";
755};
756
757&sdio0 {
758	/* WiFi & BT combo module AMPAK AP6255 */
759	#address-cells = <1>;
760	#size-cells = <0>;
761	bus-width = <4>;
762	clock-frequency = <50000000>;
763	cap-sdio-irq;
764	cap-sd-highspeed;
765	keep-power-in-suspend;
766	mmc-pwrseq = <&sdio_pwrseq>;
767	non-removable;
768	pinctrl-names = "default";
769	pinctrl-0 = <&sdio0_bus4 &sdio0_cmd &sdio0_clk>;
770	sd-uhs-sdr104;
771	status = "okay";
772
773	brcmf: wifi@1 {
774		compatible = "brcm,bcm4329-fmac";
775		reg = <1>;
776		interrupt-parent = <&gpio0>;
777		interrupts = <RK_PA3 IRQ_TYPE_LEVEL_HIGH>;
778		interrupt-names = "host-wake";
779		pinctrl-names = "default";
780		pinctrl-0 = <&wifi_host_wake_l>;
781	};
782};
783
784&sdmmc {
785	bus-width = <4>;
786	cap-mmc-highspeed;
787	cap-sd-highspeed;
788	cd-gpios = <&gpio0 RK_PA7 GPIO_ACTIVE_LOW>;
789	disable-wp;
790	max-frequency = <150000000>;
791	pinctrl-names = "default";
792	pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_bus4>;
793	status = "okay";
794};
795
796&sdhci {
797	bus-width = <8>;
798	non-removable;
799	status = "okay";
800};
801
802&tcphy0 {
803	status = "okay";
804};
805
806&tcphy0_usb3 {
807	orientation-switch;
808	port {
809		tcphy0_typec_ss: endpoint {
810			remote-endpoint = <&usbc_ss>;
811		};
812	};
813};
814
815&tcphy1 {
816	status = "okay";
817};
818
819&tsadc {
820	/* tshut mode 0:CRU 1:GPIO */
821	rockchip,hw-tshut-mode = <1>;
822	/* tshut polarity 0:LOW 1:HIGH */
823	rockchip,hw-tshut-polarity = <1>;
824	status = "okay";
825};
826
827&u2phy0 {
828	status = "okay";
829
830	u2phy0_otg: otg-port {
831		status = "okay";
832	};
833
834	u2phy0_host: host-port {
835		phy-supply = <&vcc5v0_host3>;
836		status = "okay";
837	};
838
839	port {
840		u2phy0_typec_hs: endpoint {
841			remote-endpoint = <&usbc_hs>;
842		};
843	};
844};
845
846&u2phy1 {
847	status = "okay";
848
849	u2phy1_otg: otg-port {
850		status = "okay";
851	};
852
853	u2phy1_host: host-port {
854		phy-supply = <&vcc5v0_host3>;
855		status = "okay";
856	};
857};
858
859&uart0 {
860	pinctrl-names = "default";
861	pinctrl-0 = <&uart0_xfer &uart0_cts &uart0_rts>;
862	status = "okay";
863
864	bluetooth {
865		compatible = "brcm,bcm4345c5";
866		clocks = <&rk808 1>;
867		clock-names = "lpo";
868		device-wakeup-gpios = <&gpio2 RK_PD2 GPIO_ACTIVE_HIGH>;
869		host-wakeup-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_HIGH>;
870		shutdown-gpios = <&gpio0 RK_PB1 GPIO_ACTIVE_HIGH>;
871		max-speed = <1500000>;
872		pinctrl-names = "default";
873		pinctrl-0 = <&bt_host_wake_l &bt_wake_l &bt_enable_h>;
874		vbat-supply = <&vcc3v3_sys>;
875		vddio-supply = <&vcc_1v8>;
876	};
877};
878
879&uart2 {
880	status = "okay";
881};
882
883&usb_host0_ehci {
884	status = "okay";
885};
886
887&usb_host0_ohci {
888	status = "okay";
889};
890
891&usb_host1_ehci {
892	status = "okay";
893};
894
895&usb_host1_ohci {
896	status = "okay";
897};
898
899&usbdrd3_0 {
900	status = "okay";
901};
902
903&usbdrd_dwc3_0 {
904	status = "okay";
905	usb-role-switch;
906
907	port {
908		#address-cells = <1>;
909		#size-cells = <0>;
910		dwc3_0_role_switch: endpoint@0 {
911			reg = <0>;
912			remote-endpoint = <&usbc0_role_sw>;
913		};
914	};
915};
916
917&usbdrd3_1 {
918	status = "okay";
919};
920
921&usbdrd_dwc3_1 {
922	status = "okay";
923	dr_mode = "host";
924};
925
926&vopb {
927	status = "okay";
928};
929
930&vopb_mmu {
931	status = "okay";
932};
933
934&vopl {
935	status = "okay";
936};
937
938&vopl_mmu {
939	status = "okay";
940};
941