1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
3 * Copyright (c) 2021 Rockchip Electronics Co., Ltd.
4 *
5 */
6
7/dts-v1/;
8
9#include <dt-bindings/gpio/gpio.h>
10#include <dt-bindings/input/input.h>
11#include <dt-bindings/pinctrl/rockchip.h>
12#include <dt-bindings/soc/rockchip,vop2.h>
13#include <dt-bindings/usb/pd.h>
14#include "rk3588.dtsi"
15
16/ {
17	model = "Rockchip RK3588 EVB1 V10 Board";
18	compatible = "rockchip,rk3588-evb1-v10", "rockchip,rk3588";
19
20	aliases {
21		ethernet0 = &gmac0;
22		mmc0 = &sdhci;
23	};
24
25	chosen {
26		stdout-path = "serial2:1500000n8";
27	};
28
29	adc-keys {
30		compatible = "adc-keys";
31		io-channels = <&saradc 1>;
32		io-channel-names = "buttons";
33		keyup-threshold-microvolt = <1800000>;
34		poll-interval = <100>;
35
36		button-vol-up {
37			label = "Volume Up";
38			linux,code = <KEY_VOLUMEUP>;
39			press-threshold-microvolt = <17000>;
40		};
41
42		button-vol-down {
43			label = "Volume Down";
44			linux,code = <KEY_VOLUMEDOWN>;
45			press-threshold-microvolt = <417000>;
46		};
47
48		button-menu {
49			label = "Menu";
50			linux,code = <KEY_MENU>;
51			press-threshold-microvolt = <890000>;
52		};
53
54		button-escape {
55			label = "Escape";
56			linux,code = <KEY_ESC>;
57			press-threshold-microvolt = <1235000>;
58		};
59	};
60
61	analog-sound {
62		compatible = "simple-audio-card";
63		pinctrl-names = "default";
64		pinctrl-0 = <&hp_detect>;
65		simple-audio-card,name = "RK3588 EVB1 Audio";
66		simple-audio-card,aux-devs = <&amp_headphone>, <&amp_speaker>;
67		simple-audio-card,bitclock-master = <&masterdai>;
68		simple-audio-card,format = "i2s";
69		simple-audio-card,frame-master = <&masterdai>;
70		simple-audio-card,hp-det-gpios = <&gpio1 RK_PD5 GPIO_ACTIVE_LOW>;
71		simple-audio-card,mclk-fs = <256>;
72		simple-audio-card,pin-switches = "Headphones", "Speaker";
73		simple-audio-card,routing =
74			"Speaker Amplifier INL", "LOUT2",
75			"Speaker Amplifier INR", "ROUT2",
76			"Speaker", "Speaker Amplifier OUTL",
77			"Speaker", "Speaker Amplifier OUTR",
78			"Headphones Amplifier INL", "LOUT1",
79			"Headphones Amplifier INR", "ROUT1",
80			"Headphones", "Headphones Amplifier OUTL",
81			"Headphones", "Headphones Amplifier OUTR",
82			"LINPUT1", "Onboard Microphone",
83			"RINPUT1", "Onboard Microphone",
84			"LINPUT2", "Microphone Jack",
85			"RINPUT2", "Microphone Jack";
86		simple-audio-card,widgets =
87			"Microphone", "Microphone Jack",
88			"Microphone", "Onboard Microphone",
89			"Headphone", "Headphones",
90			"Speaker", "Speaker";
91
92		simple-audio-card,cpu {
93			sound-dai = <&i2s0_8ch>;
94		};
95
96		masterdai: simple-audio-card,codec {
97			sound-dai = <&es8388>;
98			system-clock-frequency = <12288000>;
99		};
100	};
101
102	amp_headphone: headphone-amplifier {
103		compatible = "simple-audio-amplifier";
104		enable-gpios = <&gpio1 RK_PD2 GPIO_ACTIVE_HIGH>;
105		pinctrl-names = "default";
106		pinctrl-0 = <&headphone_amplifier_en>;
107		sound-name-prefix = "Headphones Amplifier";
108	};
109
110	amp_speaker: speaker-amplifier {
111		compatible = "simple-audio-amplifier";
112		enable-gpios = <&gpio1 RK_PD3 GPIO_ACTIVE_HIGH>;
113		pinctrl-names = "default";
114		pinctrl-0 = <&speaker_amplifier_en>;
115		sound-name-prefix = "Speaker Amplifier";
116	};
117
118	backlight: backlight {
119		compatible = "pwm-backlight";
120		power-supply = <&vcc12v_dcin>;
121		pwms = <&pwm2 0 25000 0>;
122	};
123
124	hdmi0-con {
125		compatible = "hdmi-connector";
126		type = "a";
127
128		port {
129			hdmi0_con_in: endpoint {
130				remote-endpoint = <&hdmi0_out_con>;
131			};
132		};
133	};
134
135	pcie20_avdd0v85: regulator-pcie20-avdd0v85 {
136		compatible = "regulator-fixed";
137		regulator-name = "pcie20_avdd0v85";
138		regulator-always-on;
139		regulator-boot-on;
140		regulator-min-microvolt = <850000>;
141		regulator-max-microvolt = <850000>;
142		vin-supply = <&avdd_0v85_s0>;
143	};
144
145	pcie20_avdd1v8: regulator-pcie20-avdd1v8 {
146		compatible = "regulator-fixed";
147		regulator-name = "pcie20_avdd1v8";
148		regulator-always-on;
149		regulator-boot-on;
150		regulator-min-microvolt = <1800000>;
151		regulator-max-microvolt = <1800000>;
152		vin-supply = <&avcc_1v8_s0>;
153	};
154
155	pcie30_avdd0v75: regulator-pcie30-avdd0v75 {
156		compatible = "regulator-fixed";
157		regulator-name = "pcie30_avdd0v75";
158		regulator-always-on;
159		regulator-boot-on;
160		regulator-min-microvolt = <750000>;
161		regulator-max-microvolt = <750000>;
162		vin-supply = <&avdd_0v75_s0>;
163	};
164
165	pcie30_avdd1v8: regulator-pcie30-avdd1v8 {
166		compatible = "regulator-fixed";
167		regulator-name = "pcie30_avdd1v8";
168		regulator-always-on;
169		regulator-boot-on;
170		regulator-min-microvolt = <1800000>;
171		regulator-max-microvolt = <1800000>;
172		vin-supply = <&avcc_1v8_s0>;
173	};
174
175	vbus5v0_typec: regulator-vbus5v0-typec {
176		compatible = "regulator-fixed";
177		enable-active-high;
178		gpio = <&gpio4 RK_PD0 GPIO_ACTIVE_HIGH>;
179		pinctrl-names = "default";
180		pinctrl-0 = <&typec5v_pwren>;
181		regulator-name = "vbus5v0_typec";
182		regulator-min-microvolt = <5000000>;
183		regulator-max-microvolt = <5000000>;
184		vin-supply = <&vcc5v0_usb>;
185	};
186
187	vcc12v_dcin: regulator-vcc12v-dcin {
188		compatible = "regulator-fixed";
189		regulator-name = "vcc12v_dcin";
190		regulator-always-on;
191		regulator-boot-on;
192		regulator-min-microvolt = <12000000>;
193		regulator-max-microvolt = <12000000>;
194	};
195
196	vcc3v3_pcie30: regulator-vcc3v3-pcie30 {
197		compatible = "regulator-fixed";
198		regulator-name = "vcc3v3_pcie30";
199		regulator-min-microvolt = <3300000>;
200		regulator-max-microvolt = <3300000>;
201		enable-active-high;
202		gpios = <&gpio3 RK_PC3 GPIO_ACTIVE_HIGH>;
203		startup-delay-us = <5000>;
204		vin-supply = <&vcc12v_dcin>;
205		pinctrl-names = "default";
206		pinctrl-0 = <&vcc3v3_pcie30_en>;
207	};
208
209	vcc3v3_pciewl_vbat: regulator-vcc3v3-pciewl-vbat {
210		compatible = "regulator-fixed";
211		regulator-always-on;
212		regulator-boot-on;
213		regulator-min-microvolt = <3300000>;
214		regulator-max-microvolt = <3300000>;
215		regulator-name = "wlan-vbat";
216		vin-supply = <&vcc_3v3_s0>;
217	};
218
219	vcc3v3_wlan: regulator-vcc3v3-wlan {
220		compatible = "regulator-fixed";
221		enable-active-high;
222		gpios = <&gpio3 RK_PB1 GPIO_ACTIVE_HIGH>;
223		pinctrl-names = "default";
224		pinctrl-0 = <&wifi_pwren>;
225		regulator-min-microvolt = <3300000>;
226		regulator-max-microvolt = <3300000>;
227		regulator-name = "wlan-en";
228		vin-supply = <&vcc3v3_pciewl_vbat>;
229	};
230
231	vcc5v0_host: regulator-vcc5v0-host {
232		compatible = "regulator-fixed";
233		regulator-name = "vcc5v0_host";
234		regulator-boot-on;
235		regulator-always-on;
236		regulator-min-microvolt = <5000000>;
237		regulator-max-microvolt = <5000000>;
238		enable-active-high;
239		gpio = <&gpio4 RK_PB0 GPIO_ACTIVE_HIGH>;
240		pinctrl-names = "default";
241		pinctrl-0 = <&vcc5v0_host_en>;
242		vin-supply = <&vcc5v0_usb>;
243	};
244
245	vcc5v0_sys: regulator-vcc5v0-sys {
246		compatible = "regulator-fixed";
247		regulator-name = "vcc5v0_sys";
248		regulator-always-on;
249		regulator-boot-on;
250		regulator-min-microvolt = <5000000>;
251		regulator-max-microvolt = <5000000>;
252		vin-supply = <&vcc12v_dcin>;
253	};
254
255	vcc5v0_usbdcin: regulator-vcc5v0-usbdcin {
256		compatible = "regulator-fixed";
257		regulator-name = "vcc5v0_usbdcin";
258		regulator-always-on;
259		regulator-boot-on;
260		regulator-min-microvolt = <5000000>;
261		regulator-max-microvolt = <5000000>;
262		vin-supply = <&vcc12v_dcin>;
263	};
264
265	vcc5v0_usb: regulator-vcc5v0-usb {
266		compatible = "regulator-fixed";
267		regulator-name = "vcc5v0_usb";
268		regulator-always-on;
269		regulator-boot-on;
270		regulator-min-microvolt = <5000000>;
271		regulator-max-microvolt = <5000000>;
272		vin-supply = <&vcc5v0_usbdcin>;
273	};
274
275	vccio_wl: regulator-vccio-wl {
276		compatible = "regulator-fixed";
277		regulator-always-on;
278		regulator-boot-on;
279		regulator-min-microvolt = <1800000>;
280		regulator-max-microvolt = <1800000>;
281		regulator-name = "wlan-vddio";
282		vin-supply = <&vcc_1v8_s0>;
283	};
284};
285
286&combphy0_ps {
287	status = "okay";
288};
289
290&combphy1_ps {
291	status = "okay";
292};
293
294&combphy2_psu {
295	status = "okay";
296};
297
298&cpu_b0 {
299	cpu-supply = <&vdd_cpu_big0_s0>;
300};
301
302&cpu_b1 {
303	cpu-supply = <&vdd_cpu_big0_s0>;
304};
305
306&cpu_b2 {
307	cpu-supply = <&vdd_cpu_big1_s0>;
308};
309
310&cpu_b3 {
311	cpu-supply = <&vdd_cpu_big1_s0>;
312};
313
314&cpu_l0 {
315	cpu-supply = <&vdd_cpu_lit_s0>;
316};
317
318&cpu_l1 {
319	cpu-supply = <&vdd_cpu_lit_s0>;
320};
321
322&cpu_l2 {
323	cpu-supply = <&vdd_cpu_lit_s0>;
324};
325
326&cpu_l3 {
327	cpu-supply = <&vdd_cpu_lit_s0>;
328};
329
330&gmac0 {
331	clock_in_out = "output";
332	phy-handle = <&rgmii_phy>;
333	phy-mode = "rgmii-rxid";
334	pinctrl-0 = <&gmac0_miim
335		     &gmac0_tx_bus2
336		     &gmac0_rx_bus2
337		     &gmac0_rgmii_clk
338		     &gmac0_rgmii_bus>;
339	pinctrl-names = "default";
340	rx_delay = <0x00>;
341	tx_delay = <0x43>;
342	status = "okay";
343};
344
345&gpu {
346	mali-supply = <&vdd_gpu_s0>;
347	sram-supply = <&vdd_gpu_mem_s0>;
348	status = "okay";
349};
350
351&hdmi0 {
352	status = "okay";
353};
354
355&hdmi0_in {
356	hdmi0_in_vp0: endpoint {
357		remote-endpoint = <&vp0_out_hdmi0>;
358	};
359};
360
361&hdmi0_out {
362	hdmi0_out_con: endpoint {
363		remote-endpoint = <&hdmi0_con_in>;
364	};
365};
366
367&hdptxphy_hdmi0 {
368	status = "okay";
369};
370
371&i2c2 {
372	status = "okay";
373
374	usbc0: usb-typec@22 {
375		compatible = "fcs,fusb302";
376		reg = <0x22>;
377		interrupt-parent = <&gpio3>;
378		interrupts = <RK_PB4 IRQ_TYPE_LEVEL_LOW>;
379		pinctrl-names = "default";
380		pinctrl-0 = <&usbc0_int>;
381		vbus-supply = <&vbus5v0_typec>;
382		status = "okay";
383
384		usb_con: connector {
385			compatible = "usb-c-connector";
386			label = "USB-C";
387			data-role = "dual";
388			op-sink-microwatt = <1000000>;
389			power-role = "dual";
390			sink-pdos =
391				<PDO_FIXED(5000, 1000, PDO_FIXED_USB_COMM)>;
392			source-pdos =
393				<PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>;
394			try-power-role = "source";
395
396			ports {
397				#address-cells = <1>;
398				#size-cells = <0>;
399
400				port@0 {
401					reg = <0>;
402
403					usbc0_orien_sw: endpoint {
404						remote-endpoint = <&usbdp_phy0_orientation_switch>;
405					};
406				};
407
408				port@1 {
409					reg = <1>;
410
411					usbc0_role_sw: endpoint {
412						remote-endpoint = <&dwc3_0_role_switch>;
413					};
414				};
415
416				port@2 {
417					reg = <2>;
418
419					dp_altmode_mux: endpoint {
420						remote-endpoint = <&usbdp_phy0_dp_altmode_mux>;
421					};
422				};
423			};
424		};
425	};
426
427	hym8563: rtc@51 {
428		compatible = "haoyu,hym8563";
429		reg = <0x51>;
430		#clock-cells = <0>;
431		clock-output-names = "hym8563";
432		pinctrl-names = "default";
433		pinctrl-0 = <&hym8563_int>;
434		interrupt-parent = <&gpio0>;
435		interrupts = <RK_PD4 IRQ_TYPE_LEVEL_LOW>;
436		wakeup-source;
437	};
438};
439
440&i2c7 {
441	status = "okay";
442
443	es8388: audio-codec@11 {
444		compatible = "everest,es8388";
445		reg = <0x11>;
446		clocks = <&cru I2S0_8CH_MCLKOUT>;
447		assigned-clocks = <&cru I2S0_8CH_MCLKOUT>;
448		assigned-clock-rates = <12288000>;
449		AVDD-supply = <&avcc_1v8_codec_s0>;
450		DVDD-supply = <&avcc_1v8_codec_s0>;
451		HPVDD-supply = <&vcc_3v3_s0>;
452		PVDD-supply = <&vcc_3v3_s0>;
453		#sound-dai-cells = <0>;
454	};
455};
456
457&i2s0_8ch {
458	pinctrl-0 = <&i2s0_lrck
459		     &i2s0_mclk
460		     &i2s0_sclk
461		     &i2s0_sdi0
462		     &i2s0_sdo0>;
463	status = "okay";
464};
465
466&mdio0 {
467	rgmii_phy: ethernet-phy@1 {
468		/* RTL8211F */
469		compatible = "ethernet-phy-id001c.c916";
470		reg = <0x1>;
471		pinctrl-names = "default";
472		pinctrl-0 = <&rtl8211f_rst>;
473		reset-assert-us = <20000>;
474		reset-deassert-us = <100000>;
475		reset-gpios = <&gpio4 RK_PB3 GPIO_ACTIVE_LOW>;
476	};
477};
478
479&pcie2x1l0 {
480	pinctrl-names = "default";
481	pinctrl-0 = <&pcie2_0_rst>, <&pcie2_0_wake>, <&pcie2_0_clkreq>, <&wifi_host_wake_irq>;
482	reset-gpios = <&gpio4 RK_PA5 GPIO_ACTIVE_HIGH>;
483	vpcie3v3-supply = <&vcc3v3_wlan>;
484	status = "okay";
485
486	pcie@0,0 {
487		reg = <0x200000 0 0 0 0>;
488		#address-cells = <3>;
489		#size-cells = <2>;
490		ranges;
491		device_type = "pci";
492		bus-range = <0x20 0x2f>;
493
494		wifi: wifi@0,0 {
495			compatible = "pci14e4,449d";
496			reg = <0x210000 0 0 0 0>;
497			clocks = <&hym8563>;
498			clock-names = "lpo";
499		};
500	};
501};
502
503&pcie2x1l1 {
504	reset-gpios = <&gpio4 RK_PA2 GPIO_ACTIVE_HIGH>;
505	pinctrl-names = "default";
506	pinctrl-0 = <&pcie2_1_rst>, <&rtl8111_isolate>;
507	status = "okay";
508};
509
510&pcie30phy {
511	status = "okay";
512};
513
514&pcie3x4 {
515	pinctrl-names = "default";
516	pinctrl-0 = <&pcie3_reset>;
517	reset-gpios = <&gpio4 RK_PB6 GPIO_ACTIVE_HIGH>;
518	vpcie3v3-supply = <&vcc3v3_pcie30>;
519	status = "okay";
520};
521
522&pinctrl {
523	audio {
524		hp_detect: headphone-detect {
525			rockchip,pins = <1 RK_PD5 RK_FUNC_GPIO &pcfg_pull_none>;
526		};
527
528		headphone_amplifier_en: headphone-amplifier-en {
529			rockchip,pins = <1 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>;
530		};
531
532		speaker_amplifier_en: speaker-amplifier-en {
533			rockchip,pins = <1 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>;
534		};
535	};
536
537	rtl8111 {
538		rtl8111_isolate: rtl8111-isolate {
539			rockchip,pins = <1 RK_PA4 RK_FUNC_GPIO &pcfg_pull_up>;
540		};
541	};
542
543	rtl8211f {
544		rtl8211f_rst: rtl8211f-rst {
545			rockchip,pins = <4 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>;
546		};
547
548	};
549
550	hym8563 {
551		hym8563_int: hym8563-int {
552			rockchip,pins = <0 RK_PD4 RK_FUNC_GPIO &pcfg_pull_up>;
553		};
554	};
555
556	pcie2 {
557		pcie2_0_rst: pcie2-0-rst {
558			rockchip,pins = <4 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>;
559		};
560
561		pcie2_0_wake: pcie2-0-wake {
562			rockchip,pins = <4 RK_PA4 4 &pcfg_pull_none>;
563		};
564
565		pcie2_0_clkreq: pcie2-0-clkreq {
566			rockchip,pins = <4 RK_PA3 4 &pcfg_pull_none>;
567		};
568
569		pcie2_1_rst: pcie2-1-rst {
570			rockchip,pins = <4 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>;
571		};
572	};
573
574	pcie3 {
575		pcie3_reset: pcie3-reset {
576			rockchip,pins = <4 RK_PB6 RK_FUNC_GPIO &pcfg_pull_none>;
577		};
578
579		vcc3v3_pcie30_en: vcc3v3-pcie30-en {
580			rockchip,pins = <3 RK_PC3 RK_FUNC_GPIO &pcfg_pull_none>;
581		};
582	};
583
584	usb {
585		vcc5v0_host_en: vcc5v0-host-en {
586			rockchip,pins = <4 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>;
587		};
588	};
589
590	usb-typec {
591		typec5v_pwren: typec5v-pwren {
592			rockchip,pins = <4 RK_PD0 RK_FUNC_GPIO &pcfg_pull_none>;
593		};
594
595		usbc0_int: usbc0-int {
596			rockchip,pins = <3 RK_PB4 RK_FUNC_GPIO &pcfg_pull_up>;
597		};
598	};
599
600	wlan {
601		wifi_host_wake_irq: wifi-host-wake-irq {
602			rockchip,pins = <3 RK_PA7 RK_FUNC_GPIO &pcfg_pull_down>;
603		};
604
605		wifi_pwren: wifi-pwren {
606			rockchip,pins = <3 RK_PB1 RK_FUNC_GPIO &pcfg_pull_up>;
607		};
608	};
609};
610
611&pwm2 {
612	status = "okay";
613};
614
615&saradc {
616	vref-supply = <&vcc_1v8_s0>;
617	status = "okay";
618};
619
620&sdhci {
621	bus-width = <8>;
622	no-sdio;
623	no-sd;
624	non-removable;
625	mmc-hs400-1_8v;
626	mmc-hs400-enhanced-strobe;
627	status = "okay";
628};
629
630&spi2 {
631	status = "okay";
632	assigned-clocks = <&cru CLK_SPI2>;
633	assigned-clock-rates = <200000000>;
634	num-cs = <2>;
635
636	pmic@0 {
637		compatible = "rockchip,rk806";
638		reg = <0x0>;
639		#gpio-cells = <2>;
640		gpio-controller;
641		interrupt-parent = <&gpio0>;
642		interrupts = <7 IRQ_TYPE_LEVEL_LOW>;
643		pinctrl-0 = <&pmic_pins>, <&rk806_dvs1_null>,
644			    <&rk806_dvs2_null>, <&rk806_dvs3_null>;
645		pinctrl-names = "default";
646		spi-max-frequency = <1000000>;
647		system-power-controller;
648
649		vcc1-supply = <&vcc5v0_sys>;
650		vcc2-supply = <&vcc5v0_sys>;
651		vcc3-supply = <&vcc5v0_sys>;
652		vcc4-supply = <&vcc5v0_sys>;
653		vcc5-supply = <&vcc5v0_sys>;
654		vcc6-supply = <&vcc5v0_sys>;
655		vcc7-supply = <&vcc5v0_sys>;
656		vcc8-supply = <&vcc5v0_sys>;
657		vcc9-supply = <&vcc5v0_sys>;
658		vcc10-supply = <&vcc5v0_sys>;
659		vcc11-supply = <&vcc_2v0_pldo_s3>;
660		vcc12-supply = <&vcc5v0_sys>;
661		vcc13-supply = <&vcc5v0_sys>;
662		vcc14-supply = <&vcc_1v1_nldo_s3>;
663		vcca-supply = <&vcc5v0_sys>;
664
665		rk806_dvs1_null: dvs1-null-pins {
666			pins = "gpio_pwrctrl1";
667			function = "pin_fun0";
668		};
669
670		rk806_dvs2_null: dvs2-null-pins {
671			pins = "gpio_pwrctrl2";
672			function = "pin_fun0";
673		};
674
675		rk806_dvs3_null: dvs3-null-pins {
676			pins = "gpio_pwrctrl3";
677			function = "pin_fun0";
678		};
679
680
681		regulators {
682			vdd_gpu_s0: dcdc-reg1 {
683				/* regulator coupling requires always-on */
684				regulator-always-on;
685				regulator-boot-on;
686				regulator-min-microvolt = <550000>;
687				regulator-max-microvolt = <950000>;
688				regulator-ramp-delay = <12500>;
689				regulator-name = "vdd_gpu_s0";
690				regulator-enable-ramp-delay = <400>;
691				regulator-coupled-with = <&vdd_gpu_mem_s0>;
692				regulator-coupled-max-spread = <10000>;
693				regulator-state-mem {
694					regulator-off-in-suspend;
695				};
696			};
697
698			vdd_npu_s0: dcdc-reg2 {
699				regulator-always-on;
700				regulator-boot-on;
701				regulator-min-microvolt = <550000>;
702				regulator-max-microvolt = <950000>;
703				regulator-ramp-delay = <12500>;
704				regulator-name = "vdd_npu_s0";
705				regulator-state-mem {
706					regulator-off-in-suspend;
707				};
708			};
709
710			vdd_log_s0: dcdc-reg3 {
711				regulator-always-on;
712				regulator-boot-on;
713				regulator-min-microvolt = <675000>;
714				regulator-max-microvolt = <750000>;
715				regulator-ramp-delay = <12500>;
716				regulator-name = "vdd_log_s0";
717				regulator-state-mem {
718					regulator-off-in-suspend;
719					regulator-suspend-microvolt = <750000>;
720				};
721			};
722
723			vdd_vdenc_s0: dcdc-reg4 {
724				regulator-always-on;
725				regulator-boot-on;
726				regulator-min-microvolt = <550000>;
727				regulator-max-microvolt = <950000>;
728				regulator-ramp-delay = <12500>;
729				regulator-name = "vdd_vdenc_s0";
730				regulator-state-mem {
731					regulator-off-in-suspend;
732				};
733
734			};
735
736			vdd_gpu_mem_s0: dcdc-reg5 {
737				/* regulator coupling requires always-on */
738				regulator-always-on;
739				regulator-boot-on;
740				regulator-min-microvolt = <675000>;
741				regulator-max-microvolt = <950000>;
742				regulator-ramp-delay = <12500>;
743				regulator-enable-ramp-delay = <400>;
744				regulator-name = "vdd_gpu_mem_s0";
745				regulator-coupled-with = <&vdd_gpu_s0>;
746				regulator-coupled-max-spread = <10000>;
747				regulator-state-mem {
748					regulator-off-in-suspend;
749				};
750
751			};
752
753			vdd_npu_mem_s0: dcdc-reg6 {
754				regulator-always-on;
755				regulator-boot-on;
756				regulator-min-microvolt = <675000>;
757				regulator-max-microvolt = <950000>;
758				regulator-ramp-delay = <12500>;
759				regulator-name = "vdd_npu_mem_s0";
760				regulator-state-mem {
761					regulator-off-in-suspend;
762				};
763
764			};
765
766			vcc_2v0_pldo_s3: dcdc-reg7 {
767				regulator-always-on;
768				regulator-boot-on;
769				regulator-min-microvolt = <2000000>;
770				regulator-max-microvolt = <2000000>;
771				regulator-ramp-delay = <12500>;
772				regulator-name = "vdd_2v0_pldo_s3";
773				regulator-state-mem {
774					regulator-on-in-suspend;
775					regulator-suspend-microvolt = <2000000>;
776				};
777			};
778
779			vdd_vdenc_mem_s0: dcdc-reg8 {
780				regulator-always-on;
781				regulator-boot-on;
782				regulator-min-microvolt = <675000>;
783				regulator-max-microvolt = <950000>;
784				regulator-ramp-delay = <12500>;
785				regulator-name = "vdd_vdenc_mem_s0";
786				regulator-state-mem {
787					regulator-off-in-suspend;
788				};
789			};
790
791			vdd2_ddr_s3: dcdc-reg9 {
792				regulator-always-on;
793				regulator-boot-on;
794				regulator-name = "vdd2_ddr_s3";
795				regulator-state-mem {
796					regulator-on-in-suspend;
797				};
798			};
799
800			vcc_1v1_nldo_s3: dcdc-reg10 {
801				regulator-always-on;
802				regulator-boot-on;
803				regulator-min-microvolt = <1100000>;
804				regulator-max-microvolt = <1100000>;
805				regulator-ramp-delay = <12500>;
806				regulator-name = "vcc_1v1_nldo_s3";
807				regulator-state-mem {
808					regulator-on-in-suspend;
809					regulator-suspend-microvolt = <1100000>;
810				};
811			};
812
813			avcc_1v8_s0: pldo-reg1 {
814				regulator-always-on;
815				regulator-boot-on;
816				regulator-min-microvolt = <1800000>;
817				regulator-max-microvolt = <1800000>;
818				regulator-ramp-delay = <12500>;
819				regulator-name = "avcc_1v8_s0";
820				regulator-state-mem {
821					regulator-off-in-suspend;
822				};
823			};
824
825			vdd1_1v8_ddr_s3: pldo-reg2 {
826				regulator-always-on;
827				regulator-boot-on;
828				regulator-min-microvolt = <1800000>;
829				regulator-max-microvolt = <1800000>;
830				regulator-ramp-delay = <12500>;
831				regulator-name = "vdd1_1v8_ddr_s3";
832				regulator-state-mem {
833					regulator-on-in-suspend;
834					regulator-suspend-microvolt = <1800000>;
835				};
836			};
837
838			avcc_1v8_codec_s0: pldo-reg3 {
839				regulator-always-on;
840				regulator-boot-on;
841				regulator-min-microvolt = <1800000>;
842				regulator-max-microvolt = <1800000>;
843				regulator-ramp-delay = <12500>;
844				regulator-name = "avcc_1v8_codec_s0";
845				regulator-state-mem {
846					regulator-off-in-suspend;
847				};
848			};
849
850			vcc_3v3_s3: pldo-reg4 {
851				regulator-always-on;
852				regulator-boot-on;
853				regulator-min-microvolt = <3300000>;
854				regulator-max-microvolt = <3300000>;
855				regulator-ramp-delay = <12500>;
856				regulator-name = "vcc_3v3_s3";
857				regulator-state-mem {
858					regulator-on-in-suspend;
859					regulator-suspend-microvolt = <3300000>;
860				};
861			};
862
863			vccio_sd_s0: pldo-reg5 {
864				regulator-always-on;
865				regulator-boot-on;
866				regulator-min-microvolt = <1800000>;
867				regulator-max-microvolt = <3300000>;
868				regulator-ramp-delay = <12500>;
869				regulator-name = "vccio_sd_s0";
870				regulator-state-mem {
871					regulator-off-in-suspend;
872				};
873			};
874
875			vccio_1v8_s3: pldo-reg6 {
876				regulator-always-on;
877				regulator-boot-on;
878				regulator-min-microvolt = <1800000>;
879				regulator-max-microvolt = <1800000>;
880				regulator-ramp-delay = <12500>;
881				regulator-name = "vccio_1v8_s3";
882				regulator-state-mem {
883					regulator-on-in-suspend;
884					regulator-suspend-microvolt = <1800000>;
885				};
886			};
887
888			vdd_0v75_s3: nldo-reg1 {
889				regulator-always-on;
890				regulator-boot-on;
891				regulator-min-microvolt = <750000>;
892				regulator-max-microvolt = <750000>;
893				regulator-ramp-delay = <12500>;
894				regulator-name = "vdd_0v75_s3";
895				regulator-state-mem {
896					regulator-on-in-suspend;
897					regulator-suspend-microvolt = <750000>;
898				};
899			};
900
901			vdd2l_0v9_ddr_s3: nldo-reg2 {
902				regulator-always-on;
903				regulator-boot-on;
904				regulator-min-microvolt = <900000>;
905				regulator-max-microvolt = <900000>;
906				regulator-name = "vdd2l_0v9_ddr_s3";
907				regulator-state-mem {
908					regulator-on-in-suspend;
909					regulator-suspend-microvolt = <900000>;
910				};
911			};
912
913			vdd_0v75_hdmi_edp_s0: nldo-reg3 {
914				regulator-always-on;
915				regulator-boot-on;
916				regulator-min-microvolt = <750000>;
917				regulator-max-microvolt = <750000>;
918				regulator-name = "vdd_0v75_hdmi_edp_s0";
919				regulator-state-mem {
920					regulator-off-in-suspend;
921				};
922			};
923
924			avdd_0v75_s0: nldo-reg4 {
925				regulator-always-on;
926				regulator-boot-on;
927				regulator-min-microvolt = <750000>;
928				regulator-max-microvolt = <750000>;
929				regulator-name = "avdd_0v75_s0";
930				regulator-state-mem {
931					regulator-off-in-suspend;
932				};
933			};
934
935			vdd_0v85_s0: nldo-reg5 {
936				regulator-always-on;
937				regulator-boot-on;
938				regulator-min-microvolt = <850000>;
939				regulator-max-microvolt = <850000>;
940				regulator-name = "vdd_0v85_s0";
941				regulator-state-mem {
942					regulator-off-in-suspend;
943				};
944			};
945		};
946	};
947
948	pmic@1 {
949		compatible = "rockchip,rk806";
950		reg = <0x01>;
951		#gpio-cells = <2>;
952		gpio-controller;
953		interrupt-parent = <&gpio0>;
954		interrupts = <7 IRQ_TYPE_LEVEL_LOW>;
955		pinctrl-0 = <&rk806_slave_dvs1_null>, <&rk806_slave_dvs2_null>,
956			    <&rk806_slave_dvs3_null>;
957		pinctrl-names = "default";
958		spi-max-frequency = <1000000>;
959
960		vcc1-supply = <&vcc5v0_sys>;
961		vcc2-supply = <&vcc5v0_sys>;
962		vcc3-supply = <&vcc5v0_sys>;
963		vcc4-supply = <&vcc5v0_sys>;
964		vcc5-supply = <&vcc5v0_sys>;
965		vcc6-supply = <&vcc5v0_sys>;
966		vcc7-supply = <&vcc5v0_sys>;
967		vcc8-supply = <&vcc5v0_sys>;
968		vcc9-supply = <&vcc5v0_sys>;
969		vcc10-supply = <&vcc5v0_sys>;
970		vcc11-supply = <&vcc_2v0_pldo_s3>;
971		vcc12-supply = <&vcc5v0_sys>;
972		vcc13-supply = <&vcc_1v1_nldo_s3>;
973		vcc14-supply = <&vcc_2v0_pldo_s3>;
974		vcca-supply = <&vcc5v0_sys>;
975
976		rk806_slave_dvs1_null: dvs1-null-pins {
977			pins = "gpio_pwrctrl1";
978			function = "pin_fun0";
979		};
980
981		rk806_slave_dvs2_null: dvs2-null-pins {
982			pins = "gpio_pwrctrl2";
983			function = "pin_fun0";
984		};
985
986		rk806_slave_dvs3_null: dvs3-null-pins {
987			pins = "gpio_pwrctrl3";
988			function = "pin_fun0";
989		};
990
991		regulators {
992			vdd_cpu_big1_s0: dcdc-reg1 {
993				regulator-always-on;
994				regulator-boot-on;
995				regulator-coupled-with = <&vdd_cpu_big1_mem_s0>;
996				regulator-coupled-max-spread = <10000>;
997				regulator-min-microvolt = <550000>;
998				regulator-max-microvolt = <1050000>;
999				regulator-ramp-delay = <12500>;
1000				regulator-name = "vdd_cpu_big1_s0";
1001				regulator-state-mem {
1002					regulator-off-in-suspend;
1003				};
1004			};
1005
1006			vdd_cpu_big0_s0: dcdc-reg2 {
1007				regulator-always-on;
1008				regulator-boot-on;
1009				regulator-coupled-with = <&vdd_cpu_big0_mem_s0>;
1010				regulator-coupled-max-spread = <10000>;
1011				regulator-min-microvolt = <550000>;
1012				regulator-max-microvolt = <1050000>;
1013				regulator-ramp-delay = <12500>;
1014				regulator-name = "vdd_cpu_big0_s0";
1015				regulator-state-mem {
1016					regulator-off-in-suspend;
1017				};
1018			};
1019
1020			vdd_cpu_lit_s0: dcdc-reg3 {
1021				regulator-always-on;
1022				regulator-boot-on;
1023				regulator-coupled-with = <&vdd_cpu_lit_mem_s0>;
1024				regulator-coupled-max-spread = <10000>;
1025				regulator-min-microvolt = <550000>;
1026				regulator-max-microvolt = <950000>;
1027				regulator-ramp-delay = <12500>;
1028				regulator-name = "vdd_cpu_lit_s0";
1029				regulator-state-mem {
1030					regulator-off-in-suspend;
1031				};
1032			};
1033
1034			vcc_3v3_s0: dcdc-reg4 {
1035				regulator-always-on;
1036				regulator-boot-on;
1037				regulator-min-microvolt = <3300000>;
1038				regulator-max-microvolt = <3300000>;
1039				regulator-ramp-delay = <12500>;
1040				regulator-name = "vcc_3v3_s0";
1041				regulator-state-mem {
1042					regulator-off-in-suspend;
1043				};
1044			};
1045
1046			vdd_cpu_big1_mem_s0: dcdc-reg5 {
1047				regulator-always-on;
1048				regulator-boot-on;
1049				regulator-coupled-with = <&vdd_cpu_big1_s0>;
1050				regulator-coupled-max-spread = <10000>;
1051				regulator-min-microvolt = <675000>;
1052				regulator-max-microvolt = <1050000>;
1053				regulator-ramp-delay = <12500>;
1054				regulator-name = "vdd_cpu_big1_mem_s0";
1055				regulator-state-mem {
1056					regulator-off-in-suspend;
1057				};
1058			};
1059
1060
1061			vdd_cpu_big0_mem_s0: dcdc-reg6 {
1062				regulator-always-on;
1063				regulator-boot-on;
1064				regulator-coupled-with = <&vdd_cpu_big0_s0>;
1065				regulator-coupled-max-spread = <10000>;
1066				regulator-min-microvolt = <675000>;
1067				regulator-max-microvolt = <1050000>;
1068				regulator-ramp-delay = <12500>;
1069				regulator-name = "vdd_cpu_big0_mem_s0";
1070				regulator-state-mem {
1071					regulator-off-in-suspend;
1072				};
1073			};
1074
1075			vcc_1v8_s0: dcdc-reg7 {
1076				regulator-always-on;
1077				regulator-boot-on;
1078				regulator-min-microvolt = <1800000>;
1079				regulator-max-microvolt = <1800000>;
1080				regulator-ramp-delay = <12500>;
1081				regulator-name = "vcc_1v8_s0";
1082				regulator-state-mem {
1083					regulator-off-in-suspend;
1084				};
1085			};
1086
1087			vdd_cpu_lit_mem_s0: dcdc-reg8 {
1088				regulator-always-on;
1089				regulator-boot-on;
1090				regulator-coupled-with = <&vdd_cpu_lit_s0>;
1091				regulator-coupled-max-spread = <10000>;
1092				regulator-min-microvolt = <675000>;
1093				regulator-max-microvolt = <950000>;
1094				regulator-ramp-delay = <12500>;
1095				regulator-name = "vdd_cpu_lit_mem_s0";
1096				regulator-state-mem {
1097					regulator-off-in-suspend;
1098				};
1099			};
1100
1101			vddq_ddr_s0: dcdc-reg9 {
1102				regulator-always-on;
1103				regulator-boot-on;
1104				regulator-name = "vddq_ddr_s0";
1105				regulator-state-mem {
1106					regulator-off-in-suspend;
1107				};
1108			};
1109
1110			vdd_ddr_s0: dcdc-reg10 {
1111				regulator-always-on;
1112				regulator-boot-on;
1113				regulator-min-microvolt = <675000>;
1114				regulator-max-microvolt = <900000>;
1115				regulator-ramp-delay = <12500>;
1116				regulator-name = "vdd_ddr_s0";
1117				regulator-state-mem {
1118					regulator-off-in-suspend;
1119				};
1120			};
1121
1122			vcc_1v8_cam_s0: pldo-reg1 {
1123				regulator-always-on;
1124				regulator-boot-on;
1125				regulator-min-microvolt = <1800000>;
1126				regulator-max-microvolt = <1800000>;
1127				regulator-ramp-delay = <12500>;
1128				regulator-name = "vcc_1v8_cam_s0";
1129				regulator-state-mem {
1130					regulator-off-in-suspend;
1131				};
1132			};
1133
1134			avdd1v8_ddr_pll_s0: pldo-reg2 {
1135				regulator-always-on;
1136				regulator-boot-on;
1137				regulator-min-microvolt = <1800000>;
1138				regulator-max-microvolt = <1800000>;
1139				regulator-ramp-delay = <12500>;
1140				regulator-name = "avdd1v8_ddr_pll_s0";
1141				regulator-state-mem {
1142					regulator-off-in-suspend;
1143				};
1144			};
1145
1146			vdd_1v8_pll_s0: pldo-reg3 {
1147				regulator-always-on;
1148				regulator-boot-on;
1149				regulator-min-microvolt = <1800000>;
1150				regulator-max-microvolt = <1800000>;
1151				regulator-ramp-delay = <12500>;
1152				regulator-name = "vdd_1v8_pll_s0";
1153				regulator-state-mem {
1154					regulator-off-in-suspend;
1155				};
1156			};
1157
1158			vcc_3v3_sd_s0: pldo-reg4 {
1159				regulator-always-on;
1160				regulator-boot-on;
1161				regulator-min-microvolt = <3300000>;
1162				regulator-max-microvolt = <3300000>;
1163				regulator-ramp-delay = <12500>;
1164				regulator-name = "vcc_3v3_sd_s0";
1165				regulator-state-mem {
1166					regulator-off-in-suspend;
1167				};
1168			};
1169
1170			vcc_2v8_cam_s0: pldo-reg5 {
1171				regulator-always-on;
1172				regulator-boot-on;
1173				regulator-min-microvolt = <2800000>;
1174				regulator-max-microvolt = <2800000>;
1175				regulator-ramp-delay = <12500>;
1176				regulator-name = "vcc_2v8_cam_s0";
1177				regulator-state-mem {
1178					regulator-off-in-suspend;
1179				};
1180			};
1181
1182			pldo6_s3: pldo-reg6 {
1183				regulator-always-on;
1184				regulator-boot-on;
1185				regulator-min-microvolt = <1800000>;
1186				regulator-max-microvolt = <1800000>;
1187				regulator-name = "pldo6_s3";
1188				regulator-state-mem {
1189					regulator-on-in-suspend;
1190					regulator-suspend-microvolt = <1800000>;
1191				};
1192			};
1193
1194			vdd_0v75_pll_s0: nldo-reg1 {
1195				regulator-always-on;
1196				regulator-boot-on;
1197				regulator-min-microvolt = <750000>;
1198				regulator-max-microvolt = <750000>;
1199				regulator-ramp-delay = <12500>;
1200				regulator-name = "vdd_0v75_pll_s0";
1201				regulator-state-mem {
1202					regulator-off-in-suspend;
1203				};
1204			};
1205
1206			vdd_ddr_pll_s0: nldo-reg2 {
1207				regulator-always-on;
1208				regulator-boot-on;
1209				regulator-min-microvolt = <850000>;
1210				regulator-max-microvolt = <850000>;
1211				regulator-name = "vdd_ddr_pll_s0";
1212				regulator-state-mem {
1213					regulator-off-in-suspend;
1214				};
1215			};
1216
1217			avdd_0v85_s0: nldo-reg3 {
1218				regulator-always-on;
1219				regulator-boot-on;
1220				regulator-min-microvolt = <850000>;
1221				regulator-max-microvolt = <850000>;
1222				regulator-ramp-delay = <12500>;
1223				regulator-name = "avdd_0v85_s0";
1224				regulator-state-mem {
1225					regulator-off-in-suspend;
1226				};
1227			};
1228
1229			avdd_1v2_cam_s0: nldo-reg4 {
1230				regulator-always-on;
1231				regulator-boot-on;
1232				regulator-min-microvolt = <1200000>;
1233				regulator-max-microvolt = <1200000>;
1234				regulator-ramp-delay = <12500>;
1235				regulator-name = "avdd_1v2_cam_s0";
1236				regulator-state-mem {
1237					regulator-off-in-suspend;
1238				};
1239			};
1240
1241			avdd_1v2_s0: nldo-reg5 {
1242				regulator-always-on;
1243				regulator-boot-on;
1244				regulator-min-microvolt = <1200000>;
1245				regulator-max-microvolt = <1200000>;
1246				regulator-ramp-delay = <12500>;
1247				regulator-name = "avdd_1v2_s0";
1248				regulator-state-mem {
1249					regulator-off-in-suspend;
1250				};
1251			};
1252		};
1253	};
1254};
1255
1256&sata0 {
1257	status = "okay";
1258};
1259
1260&tsadc {
1261	status = "okay";
1262};
1263
1264&u2phy0 {
1265	status = "okay";
1266};
1267
1268&u2phy0_otg {
1269	status = "okay";
1270};
1271
1272&u2phy1 {
1273	status = "okay";
1274};
1275
1276&u2phy1_otg {
1277	status = "okay";
1278};
1279
1280&u2phy2 {
1281	status = "okay";
1282};
1283
1284&u2phy2_host {
1285	phy-supply = <&vcc5v0_host>;
1286	status = "okay";
1287};
1288
1289&u2phy3 {
1290	status = "okay";
1291};
1292
1293&u2phy3_host {
1294	phy-supply = <&vcc5v0_host>;
1295	status = "okay";
1296};
1297
1298&uart2 {
1299	pinctrl-0 = <&uart2m0_xfer>;
1300	status = "okay";
1301};
1302
1303&usb_host0_ehci {
1304	status = "okay";
1305};
1306
1307&usb_host0_ohci {
1308	status = "okay";
1309};
1310
1311&usb_host1_ehci {
1312	status = "okay";
1313};
1314
1315&usb_host1_ohci {
1316	status = "okay";
1317};
1318
1319&usbdp_phy0 {
1320	mode-switch;
1321	orientation-switch;
1322	sbu1-dc-gpios = <&gpio4 RK_PA6 GPIO_ACTIVE_HIGH>;
1323	sbu2-dc-gpios = <&gpio4 RK_PA7 GPIO_ACTIVE_HIGH>;
1324	status = "okay";
1325
1326	port {
1327		#address-cells = <1>;
1328		#size-cells = <0>;
1329
1330		usbdp_phy0_orientation_switch: endpoint@0 {
1331			reg = <0>;
1332			remote-endpoint = <&usbc0_orien_sw>;
1333		};
1334
1335		usbdp_phy0_dp_altmode_mux: endpoint@1 {
1336			reg = <1>;
1337			remote-endpoint = <&dp_altmode_mux>;
1338		};
1339	};
1340};
1341
1342&usbdp_phy1 {
1343	/*
1344	 * USBDP PHY1 is wired to a female USB3 Type-A connector. Additionally
1345	 * the differential pairs 2+3 and the aux channel are wired to a RTD2166,
1346	 * which converts the DP signal into VGA. This is exposed on the
1347	 * board via a female VGA connector.
1348	 */
1349	rockchip,dp-lane-mux = <2 3>;
1350	status = "okay";
1351};
1352
1353&usb_host0_xhci {
1354	dr_mode = "otg";
1355	usb-role-switch;
1356	status = "okay";
1357
1358	port {
1359		#address-cells = <1>;
1360		#size-cells = <0>;
1361
1362		dwc3_0_role_switch: endpoint@0 {
1363			reg = <0>;
1364			remote-endpoint = <&usbc0_role_sw>;
1365		};
1366	};
1367};
1368
1369&usb_host1_xhci {
1370	dr_mode = "host";
1371	status = "okay";
1372};
1373
1374&vop_mmu {
1375	status = "okay";
1376};
1377
1378&vop {
1379	status = "okay";
1380};
1381
1382&vp0 {
1383	vp0_out_hdmi0: endpoint@ROCKCHIP_VOP2_EP_HDMI0 {
1384		reg = <ROCKCHIP_VOP2_EP_HDMI0>;
1385		remote-endpoint = <&hdmi0_in_vp0>;
1386	};
1387};
1388