xref: /linux/arch/arm64/boot/dts/rockchip/rk3588s-indiedroid-nova.dts (revision 7f71507851fc7764b36a3221839607d3a45c2025)
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		clocks = <&cru I2S0_8CH_MCLKOUT>;
421		DVDD-supply = <&vcc_1v8_s3>;
422		HPVDD-supply = <&vcc_3v3_s3>;
423		PVDD-supply = <&vcc_1v8_s3>;
424		#sound-dai-cells = <0>;
425
426		port {
427			es8388_p0_0: endpoint {
428				remote-endpoint = <&i2s0_8ch_p0_0>;
429			};
430		};
431	};
432};
433
434&i2s0_8ch {
435	pinctrl-names = "default";
436	pinctrl-0 = <&i2s0_lrck
437		     &i2s0_mclk
438		     &i2s0_sclk
439		     &i2s0_sdi0
440		     &i2s0_sdo0>;
441	status = "okay";
442
443	i2s0_8ch_p0: port {
444		i2s0_8ch_p0_0: endpoint {
445			dai-format = "i2s";
446			mclk-fs = <256>;
447			remote-endpoint = <&es8388_p0_0>;
448		};
449	};
450};
451
452&pcie2x1l2 {
453	pinctrl-0 = <&rtl8111_perstb>;
454	pinctrl-names = "default";
455	status = "okay";
456};
457
458&pinctrl {
459	bluetooth-pins {
460		bt_reset: bt-reset {
461			rockchip,pins =
462				<0 RK_PD4 RK_FUNC_GPIO &pcfg_pull_none>;
463		};
464
465		bt_wake_dev: bt-wake-dev {
466			rockchip,pins =
467				<0 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>;
468		};
469
470		bt_wake_host: bt-wake-host {
471			rockchip,pins =
472				<0 RK_PC5 RK_FUNC_GPIO &pcfg_pull_down>;
473		};
474	};
475
476	ethernet-pins {
477		rtl8111_perstb: rtl8111-perstb {
478			rockchip,pins = <3 RK_PD1 RK_FUNC_GPIO &pcfg_pull_up>;
479		};
480	};
481
482	hym8563 {
483
484		hym8563_int: hym8563-int {
485			rockchip,pins =
486				<0 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>;
487		};
488	};
489
490	sdio-pwrseq {
491		wifi_enable_h: wifi-enable-h {
492			rockchip,pins =
493				<0 RK_PC7 RK_FUNC_GPIO &pcfg_pull_none>;
494		};
495	};
496
497	usb-typec {
498		usbc0_int: usbc0-int {
499			rockchip,pins =
500				<0 RK_PC4 RK_FUNC_GPIO &pcfg_pull_up>;
501		};
502
503		typec5v_pwren: typec5v-pwren {
504			rockchip,pins =
505				<4 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>;
506		};
507	};
508};
509
510&saradc {
511	vref-supply = <&vcca_1v8_s0>;
512	status = "okay";
513};
514
515/* HS400 modes seemed to cause io errors. */
516&sdhci {
517	bus-width = <8>;
518	no-mmc-hs400;
519	no-sd;
520	no-sdio;
521	non-removable;
522	vmmc-supply = <&vcc_3v3_s0>;
523	vqmmc-supply = <&vcc_1v8_s3>;
524	status = "okay";
525};
526
527&sdio {
528	bus-width = <4>;
529	cap-sd-highspeed;
530	cap-sdio-irq;
531	disable-wp;
532	keep-power-in-suspend;
533	max-frequency = <100000000>;
534	mmc-pwrseq = <&sdio_pwrseq>;
535	no-mmc;
536	no-sd;
537	non-removable;
538	sd-uhs-sdr104;
539	vmmc-supply = <&vcc_3v3_s3>;
540	vqmmc-supply = <&vcc_1v8_s3>;
541	status = "okay";
542};
543
544&sdmmc {
545	bus-width = <4>;
546	cap-mmc-highspeed;
547	cap-sd-highspeed;
548	disable-wp;
549	no-sdio;
550	no-mmc;
551	sd-uhs-sdr104;
552	vmmc-supply = <&vcc_3v3_s3>;
553	vqmmc-supply = <&vccio_sd_s0>;
554	status = "okay";
555};
556
557&spi2 {
558	#address-cells = <1>;
559	assigned-clocks = <&cru CLK_SPI2>;
560	assigned-clock-rates = <200000000>;
561	num-cs = <1>;
562	pinctrl-0 = <&spi2m2_pins>, <&spi2m2_cs0>;
563	pinctrl-names = "default";
564	#size-cells = <0>;
565	status = "okay";
566
567	pmic@0 {
568		compatible = "rockchip,rk806";
569		reg = <0x0>;
570		#gpio-cells = <2>;
571		gpio-controller;
572		interrupt-parent = <&gpio0>;
573		interrupts = <RK_PA7 IRQ_TYPE_LEVEL_LOW>;
574		pinctrl-0 = <&pmic_pins>, <&rk806_dvs1_null>,
575			    <&rk806_dvs2_null>, <&rk806_dvs3_null>;
576		pinctrl-names = "default";
577		spi-max-frequency = <1000000>;
578
579		vcc1-supply = <&vcc5v0_sys>;
580		vcc2-supply = <&vcc5v0_sys>;
581		vcc3-supply = <&vcc5v0_sys>;
582		vcc4-supply = <&vcc5v0_sys>;
583		vcc5-supply = <&vcc5v0_sys>;
584		vcc6-supply = <&vcc5v0_sys>;
585		vcc7-supply = <&vcc5v0_sys>;
586		vcc8-supply = <&vcc5v0_sys>;
587		vcc9-supply = <&vcc5v0_sys>;
588		vcc10-supply = <&vcc5v0_sys>;
589		vcc11-supply = <&vcc_2v0_pldo_s3>;
590		vcc12-supply = <&vcc5v0_sys>;
591		vcc13-supply = <&vcc_1v1_nldo_s3>;
592		vcc14-supply = <&vcc_1v1_nldo_s3>;
593		vcca-supply = <&vcc5v0_sys>;
594
595		rk806_dvs1_null: dvs1-null-pins {
596			pins = "gpio_pwrctrl1";
597			function = "pin_fun0";
598		};
599
600		rk806_dvs2_null: dvs2-null-pins {
601			pins = "gpio_pwrctrl2";
602			function = "pin_fun0";
603		};
604
605		rk806_dvs3_null: dvs3-null-pins {
606			pins = "gpio_pwrctrl3";
607			function = "pin_fun0";
608		};
609
610		regulators {
611			vdd_gpu_s0: dcdc-reg1 {
612				regulator-boot-on;
613				regulator-enable-ramp-delay = <400>;
614				regulator-max-microvolt = <950000>;
615				regulator-min-microvolt = <550000>;
616				regulator-name = "vdd_gpu_s0";
617				regulator-ramp-delay = <12500>;
618				regulator-state-mem {
619					regulator-off-in-suspend;
620				};
621			};
622
623			vdd_cpu_lit_s0: dcdc-reg2 {
624				regulator-always-on;
625				regulator-boot-on;
626				regulator-max-microvolt = <950000>;
627				regulator-min-microvolt = <550000>;
628				regulator-ramp-delay = <12500>;
629				regulator-name = "vdd_cpu_lit_s0";
630				regulator-state-mem {
631					regulator-off-in-suspend;
632				};
633			};
634
635			vdd_logic_s0: dcdc-reg3 {
636				regulator-always-on;
637				regulator-boot-on;
638				regulator-max-microvolt = <750000>;
639				regulator-min-microvolt = <675000>;
640				regulator-name = "vdd_logic_s0";
641				regulator-ramp-delay = <12500>;
642				regulator-state-mem {
643					regulator-on-in-suspend;
644					regulator-suspend-microvolt = <750000>;
645				};
646			};
647
648			vdd_vdenc_s0: dcdc-reg4 {
649				regulator-always-on;
650				regulator-boot-on;
651				regulator-max-microvolt = <950000>;
652				regulator-min-microvolt = <550000>;
653				regulator-name = "vdd_vdenc_s0";
654				regulator-ramp-delay = <12500>;
655				regulator-state-mem {
656					regulator-off-in-suspend;
657				};
658			};
659
660			vdd_ddr_s0: dcdc-reg5 {
661				regulator-always-on;
662				regulator-boot-on;
663				regulator-min-microvolt = <750000>;
664				regulator-max-microvolt = <850000>;
665				regulator-ramp-delay = <12500>;
666				regulator-name = "vdd_ddr_s0";
667				regulator-state-mem {
668					regulator-off-in-suspend;
669					regulator-suspend-microvolt = <850000>;
670				};
671			};
672
673			vdd2_ddr_s3: dcdc-reg6 {
674				regulator-always-on;
675				regulator-boot-on;
676				regulator-max-microvolt = <1100000>;
677				regulator-min-microvolt = <1100000>;
678				regulator-name = "vdd2_ddr_s3";
679				regulator-state-mem {
680					regulator-on-in-suspend;
681				};
682			};
683
684			vcc_2v0_pldo_s3: dcdc-reg7 {
685				regulator-always-on;
686				regulator-boot-on;
687				regulator-max-microvolt = <2000000>;
688				regulator-min-microvolt = <2000000>;
689				regulator-name = "vdd_2v0_pldo_s3";
690				regulator-state-mem {
691					regulator-on-in-suspend;
692					regulator-suspend-microvolt = <2000000>;
693				};
694			};
695
696			vcc_3v3_s3: dcdc-reg8 {
697				regulator-always-on;
698				regulator-boot-on;
699				regulator-max-microvolt = <3300000>;
700				regulator-min-microvolt = <3300000>;
701				regulator-name = "vcc_3v3_s3";
702				regulator-state-mem {
703					regulator-on-in-suspend;
704					regulator-suspend-microvolt = <3300000>;
705				};
706			};
707
708			vddq_ddr_s0: dcdc-reg9 {
709				regulator-always-on;
710				regulator-boot-on;
711				regulator-max-microvolt = <600000>;
712				regulator-min-microvolt = <600000>;
713				regulator-name = "vddq_ddr_s0";
714				regulator-state-mem {
715					regulator-off-in-suspend;
716				};
717			};
718
719			vcc_1v8_s3: dcdc-reg10 {
720				regulator-always-on;
721				regulator-boot-on;
722				regulator-max-microvolt = <1800000>;
723				regulator-min-microvolt = <1800000>;
724				regulator-name = "vcc_1v8_s3";
725				regulator-state-mem {
726					regulator-on-in-suspend;
727					regulator-suspend-microvolt = <1800000>;
728				};
729			};
730
731			vcc_1v8_s0: pldo-reg1 {
732				regulator-always-on;
733				regulator-boot-on;
734				regulator-max-microvolt = <1800000>;
735				regulator-min-microvolt = <1800000>;
736				regulator-name = "vcc_1v8_s0";
737				regulator-state-mem {
738					regulator-off-in-suspend;
739				};
740			};
741
742			vcca_1v8_s0: pldo-reg2 {
743				regulator-always-on;
744				regulator-boot-on;
745				regulator-max-microvolt = <1800000>;
746				regulator-min-microvolt = <1800000>;
747				regulator-name = "vcca_1v8_s0";
748				regulator-state-mem {
749					regulator-off-in-suspend;
750					regulator-suspend-microvolt = <1800000>;
751				};
752			};
753
754			vdda_1v2_s0: pldo-reg3 {
755				regulator-always-on;
756				regulator-boot-on;
757				regulator-max-microvolt = <1200000>;
758				regulator-min-microvolt = <1200000>;
759				regulator-name = "vdda_1v2_s0";
760				regulator-state-mem {
761					regulator-off-in-suspend;
762				};
763			};
764
765			vcca_3v3_s0: pldo-reg4 {
766				regulator-always-on;
767				regulator-boot-on;
768				regulator-max-microvolt = <3300000>;
769				regulator-min-microvolt = <3300000>;
770				regulator-name = "vcca_3v3_s0";
771				regulator-state-mem {
772					regulator-off-in-suspend;
773				};
774			};
775
776			vccio_sd_s0: pldo-reg5 {
777				regulator-always-on;
778				regulator-boot-on;
779				regulator-max-microvolt = <3300000>;
780				regulator-min-microvolt = <1800000>;
781				regulator-name = "vccio_sd_s0";
782				regulator-state-mem {
783					regulator-off-in-suspend;
784				};
785			};
786
787			vcc_1v8_s3_pldo6: pldo-reg6 {
788				regulator-always-on;
789				regulator-boot-on;
790				regulator-max-microvolt = <1800000>;
791				regulator-min-microvolt = <1800000>;
792				regulator-name = "vcc_1v8_s3_pldo6";
793				regulator-state-mem {
794					regulator-on-in-suspend;
795					regulator-suspend-microvolt = <1800000>;
796				};
797			};
798
799			vdd_0v75_s3: nldo-reg1 {
800				regulator-always-on;
801				regulator-boot-on;
802				regulator-max-microvolt = <750000>;
803				regulator-min-microvolt = <750000>;
804				regulator-name = "vdd_0v75_s3";
805				regulator-state-mem {
806					regulator-on-in-suspend;
807					regulator-suspend-microvolt = <750000>;
808				};
809			};
810
811			vdda_ddr_pll_s0: nldo-reg2 {
812				regulator-always-on;
813				regulator-boot-on;
814				regulator-max-microvolt = <850000>;
815				regulator-min-microvolt = <850000>;
816				regulator-name = "vdda_ddr_pll_s0";
817				regulator-state-mem {
818					regulator-off-in-suspend;
819					regulator-suspend-microvolt = <850000>;
820				};
821			};
822
823			avdd_0v75_s0: nldo-reg3 {
824				regulator-always-on;
825				regulator-boot-on;
826				regulator-max-microvolt = <750000>;
827				regulator-min-microvolt = <750000>;
828				regulator-name = "avdd_0v75_s0";
829				regulator-state-mem {
830					regulator-off-in-suspend;
831				};
832			};
833
834			vdda_0v85_s0: nldo-reg4 {
835				regulator-always-on;
836				regulator-boot-on;
837				regulator-min-microvolt = <850000>;
838				regulator-max-microvolt = <850000>;
839				regulator-name = "vdda_0v85_s0";
840				regulator-state-mem {
841					regulator-off-in-suspend;
842				};
843			};
844
845			/* Schematics show not in use */
846			nldo-reg5 {
847			};
848		};
849	};
850};
851
852&tsadc {
853	status = "okay";
854};
855
856&u2phy0 {
857	status = "okay";
858};
859
860&u2phy0_otg {
861	status = "okay";
862};
863
864&u2phy2 {
865	status = "okay";
866};
867
868&u2phy2_host {
869	phy-supply = <&vcc5v0_usb>;
870	status = "okay";
871};
872
873&u2phy3 {
874	status = "okay";
875};
876
877&u2phy3_host {
878	phy-supply = <&vcc5v0_usb>;
879	status = "okay";
880};
881
882&uart2 {
883	pinctrl-0 = <&uart2m0_xfer>;
884	status = "okay";
885};
886
887/* DMA seems to interfere with bluetooth device normal operation. */
888&uart9 {
889	pinctrl-0 = <&uart9m2_xfer>, <&uart9m2_ctsn>, <&uart9m2_rtsn>;
890	pinctrl-names = "default";
891	/delete-property/ dma-names;
892	/delete-property/ dmas;
893	uart-has-rtscts;
894	status = "okay";
895
896	bluetooth {
897		compatible = "realtek,rtl8821cs-bt",
898			     "realtek,rtl8723bs-bt";
899		device-wake-gpios = <&gpio0 RK_PC6 GPIO_ACTIVE_HIGH>;
900		enable-gpios = <&gpio0 RK_PD4 GPIO_ACTIVE_HIGH>;
901		host-wake-gpios = <&gpio0 RK_PC5 GPIO_ACTIVE_HIGH>;
902		pinctrl-0 = <&bt_reset>, <&bt_wake_dev>, <&bt_wake_host>;
903		pinctrl-names = "default";
904	};
905};
906
907&usb_host0_ehci {
908	status = "okay";
909};
910
911&usb_host0_ohci {
912	status = "okay";
913};
914
915&usb_host0_xhci {
916	usb-role-switch;
917	status = "okay";
918
919	port {
920		dwc3_0_role_switch: endpoint {
921			remote-endpoint = <&usbc0_role_sw>;
922		};
923	};
924};
925
926&usb_host1_ehci {
927	status = "okay";
928};
929
930&usb_host1_ohci {
931	status = "okay";
932};
933
934&usb_host2_xhci {
935	status = "okay";
936};
937
938&usbdp_phy0 {
939	orientation-switch;
940	mode-switch;
941	sbu1-dc-gpios = <&gpio4 RK_PA0 GPIO_ACTIVE_HIGH>;
942	sbu2-dc-gpios = <&gpio4 RK_PA1 GPIO_ACTIVE_HIGH>;
943	rockchip,dp-lane-mux = <2 3>;
944	status = "okay";
945
946	port {
947		#address-cells = <1>;
948		#size-cells = <0>;
949
950		usbdp_phy0_orientation_switch: endpoint@0 {
951			reg = <0>;
952			remote-endpoint = <&usbc0_orien_sw>;
953		};
954
955		usbdp_phy0_dp_altmode_mux: endpoint@1 {
956			reg = <1>;
957			remote-endpoint = <&dp_altmode_mux>;
958		};
959	};
960};
961
962&vop {
963	status = "okay";
964};
965
966&vop_mmu {
967	status = "okay";
968};
969
970&vp0 {
971	vp0_out_hdmi0: endpoint@ROCKCHIP_VOP2_EP_HDMI0 {
972		reg = <ROCKCHIP_VOP2_EP_HDMI0>;
973		remote-endpoint = <&hdmi0_in_vp0>;
974	};
975};
976