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