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