xref: /linux/arch/arm64/boot/dts/rockchip/rk3582-radxa-e52c.dts (revision db4a3f0fbedb0398f77b9047e8b8bb2b49f355bb)
1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
3 * Copyright (c) 2024 Radxa Computer (Shenzhen) Co., Ltd.
4 */
5
6/dts-v1/;
7
8#include <dt-bindings/gpio/gpio.h>
9#include <dt-bindings/input/input.h>
10#include <dt-bindings/leds/common.h>
11#include <dt-bindings/pinctrl/rockchip.h>
12#include <dt-bindings/pwm/pwm.h>
13#include "rk3588s.dtsi"
14
15/ {
16	model = "Radxa E52C";
17	compatible = "radxa,e52c", "rockchip,rk3582", "rockchip,rk3588s";
18
19	aliases {
20		mmc0 = &sdhci;
21		mmc1 = &sdmmc;
22	};
23
24	chosen {
25		stdout-path = "serial2:1500000n8";
26	};
27
28	keys-0 {
29		compatible = "adc-keys";
30		io-channels = <&saradc 0>;
31		io-channel-names = "buttons";
32		keyup-threshold-microvolt = <18000>;
33		poll-interval = <100>;
34
35		button-0 {
36			label = "Maskrom";
37			linux,code = <KEY_VENDOR>;
38			press-threshold-microvolt = <0>;
39		};
40	};
41
42	keys-1 {
43		compatible = "gpio-keys";
44		pinctrl-names = "default";
45		pinctrl-0 = <&pwm15_ir_m1>;
46
47		button-1 {
48			label = "User";
49			gpios = <&gpio4 RK_PB3 GPIO_ACTIVE_LOW>;
50			linux,code = <BTN_0>;
51			wakeup-source;
52		};
53	};
54
55	leds-0 {
56		compatible = "gpio-leds";
57		pinctrl-names = "default";
58		pinctrl-0 = <&power_led>;
59
60		led-0 {
61			color = <LED_COLOR_ID_GREEN>;
62			default-state = "on";
63			function = LED_FUNCTION_STATUS;
64			gpios = <&gpio3 RK_PC4 GPIO_ACTIVE_HIGH>;
65			linux,default-trigger = "heartbeat";
66		};
67	};
68
69	leds-1 {
70		compatible = "pwm-leds";
71
72		led-1 {
73			color = <LED_COLOR_ID_GREEN>;
74			default-state = "off";
75			function = LED_FUNCTION_LAN;
76			linux,default-trigger = "netdev";
77			pwms = <&pwm14 0 1000000 PWM_POLARITY_INVERTED>;
78			max-brightness = <255>;
79		};
80
81		led-2 {
82			color = <LED_COLOR_ID_GREEN>;
83			default-state = "off";
84			function = LED_FUNCTION_WAN;
85			linux,default-trigger = "netdev";
86			pwms = <&pwm11 0 1000000 PWM_POLARITY_INVERTED>;
87			max-brightness = <255>;
88		};
89	};
90
91	vcc_1v1_nldo_s3: regulator-1v1 {
92		compatible = "regulator-fixed";
93		regulator-name = "vcc_1v1_nldo_s3";
94		regulator-always-on;
95		regulator-boot-on;
96		regulator-min-microvolt = <1100000>;
97		regulator-max-microvolt = <1100000>;
98		vin-supply = <&vcc_sysin>;
99	};
100
101	vcc_3v3_s0: regulator-3v3-1 {
102		compatible = "regulator-fixed";
103		regulator-name = "vcc_3v3_s0";
104		regulator-always-on;
105		regulator-boot-on;
106		regulator-min-microvolt = <3300000>;
107		regulator-max-microvolt = <3300000>;
108		vin-supply = <&vcc_3v3_s3>;
109	};
110
111	vcca: regulator-4v0 {
112		compatible = "regulator-fixed";
113		regulator-name = "vcca";
114		regulator-always-on;
115		regulator-boot-on;
116		regulator-min-microvolt = <4000000>;
117		regulator-max-microvolt = <4000000>;
118		vin-supply = <&vcc_sysin>;
119	};
120
121	vcc5v0_usb_otg0: regulator-5v0-0 {
122		compatible = "regulator-fixed";
123		enable-active-high;
124		gpio = <&gpio0 RK_PD4 GPIO_ACTIVE_HIGH>;
125		pinctrl-names = "default";
126		pinctrl-0 = <&usb_otg_pwren_h>;
127		regulator-name = "vcc5v0_usb_otg0";
128		regulator-min-microvolt = <5000000>;
129		regulator-max-microvolt = <5000000>;
130		vin-supply = <&vcc_sysin>;
131	};
132
133	vcc_5v0: regulator-5v0-1 {
134		compatible = "regulator-fixed";
135		enable-active-high;
136		gpio = <&gpio4 RK_PA3 GPIO_ACTIVE_HIGH>;
137		pinctrl-names = "default";
138		pinctrl-0 = <&vcc_5v0_pwren_h>;
139		regulator-name = "vcc_5v0";
140		regulator-min-microvolt = <5000000>;
141		regulator-max-microvolt = <5000000>;
142		vin-supply = <&vcc_sysin>;
143	};
144
145	vcc_sysin: regulator-5v0-2 {
146		compatible = "regulator-fixed";
147		regulator-name = "vcc_sysin";
148		regulator-always-on;
149		regulator-boot-on;
150		regulator-min-microvolt = <5000000>;
151		regulator-max-microvolt = <5000000>;
152	};
153};
154
155&combphy0_ps {
156	status = "okay";
157};
158
159&combphy2_psu {
160	status = "okay";
161};
162
163/*
164 * In the Rockchip RK3582 SoC, some CPU cores end up disabled
165 * and unused because they're marked in the efuses as defective.
166 * The disabling in the DT is performed by the boot loader.
167 */
168&cpu_b0 {
169	cpu-supply = <&vdd_cpu_big0_s0>;
170};
171
172&cpu_b1 {
173	cpu-supply = <&vdd_cpu_big0_s0>;
174};
175
176&cpu_b2 {
177	cpu-supply = <&vdd_cpu_big1_s0>;
178};
179
180&cpu_b3 {
181	cpu-supply = <&vdd_cpu_big1_s0>;
182};
183
184&cpu_l0 {
185	cpu-supply = <&vdd_cpu_lit_s0>;
186};
187
188&cpu_l1 {
189	cpu-supply = <&vdd_cpu_lit_s0>;
190};
191
192&cpu_l2 {
193	cpu-supply = <&vdd_cpu_lit_s0>;
194};
195
196&cpu_l3 {
197	cpu-supply = <&vdd_cpu_lit_s0>;
198};
199
200&i2c0 {
201	pinctrl-names = "default";
202	pinctrl-0 = <&i2c0m2_xfer>;
203	status = "okay";
204
205	vdd_cpu_big0_s0: regulator@42 {
206		compatible = "rockchip,rk8602";
207		reg = <0x42>;
208		fcs,suspend-voltage-selector = <1>;
209		regulator-name = "vdd_cpu_big0_s0";
210		regulator-always-on;
211		regulator-boot-on;
212		regulator-min-microvolt = <550000>;
213		regulator-max-microvolt = <1050000>;
214		regulator-ramp-delay = <2300>;
215		vin-supply = <&vcc_sysin>;
216
217		regulator-state-mem {
218			regulator-off-in-suspend;
219		};
220	};
221
222	vdd_cpu_big1_s0: regulator@43 {
223		compatible = "rockchip,rk8603", "rockchip,rk8602";
224		reg = <0x43>;
225		fcs,suspend-voltage-selector = <1>;
226		regulator-name = "vdd_cpu_big1_s0";
227		regulator-always-on;
228		regulator-boot-on;
229		regulator-min-microvolt = <550000>;
230		regulator-max-microvolt = <1050000>;
231		regulator-ramp-delay = <2300>;
232		vin-supply = <&vcc_sysin>;
233
234		regulator-state-mem {
235			regulator-off-in-suspend;
236		};
237	};
238
239	eeprom@50 {
240		compatible = "belling,bl24c16a", "atmel,24c16";
241		reg = <0x50>;
242		pagesize = <16>;
243		read-only;
244		vcc-supply = <&vcc_3v3_pmu>;
245	};
246};
247
248&i2c2 {
249	status = "okay";
250
251	vdd_npu_s0: regulator@42 {
252		compatible = "rockchip,rk8602";
253		reg = <0x42>;
254		fcs,suspend-voltage-selector = <1>;
255		regulator-name = "vdd_npu_s0";
256		regulator-always-on;
257		regulator-boot-on;
258		regulator-min-microvolt = <550000>;
259		regulator-max-microvolt = <950000>;
260		regulator-ramp-delay = <2300>;
261		vin-supply = <&vcc_sysin>;
262
263		regulator-state-mem {
264			regulator-off-in-suspend;
265		};
266	};
267};
268
269&i2c5 {
270	pinctrl-names = "default";
271	pinctrl-0 = <&i2c5m2_xfer>;
272	status = "okay";
273
274	rtc@51 {
275		compatible = "haoyu,hym8563";
276		reg = <0x51>;
277		#clock-cells = <0>;
278		clock-output-names = "rtcic_32kout";
279		interrupt-parent = <&gpio0>;
280		interrupts = <RK_PB0 IRQ_TYPE_LEVEL_LOW>;
281		pinctrl-names = "default";
282		pinctrl-0 = <&rtc_int_l>;
283		wakeup-source;
284	};
285};
286
287&pcie2x1l1 {
288	pinctrl-names = "default";
289	pinctrl-0 = <&pcie20x1_1_perstn_m1>;
290	reset-gpios = <&gpio4 RK_PA2 GPIO_ACTIVE_HIGH>;
291	vpcie3v3-supply = <&vcc_3v3_s3>;
292	status = "okay";
293};
294
295&pcie2x1l2 {
296	pinctrl-names = "default";
297	pinctrl-0 = <&pcie20x1_2_perstn_m0>;
298	reset-gpios = <&gpio3 RK_PD1 GPIO_ACTIVE_HIGH>;
299	vpcie3v3-supply = <&vcc_3v3_s3>;
300	status = "okay";
301};
302
303&pinctrl {
304	keys {
305		pwm15_ir_m1: pwm15-ir-m1 {
306			rockchip,pins = <4 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>;
307		};
308	};
309
310	leds {
311		power_led: power-led {
312			rockchip,pins = <3 RK_PC4 RK_FUNC_GPIO &pcfg_pull_none>;
313		};
314	};
315
316	pcie {
317		pcie20x1_1_perstn_m1: pcie-1 {
318			rockchip,pins = <4 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>;
319		};
320
321		pcie20x1_2_perstn_m0: pcie-2 {
322			rockchip,pins = <3 RK_PD1 RK_FUNC_GPIO &pcfg_pull_none>;
323		};
324	};
325
326	regulators {
327		vcc_5v0_pwren_h: vcc-5v0-pwren-h {
328			rockchip,pins = <4 RK_PA3 RK_FUNC_GPIO &pcfg_pull_none>;
329		};
330	};
331
332	rtc {
333		rtc_int_l: rtc-int-l {
334			rockchip,pins = <0 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>;
335		};
336	};
337
338	usb {
339		usb_otg_pwren_h: usb-otg-pwren-h {
340			rockchip,pins = <0 RK_PD4 RK_FUNC_GPIO &pcfg_pull_none>;
341		};
342	};
343};
344
345&pwm11 {
346	pinctrl-names = "default";
347	pinctrl-0 = <&pwm11m1_pins>;
348	status = "okay";
349};
350
351&pwm14 {
352	pinctrl-names = "default";
353	pinctrl-0 = <&pwm14m1_pins>;
354	status = "okay";
355};
356
357&saradc {
358	vref-supply = <&vcca_1v8_s0>;
359	status = "okay";
360};
361
362&sdhci {
363	bus-width = <8>;
364	cap-mmc-highspeed;
365	mmc-hs400-1_8v;
366	mmc-hs400-enhanced-strobe;
367	no-sd;
368	no-sdio;
369	non-removable;
370	vmmc-supply = <&vcc_3v3_s0>;
371	vqmmc-supply = <&vcc_1v8_s3>;
372	status = "okay";
373};
374
375&sdmmc {
376	bus-width = <4>;
377	cap-mmc-highspeed;
378	cap-sd-highspeed;
379	cd-gpios = <&gpio0 RK_PA4 GPIO_ACTIVE_LOW>;
380	disable-wp;
381	no-sdio;
382	sd-uhs-sdr104;
383	vmmc-supply = <&vcc_3v3_s3>;
384	vqmmc-supply = <&vccio_sd_s0>;
385	status = "okay";
386};
387
388&spi2 {
389	status = "okay";
390	assigned-clocks = <&cru CLK_SPI2>;
391	assigned-clock-rates = <200000000>;
392	num-cs = <1>;
393	pinctrl-names = "default";
394	pinctrl-0 = <&spi2m2_cs0 &spi2m2_pins>;
395
396	pmic@0 {
397		compatible = "rockchip,rk806";
398		reg = <0>;
399		gpio-controller;
400		#gpio-cells = <2>;
401		interrupt-parent = <&gpio0>;
402		interrupts = <7 IRQ_TYPE_LEVEL_LOW>;
403		pinctrl-names = "default";
404		pinctrl-0 = <&pmic_pins>, <&rk806_dvs1_null>,
405			    <&rk806_dvs2_null>, <&rk806_dvs3_null>;
406		spi-max-frequency = <1000000>;
407		system-power-controller;
408
409		vcc1-supply = <&vcc_sysin>;
410		vcc2-supply = <&vcc_sysin>;
411		vcc3-supply = <&vcc_sysin>;
412		vcc4-supply = <&vcc_sysin>;
413		vcc5-supply = <&vcc_sysin>;
414		vcc6-supply = <&vcc_sysin>;
415		vcc7-supply = <&vcc_sysin>;
416		vcc8-supply = <&vcc_sysin>;
417		vcc9-supply = <&vcc_sysin>;
418		vcc10-supply = <&vcc_sysin>;
419		vcc11-supply = <&vcc_2v0_pldo_s3>;
420		vcc12-supply = <&vcc_sysin>;
421		vcc13-supply = <&vcc_1v1_nldo_s3>;
422		vcc14-supply = <&vcc_1v1_nldo_s3>;
423		vcca-supply = <&vcca>;
424
425		rk806_dvs1_null: dvs1-null-pins {
426			pins = "gpio_pwrctrl1";
427			function = "pin_fun0";
428		};
429
430		rk806_dvs2_null: dvs2-null-pins {
431			pins = "gpio_pwrctrl2";
432			function = "pin_fun0";
433		};
434
435		rk806_dvs3_null: dvs3-null-pins {
436			pins = "gpio_pwrctrl3";
437			function = "pin_fun0";
438		};
439
440		regulators {
441			vdd_gpu_s0: dcdc-reg1 {
442				regulator-name = "vdd_gpu_s0";
443				regulator-boot-on;
444				regulator-min-microvolt = <550000>;
445				regulator-max-microvolt = <950000>;
446				regulator-ramp-delay = <12500>;
447				regulator-enable-ramp-delay = <400>;
448
449				regulator-state-mem {
450					regulator-off-in-suspend;
451				};
452			};
453
454			vdd_cpu_lit_s0: dcdc-reg2 {
455				regulator-name = "vdd_cpu_lit_s0";
456				regulator-always-on;
457				regulator-boot-on;
458				regulator-min-microvolt = <550000>;
459				regulator-max-microvolt = <950000>;
460				regulator-ramp-delay = <12500>;
461
462				regulator-state-mem {
463					regulator-off-in-suspend;
464				};
465			};
466
467			vdd_logic_s0: dcdc-reg3 {
468				regulator-name = "vdd_logic_s0";
469				regulator-always-on;
470				regulator-boot-on;
471				regulator-min-microvolt = <675000>;
472				regulator-max-microvolt = <750000>;
473				regulator-ramp-delay = <12500>;
474
475				regulator-state-mem {
476					regulator-on-in-suspend;
477					regulator-suspend-microvolt = <750000>;
478				};
479			};
480
481			vdd_vdenc_s0: dcdc-reg4 {
482				regulator-name = "vdd_vdenc_s0";
483				regulator-always-on;
484				regulator-boot-on;
485				regulator-min-microvolt = <550000>;
486				regulator-max-microvolt = <950000>;
487				regulator-ramp-delay = <12500>;
488
489				regulator-state-mem {
490					regulator-off-in-suspend;
491				};
492			};
493
494			vdd_ddr_s0: dcdc-reg5 {
495				regulator-name = "vdd_ddr_s0";
496				regulator-always-on;
497				regulator-boot-on;
498				regulator-min-microvolt = <675000>;
499				regulator-max-microvolt = <900000>;
500				regulator-ramp-delay = <12500>;
501
502				regulator-state-mem {
503					regulator-off-in-suspend;
504					regulator-suspend-microvolt = <850000>;
505				};
506			};
507
508			vdd2_ddr_s3: dcdc-reg6 {
509				regulator-name = "vdd2_ddr_s3";
510				regulator-always-on;
511				regulator-boot-on;
512
513				regulator-state-mem {
514					regulator-on-in-suspend;
515				};
516			};
517
518			vcc_2v0_pldo_s3: dcdc-reg7 {
519				regulator-name = "vcc_2v0_pldo_s3";
520				regulator-always-on;
521				regulator-boot-on;
522				regulator-min-microvolt = <2000000>;
523				regulator-max-microvolt = <2000000>;
524
525				regulator-state-mem {
526					regulator-on-in-suspend;
527					regulator-suspend-microvolt = <2000000>;
528				};
529			};
530
531			vcc_3v3_s3: vcc_3v3_pmu: dcdc-reg8 {
532				regulator-name = "vcc_3v3_s3";
533				regulator-always-on;
534				regulator-boot-on;
535				regulator-min-microvolt = <3300000>;
536				regulator-max-microvolt = <3300000>;
537
538				regulator-state-mem {
539					regulator-on-in-suspend;
540					regulator-suspend-microvolt = <3300000>;
541				};
542			};
543
544			vddq_ddr_s0: dcdc-reg9 {
545				regulator-name = "vddq_ddr_s0";
546				regulator-always-on;
547				regulator-boot-on;
548
549				regulator-state-mem {
550					regulator-off-in-suspend;
551				};
552			};
553
554			vcc_1v8_s3: dcdc-reg10 {
555				regulator-name = "vcc_1v8_s3";
556				regulator-always-on;
557				regulator-boot-on;
558				regulator-min-microvolt = <1800000>;
559				regulator-max-microvolt = <1800000>;
560
561				regulator-state-mem {
562					regulator-on-in-suspend;
563					regulator-suspend-microvolt = <1800000>;
564				};
565			};
566
567			vcc_1v8_s0: pldo-reg1 {
568				regulator-name = "vcc_1v8_s0";
569				regulator-always-on;
570				regulator-boot-on;
571				regulator-min-microvolt = <1800000>;
572				regulator-max-microvolt = <1800000>;
573
574				regulator-state-mem {
575					regulator-on-in-suspend;
576					regulator-suspend-microvolt = <1800000>;
577				};
578			};
579
580			vcca_1v8_s0: pldo-reg2 {
581				regulator-name = "vcca_1v8_s0";
582				regulator-always-on;
583				regulator-boot-on;
584				regulator-min-microvolt = <1800000>;
585				regulator-max-microvolt = <1800000>;
586
587				regulator-state-mem {
588					regulator-on-in-suspend;
589					regulator-suspend-microvolt = <1800000>;
590				};
591			};
592
593			vdda_1v2_s0: pldo-reg3 {
594				regulator-name = "vdda_1v2_s0";
595				regulator-always-on;
596				regulator-boot-on;
597				regulator-min-microvolt = <1200000>;
598				regulator-max-microvolt = <1200000>;
599
600				regulator-state-mem {
601					regulator-off-in-suspend;
602				};
603			};
604
605			vcca_3v3_s0: pldo-reg4 {
606				regulator-name = "vcca_3v3_s0";
607				regulator-always-on;
608				regulator-boot-on;
609				regulator-min-microvolt = <3300000>;
610				regulator-max-microvolt = <3300000>;
611
612				regulator-state-mem {
613					regulator-on-in-suspend;
614					regulator-suspend-microvolt = <3300000>;
615				};
616			};
617
618			vccio_sd_s0: pldo-reg5 {
619				regulator-name = "vccio_sd_s0";
620				regulator-always-on;
621				regulator-boot-on;
622				regulator-min-microvolt = <1800000>;
623				regulator-max-microvolt = <3300000>;
624
625				regulator-state-mem {
626					regulator-off-in-suspend;
627				};
628			};
629
630			pldo6_s3: pldo-reg6 {
631				regulator-name = "pldo6_s3";
632				regulator-always-on;
633				regulator-boot-on;
634				regulator-min-microvolt = <1800000>;
635				regulator-max-microvolt = <1800000>;
636
637				regulator-state-mem {
638					regulator-on-in-suspend;
639					regulator-suspend-microvolt = <1800000>;
640				};
641			};
642
643			vdd_0v75_s3: nldo-reg1 {
644				regulator-name = "vdd_0v75_s3";
645				regulator-always-on;
646				regulator-boot-on;
647				regulator-min-microvolt = <750000>;
648				regulator-max-microvolt = <750000>;
649
650				regulator-state-mem {
651					regulator-on-in-suspend;
652					regulator-suspend-microvolt = <750000>;
653				};
654			};
655
656			vdda_ddr_pll_s0: nldo-reg2 {
657				regulator-name = "vdda_ddr_pll_s0";
658				regulator-always-on;
659				regulator-boot-on;
660				regulator-min-microvolt = <850000>;
661				regulator-max-microvolt = <850000>;
662
663				regulator-state-mem {
664					regulator-on-in-suspend;
665					regulator-suspend-microvolt = <850000>;
666				};
667			};
668
669			vdda_0v75_s0: nldo-reg3 {
670				regulator-name = "vdda_0v75_s0";
671				regulator-always-on;
672				regulator-boot-on;
673				regulator-min-microvolt = <750000>;
674				regulator-max-microvolt = <750000>;
675
676				regulator-state-mem {
677					regulator-on-in-suspend;
678					regulator-suspend-microvolt = <750000>;
679				};
680			};
681
682			vdda_0v85_s0: nldo-reg4 {
683				regulator-name = "vdda_0v85_s0";
684				regulator-always-on;
685				regulator-boot-on;
686				regulator-min-microvolt = <850000>;
687				regulator-max-microvolt = <850000>;
688
689				regulator-state-mem {
690					regulator-off-in-suspend;
691				};
692			};
693
694			vdd_0v75_s0: nldo-reg5 {
695				regulator-name = "vdd_0v75_s0";
696				regulator-always-on;
697				regulator-boot-on;
698				regulator-min-microvolt = <750000>;
699				regulator-max-microvolt = <750000>;
700
701				regulator-state-mem {
702					regulator-off-in-suspend;
703				};
704			};
705		};
706	};
707};
708
709&tsadc {
710	status = "okay";
711};
712
713&u2phy0 {
714	status = "okay";
715};
716
717&u2phy0_otg {
718	phy-supply = <&vcc5v0_usb_otg0>;
719	status = "okay";
720};
721
722&uart2 {
723	pinctrl-0 = <&uart2m0_xfer>;
724	status = "okay";
725};
726
727&usb_host0_xhci {
728	dr_mode = "host";
729	status = "okay";
730};
731
732&usbdp_phy0 {
733	status = "okay";
734};
735