xref: /linux/arch/arm64/boot/dts/rockchip/rk3588-armsom-sige7.dts (revision 55d0969c451159cff86949b38c39171cab962069)
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/leds/common.h>
7#include "rk3588.dtsi"
8
9/ {
10	model = "ArmSoM Sige7";
11	compatible = "armsom,sige7", "rockchip,rk3588";
12
13	aliases {
14		mmc0 = &sdhci;
15		mmc1 = &sdmmc;
16	};
17
18	chosen {
19		stdout-path = "serial2:1500000n8";
20	};
21
22	analog-sound {
23		compatible = "audio-graph-card";
24		dais = <&i2s0_8ch_p0>;
25		label = "rk3588-es8316";
26		hp-det-gpios = <&gpio1 RK_PD5 GPIO_ACTIVE_HIGH>;
27		pinctrl-names = "default";
28		pinctrl-0 = <&hp_detect>;
29		routing = "MIC2", "Mic Jack",
30			  "Headphones", "HPOL",
31			  "Headphones", "HPOR";
32		widgets = "Microphone", "Mic Jack",
33			  "Headphone", "Headphones";
34	};
35
36	leds {
37		compatible = "gpio-leds";
38		pinctrl-names = "default";
39		pinctrl-0 = <&led_rgb_g>;
40
41		led_green: led-0 {
42			color = <LED_COLOR_ID_GREEN>;
43			function = LED_FUNCTION_STATUS;
44			gpios = <&gpio0 RK_PB7 GPIO_ACTIVE_HIGH>;
45			linux,default-trigger = "heartbeat";
46		};
47
48		led_red: led-1 {
49			color = <LED_COLOR_ID_RED>;
50			function = LED_FUNCTION_STATUS;
51			gpios = <&gpio4 RK_PC5 GPIO_ACTIVE_HIGH>;
52			linux,default-trigger = "none";
53		};
54	};
55
56	fan: pwm-fan {
57		compatible = "pwm-fan";
58		cooling-levels = <0 95 145 195 255>;
59		fan-supply = <&vcc5v0_sys>;
60		pwms = <&pwm1 0 50000 0>;
61		#cooling-cells = <2>;
62	};
63
64	vcc3v3_pcie2x1l2: vcc3v3-pcie2x1l2-regulator {
65		compatible = "regulator-fixed";
66		regulator-name = "vcc3v3_pcie2x1l2";
67		regulator-min-microvolt = <3300000>;
68		regulator-max-microvolt = <3300000>;
69		startup-delay-us = <5000>;
70		vin-supply = <&vcc_3v3_s3>;
71	};
72
73	vcc3v3_pcie30: vcc3v3-pcie30-regulator {
74		compatible = "regulator-fixed";
75		enable-active-high;
76		gpios = <&gpio1 RK_PA4 GPIO_ACTIVE_HIGH>;
77		regulator-name = "vcc3v3_pcie30";
78		regulator-min-microvolt = <3300000>;
79		regulator-max-microvolt = <3300000>;
80		startup-delay-us = <5000>;
81		vin-supply = <&vcc5v0_sys>;
82	};
83
84	vcc5v0_host: vcc5v0-host-regulator {
85		compatible = "regulator-fixed";
86		regulator-name = "vcc5v0_host";
87		regulator-boot-on;
88		regulator-always-on;
89		regulator-min-microvolt = <5000000>;
90		regulator-max-microvolt = <5000000>;
91		enable-active-high;
92		gpio = <&gpio4 RK_PB0 GPIO_ACTIVE_HIGH>;
93		pinctrl-names = "default";
94		pinctrl-0 = <&vcc5v0_host_en>;
95		vin-supply = <&vcc5v0_sys>;
96	};
97
98	vcc5v0_sys: vcc5v0-sys-regulator {
99		compatible = "regulator-fixed";
100		regulator-name = "vcc5v0_sys";
101		regulator-always-on;
102		regulator-boot-on;
103		regulator-min-microvolt = <5000000>;
104		regulator-max-microvolt = <5000000>;
105	};
106
107	vcc_1v1_nldo_s3: vcc-1v1-nldo-s3-regulator {
108		compatible = "regulator-fixed";
109		regulator-name = "vcc_1v1_nldo_s3";
110		regulator-always-on;
111		regulator-boot-on;
112		regulator-min-microvolt = <1100000>;
113		regulator-max-microvolt = <1100000>;
114		vin-supply = <&vcc5v0_sys>;
115	};
116};
117
118&combphy0_ps {
119	status = "okay";
120};
121
122&combphy1_ps {
123	status = "okay";
124};
125
126&combphy2_psu {
127	status = "okay";
128};
129
130&cpu_b0 {
131	cpu-supply = <&vdd_cpu_big0_s0>;
132};
133
134&cpu_b1 {
135	cpu-supply = <&vdd_cpu_big0_s0>;
136};
137
138&cpu_b2 {
139	cpu-supply = <&vdd_cpu_big1_s0>;
140};
141
142&cpu_b3 {
143	cpu-supply = <&vdd_cpu_big1_s0>;
144};
145
146&cpu_l0 {
147	cpu-supply = <&vdd_cpu_lit_s0>;
148};
149
150&cpu_l1 {
151	cpu-supply = <&vdd_cpu_lit_s0>;
152};
153
154&cpu_l2 {
155	cpu-supply = <&vdd_cpu_lit_s0>;
156};
157
158&cpu_l3 {
159	cpu-supply = <&vdd_cpu_lit_s0>;
160};
161
162&gpu {
163	mali-supply = <&vdd_gpu_s0>;
164	status = "okay";
165};
166
167&i2c0 {
168	pinctrl-names = "default";
169	pinctrl-0 = <&i2c0m2_xfer>;
170	status = "okay";
171
172	vdd_cpu_big0_s0: regulator@42 {
173		compatible = "rockchip,rk8602";
174		reg = <0x42>;
175		fcs,suspend-voltage-selector = <1>;
176		regulator-name = "vdd_cpu_big0_s0";
177		regulator-always-on;
178		regulator-boot-on;
179		regulator-min-microvolt = <550000>;
180		regulator-max-microvolt = <1050000>;
181		regulator-ramp-delay = <2300>;
182		vin-supply = <&vcc5v0_sys>;
183
184		regulator-state-mem {
185			regulator-off-in-suspend;
186		};
187	};
188
189	vdd_cpu_big1_s0: regulator@43 {
190		compatible = "rockchip,rk8603", "rockchip,rk8602";
191		reg = <0x43>;
192		fcs,suspend-voltage-selector = <1>;
193		regulator-name = "vdd_cpu_big1_s0";
194		regulator-always-on;
195		regulator-boot-on;
196		regulator-min-microvolt = <550000>;
197		regulator-max-microvolt = <1050000>;
198		regulator-ramp-delay = <2300>;
199		vin-supply = <&vcc5v0_sys>;
200
201		regulator-state-mem {
202			regulator-off-in-suspend;
203		};
204	};
205};
206
207&i2c6 {
208	status = "okay";
209
210	hym8563: rtc@51 {
211		compatible = "haoyu,hym8563";
212		reg = <0x51>;
213		interrupt-parent = <&gpio0>;
214		interrupts = <RK_PB0 IRQ_TYPE_LEVEL_LOW>;
215		#clock-cells = <0>;
216		clock-output-names = "hym8563";
217		pinctrl-names = "default";
218		pinctrl-0 = <&hym8563_int>;
219		wakeup-source;
220	};
221};
222
223&i2c7 {
224	status = "okay";
225
226	es8316: audio-codec@11 {
227		compatible = "everest,es8316";
228		reg = <0x11>;
229		assigned-clocks = <&cru I2S0_8CH_MCLKOUT>;
230		assigned-clock-rates = <12288000>;
231		clocks = <&cru I2S0_8CH_MCLKOUT>;
232		clock-names = "mclk";
233		#sound-dai-cells = <0>;
234
235		port {
236			es8316_p0_0: endpoint {
237				remote-endpoint = <&i2s0_8ch_p0_0>;
238			};
239		};
240	};
241};
242
243&i2s0_8ch {
244	pinctrl-names = "default";
245	pinctrl-0 = <&i2s0_lrck
246		     &i2s0_mclk
247		     &i2s0_sclk
248		     &i2s0_sdi0
249		     &i2s0_sdo0>;
250	status = "okay";
251
252	i2s0_8ch_p0: port {
253		i2s0_8ch_p0_0: endpoint {
254			dai-format = "i2s";
255			mclk-fs = <256>;
256			remote-endpoint = <&es8316_p0_0>;
257		};
258	};
259};
260
261/* phy1 - right ethernet port */
262&pcie2x1l0 {
263	reset-gpios = <&gpio4 RK_PA5 GPIO_ACTIVE_HIGH>;
264	status = "okay";
265};
266
267/* phy2 - WiFi */
268&pcie2x1l1 {
269	reset-gpios = <&gpio3 RK_PD4 GPIO_ACTIVE_HIGH>;
270	status = "okay";
271};
272
273/* phy0 - left ethernet port */
274&pcie2x1l2 {
275	reset-gpios = <&gpio3 RK_PB0 GPIO_ACTIVE_HIGH>;
276	status = "okay";
277};
278
279&pcie30phy {
280	status = "okay";
281};
282
283&pcie3x4 {
284	reset-gpios = <&gpio4 RK_PB6 GPIO_ACTIVE_HIGH>;
285	vpcie3v3-supply = <&vcc3v3_pcie30>;
286	status = "okay";
287};
288
289&pinctrl {
290	hym8563 {
291		hym8563_int: hym8563-int {
292			rockchip,pins = <0 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>;
293		};
294	};
295
296	leds {
297		led_rgb_g: led-rgb-g {
298			rockchip,pins = <0 RK_PB7 RK_FUNC_GPIO &pcfg_pull_none>;
299		};
300		led_rgb_r: led-rgb-r {
301			rockchip,pins = <0 RK_PB7 RK_FUNC_GPIO &pcfg_pull_none>;
302		};
303	};
304
305	sound {
306		hp_detect: hp-detect {
307			rockchip,pins = <1 RK_PD5 RK_FUNC_GPIO &pcfg_pull_none>;
308		};
309	};
310
311	usb {
312		vcc5v0_host_en: vcc5v0-host-en {
313			rockchip,pins = <4 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>;
314		};
315	};
316};
317
318&pwm1 {
319	status = "okay";
320};
321
322&saradc {
323	vref-supply = <&avcc_1v8_s0>;
324	status = "okay";
325};
326
327&sdhci {
328	bus-width = <8>;
329	no-sdio;
330	no-sd;
331	non-removable;
332	mmc-hs200-1_8v;
333	status = "okay";
334};
335
336&sdmmc {
337	bus-width = <4>;
338	cap-mmc-highspeed;
339	cap-sd-highspeed;
340	disable-wp;
341	max-frequency = <200000000>;
342	no-sdio;
343	no-mmc;
344	sd-uhs-sdr104;
345	vmmc-supply = <&vcc_3v3_s3>;
346	vqmmc-supply = <&vccio_sd_s0>;
347	status = "okay";
348};
349
350&spi2 {
351	assigned-clocks = <&cru CLK_SPI2>;
352	assigned-clock-rates = <200000000>;
353	num-cs = <1>;
354	pinctrl-names = "default";
355	pinctrl-0 = <&spi2m2_cs0 &spi2m2_pins>;
356	status = "okay";
357
358	pmic@0 {
359		compatible = "rockchip,rk806";
360		spi-max-frequency = <1000000>;
361		reg = <0x0>;
362
363		interrupt-parent = <&gpio0>;
364		interrupts = <7 IRQ_TYPE_LEVEL_LOW>;
365
366		gpio-controller;
367		#gpio-cells = <2>;
368
369		pinctrl-names = "default";
370		pinctrl-0 = <&pmic_pins>, <&rk806_dvs1_null>,
371			    <&rk806_dvs2_null>, <&rk806_dvs3_null>;
372
373		system-power-controller;
374
375		vcc1-supply = <&vcc5v0_sys>;
376		vcc2-supply = <&vcc5v0_sys>;
377		vcc3-supply = <&vcc5v0_sys>;
378		vcc4-supply = <&vcc5v0_sys>;
379		vcc5-supply = <&vcc5v0_sys>;
380		vcc6-supply = <&vcc5v0_sys>;
381		vcc7-supply = <&vcc5v0_sys>;
382		vcc8-supply = <&vcc5v0_sys>;
383		vcc9-supply = <&vcc5v0_sys>;
384		vcc10-supply = <&vcc5v0_sys>;
385		vcc11-supply = <&vcc_2v0_pldo_s3>;
386		vcc12-supply = <&vcc5v0_sys>;
387		vcc13-supply = <&vcc_1v1_nldo_s3>;
388		vcc14-supply = <&vcc_1v1_nldo_s3>;
389		vcca-supply = <&vcc5v0_sys>;
390
391		rk806_dvs1_null: dvs1-null-pins {
392			pins = "gpio_pwrctrl1";
393			function = "pin_fun0";
394		};
395
396		rk806_dvs2_null: dvs2-null-pins {
397			pins = "gpio_pwrctrl2";
398			function = "pin_fun0";
399		};
400
401		rk806_dvs3_null: dvs3-null-pins {
402			pins = "gpio_pwrctrl3";
403			function = "pin_fun0";
404		};
405
406		regulators {
407			vdd_gpu_s0: vdd_gpu_mem_s0: dcdc-reg1 {
408				regulator-always-on;
409				regulator-boot-on;
410				regulator-min-microvolt = <550000>;
411				regulator-max-microvolt = <950000>;
412				regulator-ramp-delay = <12500>;
413				regulator-name = "vdd_gpu_s0";
414				regulator-enable-ramp-delay = <400>;
415
416				regulator-state-mem {
417					regulator-off-in-suspend;
418				};
419			};
420
421			vdd_cpu_lit_s0: vdd_cpu_lit_mem_s0: dcdc-reg2 {
422				regulator-always-on;
423				regulator-boot-on;
424				regulator-min-microvolt = <550000>;
425				regulator-max-microvolt = <950000>;
426				regulator-ramp-delay = <12500>;
427				regulator-name = "vdd_cpu_lit_s0";
428
429				regulator-state-mem {
430					regulator-off-in-suspend;
431				};
432			};
433
434			vdd_log_s0: dcdc-reg3 {
435				regulator-always-on;
436				regulator-boot-on;
437				regulator-min-microvolt = <675000>;
438				regulator-max-microvolt = <750000>;
439				regulator-ramp-delay = <12500>;
440				regulator-name = "vdd_log_s0";
441
442				regulator-state-mem {
443					regulator-off-in-suspend;
444					regulator-suspend-microvolt = <750000>;
445				};
446			};
447
448			vdd_vdenc_s0: vdd_vdenc_mem_s0: dcdc-reg4 {
449				regulator-always-on;
450				regulator-boot-on;
451				regulator-min-microvolt = <550000>;
452				regulator-max-microvolt = <950000>;
453				regulator-ramp-delay = <12500>;
454				regulator-name = "vdd_vdenc_s0";
455
456				regulator-state-mem {
457					regulator-off-in-suspend;
458				};
459			};
460
461			vdd_ddr_s0: dcdc-reg5 {
462				regulator-always-on;
463				regulator-boot-on;
464				regulator-min-microvolt = <675000>;
465				regulator-max-microvolt = <900000>;
466				regulator-ramp-delay = <12500>;
467				regulator-name = "vdd_ddr_s0";
468
469				regulator-state-mem {
470					regulator-off-in-suspend;
471					regulator-suspend-microvolt = <850000>;
472				};
473			};
474
475			vdd2_ddr_s3: dcdc-reg6 {
476				regulator-always-on;
477				regulator-boot-on;
478				regulator-name = "vdd2_ddr_s3";
479
480				regulator-state-mem {
481					regulator-on-in-suspend;
482				};
483			};
484
485			vcc_2v0_pldo_s3: dcdc-reg7 {
486				regulator-always-on;
487				regulator-boot-on;
488				regulator-min-microvolt = <2000000>;
489				regulator-max-microvolt = <2000000>;
490				regulator-ramp-delay = <12500>;
491				regulator-name = "vdd_2v0_pldo_s3";
492
493				regulator-state-mem {
494					regulator-on-in-suspend;
495					regulator-suspend-microvolt = <2000000>;
496				};
497			};
498
499			vcc_3v3_s3: dcdc-reg8 {
500				regulator-always-on;
501				regulator-boot-on;
502				regulator-min-microvolt = <3300000>;
503				regulator-max-microvolt = <3300000>;
504				regulator-name = "vcc_3v3_s3";
505
506				regulator-state-mem {
507					regulator-on-in-suspend;
508					regulator-suspend-microvolt = <3300000>;
509				};
510			};
511
512			vddq_ddr_s0: dcdc-reg9 {
513				regulator-always-on;
514				regulator-boot-on;
515				regulator-name = "vddq_ddr_s0";
516
517				regulator-state-mem {
518					regulator-off-in-suspend;
519				};
520			};
521
522			vcc_1v8_s3: dcdc-reg10 {
523				regulator-always-on;
524				regulator-boot-on;
525				regulator-min-microvolt = <1800000>;
526				regulator-max-microvolt = <1800000>;
527				regulator-name = "vcc_1v8_s3";
528
529				regulator-state-mem {
530					regulator-on-in-suspend;
531					regulator-suspend-microvolt = <1800000>;
532				};
533			};
534
535			avcc_1v8_s0: pldo-reg1 {
536				regulator-always-on;
537				regulator-boot-on;
538				regulator-min-microvolt = <1800000>;
539				regulator-max-microvolt = <1800000>;
540				regulator-name = "avcc_1v8_s0";
541
542				regulator-state-mem {
543					regulator-off-in-suspend;
544				};
545			};
546
547			vcc_1v8_s0: pldo-reg2 {
548				regulator-always-on;
549				regulator-boot-on;
550				regulator-min-microvolt = <1800000>;
551				regulator-max-microvolt = <1800000>;
552				regulator-name = "vcc_1v8_s0";
553
554				regulator-state-mem {
555					regulator-off-in-suspend;
556					regulator-suspend-microvolt = <1800000>;
557				};
558			};
559
560			avdd_1v2_s0: pldo-reg3 {
561				regulator-always-on;
562				regulator-boot-on;
563				regulator-min-microvolt = <1200000>;
564				regulator-max-microvolt = <1200000>;
565				regulator-name = "avdd_1v2_s0";
566
567				regulator-state-mem {
568					regulator-off-in-suspend;
569				};
570			};
571
572			vcc_3v3_s0: pldo-reg4 {
573				regulator-always-on;
574				regulator-boot-on;
575				regulator-min-microvolt = <3300000>;
576				regulator-max-microvolt = <3300000>;
577				regulator-ramp-delay = <12500>;
578				regulator-name = "vcc_3v3_s0";
579
580				regulator-state-mem {
581					regulator-off-in-suspend;
582				};
583			};
584
585			vccio_sd_s0: pldo-reg5 {
586				regulator-always-on;
587				regulator-boot-on;
588				regulator-min-microvolt = <1800000>;
589				regulator-max-microvolt = <3300000>;
590				regulator-ramp-delay = <12500>;
591				regulator-name = "vccio_sd_s0";
592
593				regulator-state-mem {
594					regulator-off-in-suspend;
595				};
596			};
597
598			pldo6_s3: pldo-reg6 {
599				regulator-always-on;
600				regulator-boot-on;
601				regulator-min-microvolt = <1800000>;
602				regulator-max-microvolt = <1800000>;
603				regulator-name = "pldo6_s3";
604
605				regulator-state-mem {
606					regulator-on-in-suspend;
607					regulator-suspend-microvolt = <1800000>;
608				};
609			};
610
611			vdd_0v75_s3: nldo-reg1 {
612				regulator-always-on;
613				regulator-boot-on;
614				regulator-min-microvolt = <750000>;
615				regulator-max-microvolt = <750000>;
616				regulator-name = "vdd_0v75_s3";
617
618				regulator-state-mem {
619					regulator-on-in-suspend;
620					regulator-suspend-microvolt = <750000>;
621				};
622			};
623
624			vdd_ddr_pll_s0: nldo-reg2 {
625				regulator-always-on;
626				regulator-boot-on;
627				regulator-min-microvolt = <850000>;
628				regulator-max-microvolt = <850000>;
629				regulator-name = "vdd_ddr_pll_s0";
630
631				regulator-state-mem {
632					regulator-off-in-suspend;
633					regulator-suspend-microvolt = <850000>;
634				};
635			};
636
637			avdd_0v75_s0: nldo-reg3 {
638				regulator-always-on;
639				regulator-boot-on;
640				regulator-min-microvolt = <750000>;
641				regulator-max-microvolt = <750000>;
642				regulator-name = "avdd_0v75_s0";
643
644				regulator-state-mem {
645					regulator-off-in-suspend;
646				};
647			};
648
649			vdd_0v85_s0: nldo-reg4 {
650				regulator-always-on;
651				regulator-boot-on;
652				regulator-min-microvolt = <850000>;
653				regulator-max-microvolt = <850000>;
654				regulator-name = "vdd_0v85_s0";
655
656				regulator-state-mem {
657					regulator-off-in-suspend;
658				};
659			};
660
661			vdd_0v75_s0: nldo-reg5 {
662				regulator-always-on;
663				regulator-boot-on;
664				regulator-min-microvolt = <750000>;
665				regulator-max-microvolt = <750000>;
666				regulator-name = "vdd_0v75_s0";
667
668				regulator-state-mem {
669					regulator-off-in-suspend;
670				};
671			};
672		};
673	};
674};
675
676&tsadc {
677	status = "okay";
678};
679
680&u2phy0 {
681	status = "okay";
682};
683
684&u2phy0_otg {
685	status = "okay";
686};
687
688&u2phy1 {
689	status = "okay";
690};
691
692&u2phy1_otg {
693	status = "okay";
694};
695
696&u2phy3 {
697	status = "okay";
698};
699
700&u2phy3_host {
701	phy-supply = <&vcc5v0_host>;
702	status = "okay";
703};
704
705&uart2 {
706	pinctrl-0 = <&uart2m0_xfer>;
707	status = "okay";
708};
709
710&usbdp_phy1 {
711	status = "okay";
712};
713
714&usb_host1_ehci {
715	status = "okay";
716};
717
718&usb_host1_ohci {
719	status = "okay";
720};
721
722&usb_host1_xhci {
723	dr_mode = "host";
724	status = "okay";
725};
726