1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
3 * Copyright (c) 2023 Theobroma Systems Design und Consulting GmbH
4 */
5
6/dts-v1/;
7#include <dt-bindings/gpio/gpio.h>
8#include <dt-bindings/input/input.h>
9#include <dt-bindings/leds/common.h>
10#include <dt-bindings/pinctrl/rockchip.h>
11#include <dt-bindings/soc/rockchip,vop2.h>
12#include <dt-bindings/usb/pd.h>
13#include "rk3588.dtsi"
14
15/ {
16	model = "Theobroma Systems RK3588-SBC Jaguar";
17	compatible = "tsd,rk3588-jaguar", "rockchip,rk3588";
18
19	adc-keys {
20		compatible = "adc-keys";
21		io-channels = <&saradc 0>;
22		io-channel-names = "buttons";
23		keyup-threshold-microvolt = <1800000>;
24		poll-interval = <100>;
25
26		/* Can be controlled through SW2 but also GPIO1 on CP2102 on P20 */
27		button-bios-disable {
28			label = "BIOS_DISABLE";
29			linux,code = <KEY_VENDOR>;
30			press-threshold-microvolt = <0>;
31		};
32	};
33
34	aliases {
35		ethernet0 = &gmac0;
36		i2c10 = &i2c10;
37		mmc0 = &sdhci;
38		mmc1 = &sdmmc;
39		rtc0 = &rtc_twi;
40	};
41
42	chosen {
43		stdout-path = "serial2:115200n8";
44	};
45
46	/* DCIN is 12-24V but standard is 12V */
47	dc_12v: regulator-dc-12v {
48		compatible = "regulator-fixed";
49		regulator-name = "dc_12v";
50		regulator-always-on;
51		regulator-boot-on;
52		regulator-min-microvolt = <12000000>;
53		regulator-max-microvolt = <12000000>;
54	};
55
56	emmc_pwrseq: emmc-pwrseq {
57		compatible = "mmc-pwrseq-emmc";
58		pinctrl-0 = <&emmc_reset>;
59		pinctrl-names = "default";
60		reset-gpios = <&gpio2 RK_PA3 GPIO_ACTIVE_HIGH>;
61	};
62
63	hdmi-con {
64		compatible = "hdmi-connector";
65		type = "a";
66
67		port {
68			hdmi_con_in: endpoint {
69				remote-endpoint = <&hdmi0_out_con>;
70			};
71		};
72	};
73
74	leds {
75		compatible = "gpio-leds";
76		pinctrl-names = "default";
77		pinctrl-0 = <&led1_pin>;
78
79		/* LED1 on PCB */
80		led-1 {
81			gpios = <&gpio1 RK_PD4 GPIO_ACTIVE_HIGH>;
82			function = LED_FUNCTION_HEARTBEAT;
83			linux,default-trigger = "heartbeat";
84			color = <LED_COLOR_ID_AMBER>;
85		};
86	};
87
88	/*
89	 * 100MHz reference clock for PCIe peripherals from PI6C557-05BLE
90	 * clock generator.
91	 * The clock output is gated via the OE pin on the clock generator.
92	 * This is modeled as a fixed-clock plus a gpio-gate-clock.
93	 */
94	pcie_refclk_gen: pcie-refclk-gen-clock {
95		compatible = "fixed-clock";
96		#clock-cells = <0>;
97		clock-frequency = <100000000>;
98	};
99
100	pcie_refclk: pcie-refclk-clock {
101		compatible = "gpio-gate-clock";
102		clocks = <&pcie_refclk_gen>;
103		#clock-cells = <0>;
104		enable-gpios = <&gpio0 RK_PC6 GPIO_ACTIVE_LOW>; /* PCIE30X4_CLKREQN_M0 */
105		pinctrl-names = "default";
106		pinctrl-0 = <&pcie30x4_clkreqn_m0>;
107	};
108
109	pps {
110		compatible = "pps-gpio";
111		gpios = <&gpio0 RK_PD5 GPIO_ACTIVE_HIGH>;
112	};
113
114	vcc_1v1_nldo_s3: regulator-vcc-1v1-nldo-s3 {
115		compatible = "regulator-fixed";
116		regulator-name = "vcc_1v1_nldo_s3";
117		regulator-always-on;
118		regulator-boot-on;
119		regulator-min-microvolt = <1100000>;
120		regulator-max-microvolt = <1100000>;
121		vin-supply = <&vcc5v0_sys>;
122	};
123
124	vcc_1v2_s3: regulator-vcc-1v2-s3 {
125		compatible = "regulator-fixed";
126		regulator-name = "vcc_1v2_s3";
127		regulator-always-on;
128		regulator-boot-on;
129		regulator-min-microvolt = <1200000>;
130		regulator-max-microvolt = <1200000>;
131		vin-supply = <&vcc5v0_sys>;
132	};
133
134	/* Exposed on P14 and P15 */
135	vcc_2v8_s3: regulator-vcc-2v8-s3 {
136		compatible = "regulator-fixed";
137		regulator-name = "vcc_2v8_s3";
138		regulator-always-on;
139		regulator-boot-on;
140		regulator-min-microvolt = <2800000>;
141		regulator-max-microvolt = <2800000>;
142		vin-supply = <&vcc_3v3_s3>;
143	};
144
145	vcc_5v0_usb_a: regulator-vcc-5v0-usb-a {
146		compatible = "regulator-fixed";
147		regulator-name = "usb_a_vcc";
148		regulator-min-microvolt = <5000000>;
149		regulator-max-microvolt = <5000000>;
150		vin-supply = <&vcc5v0_sys>;
151		gpio = <&gpio1 RK_PB4 GPIO_ACTIVE_HIGH>;
152		enable-active-high;
153	};
154
155	vcc_5v0_usb_c1: regulator-vcc-5v0-usb-c1 {
156		compatible = "regulator-fixed";
157		regulator-name = "5v_usbc1";
158		regulator-min-microvolt = <5000000>;
159		regulator-max-microvolt = <5000000>;
160		vin-supply = <&vcc5v0_usb>;
161		gpio = <&gpio4 RK_PB5 GPIO_ACTIVE_HIGH>;
162		enable-active-high;
163	};
164
165	vcc_5v0_usb_c2: regulator-vcc-5v0-usb-c2 {
166		compatible = "regulator-fixed";
167		regulator-name = "5v_usbc2";
168		regulator-min-microvolt = <5000000>;
169		regulator-max-microvolt = <5000000>;
170		vin-supply = <&vcc5v0_usb>;
171		gpio = <&gpio4 RK_PB6 GPIO_ACTIVE_HIGH>;
172		enable-active-high;
173	};
174
175	vcc3v3_mdot2: regulator-vcc3v3-mdot2 {
176		compatible = "regulator-fixed";
177		regulator-name = "vcc3v3_mdot2";
178		regulator-always-on;
179		regulator-boot-on;
180		regulator-min-microvolt = <3300000>;
181		regulator-max-microvolt = <3300000>;
182		vin-supply = <&dc_12v>;
183	};
184
185	vcc5v0_sys: regulator-vcc5v0-sys {
186		compatible = "regulator-fixed";
187		regulator-name = "vcc5v0_sys";
188		regulator-always-on;
189		regulator-boot-on;
190		regulator-min-microvolt = <5000000>;
191		regulator-max-microvolt = <5000000>;
192		vin-supply = <&dc_12v>;
193	};
194
195	vcc5v0_usb: regulator-vcc5v0-usb {
196		compatible = "regulator-fixed";
197		regulator-name = "vcc5v0_usb";
198		regulator-always-on;
199		regulator-boot-on;
200		regulator-min-microvolt = <5000000>;
201		regulator-max-microvolt = <5000000>;
202		vin-supply = <&vcc5v0_sys>;
203	};
204};
205
206&combphy1_ps {
207	status = "okay";
208};
209
210&cpu_b0 {
211	cpu-supply = <&vdd_cpu_big0_s0>;
212};
213
214&cpu_b1 {
215	cpu-supply = <&vdd_cpu_big0_s0>;
216};
217
218&cpu_b2 {
219	cpu-supply = <&vdd_cpu_big1_s0>;
220};
221
222&cpu_b3 {
223	cpu-supply = <&vdd_cpu_big1_s0>;
224};
225
226&cpu_l0 {
227	cpu-supply = <&vdd_cpu_lit_s0>;
228};
229
230&cpu_l1 {
231	cpu-supply = <&vdd_cpu_lit_s0>;
232};
233
234&cpu_l2 {
235	cpu-supply = <&vdd_cpu_lit_s0>;
236};
237
238&cpu_l3 {
239	cpu-supply = <&vdd_cpu_lit_s0>;
240};
241
242&gmac0 {
243	clock_in_out = "output";
244	phy-handle = <&rgmii_phy>;
245	phy-mode = "rgmii";
246	phy-supply = <&vcc_1v2_s3>;
247	pinctrl-names = "default";
248	pinctrl-0 = <&gmac0_miim
249		     &gmac0_rx_bus2
250		     &gmac0_tx_bus2
251		     &gmac0_rgmii_clk
252		     &gmac0_rgmii_bus
253		     &eth0_pins
254		     &eth_reset>;
255	tx_delay = <0x10>;
256	rx_delay = <0x10>;
257	snps,reset-gpio = <&gpio4 RK_PC3 GPIO_ACTIVE_LOW>;
258	snps,reset-active-low;
259	snps,reset-delays-us = <0 10000 100000>;
260
261	status = "okay";
262};
263
264&gpio1 {
265	mdot2e-w-disable1-n-hog {
266		gpios = <RK_PB1 GPIO_ACTIVE_LOW>;
267		output-low;
268		line-name = "m.2 E-key W_DISABLE1#";
269		gpio-hog;
270	};
271};
272
273&gpio4 {
274	mdot2e-w-disable2-n-hog {
275		gpios = <RK_PC1 GPIO_ACTIVE_LOW>;
276		output-low;
277		line-name = "m.2 E-key W_DISABLE2#";
278		gpio-hog;
279	};
280};
281
282&gpu {
283	mali-supply = <&vdd_gpu_s0>;
284	status = "okay";
285};
286
287&hdmi0 {
288	/* No CEC on Jaguar */
289	pinctrl-names = "default";
290	pinctrl-0 = <&hdmim0_tx0_hpd &hdmim0_tx0_scl &hdmim0_tx0_sda>;
291	status = "okay";
292};
293
294&hdmi0_in {
295	hdmi0_in_vp0: endpoint {
296		remote-endpoint = <&vp0_out_hdmi0>;
297	};
298};
299
300&hdmi0_out {
301	hdmi0_out_con: endpoint {
302		remote-endpoint = <&hdmi_con_in>;
303	};
304};
305
306&hdptxphy0 {
307	status = "okay";
308};
309
310&i2c0 {
311	pinctrl-0 = <&i2c0m2_xfer>;
312	status = "okay";
313
314	fan@18 {
315		compatible = "tsd,mule", "ti,amc6821";
316		reg = <0x18>;
317
318		i2c-mux {
319			compatible = "tsd,mule-i2c-mux";
320			#address-cells = <1>;
321			#size-cells = <0>;
322
323			i2c10: i2c@0 {
324				reg = <0x0>;
325				#address-cells = <1>;
326				#size-cells = <0>;
327
328				rtc_twi: rtc@6f {
329					compatible = "isil,isl1208";
330					reg = <0x6f>;
331				};
332			};
333		};
334	};
335
336	typec-portc@22 {
337		compatible = "fcs,fusb302";
338		reg = <0x22>;
339		interrupt-parent = <&gpio4>;
340		interrupts = <RK_PA3 IRQ_TYPE_LEVEL_LOW>;
341		pinctrl-names = "default";
342		pinctrl-0 = <&cc_int1>;
343		vbus-supply = <&vcc_5v0_usb_c1>;
344
345		connector {
346			compatible = "usb-c-connector";
347			data-role = "dual";
348			label = "USBC-1 P11";
349			power-role = "source";
350			self-powered;
351			source-pdos =
352				<PDO_FIXED(5000, 1500, PDO_FIXED_DATA_SWAP | PDO_FIXED_USB_COMM)>;
353			vbus-supply = <&vcc_5v0_usb_c1>;
354
355			ports {
356				#address-cells = <1>;
357				#size-cells = <0>;
358
359				port@0 {
360					reg = <0>;
361
362					usbc0_hs: endpoint {
363						remote-endpoint = <&usb_host0_xhci_drd_sw>;
364					};
365				};
366
367				port@1 {
368					reg = <1>;
369
370					usbc0_ss: endpoint {
371						remote-endpoint = <&usbdp_phy0_typec_ss>;
372					};
373				};
374
375				port@2 {
376					reg = <2>;
377
378					usbc0_sbu: endpoint {
379						remote-endpoint = <&usbdp_phy0_typec_sbu>;
380					};
381				};
382			};
383		};
384	};
385
386	vdd_npu_s0: regulator@42 {
387		compatible = "rockchip,rk8602";
388		reg = <0x42>;
389		fcs,suspend-voltage-selector = <1>;
390		regulator-name = "vdd_npu_s0";
391		regulator-always-on;
392		regulator-boot-on;
393		regulator-min-microvolt = <550000>;
394		regulator-max-microvolt = <950000>;
395		regulator-ramp-delay = <2300>;
396		vin-supply = <&vcc5v0_sys>;
397
398		regulator-state-mem {
399			regulator-off-in-suspend;
400		};
401	};
402
403	vdd_cpu_big1_s0: regulator@43 {
404		compatible = "rockchip,rk8603", "rockchip,rk8602";
405		reg = <0x43>;
406		fcs,suspend-voltage-selector = <1>;
407		regulator-name = "vdd_cpu_big1_s0";
408		regulator-always-on;
409		regulator-boot-on;
410		regulator-min-microvolt = <550000>;
411		regulator-max-microvolt = <1050000>;
412		regulator-ramp-delay = <2300>;
413		vin-supply = <&vcc5v0_sys>;
414
415		regulator-state-mem {
416			regulator-off-in-suspend;
417		};
418	};
419};
420
421&i2c1 {
422	pinctrl-0 = <&i2c1m4_xfer>;
423};
424
425&i2c6 {
426	pinctrl-0 = <&i2c6m4_xfer>;
427};
428
429&i2c7 {
430	status = "okay";
431
432	/* SE050 Secure Element at 0x48; GPIO1_A4 for enable pin */
433
434	/* Also on 0x55 */
435	eeprom@54 {
436		compatible = "st,24c04", "atmel,24c04";
437		reg = <0x54>;
438		pagesize = <16>;
439		vcc-supply = <&vcc_3v3_s3>;
440	};
441};
442
443&i2c8 {
444	pinctrl-0 = <&i2c8m2_xfer>;
445	status = "okay";
446
447	typec-portc@22 {
448		compatible = "fcs,fusb302";
449		reg = <0x22>;
450		interrupt-parent = <&gpio4>;
451		interrupts = <RK_PA4 IRQ_TYPE_LEVEL_LOW>;
452		pinctrl-names = "default";
453		pinctrl-0 = <&cc_int2>;
454		vbus-supply = <&vcc_5v0_usb_c2>;
455
456		connector {
457			compatible = "usb-c-connector";
458			data-role = "dual";
459			label = "USBC-2 P12";
460			power-role = "source";
461			self-powered;
462			source-pdos =
463				<PDO_FIXED(5000, 1500, PDO_FIXED_DATA_SWAP | PDO_FIXED_USB_COMM)>;
464			vbus-supply = <&vcc_5v0_usb_c2>;
465
466			ports {
467				#address-cells = <1>;
468				#size-cells = <0>;
469
470				port@0 {
471					reg = <0>;
472
473					usbc1_hs: endpoint {
474						remote-endpoint = <&usb_host1_xhci_drd_sw>;
475					};
476				};
477
478				port@1 {
479					reg = <1>;
480
481					usbc1_ss: endpoint {
482						remote-endpoint = <&usbdp_phy1_typec_ss>;
483					};
484				};
485
486				port@2 {
487					reg = <2>;
488
489					usbc1_sbu: endpoint {
490						remote-endpoint = <&usbdp_phy1_typec_sbu>;
491					};
492				};
493			};
494		};
495	};
496
497	vdd_cpu_big0_s0: regulator@42 {
498		compatible = "rockchip,rk8602";
499		reg = <0x42>;
500		fcs,suspend-voltage-selector = <1>;
501		regulator-name = "vdd_cpu_big0_s0";
502		regulator-always-on;
503		regulator-boot-on;
504		regulator-min-microvolt = <550000>;
505		regulator-max-microvolt = <1050000>;
506		regulator-ramp-delay = <2300>;
507		vin-supply = <&vcc5v0_sys>;
508
509		regulator-state-mem {
510			regulator-off-in-suspend;
511		};
512	};
513};
514
515&mdio0 {
516	rgmii_phy: ethernet-phy@6 {
517		/* KSZ9031 or KSZ9131 */
518		compatible = "ethernet-phy-ieee802.3-c22";
519		reg = <0x6>;
520		clocks = <&cru REFCLKO25M_ETH0_OUT>;
521	};
522};
523
524&pcie2x1l0 {
525	reset-gpios = <&gpio4 RK_PB3 GPIO_ACTIVE_HIGH>; /* WIFI_PERST0# */
526	vpcie3v3-supply = <&vcc3v3_mdot2>;
527	status = "okay";
528};
529
530&pcie30phy {
531	status = "okay";
532};
533
534&pcie3x4 {
535	/*
536	 * The board has a gpio-controlled "pcie_refclk" generator,
537	 * so add it to the list of clocks.
538	 */
539	clocks = <&cru ACLK_PCIE_4L_MSTR>, <&cru ACLK_PCIE_4L_SLV>,
540		 <&cru ACLK_PCIE_4L_DBI>, <&cru PCLK_PCIE_4L>,
541		 <&cru CLK_PCIE_AUX0>, <&cru CLK_PCIE4L_PIPE>,
542		 <&pcie_refclk>;
543	clock-names = "aclk_mst", "aclk_slv",
544		      "aclk_dbi", "pclk",
545		      "aux", "pipe",
546		      "ref";
547	pinctrl-names = "default";
548	pinctrl-0 = <&pcie30x4_waken_m0 &pcie30x4_perstn_m0>;
549	reset-gpios = <&gpio0 RK_PD0 GPIO_ACTIVE_HIGH>; /* PCIE30X4_PERSTN_M0 */
550	vpcie3v3-supply = <&vcc3v3_mdot2>;
551	status = "okay";
552};
553
554&pd_gpu {
555	domain-supply = <&vdd_gpu_s0>;
556};
557
558&pinctrl {
559	emmc {
560		emmc_reset: emmc-reset {
561			rockchip,pins = <2 RK_PA3 RK_FUNC_GPIO &pcfg_pull_none>;
562		};
563	};
564
565	ethernet {
566		eth_reset: eth-reset {
567			rockchip,pins = <4 RK_PC3 RK_FUNC_GPIO &pcfg_pull_none>;
568		};
569	};
570
571	leds {
572		led1_pin: led1-pin {
573			rockchip,pins = <1 RK_PD4 RK_FUNC_GPIO &pcfg_pull_none>;
574		};
575	};
576
577	pcie30x4 {
578		pcie30x4_clkreqn_m0: pcie30x4-clkreqn-m0 {
579			rockchip,pins = <0 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>;
580		};
581
582		pcie30x4_perstn_m0: pcie30x4-perstn-m0 {
583			rockchip,pins = <0 RK_PD0 RK_FUNC_GPIO &pcfg_pull_none>;
584		};
585
586		pcie30x4_waken_m0: pcie30x4-waken-m0 {
587			rockchip,pins = <0 RK_PC7 12 &pcfg_pull_none>;
588		};
589	};
590
591	usb3 {
592		cc_int1: cc-int1 {
593			rockchip,pins = <4 RK_PA3 RK_FUNC_GPIO &pcfg_pull_none>;
594		};
595
596		cc_int2: cc-int2 {
597			rockchip,pins = <4 RK_PA4 RK_FUNC_GPIO &pcfg_pull_none>;
598		};
599
600		typec0_sbu_dc_pins: typec0-sbu-dc-pins {
601			rockchip,pins = <4 RK_PB0 RK_FUNC_GPIO &pcfg_pull_down>,
602					<1 RK_PC3 RK_FUNC_GPIO &pcfg_pull_down>;
603		};
604
605		typec1_sbu_dc_pins: typec1-sbu-dc-pins {
606			rockchip,pins = <0 RK_PD4 RK_FUNC_GPIO &pcfg_pull_down>,
607					<1 RK_PB5 RK_FUNC_GPIO &pcfg_pull_down>;
608		};
609	};
610};
611
612&saradc {
613	vref-supply = <&vcc_1v8_s0>;
614	status = "okay";
615};
616
617&sdhci {
618	bus-width = <8>;
619	cap-mmc-highspeed;
620	mmc-ddr-1_8v;
621	mmc-hs200-1_8v;
622	mmc-hs400-1_8v;
623	mmc-hs400-enhanced-strobe;
624	mmc-pwrseq = <&emmc_pwrseq>;
625	no-sdio;
626	no-sd;
627	non-removable;
628	pinctrl-names = "default";
629	pinctrl-0 = <&emmc_bus8 &emmc_cmd &emmc_clk &emmc_data_strobe>;
630	vmmc-supply = <&vcc_3v3_s3>;
631	vqmmc-supply = <&vcc_1v8_s3>;
632	status = "okay";
633};
634
635&sdmmc {
636	broken-cd;
637	bus-width = <4>;
638	cap-sd-highspeed;
639	disable-wp;
640	max-frequency = <150000000>;
641	pinctrl-names = "default";
642	pinctrl-0 = <&sdmmc_bus4 &sdmmc_cmd &sdmmc_clk>;
643	sd-uhs-sdr12;
644	sd-uhs-sdr25;
645	sd-uhs-sdr50;
646	sd-uhs-ddr50;
647	sd-uhs-sdr104;
648	vmmc-supply = <&vcc_3v3_s3>;
649	vqmmc-supply = <&vccio_sd_s0>;
650	status = "okay";
651};
652
653&spi2 {
654	assigned-clocks = <&cru CLK_SPI2>;
655	assigned-clock-rates = <200000000>;
656	num-cs = <1>;
657	pinctrl-names = "default";
658	pinctrl-0 = <&spi2m2_cs0 &spi2m2_pins>;
659	status = "okay";
660
661	pmic@0 {
662		compatible = "rockchip,rk806";
663		reg = <0x0>;
664		interrupt-parent = <&gpio0>;
665		interrupts = <7 IRQ_TYPE_LEVEL_LOW>;
666		gpio-controller;
667		#gpio-cells = <2>;
668		pinctrl-names = "default";
669		pinctrl-0 = <&pmic_pins>, <&rk806_dvs1_null>,
670			    <&rk806_dvs2_null>, <&rk806_dvs3_null>;
671		spi-max-frequency = <1000000>;
672		system-power-controller;
673		vcc1-supply = <&vcc5v0_sys>;
674		vcc2-supply = <&vcc5v0_sys>;
675		vcc3-supply = <&vcc5v0_sys>;
676		vcc4-supply = <&vcc5v0_sys>;
677		vcc5-supply = <&vcc5v0_sys>;
678		vcc6-supply = <&vcc5v0_sys>;
679		vcc7-supply = <&vcc5v0_sys>;
680		vcc8-supply = <&vcc5v0_sys>;
681		vcc9-supply = <&vcc5v0_sys>;
682		vcc10-supply = <&vcc5v0_sys>;
683		vcc11-supply = <&vcc_2v0_pldo_s3>;
684		vcc12-supply = <&vcc5v0_sys>;
685		vcc13-supply = <&vcc_1v1_nldo_s3>;
686		vcc14-supply = <&vcc_1v1_nldo_s3>;
687		vcca-supply = <&vcc5v0_sys>;
688
689		rk806_dvs1_null: dvs1-null-pins {
690			pins = "gpio_pwrctrl1";
691			function = "pin_fun0";
692		};
693
694		rk806_dvs2_null: dvs2-null-pins {
695			pins = "gpio_pwrctrl2";
696			function = "pin_fun0";
697		};
698
699		rk806_dvs3_null: dvs3-null-pins {
700			pins = "gpio_pwrctrl3";
701			function = "pin_fun0";
702		};
703
704		regulators {
705			vdd_gpu_s0: dcdc-reg1 {
706				regulator-boot-on;
707				regulator-min-microvolt = <550000>;
708				regulator-max-microvolt = <950000>;
709				regulator-ramp-delay = <12500>;
710				regulator-name = "vdd_gpu_s0";
711				regulator-enable-ramp-delay = <400>;
712
713				regulator-state-mem {
714					regulator-off-in-suspend;
715				};
716			};
717
718			vdd_cpu_lit_s0: dcdc-reg2 {
719				regulator-name = "vdd_cpu_lit_s0";
720				regulator-always-on;
721				regulator-boot-on;
722				regulator-min-microvolt = <550000>;
723				regulator-max-microvolt = <950000>;
724				regulator-ramp-delay = <12500>;
725
726				regulator-state-mem {
727					regulator-off-in-suspend;
728				};
729			};
730
731			vdd_log_s0: dcdc-reg3 {
732				regulator-name = "vdd_log_s0";
733				regulator-always-on;
734				regulator-boot-on;
735				regulator-min-microvolt = <675000>;
736				regulator-max-microvolt = <750000>;
737				regulator-ramp-delay = <12500>;
738
739				regulator-state-mem {
740					regulator-off-in-suspend;
741					regulator-suspend-microvolt = <750000>;
742				};
743			};
744
745			vdd_vdenc_s0: dcdc-reg4 {
746				regulator-name = "vdd_vdenc_s0";
747				regulator-always-on;
748				regulator-boot-on;
749				regulator-min-microvolt = <550000>;
750				regulator-max-microvolt = <950000>;
751				regulator-ramp-delay = <12500>;
752
753				regulator-state-mem {
754					regulator-off-in-suspend;
755				};
756			};
757
758			vdd_ddr_s0: dcdc-reg5 {
759				regulator-name = "vdd_ddr_s0";
760				regulator-always-on;
761				regulator-boot-on;
762				regulator-min-microvolt = <675000>;
763				regulator-max-microvolt = <900000>;
764				regulator-ramp-delay = <12500>;
765
766				regulator-state-mem {
767					regulator-off-in-suspend;
768					regulator-suspend-microvolt = <850000>;
769				};
770			};
771
772			vdd2_ddr_s3: dcdc-reg6 {
773				regulator-name = "vdd2_ddr_s3";
774				regulator-always-on;
775				regulator-boot-on;
776
777				regulator-state-mem {
778					regulator-on-in-suspend;
779				};
780			};
781
782			vcc_2v0_pldo_s3: dcdc-reg7 {
783				regulator-name = "vdd_2v0_pldo_s3";
784				regulator-always-on;
785				regulator-boot-on;
786				regulator-min-microvolt = <2000000>;
787				regulator-max-microvolt = <2000000>;
788				regulator-ramp-delay = <12500>;
789
790				regulator-state-mem {
791					regulator-on-in-suspend;
792					regulator-suspend-microvolt = <2000000>;
793				};
794			};
795
796			vcc_3v3_s3: dcdc-reg8 {
797				regulator-name = "vcc_3v3_s3";
798				regulator-always-on;
799				regulator-boot-on;
800				regulator-min-microvolt = <3300000>;
801				regulator-max-microvolt = <3300000>;
802
803				regulator-state-mem {
804					regulator-on-in-suspend;
805					regulator-suspend-microvolt = <3300000>;
806				};
807			};
808
809			vddq_ddr_s0: dcdc-reg9 {
810				regulator-name = "vddq_ddr_s0";
811				regulator-always-on;
812				regulator-boot-on;
813
814				regulator-state-mem {
815					regulator-off-in-suspend;
816				};
817			};
818
819			vcc_1v8_s3: dcdc-reg10 {
820				regulator-name = "vcc_1v8_s3";
821				regulator-always-on;
822				regulator-boot-on;
823				regulator-min-microvolt = <1800000>;
824				regulator-max-microvolt = <1800000>;
825
826				regulator-state-mem {
827					regulator-on-in-suspend;
828					regulator-suspend-microvolt = <1800000>;
829				};
830			};
831
832			vcca_1v8_s0: pldo-reg1 {
833				regulator-name = "vcca_1v8_s0";
834				regulator-always-on;
835				regulator-boot-on;
836				regulator-min-microvolt = <1800000>;
837				regulator-max-microvolt = <1800000>;
838
839				regulator-state-mem {
840					regulator-off-in-suspend;
841				};
842			};
843
844			vcc_1v8_s0: pldo-reg2 {
845				regulator-name = "vcc_1v8_s0";
846				regulator-always-on;
847				regulator-boot-on;
848				regulator-min-microvolt = <1800000>;
849				regulator-max-microvolt = <1800000>;
850
851				regulator-state-mem {
852					regulator-off-in-suspend;
853					regulator-suspend-microvolt = <1800000>;
854				};
855			};
856
857			vdda_1v2_s0: pldo-reg3 {
858				regulator-name = "vdda_1v2_s0";
859				regulator-always-on;
860				regulator-boot-on;
861				regulator-min-microvolt = <1200000>;
862				regulator-max-microvolt = <1200000>;
863
864				regulator-state-mem {
865					regulator-off-in-suspend;
866				};
867			};
868
869			vcca_3v3_s0: pldo-reg4 {
870				regulator-name = "vcca_3v3_s0";
871				regulator-always-on;
872				regulator-boot-on;
873				regulator-min-microvolt = <3300000>;
874				regulator-max-microvolt = <3300000>;
875				regulator-ramp-delay = <12500>;
876
877				regulator-state-mem {
878					regulator-off-in-suspend;
879				};
880			};
881
882			vccio_sd_s0: pldo-reg5 {
883				regulator-name = "vccio_sd_s0";
884				regulator-always-on;
885				regulator-boot-on;
886				regulator-min-microvolt = <1800000>;
887				regulator-max-microvolt = <3300000>;
888				regulator-ramp-delay = <12500>;
889
890				regulator-state-mem {
891					regulator-off-in-suspend;
892				};
893			};
894
895			pldo6_s3: pldo-reg6 {
896				regulator-name = "pldo6_s3";
897				regulator-always-on;
898				regulator-boot-on;
899				regulator-min-microvolt = <1800000>;
900				regulator-max-microvolt = <1800000>;
901
902				regulator-state-mem {
903					regulator-on-in-suspend;
904					regulator-suspend-microvolt = <1800000>;
905				};
906			};
907
908			vdd_0v75_s3: nldo-reg1 {
909				regulator-name = "vdd_0v75_s3";
910				regulator-always-on;
911				regulator-boot-on;
912				regulator-min-microvolt = <750000>;
913				regulator-max-microvolt = <750000>;
914
915				regulator-state-mem {
916					regulator-on-in-suspend;
917					regulator-suspend-microvolt = <750000>;
918				};
919			};
920
921			vdda_ddr_pll_s0: nldo-reg2 {
922				regulator-name = "vdda_ddr_pll_s0";
923				regulator-always-on;
924				regulator-boot-on;
925				regulator-min-microvolt = <850000>;
926				regulator-max-microvolt = <850000>;
927
928				regulator-state-mem {
929					regulator-off-in-suspend;
930					regulator-suspend-microvolt = <850000>;
931				};
932			};
933
934			vdda_0v75_s0: nldo-reg3 {
935				regulator-name = "vdda_0v75_s0";
936				regulator-always-on;
937				regulator-boot-on;
938				regulator-min-microvolt = <750000>;
939				regulator-max-microvolt = <750000>;
940
941				regulator-state-mem {
942					regulator-off-in-suspend;
943				};
944			};
945
946			vdda_0v85_s0: nldo-reg4 {
947				regulator-name = "vdda_0v85_s0";
948				regulator-always-on;
949				regulator-boot-on;
950				regulator-min-microvolt = <850000>;
951				regulator-max-microvolt = <850000>;
952
953				regulator-state-mem {
954					regulator-off-in-suspend;
955				};
956			};
957
958			vdd_0v75_s0: nldo-reg5 {
959				regulator-name = "vdd_0v75_s0";
960				regulator-always-on;
961				regulator-boot-on;
962				regulator-min-microvolt = <750000>;
963				regulator-max-microvolt = <750000>;
964
965				regulator-state-mem {
966					regulator-off-in-suspend;
967				};
968			};
969		};
970	};
971};
972
973&tsadc {
974	status = "okay";
975};
976
977/* USB-C P11 connector */
978&u2phy0 {
979	status = "okay";
980};
981
982&u2phy0_otg {
983	status = "okay";
984};
985
986/* USB-C P12 connector */
987&u2phy1 {
988	status = "okay";
989};
990
991&u2phy1_otg {
992	status = "okay";
993};
994
995&u2phy2 {
996	status = "okay";
997};
998
999&u2phy2_host {
1000	phy-supply = <&vcc_5v0_usb_a>;
1001	status = "okay";
1002};
1003
1004&u2phy3 {
1005	status = "okay";
1006};
1007
1008&u2phy3_host {
1009	status = "okay";
1010};
1011
1012/* Mule-ATtiny debug UART; typically baudrate 9600 */
1013&uart0 {
1014	pinctrl-0 = <&uart0m0_xfer>;
1015	status = "okay";
1016};
1017
1018/* Main debug interface on P20 micro-USB B port and P21 header */
1019&uart2 {
1020	pinctrl-0 = <&uart2m0_xfer>;
1021	status = "okay";
1022};
1023
1024/* RS485 on P19 */
1025&uart3 {
1026	pinctrl-0 = <&uart3m2_xfer &uart3_rtsn>;
1027	linux,rs485-enabled-at-boot-time;
1028	status = "okay";
1029};
1030
1031/* Mule-ATtiny UPDI flashing UART */
1032&uart7 {
1033	pinctrl-0 = <&uart7m0_xfer>;
1034	status = "okay";
1035};
1036
1037/* Type-C on P11 */
1038&usbdp_phy0 {
1039	orientation-switch;
1040	pinctrl-names = "default";
1041	pinctrl-0 = <&typec0_sbu_dc_pins>;
1042	sbu1-dc-gpios = <&gpio4 RK_PB0 GPIO_ACTIVE_HIGH>; /* Q7_USB_C0_SBU1_DC */
1043	sbu2-dc-gpios = <&gpio1 RK_PC3 GPIO_ACTIVE_HIGH>; /* Q7_USB_C0_SBU2_DC */
1044	status = "okay";
1045
1046	port {
1047		#address-cells = <1>;
1048		#size-cells = <0>;
1049
1050		usbdp_phy0_typec_ss: endpoint@0 {
1051			reg = <0>;
1052			remote-endpoint = <&usbc0_ss>;
1053		};
1054
1055		usbdp_phy0_typec_sbu: endpoint@1 {
1056			reg = <1>;
1057			remote-endpoint = <&usbc0_sbu>;
1058		};
1059	};
1060};
1061
1062/* Type-C on P12 */
1063&usbdp_phy1 {
1064	orientation-switch;
1065	pinctrl-names = "default";
1066	pinctrl-0 = <&typec1_sbu_dc_pins>;
1067	sbu1-dc-gpios = <&gpio0 RK_PD4 GPIO_ACTIVE_HIGH>; /* Q7_USB_C1_SBU1_DC */
1068	sbu2-dc-gpios = <&gpio1 RK_PB5 GPIO_ACTIVE_HIGH>; /* Q7_USB_C1_SBU2_DC */
1069	status = "okay";
1070
1071	port {
1072		#address-cells = <1>;
1073		#size-cells = <0>;
1074
1075		usbdp_phy1_typec_ss: endpoint@0 {
1076			reg = <0>;
1077			remote-endpoint = <&usbc1_ss>;
1078		};
1079
1080		usbdp_phy1_typec_sbu: endpoint@1 {
1081			reg = <1>;
1082			remote-endpoint = <&usbc1_sbu>;
1083		};
1084	};
1085};
1086
1087/* host0 on P10 USB-A */
1088&usb_host0_ehci {
1089	status = "okay";
1090};
1091
1092/* host0 on P10 USB-A */
1093&usb_host0_ohci {
1094	status = "okay";
1095};
1096
1097/* host0 on P11 USB-C */
1098&usb_host0_xhci {
1099	usb-role-switch;
1100	status = "okay";
1101
1102	port {
1103		#address-cells = <1>;
1104		#size-cells = <0>;
1105
1106		usb_host0_xhci_drd_sw: endpoint {
1107			remote-endpoint = <&usbc0_hs>;
1108		};
1109	};
1110};
1111
1112/* host1 on P12 USB-C */
1113&usb_host1_xhci {
1114	usb-role-switch;
1115	status = "okay";
1116
1117	port {
1118		#address-cells = <1>;
1119		#size-cells = <0>;
1120
1121		usb_host1_xhci_drd_sw: endpoint {
1122			remote-endpoint = <&usbc1_hs>;
1123		};
1124	};
1125};
1126
1127/* host1 on M.2 E-key */
1128&usb_host1_ehci {
1129	status = "okay";
1130};
1131
1132/* host1 on M.2 E-key */
1133&usb_host1_ohci {
1134	status = "okay";
1135};
1136
1137&vop {
1138	status = "okay";
1139};
1140
1141&vop_mmu {
1142	status = "okay";
1143};
1144
1145&vp0 {
1146	vp0_out_hdmi0: endpoint@ROCKCHIP_VOP2_EP_HDMI0 {
1147		reg = <ROCKCHIP_VOP2_EP_HDMI0>;
1148		remote-endpoint = <&hdmi0_in_vp0>;
1149	};
1150};
1151