xref: /linux/arch/arm64/boot/dts/rockchip/rk3588s-indiedroid-nova.dts (revision 90d32e92011eaae8e70a9169b4e7acf4ca8f9d3a)
1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2
3/dts-v1/;
4
5#include <dt-bindings/gpio/gpio.h>
6#include <dt-bindings/input/linux-event-codes.h>
7#include <dt-bindings/pinctrl/rockchip.h>
8#include <dt-bindings/usb/pd.h>
9#include "rk3588s.dtsi"
10
11/ {
12	model = "Indiedroid Nova";
13	compatible = "indiedroid,nova", "rockchip,rk3588s";
14
15	adc-keys-0 {
16		compatible = "adc-keys";
17		io-channel-names = "buttons";
18		io-channels = <&saradc 0>;
19		keyup-threshold-microvolt = <1800000>;
20		poll-interval = <100>;
21
22		button-boot {
23			label = "boot";
24			linux,code = <KEY_PROG1>;
25			press-threshold-microvolt = <18000>;
26		};
27	};
28
29	adc-keys-1 {
30		compatible = "adc-keys";
31		io-channel-names = "buttons";
32		io-channels = <&saradc 1>;
33		keyup-threshold-microvolt = <1800000>;
34		poll-interval = <100>;
35
36		button-recovery {
37			label = "recovery";
38			linux,code = <KEY_PROG2>;
39			press-threshold-microvolt = <18000>;
40		};
41	};
42
43	aliases {
44		mmc0 = &sdhci;
45		mmc1 = &sdmmc;
46		mmc2 = &sdio;
47	};
48
49	chosen {
50		stdout-path = "serial2:1500000n8";
51	};
52
53	sdio_pwrseq: sdio-pwrseq {
54		compatible = "mmc-pwrseq-simple";
55		clock-names = "ext_clock";
56		clocks = <&rtc_hym8563>;
57		pinctrl-0 = <&wifi_enable_h>;
58		pinctrl-names = "default";
59		post-power-on-delay-ms = <200>;
60		reset-gpios = <&gpio0 RK_PC7 GPIO_ACTIVE_LOW>;
61	};
62
63	sound {
64		compatible = "audio-graph-card";
65		label = "rockchip,es8388-codec";
66		widgets = "Microphone", "Mic Jack",
67			  "Headphone", "Headphones";
68		routing = "LINPUT2", "Mic Jack",
69			  "Headphones", "LOUT1",
70			  "Headphones", "ROUT1";
71		dais = <&i2s0_8ch_p0>;
72	};
73
74	vbus5v0_typec: vbus5v0-typec-regulator {
75		compatible = "regulator-fixed";
76		enable-active-high;
77		gpio = <&gpio4 RK_PA5 GPIO_ACTIVE_HIGH>;
78		pinctrl-0 = <&typec5v_pwren>;
79		pinctrl-names = "default";
80		regulator-name = "vbus5v0_typec";
81		regulator-min-microvolt = <5000000>;
82		regulator-max-microvolt = <5000000>;
83		vin-supply = <&vcc5v0_usb>;
84	};
85
86	vcc_1v1_nldo_s3: vcc-1v1-nldo-s3-regulator {
87		compatible = "regulator-fixed";
88		regulator-always-on;
89		regulator-boot-on;
90		regulator-max-microvolt = <1100000>;
91		regulator-min-microvolt = <1100000>;
92		regulator-name = "vcc_1v1_nldo_s3";
93		vin-supply = <&vcc5v0_sys>;
94	};
95
96	/* Regulator is enabled whenever vcc_1v8_s0 is above 1.6v */
97	vcc_3v3_s0: vcc-3v3-s0-regulator {
98		compatible = "regulator-fixed";
99		regulator-always-on;
100		regulator-boot-on;
101		regulator-max-microvolt = <3300000>;
102		regulator-min-microvolt = <3300000>;
103		regulator-name = "vcc_3v3_s0";
104		vin-supply = <&vcc_3v3_s3>;
105
106		regulator-state-mem {
107			regulator-off-in-suspend;
108		};
109	};
110
111	vcc5v0_sys: vcc5v0-sys-regulator {
112		compatible = "regulator-fixed";
113		regulator-always-on;
114		regulator-boot-on;
115		regulator-max-microvolt = <5000000>;
116		regulator-min-microvolt = <5000000>;
117		regulator-name = "vcc5v0_sys";
118	};
119
120	vcc5v0_usb: vcc5v0-usb-regulator {
121		compatible = "regulator-fixed";
122		regulator-always-on;
123		regulator-boot-on;
124		regulator-max-microvolt = <5000000>;
125		regulator-min-microvolt = <5000000>;
126		regulator-name = "vcc5v0_usb";
127		vin-supply = <&vcc5v0_usbdcin>;
128	};
129
130	vcc5v0_usbdcin: vcc5v0-usbdcin-regulator {
131		compatible = "regulator-fixed";
132		regulator-always-on;
133		regulator-boot-on;
134		regulator-max-microvolt = <5000000>;
135		regulator-min-microvolt = <5000000>;
136		regulator-name = "vcc5v0_usbdcin";
137	};
138};
139
140&combphy0_ps {
141	status = "okay";
142};
143
144&combphy2_psu {
145	status = "okay";
146};
147
148&cpu_l0 {
149	cpu-supply = <&vdd_cpu_lit_s0>;
150};
151
152&cpu_l1 {
153	cpu-supply = <&vdd_cpu_lit_s0>;
154};
155
156&cpu_l2 {
157	cpu-supply = <&vdd_cpu_lit_s0>;
158};
159
160&cpu_l3 {
161	cpu-supply = <&vdd_cpu_lit_s0>;
162};
163
164&cpu_b0 {
165	cpu-supply = <&vdd_cpu_big0_s0>;
166};
167
168&cpu_b1 {
169	cpu-supply = <&vdd_cpu_big0_s0>;
170};
171
172&cpu_b2 {
173	cpu-supply = <&vdd_cpu_big1_s0>;
174};
175
176&cpu_b3 {
177	cpu-supply = <&vdd_cpu_big1_s0>;
178};
179
180/*
181 * Add labels for each GPIO pin exposed on the 40 pin header. Note that
182 * voltage of each GPIO pin could be either 3.3v or 1.8v (as noted by
183 * label).
184 */
185&gpio0 {
186	gpio-line-names = /* GPIO0 A0-A7 */
187			  "", "", "", "",
188			  "", "", "", "",
189			  /* GPIO0 B0-B7 */
190			  "", "", "", "",
191			  "", "", "", "",
192			  /* GPIO0 C0-C7 */
193			  "", "", "", "",
194			  "", "", "", "",
195			  /* GPIO0 D0-D7 */
196			  "HEADER_12_1v8", "", "", "HEADER_24_1v8",
197			  "", "", "", "";
198};
199
200&gpio1 {
201	gpio-line-names = /* GPIO1 A0-A7 */
202			  "HEADER_27_3v3", "", "", "",
203			  "HEADER_29_1v8", "", "HEADER_7_1v8", "",
204			  /* GPIO1 B0-B7 */
205			  "", "HEADER_31_1v8", "HEADER_33_1v8", "",
206			  "HEADER_11_1v8", "HEADER_13_1v8", "", "",
207			  /* GPIO1 C0-C7 */
208			  "", "HEADER_28_3v3", "", "",
209			  "", "", "", "",
210			  /* GPIO1 D0-D7 */
211			  "", "", "", "",
212			  "", "", "HEADER_5_3v3", "HEADER_3_3v3";
213};
214
215&gpio3 {
216	gpio-line-names = /* GPIO3 A0-A7 */
217			  "", "", "", "",
218			  "", "", "", "",
219			  /* GPIO3 B0-B7 */
220			  "HEADER_16_1v8", "HEADER_18_1v8", "", "",
221			  "", "", "", "HEADER_19_1v8",
222			  /* GPIO3 C0-C7 */
223			  "HEADER_21_1v8", "HEADER_23_1v8", "", "HEADER_26_1v8",
224			  "HEADER_15_1v8", "HEADER_22_1v8", "", "",
225			  /* GPIO3 D0-D7 */
226			  "", "", "", "",
227			  "", "", "", "";
228};
229
230&gpio4 {
231	gpio-line-names = /* GPIO4 A0-A7 */
232			  "", "", "HEADER_37_3v3", "HEADER_8_3v3",
233			  "HEADER_10_3v3", "", "HEADER_32_3v3", "HEADER_35_3v3",
234			  /* GPIO4 B0-B7 */
235			  "", "", "", "HEADER_40_3v3",
236			  "HEADER_38_3v3", "HEADER_36_3v3", "", "",
237			  /* GPIO4 C0-C7 */
238			  "", "", "", "",
239			  "", "", "", "",
240			  /* GPIO4 D0-D7 */
241			  "", "", "", "",
242			  "", "", "", "";
243};
244
245&i2c0 {
246	pinctrl-0 = <&i2c0m2_xfer>;
247	pinctrl-names = "default";
248	status = "okay";
249
250	vdd_cpu_big0_s0: regulator@42 {
251		compatible = "rockchip,rk8602";
252		reg = <0x42>;
253		regulator-always-on;
254		regulator-boot-on;
255		regulator-max-microvolt = <1050000>;
256		regulator-min-microvolt = <550000>;
257		regulator-name = "vdd_cpu_big0_s0";
258		regulator-ramp-delay = <2300>;
259		fcs,suspend-voltage-selector = <1>;
260		vin-supply = <&vcc5v0_sys>;
261
262		regulator-state-mem {
263			regulator-off-in-suspend;
264		};
265	};
266
267	vdd_cpu_big1_s0: regulator@43 {
268		compatible = "rockchip,rk8603", "rockchip,rk8602";
269		reg = <0x43>;
270		regulator-always-on;
271		regulator-boot-on;
272		regulator-max-microvolt = <1050000>;
273		regulator-min-microvolt = <550000>;
274		regulator-name = "vdd_cpu_big1_s0";
275		regulator-ramp-delay = <2300>;
276		fcs,suspend-voltage-selector = <1>;
277		vin-supply = <&vcc5v0_sys>;
278
279		regulator-state-mem {
280			regulator-off-in-suspend;
281		};
282	};
283};
284
285&i2c2 {
286	status = "okay";
287
288	vdd_npu_s0: regulator@42 {
289		compatible = "rockchip,rk8602";
290		reg = <0x42>;
291		regulator-always-on;
292		regulator-boot-on;
293		regulator-max-microvolt = <950000>;
294		regulator-min-microvolt = <550000>;
295		regulator-name = "vdd_npu_s0";
296		regulator-ramp-delay = <2300>;
297		fcs,suspend-voltage-selector = <1>;
298		vin-supply = <&vcc5v0_sys>;
299
300		regulator-state-mem {
301			regulator-off-in-suspend;
302		};
303	};
304};
305
306&i2c6 {
307	pinctrl-0 = <&i2c6m3_xfer>;
308	status = "okay";
309
310	fusb302: typec-portc@22 {
311		compatible = "fcs,fusb302";
312		reg = <0x22>;
313		interrupt-parent = <&gpio0>;
314		interrupts = <RK_PC4 IRQ_TYPE_LEVEL_LOW>;
315		pinctrl-0 = <&usbc0_int>;
316		pinctrl-names = "default";
317		vbus-supply = <&vbus5v0_typec>;
318
319		usb_con: connector {
320			compatible = "usb-c-connector";
321			data-role = "dual";
322			label = "USB-C";
323			power-role = "dual";
324			try-power-role = "sink";
325			source-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>;
326			sink-pdos = <PDO_FIXED(5000, 1000, PDO_FIXED_USB_COMM)>;
327			op-sink-microwatt = <1000000>;
328
329			ports {
330				#address-cells = <1>;
331				#size-cells = <0>;
332
333				port@0 {
334					reg = <0>;
335					usbc0_orien_sw: endpoint {
336						remote-endpoint = <&usbdp_phy0_orientation_switch>;
337					};
338				};
339
340				port@1 {
341					reg = <1>;
342					usbc0_role_sw: endpoint {
343						remote-endpoint = <&dwc3_0_role_switch>;
344					};
345				};
346
347				port@2 {
348					reg = <2>;
349					dp_altmode_mux: endpoint {
350						remote-endpoint = <&usbdp_phy0_dp_altmode_mux>;
351					};
352				};
353			};
354		};
355	};
356
357	rtc_hym8563: rtc@51 {
358		compatible = "haoyu,hym8563";
359		reg = <0x51>;
360		#clock-cells = <0>;
361		clock-output-names = "hym8563";
362		interrupt-parent = <&gpio0>;
363		interrupts = <RK_PB0 IRQ_TYPE_LEVEL_LOW>;
364		pinctrl-0 = <&hym8563_int>;
365		pinctrl-names = "default";
366		wakeup-source;
367	};
368};
369
370&i2c7 {
371	pinctrl-0 = <&i2c7m0_xfer>;
372	status = "okay";
373
374	es8388: audio-codec@11 {
375		compatible = "everest,es8388";
376		reg = <0x11>;
377		assigned-clock-rates = <12288000>;
378		assigned-clocks = <&cru I2S0_8CH_MCLKOUT>;
379		AVDD-supply = <&vcc_3v3_s3>;
380		clock-names = "mclk";
381		clocks = <&cru I2S0_8CH_MCLKOUT>;
382		DVDD-supply = <&vcc_1v8_s3>;
383		HPVDD-supply = <&vcc_3v3_s3>;
384		PVDD-supply = <&vcc_1v8_s3>;
385		#sound-dai-cells = <0>;
386
387		port {
388			es8388_p0_0: endpoint {
389				remote-endpoint = <&i2s0_8ch_p0_0>;
390			};
391		};
392	};
393};
394
395&i2s0_8ch {
396	pinctrl-names = "default";
397	pinctrl-0 = <&i2s0_lrck
398		     &i2s0_mclk
399		     &i2s0_sclk
400		     &i2s0_sdi0
401		     &i2s0_sdo0>;
402	status = "okay";
403
404	i2s0_8ch_p0: port {
405		i2s0_8ch_p0_0: endpoint {
406			dai-format = "i2s";
407			mclk-fs = <256>;
408			remote-endpoint = <&es8388_p0_0>;
409		};
410	};
411};
412
413&pcie2x1l2 {
414	pinctrl-0 = <&rtl8111_perstb>;
415	pinctrl-names = "default";
416	status = "okay";
417};
418
419&pinctrl {
420	bluetooth-pins {
421		bt_reset: bt-reset {
422			rockchip,pins =
423				<0 RK_PD4 RK_FUNC_GPIO &pcfg_pull_none>;
424		};
425
426		bt_wake_dev: bt-wake-dev {
427			rockchip,pins =
428				<0 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>;
429		};
430
431		bt_wake_host: bt-wake-host {
432			rockchip,pins =
433				<0 RK_PC5 RK_FUNC_GPIO &pcfg_pull_down>;
434		};
435	};
436
437	ethernet-pins {
438		rtl8111_perstb: rtl8111-perstb {
439			rockchip,pins = <3 RK_PD1 RK_FUNC_GPIO &pcfg_pull_up>;
440		};
441	};
442
443	hym8563 {
444
445		hym8563_int: hym8563-int {
446			rockchip,pins =
447				<0 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>;
448		};
449	};
450
451	sdio-pwrseq {
452		wifi_enable_h: wifi-enable-h {
453			rockchip,pins =
454				<0 RK_PC7 RK_FUNC_GPIO &pcfg_pull_none>;
455		};
456	};
457
458	usb-typec {
459		usbc0_int: usbc0-int {
460			rockchip,pins =
461				<0 RK_PC4 RK_FUNC_GPIO &pcfg_pull_up>;
462		};
463
464		typec5v_pwren: typec5v-pwren {
465			rockchip,pins =
466				<4 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>;
467		};
468	};
469};
470
471&saradc {
472	vref-supply = <&vcca_1v8_s0>;
473	status = "okay";
474};
475
476/* HS400 modes seemed to cause io errors. */
477&sdhci {
478	bus-width = <8>;
479	no-mmc-hs400;
480	no-sd;
481	no-sdio;
482	non-removable;
483	vmmc-supply = <&vcc_3v3_s0>;
484	vqmmc-supply = <&vcc_1v8_s3>;
485	status = "okay";
486};
487
488&sdio {
489	bus-width = <4>;
490	cap-sd-highspeed;
491	cap-sdio-irq;
492	disable-wp;
493	keep-power-in-suspend;
494	max-frequency = <100000000>;
495	mmc-pwrseq = <&sdio_pwrseq>;
496	no-mmc;
497	no-sd;
498	non-removable;
499	sd-uhs-sdr104;
500	vmmc-supply = <&vcc_3v3_s3>;
501	vqmmc-supply = <&vcc_1v8_s3>;
502	status = "okay";
503};
504
505&sdmmc {
506	bus-width = <4>;
507	cap-mmc-highspeed;
508	cap-sd-highspeed;
509	disable-wp;
510	no-sdio;
511	no-mmc;
512	sd-uhs-sdr104;
513	vmmc-supply = <&vcc_3v3_s3>;
514	vqmmc-supply = <&vccio_sd_s0>;
515	status = "okay";
516};
517
518&spi2 {
519	#address-cells = <1>;
520	assigned-clocks = <&cru CLK_SPI2>;
521	assigned-clock-rates = <200000000>;
522	num-cs = <1>;
523	pinctrl-0 = <&spi2m2_pins>, <&spi2m2_cs0>;
524	pinctrl-names = "default";
525	#size-cells = <0>;
526	status = "okay";
527
528	pmic@0 {
529		compatible = "rockchip,rk806";
530		reg = <0x0>;
531		#gpio-cells = <2>;
532		gpio-controller;
533		interrupt-parent = <&gpio0>;
534		interrupts = <RK_PA7 IRQ_TYPE_LEVEL_LOW>;
535		pinctrl-0 = <&pmic_pins>, <&rk806_dvs1_null>,
536			    <&rk806_dvs2_null>, <&rk806_dvs3_null>;
537		pinctrl-names = "default";
538		spi-max-frequency = <1000000>;
539
540		vcc1-supply = <&vcc5v0_sys>;
541		vcc2-supply = <&vcc5v0_sys>;
542		vcc3-supply = <&vcc5v0_sys>;
543		vcc4-supply = <&vcc5v0_sys>;
544		vcc5-supply = <&vcc5v0_sys>;
545		vcc6-supply = <&vcc5v0_sys>;
546		vcc7-supply = <&vcc5v0_sys>;
547		vcc8-supply = <&vcc5v0_sys>;
548		vcc9-supply = <&vcc5v0_sys>;
549		vcc10-supply = <&vcc5v0_sys>;
550		vcc11-supply = <&vcc_2v0_pldo_s3>;
551		vcc12-supply = <&vcc5v0_sys>;
552		vcc13-supply = <&vcc_1v1_nldo_s3>;
553		vcc14-supply = <&vcc_1v1_nldo_s3>;
554		vcca-supply = <&vcc5v0_sys>;
555
556		rk806_dvs1_null: dvs1-null-pins {
557			pins = "gpio_pwrctrl1";
558			function = "pin_fun0";
559		};
560
561		rk806_dvs2_null: dvs2-null-pins {
562			pins = "gpio_pwrctrl2";
563			function = "pin_fun0";
564		};
565
566		rk806_dvs3_null: dvs3-null-pins {
567			pins = "gpio_pwrctrl3";
568			function = "pin_fun0";
569		};
570
571		regulators {
572			vdd_gpu_s0: dcdc-reg1 {
573				regulator-boot-on;
574				regulator-enable-ramp-delay = <400>;
575				regulator-max-microvolt = <950000>;
576				regulator-min-microvolt = <550000>;
577				regulator-name = "vdd_gpu_s0";
578				regulator-ramp-delay = <12500>;
579				regulator-state-mem {
580					regulator-off-in-suspend;
581				};
582			};
583
584			vdd_cpu_lit_s0: dcdc-reg2 {
585				regulator-always-on;
586				regulator-boot-on;
587				regulator-max-microvolt = <950000>;
588				regulator-min-microvolt = <550000>;
589				regulator-ramp-delay = <12500>;
590				regulator-name = "vdd_cpu_lit_s0";
591				regulator-state-mem {
592					regulator-off-in-suspend;
593				};
594			};
595
596			vdd_logic_s0: dcdc-reg3 {
597				regulator-always-on;
598				regulator-boot-on;
599				regulator-max-microvolt = <750000>;
600				regulator-min-microvolt = <675000>;
601				regulator-name = "vdd_logic_s0";
602				regulator-ramp-delay = <12500>;
603				regulator-state-mem {
604					regulator-on-in-suspend;
605					regulator-suspend-microvolt = <750000>;
606				};
607			};
608
609			vdd_vdenc_s0: dcdc-reg4 {
610				regulator-always-on;
611				regulator-boot-on;
612				regulator-max-microvolt = <950000>;
613				regulator-min-microvolt = <550000>;
614				regulator-name = "vdd_vdenc_s0";
615				regulator-ramp-delay = <12500>;
616				regulator-state-mem {
617					regulator-off-in-suspend;
618				};
619			};
620
621			vdd_ddr_s0: dcdc-reg5 {
622				regulator-always-on;
623				regulator-boot-on;
624				regulator-min-microvolt = <750000>;
625				regulator-max-microvolt = <850000>;
626				regulator-ramp-delay = <12500>;
627				regulator-name = "vdd_ddr_s0";
628				regulator-state-mem {
629					regulator-off-in-suspend;
630					regulator-suspend-microvolt = <850000>;
631				};
632			};
633
634			vdd2_ddr_s3: dcdc-reg6 {
635				regulator-always-on;
636				regulator-boot-on;
637				regulator-max-microvolt = <1100000>;
638				regulator-min-microvolt = <1100000>;
639				regulator-name = "vdd2_ddr_s3";
640				regulator-state-mem {
641					regulator-on-in-suspend;
642				};
643			};
644
645			vcc_2v0_pldo_s3: dcdc-reg7 {
646				regulator-always-on;
647				regulator-boot-on;
648				regulator-max-microvolt = <2000000>;
649				regulator-min-microvolt = <2000000>;
650				regulator-name = "vdd_2v0_pldo_s3";
651				regulator-state-mem {
652					regulator-on-in-suspend;
653					regulator-suspend-microvolt = <2000000>;
654				};
655			};
656
657			vcc_3v3_s3: dcdc-reg8 {
658				regulator-always-on;
659				regulator-boot-on;
660				regulator-max-microvolt = <3300000>;
661				regulator-min-microvolt = <3300000>;
662				regulator-name = "vcc_3v3_s3";
663				regulator-state-mem {
664					regulator-on-in-suspend;
665					regulator-suspend-microvolt = <3300000>;
666				};
667			};
668
669			vddq_ddr_s0: dcdc-reg9 {
670				regulator-always-on;
671				regulator-boot-on;
672				regulator-max-microvolt = <600000>;
673				regulator-min-microvolt = <600000>;
674				regulator-name = "vddq_ddr_s0";
675				regulator-state-mem {
676					regulator-off-in-suspend;
677				};
678			};
679
680			vcc_1v8_s3: dcdc-reg10 {
681				regulator-always-on;
682				regulator-boot-on;
683				regulator-max-microvolt = <1800000>;
684				regulator-min-microvolt = <1800000>;
685				regulator-name = "vcc_1v8_s3";
686				regulator-state-mem {
687					regulator-on-in-suspend;
688					regulator-suspend-microvolt = <1800000>;
689				};
690			};
691
692			vcc_1v8_s0: pldo-reg1 {
693				regulator-always-on;
694				regulator-boot-on;
695				regulator-max-microvolt = <1800000>;
696				regulator-min-microvolt = <1800000>;
697				regulator-name = "vcc_1v8_s0";
698				regulator-state-mem {
699					regulator-off-in-suspend;
700				};
701			};
702
703			vcca_1v8_s0: pldo-reg2 {
704				regulator-always-on;
705				regulator-boot-on;
706				regulator-max-microvolt = <1800000>;
707				regulator-min-microvolt = <1800000>;
708				regulator-name = "vcca_1v8_s0";
709				regulator-state-mem {
710					regulator-off-in-suspend;
711					regulator-suspend-microvolt = <1800000>;
712				};
713			};
714
715			vdda_1v2_s0: pldo-reg3 {
716				regulator-always-on;
717				regulator-boot-on;
718				regulator-max-microvolt = <1200000>;
719				regulator-min-microvolt = <1200000>;
720				regulator-name = "vdda_1v2_s0";
721				regulator-state-mem {
722					regulator-off-in-suspend;
723				};
724			};
725
726			vcca_3v3_s0: pldo-reg4 {
727				regulator-always-on;
728				regulator-boot-on;
729				regulator-max-microvolt = <3300000>;
730				regulator-min-microvolt = <3300000>;
731				regulator-name = "vcca_3v3_s0";
732				regulator-state-mem {
733					regulator-off-in-suspend;
734				};
735			};
736
737			vccio_sd_s0: pldo-reg5 {
738				regulator-always-on;
739				regulator-boot-on;
740				regulator-max-microvolt = <3300000>;
741				regulator-min-microvolt = <1800000>;
742				regulator-name = "vccio_sd_s0";
743				regulator-state-mem {
744					regulator-off-in-suspend;
745				};
746			};
747
748			vcc_1v8_s3_pldo6: pldo-reg6 {
749				regulator-always-on;
750				regulator-boot-on;
751				regulator-max-microvolt = <1800000>;
752				regulator-min-microvolt = <1800000>;
753				regulator-name = "vcc_1v8_s3_pldo6";
754				regulator-state-mem {
755					regulator-on-in-suspend;
756					regulator-suspend-microvolt = <1800000>;
757				};
758			};
759
760			vdd_0v75_s3: nldo-reg1 {
761				regulator-always-on;
762				regulator-boot-on;
763				regulator-max-microvolt = <750000>;
764				regulator-min-microvolt = <750000>;
765				regulator-name = "vdd_0v75_s3";
766				regulator-state-mem {
767					regulator-on-in-suspend;
768					regulator-suspend-microvolt = <750000>;
769				};
770			};
771
772			vdda_ddr_pll_s0: nldo-reg2 {
773				regulator-always-on;
774				regulator-boot-on;
775				regulator-max-microvolt = <850000>;
776				regulator-min-microvolt = <850000>;
777				regulator-name = "vdda_ddr_pll_s0";
778				regulator-state-mem {
779					regulator-off-in-suspend;
780					regulator-suspend-microvolt = <850000>;
781				};
782			};
783
784			avdd_0v75_s0: nldo-reg3 {
785				regulator-always-on;
786				regulator-boot-on;
787				regulator-max-microvolt = <750000>;
788				regulator-min-microvolt = <750000>;
789				regulator-name = "avdd_0v75_s0";
790				regulator-state-mem {
791					regulator-off-in-suspend;
792				};
793			};
794
795			vdda_0v85_s0: nldo-reg4 {
796				regulator-always-on;
797				regulator-boot-on;
798				regulator-min-microvolt = <850000>;
799				regulator-max-microvolt = <850000>;
800				regulator-name = "vdda_0v85_s0";
801				regulator-state-mem {
802					regulator-off-in-suspend;
803				};
804			};
805
806			/* Schematics show not in use */
807			nldo-reg5 {
808			};
809		};
810	};
811};
812
813&tsadc {
814	status = "okay";
815};
816
817&u2phy0 {
818	status = "okay";
819};
820
821&u2phy0_otg {
822	status = "okay";
823};
824
825&u2phy2 {
826	status = "okay";
827};
828
829&u2phy2_host {
830	phy-supply = <&vcc5v0_usb>;
831	status = "okay";
832};
833
834&u2phy3 {
835	status = "okay";
836};
837
838&u2phy3_host {
839	phy-supply = <&vcc5v0_usb>;
840	status = "okay";
841};
842
843&uart2 {
844	pinctrl-0 = <&uart2m0_xfer>;
845	status = "okay";
846};
847
848/* DMA seems to interfere with bluetooth device normal operation. */
849&uart9 {
850	pinctrl-0 = <&uart9m2_xfer>, <&uart9m2_ctsn>, <&uart9m2_rtsn>;
851	pinctrl-names = "default";
852	/delete-property/ dma-names;
853	/delete-property/ dmas;
854	uart-has-rtscts;
855	status = "okay";
856
857	bluetooth {
858		compatible = "realtek,rtl8821cs-bt",
859			     "realtek,rtl8723bs-bt";
860		device-wake-gpios = <&gpio0 RK_PC6 GPIO_ACTIVE_HIGH>;
861		enable-gpios = <&gpio0 RK_PD4 GPIO_ACTIVE_HIGH>;
862		host-wake-gpios = <&gpio0 RK_PC5 GPIO_ACTIVE_HIGH>;
863		pinctrl-0 = <&bt_reset>, <&bt_wake_dev>, <&bt_wake_host>;
864		pinctrl-names = "default";
865	};
866};
867
868&usb_host0_ehci {
869	status = "okay";
870};
871
872&usb_host0_ohci {
873	status = "okay";
874};
875
876&usb_host0_xhci {
877	usb-role-switch;
878	status = "okay";
879
880	port {
881		dwc3_0_role_switch: endpoint {
882			remote-endpoint = <&usbc0_role_sw>;
883		};
884	};
885};
886
887&usb_host1_ehci {
888	status = "okay";
889};
890
891&usb_host1_ohci {
892	status = "okay";
893};
894
895&usb_host2_xhci {
896	status = "okay";
897};
898
899&usbdp_phy0 {
900	orientation-switch;
901	mode-switch;
902	sbu1-dc-gpios = <&gpio4 RK_PA0 GPIO_ACTIVE_HIGH>;
903	sbu2-dc-gpios = <&gpio4 RK_PA1 GPIO_ACTIVE_HIGH>;
904	rockchip,dp-lane-mux = <2 3>;
905	status = "okay";
906
907	port {
908		#address-cells = <1>;
909		#size-cells = <0>;
910
911		usbdp_phy0_orientation_switch: endpoint@0 {
912			reg = <0>;
913			remote-endpoint = <&usbc0_orien_sw>;
914		};
915
916		usbdp_phy0_dp_altmode_mux: endpoint@1 {
917			reg = <1>;
918			remote-endpoint = <&dp_altmode_mux>;
919		};
920	};
921};
922