1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
3 * Copyright (c) 2024 Radxa Limited
4 * Copyright (c) 2024 Heiko Stuebner <heiko@sntech.de>
5 */
6
7/dts-v1/;
8
9#include <dt-bindings/gpio/gpio.h>
10#include <dt-bindings/input/input.h>
11#include <dt-bindings/leds/common.h>
12#include <dt-bindings/pinctrl/rockchip.h>
13#include <dt-bindings/pwm/pwm.h>
14#include "dt-bindings/usb/pd.h"
15#include "rk3588.dtsi"
16
17/ {
18	model = "Radxa ROCK 5 ITX";
19	compatible = "radxa,rock-5-itx", "rockchip,rk3588";
20
21	aliases {
22		mmc0 = &sdhci;
23		mmc1 = &sdmmc;
24		mmc2 = &sdio;
25	};
26
27	chosen {
28		stdout-path = "serial2:1500000n8";
29	};
30
31	adc_keys: adc-keys {
32		compatible = "adc-keys";
33		io-channels = <&saradc 0>;
34		io-channel-names = "buttons";
35		keyup-threshold-microvolt = <1800000>;
36		poll-interval = <100>;
37
38		button-maskrom {
39			label = "Mask Rom";
40			linux,code = <KEY_SETUP>;
41			press-threshold-microvolt = <1750>;
42		};
43	};
44
45	analog-sound {
46		compatible = "audio-graph-card";
47		label = "rk3588-es8316";
48		dais = <&i2s0_8ch_p0>;
49		hp-det-gpio = <&gpio1 RK_PD5 GPIO_ACTIVE_HIGH>;
50		pinctrl-names = "default";
51		pinctrl-0 = <&hp_detect>;
52		routing = "MIC2", "Mic Jack",
53			  "Headphones", "HPOL",
54			  "Headphones", "HPOR";
55		widgets = "Microphone", "Mic Jack",
56			  "Headphone", "Headphones";
57	};
58
59	gpio-leds {
60		compatible = "gpio-leds";
61		pinctrl-names = "default";
62		pinctrl-0 = <&led_pins>;
63
64		power-led1 {
65			gpios = <&gpio0 RK_PB7 GPIO_ACTIVE_HIGH>;
66			linux,default-trigger = "default-on";
67		};
68
69		hdd-led2 {
70			gpios = <&gpio0 RK_PC0 GPIO_ACTIVE_HIGH>;
71			linux,default-trigger = "disk-activity";
72		};
73	};
74
75	fan0: pwm-fan {
76		compatible = "pwm-fan";
77		#cooling-cells = <2>;
78		cooling-levels = <0 64 128 192 255>;
79		fan-supply = <&vcc12v_dcin>;
80		pwms = <&pwm14 0 10000 0>;
81	};
82
83	/* M.2 E-KEY */
84	sdio_pwrseq: sdio-pwrseq {
85		compatible = "mmc-pwrseq-simple";
86		clocks = <&hym8563>;
87		clock-names = "ext_clock";
88		pinctrl-names = "default";
89		pinctrl-0 = <&wifi_enable_h>;
90		reset-gpios = <&gpio0 RK_PC4 GPIO_ACTIVE_LOW>;
91	};
92
93	typec_vin: regulator-typec-vin {
94		compatible = "regulator-fixed";
95		enable-active-high;
96		gpio = <&gpio1 RK_PB6 GPIO_ACTIVE_HIGH>;
97		pinctrl-names = "default";
98		pinctrl-0 = <&vbus5v0_typec_en>;
99		regulator-name = "typec_vin";
100		regulator-min-microvolt = <5000000>;
101		regulator-max-microvolt = <5000000>;
102		vin-supply = <&vcc5v0_sys>;
103	};
104
105	vcc12v_dcin: regulator-vcc12v-dcin {
106		compatible = "regulator-fixed";
107		regulator-name = "vcc12v_dcin";
108		regulator-always-on;
109		regulator-boot-on;
110		regulator-min-microvolt = <12000000>;
111		regulator-max-microvolt = <12000000>;
112	};
113
114	vcc33_io64: regulator-vcc33-io64 {
115		compatible = "regulator-fixed";
116		regulator-name = "vcc33_io64";
117		regulator-always-on;
118		regulator-boot-on;
119		regulator-min-microvolt = <3300000>;
120		regulator-max-microvolt = <3300000>;
121		vin-supply = <&vcc12v_dcin>;
122	};
123
124	vcc3v3_ekey: regulator-vcc3v3-ekey {
125		compatible = "regulator-fixed";
126		enable-active-high;
127		gpios = <&gpio1 RK_PD2 GPIO_ACTIVE_HIGH>;
128		pinctrl-names = "default";
129		pinctrl-0 = <&ekey_en>;
130		regulator-name = "vcc3v3_ekey";
131		regulator-always-on;
132		regulator-boot-on;
133		regulator-min-microvolt = <3300000>;
134		regulator-max-microvolt = <3300000>;
135		startup-delay-us = <50000>;
136		vin-supply = <&vcc5v0_sys>;
137	};
138
139	vcc3v3_lan: vcc3v3_lan_phy2: regulator-vcc3v3-lan {
140		compatible = "regulator-fixed";
141		regulator-name = "vcc3v3_lan";
142		regulator-always-on;
143		regulator-boot-on;
144		regulator-min-microvolt = <3300000>;
145		regulator-max-microvolt = <3300000>;
146		vin-supply = <&vcc_3v3_s3>;
147	};
148
149	vcc3v3_mkey: regulator-vcc3v3-mkey {
150		compatible = "regulator-fixed";
151		enable-active-high;
152		gpios = <&gpio1 RK_PA4 GPIO_ACTIVE_HIGH>;
153		pinctrl-names = "default";
154		pinctrl-0 = <&pcie30x4_pwren_h>;
155		regulator-name = "vcc3v3_mkey";
156		regulator-min-microvolt = <3300000>;
157		regulator-max-microvolt = <3300000>;
158		startup-delay-us = <5000>;
159		vin-supply = <&vcc5v0_sys>;
160	};
161
162	vcc3v3_sys: regulator-vcc3v3-sys {
163		compatible = "regulator-fixed";
164		regulator-name = "vcc3v3_sys";
165		regulator-always-on;
166		regulator-boot-on;
167		regulator-min-microvolt = <3300000>;
168		regulator-max-microvolt = <3300000>;
169		vin-supply = <&vcc12v_dcin>;
170	};
171
172	vcc5v0_sys: regulator-vcc5v0-sys {
173		compatible = "regulator-fixed";
174		regulator-name = "vcc5v0_sys";
175		regulator-always-on;
176		regulator-boot-on;
177		regulator-min-microvolt = <5000000>;
178		regulator-max-microvolt = <5000000>;
179		vin-supply = <&vcc12v_dcin>;
180	};
181
182	vcc5v0_usb20: vcc5v0_usb12: vcc5v0_usb34: regulator-vcc5v0-usb {
183		compatible = "regulator-fixed";
184		enable-active-high;
185		gpio = <&gpio3 RK_PB7 GPIO_ACTIVE_HIGH>;
186		pinctrl-names = "default";
187		pinctrl-0 = <&usb_host_pwren_h>;
188		regulator-name = "vcc5v0_usb";
189		regulator-min-microvolt = <5000000>;
190		regulator-max-microvolt = <5000000>;
191		vin-supply = <&vcc5v0_sys>;
192	};
193
194	vcc_1v1_nldo_s3: regulator-vcc-1v1-nldo-s3 {
195		compatible = "regulator-fixed";
196		regulator-name = "vcc_1v1_nldo_s3";
197		regulator-always-on;
198		regulator-boot-on;
199		regulator-min-microvolt = <1100000>;
200		regulator-max-microvolt = <1100000>;
201		vin-supply = <&vcc5v0_sys>;
202	};
203};
204
205&combphy0_ps {
206	status = "okay";
207};
208
209&combphy1_ps {
210	status = "okay";
211};
212
213&combphy2_psu {
214	status = "okay";
215};
216
217&cpu_b0 {
218	cpu-supply = <&vdd_cpu_big0_s0>;
219};
220
221&cpu_b1 {
222	cpu-supply = <&vdd_cpu_big0_s0>;
223};
224
225&cpu_b2 {
226	cpu-supply = <&vdd_cpu_big1_s0>;
227};
228
229&cpu_b3 {
230	cpu-supply = <&vdd_cpu_big1_s0>;
231};
232
233&cpu_l0 {
234	cpu-supply = <&vdd_cpu_lit_s0>;
235};
236
237&cpu_l1 {
238	cpu-supply = <&vdd_cpu_lit_s0>;
239};
240
241&cpu_l2 {
242	cpu-supply = <&vdd_cpu_lit_s0>;
243};
244
245&cpu_l3 {
246	cpu-supply = <&vdd_cpu_lit_s0>;
247};
248
249&gpu {
250	mali-supply = <&vdd_gpu_s0>;
251	status = "okay";
252};
253
254&i2c0 {
255	pinctrl-names = "default";
256	pinctrl-0 = <&i2c0m2_xfer>;
257	status = "okay";
258
259	vdd_cpu_big0_s0: regulator@42 {
260		compatible = "rockchip,rk8602";
261		reg = <0x42>;
262		fcs,suspend-voltage-selector = <1>;
263		regulator-name = "vdd_cpu_big0_s0";
264		regulator-always-on;
265		regulator-boot-on;
266		regulator-min-microvolt = <550000>;
267		regulator-max-microvolt = <1050000>;
268		regulator-ramp-delay = <2300>;
269		vin-supply = <&vcc5v0_sys>;
270
271		regulator-state-mem {
272			regulator-off-in-suspend;
273		};
274	};
275
276	vdd_cpu_big1_s0: regulator@43 {
277		compatible = "rockchip,rk8603", "rockchip,rk8602";
278		reg = <0x43>;
279		fcs,suspend-voltage-selector = <1>;
280		regulator-name = "vdd_cpu_big1_s0";
281		regulator-always-on;
282		regulator-boot-on;
283		regulator-min-microvolt = <550000>;
284		regulator-max-microvolt = <1050000>;
285		regulator-ramp-delay = <2300>;
286		vin-supply = <&vcc5v0_sys>;
287
288		regulator-state-mem {
289			regulator-off-in-suspend;
290		};
291	};
292};
293
294&i2c1 {
295	pinctrl-names = "default";
296	pinctrl-0 = <&i2c1m2_xfer>;
297	status = "okay";
298
299	vdd_npu_s0: regulator@42 {
300		compatible = "rockchip,rk8602";
301		reg = <0x42>;
302		fcs,suspend-voltage-selector = <1>;
303		regulator-name = "vdd_npu_s0";
304		regulator-always-on;
305		regulator-boot-on;
306		regulator-min-microvolt = <550000>;
307		regulator-max-microvolt = <950000>;
308		regulator-ramp-delay = <2300>;
309		vin-supply = <&vcc5v0_sys>;
310
311		regulator-state-mem {
312			regulator-off-in-suspend;
313		};
314	};
315};
316
317/* CAM0 connector */
318&i2c3 {
319	pinctrl-names = "default";
320	pinctrl-0 = <&i2c3m0_xfer>;
321};
322
323/* M.2 E-key */
324&i2c4 {
325	pinctrl-names = "default";
326	pinctrl-0 = <&i2c4m1_xfer>;
327};
328
329/* RTC and LCD0 connector */
330&i2c6 {
331	pinctrl-names = "default";
332	pinctrl-0 = <&i2c6m0_xfer>;
333	status = "okay";
334
335	hym8563: rtc@51 {
336		compatible = "haoyu,hym8563";
337		reg = <0x51>;
338		#clock-cells = <0>;
339		clock-output-names = "wifi_32kout";
340		interrupt-parent = <&gpio0>;
341		interrupts = <RK_PB0 IRQ_TYPE_LEVEL_LOW>;
342		pinctrl-names = "default";
343		pinctrl-0 = <&rtc_int>;
344	};
345};
346
347/* Audio codec and CAM1 connector */
348&i2c7 {
349	pinctrl-names = "default";
350	pinctrl-0 = <&i2c7m0_xfer>;
351	status = "okay";
352
353	es8316: audio-codec@11 {
354		compatible = "everest,es8316";
355		reg = <0x11>;
356		assigned-clocks = <&cru I2S0_8CH_MCLKOUT>;
357		assigned-clock-rates = <12288000>;
358		clocks = <&cru I2S0_8CH_MCLKOUT>;
359		clock-names = "mclk";
360		#sound-dai-cells = <0>;
361
362		port {
363			es8316_p0_0: endpoint {
364				remote-endpoint = <&i2s0_8ch_p0_0>;
365			};
366		};
367	};
368};
369
370/* FUSB302 and LCD1 connector */
371&i2c8 {
372	pinctrl-names = "default";
373	pinctrl-0 = <&i2c8m4_xfer>;
374	status = "okay";
375
376	usbc0: usb-typec@22 {
377		compatible = "fcs,fusb302";
378		reg = <0x22>;
379		interrupt-parent = <&gpio3>;
380		interrupts = <RK_PB4 IRQ_TYPE_LEVEL_LOW>;
381		pinctrl-names = "default";
382		pinctrl-0 = <&usbc0_int>;
383		vbus-supply = <&typec_vin>;
384
385		usb_con: connector {
386			compatible = "usb-c-connector";
387			data-role = "dual";
388			label = "USB-C";
389			power-role = "source";
390			source-pdos =
391				<PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>;
392
393			ports {
394				#address-cells = <1>;
395				#size-cells = <0>;
396
397				port@0 {
398					reg = <0>;
399
400					usbc0_orien_sw: endpoint {
401						remote-endpoint = <&usbdp_phy0_orientation_switch>;
402					};
403				};
404
405				port@1 {
406					reg = <1>;
407
408					usbc0_role_sw: endpoint {
409						remote-endpoint = <&dwc3_0_role_switch>;
410					};
411				};
412
413				port@2 {
414					reg = <2>;
415
416					dp_altmode_mux: endpoint {
417						remote-endpoint = <&usbdp_phy0_dp_altmode_mux>;
418					};
419				};
420			};
421		};
422	};
423};
424
425&i2c8m4_xfer {
426	rockchip,pins =
427		/* i2c8_scl_m4 */
428		<3 RK_PC2 9 &pcfg_pull_up_drv_level_6>,
429		/* i2c8_sda_m4 */
430		<3 RK_PC3 9 &pcfg_pull_up_drv_level_6>;
431};
432
433&i2s0_8ch {
434	pinctrl-names = "default";
435	pinctrl-0 = <&i2s0_lrck
436		     &i2s0_mclk
437		     &i2s0_sclk
438		     &i2s0_sdi0
439		     &i2s0_sdo0>;
440	status = "okay";
441
442	i2s0_8ch_p0: port {
443		i2s0_8ch_p0_0: endpoint {
444			dai-format = "i2s";
445			mclk-fs = <256>;
446			remote-endpoint = <&es8316_p0_0>;
447		};
448	};
449};
450
451&package_thermal {
452	polling-delay = <1000>;
453
454	trips {
455		package_fan0: package-fan0 {
456			hysteresis = <2000>;
457			temperature = <50000>;
458			type = "active";
459		};
460
461		package_fan1: package-fan1 {
462			hysteresis = <2000>;
463			temperature = <65000>;
464			type = "active";
465		};
466	};
467
468	cooling-maps {
469		map0 {
470			cooling-device = <&fan0 THERMAL_NO_LIMIT 1>;
471			trip = <&package_fan0>;
472		};
473		map1 {
474			cooling-device = <&fan0 2 THERMAL_NO_LIMIT>;
475			trip = <&package_fan1>;
476		};
477	};
478};
479
480/* M.2 E-key */
481&pcie2x1l0 {
482	pinctrl-names = "default";
483	pinctrl-0 = <&pcie30x1_0_perstn_m1_l>;
484	reset-gpios = <&gpio4 RK_PA5 GPIO_ACTIVE_HIGH>;
485	vpcie3v3-supply = <&vcc3v3_ekey>;
486	status = "okay";
487};
488
489/* RTL8125B_1 */
490&pcie2x1l1 {
491	pinctrl-names = "default";
492	pinctrl-0 = <&pcie30x1_1_perstn>;
493	reset-gpios = <&gpio4 RK_PA2 GPIO_ACTIVE_HIGH>;
494	vpcie3v3-supply = <&vcc3v3_lan>;
495	status = "okay";
496};
497
498/* RTL8125B_2 */
499&pcie2x1l2 {
500	pinctrl-names = "default";
501	pinctrl-0 = <&pcie20x1_2_perstn>;
502	reset-gpios = <&gpio3 RK_PB0 GPIO_ACTIVE_HIGH>;
503	vpcie3v3-supply = <&vcc3v3_lan_phy2>;
504	status = "okay";
505};
506
507&pcie30phy {
508	data-lanes = <1 1 2 2>;
509	/* separate clock lines from the clock generator to phy and devices */
510	rockchip,rx-common-refclk-mode = <0 0 0 0>;
511	status = "okay";
512};
513
514/* ASMedia ASM1164 Sata controller */
515&pcie3x2 {
516	pinctrl-names = "default";
517	pinctrl-0 = <&pcie30x2_perstn_m1_l>;
518	reset-gpios = <&gpio4 RK_PB0 GPIO_ACTIVE_HIGH>;
519	vpcie3v3-supply = <&vcc33_io64>;
520	status = "okay";
521};
522
523/* M.2 M.key */
524&pcie3x4 {
525	num-lanes = <2>;
526	pinctrl-names = "default";
527	pinctrl-0 = <&pcie30x4_perstn_m1_l>;
528	reset-gpios = <&gpio4 RK_PB6 GPIO_ACTIVE_HIGH>;
529	vpcie3v3-supply = <&vcc3v3_mkey>;
530	status = "okay";
531};
532
533&pinctrl {
534	hym8563 {
535		rtc_int: rtc-int {
536			rockchip,pins = <0 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>;
537		};
538	};
539
540	leds {
541		led_pins: led-pins {
542			rockchip,pins = <0 RK_PB7 RK_FUNC_GPIO &pcfg_pull_none>,
543					<0 RK_PC0 RK_FUNC_GPIO &pcfg_pull_none>;
544		};
545	};
546
547	pcie {
548		pcie20x1_2_perstn: pcie20x1-2-perstn {
549			rockchip,pins = <3 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>;
550		};
551
552		pcie30x1_0_perstn_m1_l: pcie30x1-0-perstn-m1-l {
553			rockchip,pins = <4 RK_PA4 RK_FUNC_GPIO &pcfg_pull_none>;
554		};
555
556		pcie30x1_1_perstn: pcie30x1-1-perstn {
557			rockchip,pins = <4 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>;
558		};
559
560		pcie30x2_perstn_m1_l: pcie30x2-perstn-m1-l {
561			rockchip,pins = <4 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>;
562		};
563
564		pcie30x4_perstn_m1_l: pcie30x4-perstn-m1-l {
565			rockchip,pins = <4 RK_PB6 RK_FUNC_GPIO &pcfg_pull_none>;
566		};
567
568		ekey_en: ekey-en {
569			rockchip,pins = <1 RK_PD2 RK_FUNC_GPIO &pcfg_pull_down>;
570		};
571
572		pcie30x4_pwren_h: pcie30x4-pwren-h {
573			rockchip,pins = <1 RK_PA4 RK_FUNC_GPIO &pcfg_pull_down>;
574		};
575	};
576
577	sound {
578		hp_detect: hp-detect {
579			rockchip,pins = <1 RK_PD5 RK_FUNC_GPIO &pcfg_pull_down>;
580		};
581	};
582
583	usb {
584		usb_host_pwren_h: usb-host-pwren-h {
585			rockchip,pins = <3 RK_PB7 RK_FUNC_GPIO &pcfg_pull_none>;
586		};
587
588		vcc5v0_otg_en: vcc5v0-otg-en {
589			rockchip,pins = <2 RK_PC5 RK_FUNC_GPIO &pcfg_pull_none>;
590		};
591
592		gl3523_reset: rl3523-reset {
593			rockchip,pins = <3 RK_PB1 RK_FUNC_GPIO &pcfg_pull_none>;
594		};
595	};
596
597	usb-typec {
598		usbc0_int: usbc0-int {
599			rockchip,pins = <3 RK_PB4 RK_FUNC_GPIO &pcfg_pull_up>;
600		};
601
602		vbus5v0_typec_en: vbus5v0-typec-en {
603			rockchip,pins = <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_none>;
604		};
605	};
606
607	hdmirx {
608		hdmirx_det: hdmirx-det {
609			rockchip,pins = <1 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>;
610		};
611	};
612
613	sdio-pwrseq {
614		wifi_enable_h: wifi-enable-h {
615			rockchip,pins = <0 RK_PC4 RK_FUNC_GPIO &pcfg_pull_none>;
616		};
617	};
618
619	wireless-wlan {
620		wifi_host_wake_irq: wifi-host-wake-irq {
621			rockchip,pins = <0 RK_PB2 RK_FUNC_GPIO &pcfg_pull_down>;
622		};
623	};
624
625	bt {
626		bt_enable_h: bt-enable-h {
627			rockchip,pins = <2 RK_PC5 RK_FUNC_GPIO &pcfg_pull_none>;
628		};
629
630		bt_host_wake_l: bt-host-wake-l {
631			rockchip,pins = <0 RK_PC5 RK_FUNC_GPIO &pcfg_pull_none>;
632		};
633
634		bt_wake_l: bt-wake-l {
635			rockchip,pins = <4 RK_PC5 RK_FUNC_GPIO &pcfg_pull_none>;
636		};
637	};
638
639	dp {
640		dp1_hpd: dp1-hpd {
641			rockchip,pins = <3 RK_PD5 RK_FUNC_GPIO &pcfg_pull_none>;
642		};
643	};
644};
645
646&pwm14 {
647	pinctrl-names = "default";
648	pinctrl-0 = <&pwm14m1_pins>;
649	status = "okay";
650};
651
652&saradc {
653	vref-supply = <&avcc_1v8_s0>;
654	status = "okay";
655};
656
657&sdhci {
658	bus-width = <8>;
659	max-frequency = <200000000>;
660	mmc-hs400-1_8v;
661	mmc-hs400-enhanced-strobe;
662	mmc-hs200-1_8v;
663	no-sdio;
664	no-sd;
665	non-removable;
666	status = "okay";
667};
668
669&sdmmc {
670	bus-width = <4>;
671	cap-mmc-highspeed;
672	cap-sd-highspeed;
673	disable-wp;
674	max-frequency = <200000000>;
675	no-sdio;
676	no-mmc;
677	pinctrl-names = "default";
678	pinctrl-0 = <&sdmmc_bus4 &sdmmc_clk &sdmmc_cmd &sdmmc_det>;
679	sd-uhs-sdr104;
680	vmmc-supply = <&vcc_3v3_s3>;
681	vqmmc-supply = <&vccio_sd_s0>;
682	status = "okay";
683};
684
685/* M.2 E-KEY */
686&sdio {
687	broken-cd;
688	bus-width = <4>;
689	cap-sdio-irq;
690	keep-power-in-suspend;
691	max-frequency = <150000000>;
692	mmc-pwrseq = <&sdio_pwrseq>;
693	no-sd;
694	no-mmc;
695	non-removable;
696	pinctrl-names = "default";
697	pinctrl-0 = <&sdiom0_pins>;
698	sd-uhs-sdr104;
699	vmmc-supply = <&vcc3v3_ekey>;
700	status = "okay";
701};
702
703&sfc {
704	pinctrl-names = "default";
705	pinctrl-0 = <&fspim2_pins>;
706	status = "okay";
707
708	spi_flash: flash@0 {
709		compatible = "jedec,spi-nor";
710		reg = <0x0>;
711		spi-max-frequency = <50000000>;
712		spi-rx-bus-width = <4>;
713		spi-tx-bus-width = <1>;
714	};
715};
716
717&spi2 {
718	status = "okay";
719	assigned-clocks = <&cru CLK_SPI2>;
720	assigned-clock-rates = <200000000>;
721	num-cs = <1>;
722	pinctrl-names = "default";
723	pinctrl-0 = <&spi2m2_cs0 &spi2m2_pins>;
724
725	pmic@0 {
726		compatible = "rockchip,rk806";
727		reg = <0x0>;
728		gpio-controller;
729		#gpio-cells = <2>;
730		interrupt-parent = <&gpio0>;
731		interrupts = <7 IRQ_TYPE_LEVEL_LOW>;
732		pinctrl-names = "default";
733		pinctrl-0 = <&pmic_pins>, <&rk806_dvs1_null>,
734			    <&rk806_dvs2_null>, <&rk806_dvs3_null>;
735		spi-max-frequency = <1000000>;
736		system-power-controller;
737
738		vcc1-supply = <&vcc5v0_sys>;
739		vcc2-supply = <&vcc5v0_sys>;
740		vcc3-supply = <&vcc5v0_sys>;
741		vcc4-supply = <&vcc5v0_sys>;
742		vcc5-supply = <&vcc5v0_sys>;
743		vcc6-supply = <&vcc5v0_sys>;
744		vcc7-supply = <&vcc5v0_sys>;
745		vcc8-supply = <&vcc5v0_sys>;
746		vcc9-supply = <&vcc5v0_sys>;
747		vcc10-supply = <&vcc5v0_sys>;
748		vcc11-supply = <&vcc_2v0_pldo_s3>;
749		vcc12-supply = <&vcc5v0_sys>;
750		vcc13-supply = <&vcc_1v1_nldo_s3>;
751		vcc14-supply = <&vcc_1v1_nldo_s3>;
752		vcca-supply = <&vcc5v0_sys>;
753
754		rk806_dvs1_null: dvs1-null-pins {
755			pins = "gpio_pwrctrl1";
756			function = "pin_fun0";
757		};
758
759		rk806_dvs2_null: dvs2-null-pins {
760			pins = "gpio_pwrctrl2";
761			function = "pin_fun0";
762		};
763
764		rk806_dvs3_null: dvs3-null-pins {
765			pins = "gpio_pwrctrl3";
766			function = "pin_fun0";
767		};
768
769		regulators {
770			vdd_gpu_s0: vdd_gpu_mem_s0: dcdc-reg1 {
771				regulator-boot-on;
772				regulator-min-microvolt = <550000>;
773				regulator-max-microvolt = <950000>;
774				regulator-ramp-delay = <12500>;
775				regulator-name = "vdd_gpu_s0";
776				regulator-enable-ramp-delay = <400>;
777
778				regulator-state-mem {
779					regulator-off-in-suspend;
780				};
781			};
782
783			vdd_cpu_lit_s0: vdd_cpu_lit_mem_s0: dcdc-reg2 {
784				regulator-always-on;
785				regulator-boot-on;
786				regulator-min-microvolt = <550000>;
787				regulator-max-microvolt = <950000>;
788				regulator-ramp-delay = <12500>;
789				regulator-name = "vdd_cpu_lit_s0";
790
791				regulator-state-mem {
792					regulator-off-in-suspend;
793				};
794			};
795
796			vdd_log_s0: dcdc-reg3 {
797				regulator-always-on;
798				regulator-boot-on;
799				regulator-min-microvolt = <675000>;
800				regulator-max-microvolt = <750000>;
801				regulator-ramp-delay = <12500>;
802				regulator-name = "vdd_log_s0";
803
804				regulator-state-mem {
805					regulator-on-in-suspend;
806					regulator-suspend-microvolt = <750000>;
807				};
808			};
809
810			vdd_vdenc_s0: vdd_vdenc_mem_s0: dcdc-reg4 {
811				regulator-always-on;
812				regulator-boot-on;
813				regulator-min-microvolt = <550000>;
814				regulator-max-microvolt = <950000>;
815				regulator-ramp-delay = <12500>;
816				regulator-name = "vdd_vdenc_s0";
817
818				regulator-state-mem {
819					regulator-off-in-suspend;
820				};
821			};
822
823			vdd_ddr_s0: dcdc-reg5 {
824				regulator-always-on;
825				regulator-boot-on;
826				regulator-min-microvolt = <675000>;
827				regulator-max-microvolt = <900000>;
828				regulator-ramp-delay = <12500>;
829				regulator-name = "vdd_ddr_s0";
830
831				regulator-state-mem {
832					regulator-off-in-suspend;
833					regulator-suspend-microvolt = <850000>;
834				};
835			};
836
837			vdd2_ddr_s3: dcdc-reg6 {
838				regulator-always-on;
839				regulator-boot-on;
840				regulator-name = "vdd2_ddr_s3";
841
842				regulator-state-mem {
843					regulator-on-in-suspend;
844				};
845			};
846
847			vcc_2v0_pldo_s3: dcdc-reg7 {
848				regulator-always-on;
849				regulator-boot-on;
850				regulator-min-microvolt = <2000000>;
851				regulator-max-microvolt = <2000000>;
852				regulator-ramp-delay = <12500>;
853				regulator-name = "vdd_2v0_pldo_s3";
854
855				regulator-state-mem {
856					regulator-on-in-suspend;
857					regulator-suspend-microvolt = <2000000>;
858				};
859			};
860
861			vcc_3v3_s3: dcdc-reg8 {
862				regulator-always-on;
863				regulator-boot-on;
864				regulator-min-microvolt = <3300000>;
865				regulator-max-microvolt = <3300000>;
866				regulator-name = "vcc_3v3_s3";
867
868				regulator-state-mem {
869					regulator-on-in-suspend;
870					regulator-suspend-microvolt = <3300000>;
871				};
872			};
873
874			vddq_ddr_s0: dcdc-reg9 {
875				regulator-always-on;
876				regulator-boot-on;
877				regulator-name = "vddq_ddr_s0";
878
879				regulator-state-mem {
880					regulator-off-in-suspend;
881				};
882			};
883
884			vcc_1v8_s3: dcdc-reg10 {
885				regulator-always-on;
886				regulator-boot-on;
887				regulator-min-microvolt = <1800000>;
888				regulator-max-microvolt = <1800000>;
889				regulator-name = "vcc_1v8_s3";
890
891				regulator-state-mem {
892					regulator-on-in-suspend;
893					regulator-suspend-microvolt = <1800000>;
894				};
895			};
896
897			avcc_1v8_s0: pldo-reg1 {
898				regulator-always-on;
899				regulator-boot-on;
900				regulator-min-microvolt = <1800000>;
901				regulator-max-microvolt = <1800000>;
902				regulator-name = "avcc_1v8_s0";
903
904				regulator-state-mem {
905					regulator-on-in-suspend;
906					regulator-suspend-microvolt = <1800000>;
907				};
908			};
909
910			vcc_1v8_s0: pldo-reg2 {
911				regulator-always-on;
912				regulator-boot-on;
913				regulator-min-microvolt = <1800000>;
914				regulator-max-microvolt = <1800000>;
915				regulator-name = "vcc_1v8_s0";
916
917				regulator-state-mem {
918					regulator-on-in-suspend;
919					regulator-suspend-microvolt = <1800000>;
920				};
921			};
922
923			avdd_1v2_s0: pldo-reg3 {
924				regulator-always-on;
925				regulator-boot-on;
926				regulator-min-microvolt = <1200000>;
927				regulator-max-microvolt = <1200000>;
928				regulator-name = "avdd_1v2_s0";
929
930				regulator-state-mem {
931					regulator-off-in-suspend;
932				};
933			};
934
935			vcc_3v3_s0: pldo-reg4 {
936				regulator-always-on;
937				regulator-boot-on;
938				regulator-min-microvolt = <3300000>;
939				regulator-max-microvolt = <3300000>;
940				regulator-ramp-delay = <12500>;
941				regulator-name = "vcc_3v3_s0";
942
943				regulator-state-mem {
944					regulator-on-in-suspend;
945					regulator-suspend-microvolt = <3300000>;
946				};
947			};
948
949			vccio_sd_s0: pldo-reg5 {
950				regulator-always-on;
951				regulator-boot-on;
952				regulator-min-microvolt = <1800000>;
953				regulator-max-microvolt = <3300000>;
954				regulator-ramp-delay = <12500>;
955				regulator-name = "vccio_sd_s0";
956
957				regulator-state-mem {
958					regulator-off-in-suspend;
959				};
960			};
961
962			pldo6_s3: pldo-reg6 {
963				regulator-always-on;
964				regulator-boot-on;
965				regulator-min-microvolt = <1800000>;
966				regulator-max-microvolt = <1800000>;
967				regulator-name = "pldo6_s3";
968
969				regulator-state-mem {
970					regulator-on-in-suspend;
971					regulator-suspend-microvolt = <1800000>;
972				};
973			};
974
975			vdd_0v75_s3: nldo-reg1 {
976				regulator-always-on;
977				regulator-boot-on;
978				regulator-min-microvolt = <750000>;
979				regulator-max-microvolt = <750000>;
980				regulator-name = "vdd_0v75_s3";
981
982				regulator-state-mem {
983					regulator-on-in-suspend;
984					regulator-suspend-microvolt = <750000>;
985				};
986			};
987
988			vdd_ddr_pll_s0: nldo-reg2 {
989				regulator-always-on;
990				regulator-boot-on;
991				regulator-min-microvolt = <850000>;
992				regulator-max-microvolt = <850000>;
993				regulator-name = "vdd_ddr_pll_s0";
994
995				regulator-state-mem {
996					regulator-on-in-suspend;
997					regulator-suspend-microvolt = <850000>;
998				};
999			};
1000
1001			avdd_0v75_s0: nldo-reg3 {
1002				regulator-always-on;
1003				regulator-boot-on;
1004				regulator-min-microvolt = <750000>;
1005				regulator-max-microvolt = <750000>;
1006				regulator-name = "avdd_0v75_s0";
1007
1008				regulator-state-mem {
1009					regulator-off-in-suspend;
1010				};
1011			};
1012
1013			vdd_0v85_s0: nldo-reg4 {
1014				regulator-always-on;
1015				regulator-boot-on;
1016				regulator-min-microvolt = <850000>;
1017				regulator-max-microvolt = <850000>;
1018				regulator-name = "vdd_0v85_s0";
1019
1020				regulator-state-mem {
1021					regulator-on-in-suspend;
1022					regulator-suspend-microvolt = <837500>;
1023				};
1024			};
1025
1026			vdd_0v75_s0: nldo-reg5 {
1027				regulator-always-on;
1028				regulator-boot-on;
1029				regulator-min-microvolt = <750000>;
1030				regulator-max-microvolt = <750000>;
1031				regulator-name = "vdd_0v75_s0";
1032
1033				regulator-state-mem {
1034					regulator-on-in-suspend;
1035					regulator-suspend-microvolt = <750000>;
1036				};
1037			};
1038		};
1039	};
1040};
1041
1042&tsadc {
1043	status = "okay";
1044};
1045
1046&uart2 {
1047	pinctrl-0 = <&uart2m0_xfer>;
1048	status = "okay";
1049};
1050
1051/* Connected to M.2 E-key */
1052&uart6 {
1053	pinctrl-names = "default";
1054	pinctrl-0 = <&uart6m1_xfer &uart6m1_ctsn &uart6m1_rtsn>;
1055	status = "okay";
1056};
1057
1058&u2phy0 {
1059	status = "okay";
1060};
1061
1062&u2phy0_otg {
1063	status = "okay";
1064};
1065
1066&u2phy1 {
1067	status = "okay";
1068};
1069
1070&u2phy1_otg {
1071	/* connected to USB3 hub, which is powered by vcc5v0_usb12 */
1072	phy-supply = <&vcc5v0_usb12>;
1073	status = "okay";
1074};
1075
1076&u2phy2 {
1077	status = "okay";
1078};
1079
1080&u2phy2_host {
1081	/* connected to USB2 hub, which is powered by vcc5v0_usb20 */
1082	phy-supply = <&vcc5v0_usb20>;
1083	status = "okay";
1084};
1085
1086&u2phy3 {
1087	status = "okay";
1088};
1089
1090&u2phy3_host {
1091	phy-supply = <&vcc5v0_usb20>;
1092	status = "okay";
1093};
1094
1095&usb_host0_ehci {
1096	status = "okay";
1097};
1098
1099&usb_host0_ohci {
1100	status = "okay";
1101};
1102
1103&usb_host1_ehci {
1104	status = "okay";
1105};
1106
1107&usb_host1_ohci {
1108	status = "okay";
1109};
1110
1111&usb_host0_xhci {
1112	usb-role-switch;
1113	status = "okay";
1114
1115	port {
1116		#address-cells = <1>;
1117		#size-cells = <0>;
1118
1119		dwc3_0_role_switch: endpoint@0 {
1120			reg = <0>;
1121			remote-endpoint = <&usbc0_role_sw>;
1122		};
1123	};
1124};
1125
1126&usb_host1_xhci {
1127	dr_mode = "host";
1128	#address-cells = <1>;
1129	#size-cells = <0>;
1130	status = "okay";
1131
1132	/* 2.0 hub on port 1 */
1133	hub_2_0: hub@1 {
1134		compatible = "usb5e3,610";
1135		reg = <1>;
1136		peer-hub = <&hub_3_0>;
1137		vdd-supply = <&vcc_3v3_s3>;
1138	};
1139
1140	/* 3.0 hub on port 4 */
1141	hub_3_0: hub@2 {
1142		compatible = "usb5e3,620";
1143		reg = <2>;
1144		peer-hub = <&hub_2_0>;
1145		pinctrl-names = "default";
1146		pinctrl-0 = <&gl3523_reset>;
1147		reset-gpios = <&gpio3 RK_PB1 GPIO_ACTIVE_LOW>;
1148		vdd-supply = <&vcc_3v3_s3>;
1149	};
1150};
1151
1152&usbdp_phy0 {
1153	mode-switch;
1154	orientation-switch;
1155	sbu1-dc-gpios = <&gpio4 RK_PB7 GPIO_ACTIVE_HIGH>;
1156	sbu2-dc-gpios = <&gpio4 RK_PC0 GPIO_ACTIVE_HIGH>;
1157	status = "okay";
1158
1159	port {
1160		#address-cells = <1>;
1161		#size-cells = <0>;
1162		usbdp_phy0_orientation_switch: endpoint@0 {
1163			reg = <0>;
1164			remote-endpoint = <&usbc0_orien_sw>;
1165		};
1166
1167		usbdp_phy0_dp_altmode_mux: endpoint@1 {
1168			reg = <1>;
1169			remote-endpoint = <&dp_altmode_mux>;
1170		};
1171	};
1172};
1173
1174&usbdp_phy1 {
1175	rockchip,dp-lane-mux = <2 3>;
1176	status = "okay";
1177};
1178