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