xref: /linux/arch/arm64/boot/dts/rockchip/rk3588-toybrick-x0.dts (revision 2e1b3cc9d7f790145a80cb705b168f05dab65df2)
1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
3 * Copyright (c) 2024 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 "rk3588.dtsi"
13
14/ {
15	model = "Rockchip Toybrick TB-RK3588X Board";
16	compatible = "rockchip,rk3588-toybrick-x0", "rockchip,rk3588";
17
18	aliases {
19		mmc0 = &sdhci;
20	};
21
22	chosen {
23		stdout-path = "serial2:1500000n8";
24	};
25
26	adc-keys {
27		compatible = "adc-keys";
28		io-channels = <&saradc 1>;
29		io-channel-names = "buttons";
30		keyup-threshold-microvolt = <1800000>;
31		poll-interval = <100>;
32
33		button-vol-up {
34			label = "Volume Up";
35			linux,code = <KEY_VOLUMEUP>;
36			press-threshold-microvolt = <17000>;
37		};
38
39		button-vol-down {
40			label = "Volume Down";
41			linux,code = <KEY_VOLUMEDOWN>;
42			press-threshold-microvolt = <417000>;
43		};
44
45		button-menu {
46			label = "Menu";
47			linux,code = <KEY_MENU>;
48			press-threshold-microvolt = <890000>;
49		};
50
51		button-escape {
52			label = "Escape";
53			linux,code = <KEY_ESC>;
54			press-threshold-microvolt = <1235000>;
55		};
56	};
57
58	backlight: backlight {
59		compatible = "pwm-backlight";
60		power-supply = <&vcc12v_dcin>;
61		pwms = <&pwm2 0 25000 0>;
62	};
63
64	pcie20_avdd0v85: pcie20-avdd0v85-regulator {
65		compatible = "regulator-fixed";
66		regulator-name = "pcie20_avdd0v85";
67		regulator-always-on;
68		regulator-boot-on;
69		regulator-min-microvolt = <850000>;
70		regulator-max-microvolt = <850000>;
71		vin-supply = <&vdd_0v85_s0>;
72	};
73
74	pcie20_avdd1v8: pcie20-avdd1v8-regulator {
75		compatible = "regulator-fixed";
76		regulator-name = "pcie20_avdd1v8";
77		regulator-always-on;
78		regulator-boot-on;
79		regulator-min-microvolt = <1800000>;
80		regulator-max-microvolt = <1800000>;
81		vin-supply = <&avcc_1v8_s0>;
82	};
83
84	pcie30_avdd0v75: pcie30-avdd0v75-regulator {
85		compatible = "regulator-fixed";
86		regulator-name = "pcie30_avdd0v75";
87		regulator-always-on;
88		regulator-boot-on;
89		regulator-min-microvolt = <750000>;
90		regulator-max-microvolt = <750000>;
91		vin-supply = <&avdd_0v75_s0>;
92	};
93
94	pcie30_avdd1v8: pcie30-avdd1v8-regulator {
95		compatible = "regulator-fixed";
96		regulator-name = "pcie30_avdd1v8";
97		regulator-always-on;
98		regulator-boot-on;
99		regulator-min-microvolt = <1800000>;
100		regulator-max-microvolt = <1800000>;
101		vin-supply = <&avcc_1v8_s0>;
102	};
103
104	vcc12v_dcin: vcc12v-dcin-regulator {
105		compatible = "regulator-fixed";
106		regulator-name = "vcc12v_dcin";
107		regulator-always-on;
108		regulator-boot-on;
109		regulator-min-microvolt = <12000000>;
110		regulator-max-microvolt = <12000000>;
111	};
112
113	vcc5v0_host: vcc5v0-host-regulator {
114		compatible = "regulator-fixed";
115		enable-active-high;
116		gpio = <&gpio4 RK_PB0 GPIO_ACTIVE_HIGH>;
117		pinctrl-names = "default";
118		pinctrl-0 = <&vcc5v0_host_en>;
119		regulator-name = "vcc5v0_host";
120		regulator-boot-on;
121		regulator-always-on;
122		regulator-min-microvolt = <5000000>;
123		regulator-max-microvolt = <5000000>;
124		vin-supply = <&vcc5v0_usb>;
125	};
126
127	vcc5v0_sys: vcc5v0-sys-regulator {
128		compatible = "regulator-fixed";
129		regulator-name = "vcc5v0_sys";
130		regulator-always-on;
131		regulator-boot-on;
132		regulator-min-microvolt = <5000000>;
133		regulator-max-microvolt = <5000000>;
134		vin-supply = <&vcc12v_dcin>;
135	};
136
137	vcc5v0_usbdcin: vcc5v0-usbdcin-regulator {
138		compatible = "regulator-fixed";
139		regulator-name = "vcc5v0_usbdcin";
140		regulator-always-on;
141		regulator-boot-on;
142		regulator-min-microvolt = <5000000>;
143		regulator-max-microvolt = <5000000>;
144		vin-supply = <&vcc12v_dcin>;
145	};
146
147	vcc5v0_usb: vcc5v0-usb-regulator {
148		compatible = "regulator-fixed";
149		regulator-name = "vcc5v0_usb";
150		regulator-always-on;
151		regulator-boot-on;
152		regulator-min-microvolt = <5000000>;
153		regulator-max-microvolt = <5000000>;
154		vin-supply = <&vcc5v0_usbdcin>;
155	};
156
157	vcc_1v1_nldo_s3: vcc-1v1-nldo-s3-regulator {
158		compatible = "regulator-fixed";
159		regulator-name = "vcc_1v1_nldo_s3";
160		regulator-always-on;
161		regulator-boot-on;
162		regulator-min-microvolt = <1100000>;
163		regulator-max-microvolt = <1100000>;
164		vin-supply = <&vcc5v0_sys>;
165	};
166};
167
168&combphy0_ps {
169	status = "okay";
170};
171
172&combphy2_psu {
173	status = "okay";
174};
175
176&cpu_b0 {
177	cpu-supply = <&vdd_cpu_big0_s0>;
178};
179
180&cpu_b1 {
181	cpu-supply = <&vdd_cpu_big0_s0>;
182};
183
184&cpu_b2 {
185	cpu-supply = <&vdd_cpu_big1_s0>;
186};
187
188&cpu_b3 {
189	cpu-supply = <&vdd_cpu_big1_s0>;
190};
191
192&cpu_l0 {
193	cpu-supply = <&vdd_cpu_lit_s0>;
194};
195
196&cpu_l1 {
197	cpu-supply = <&vdd_cpu_lit_s0>;
198};
199
200&cpu_l2 {
201	cpu-supply = <&vdd_cpu_lit_s0>;
202};
203
204&cpu_l3 {
205	cpu-supply = <&vdd_cpu_lit_s0>;
206};
207
208&gmac0 {
209	clock_in_out = "output";
210	phy-handle = <&rgmii_phy>;
211	phy-mode = "rgmii-rxid";
212	pinctrl-0 = <&gmac0_miim
213		     &gmac0_tx_bus2
214		     &gmac0_rx_bus2
215		     &gmac0_rgmii_clk
216		     &gmac0_rgmii_bus>;
217	pinctrl-names = "default";
218	rx_delay = <0x00>;
219	tx_delay = <0x43>;
220	status = "okay";
221};
222
223&i2c0 {
224	pinctrl-names = "default";
225	pinctrl-0 = <&i2c0m2_xfer>;
226	status = "okay";
227
228	vdd_cpu_big0_s0: regulator@42 {
229		compatible = "rockchip,rk8602";
230		reg = <0x42>;
231		fcs,suspend-voltage-selector = <1>;
232		regulator-name = "vdd_cpu_big0_s0";
233		regulator-always-on;
234		regulator-boot-on;
235		regulator-min-microvolt = <550000>;
236		regulator-max-microvolt = <1050000>;
237		regulator-ramp-delay = <2300>;
238		vin-supply = <&vcc5v0_sys>;
239
240		regulator-state-mem {
241			regulator-off-in-suspend;
242		};
243	};
244
245	vdd_cpu_big1_s0: regulator@43 {
246		compatible = "rockchip,rk8603", "rockchip,rk8602";
247		reg = <0x43>;
248		fcs,suspend-voltage-selector = <1>;
249		regulator-name = "vdd_cpu_big1_s0";
250		regulator-always-on;
251		regulator-boot-on;
252		regulator-min-microvolt = <550000>;
253		regulator-max-microvolt = <1050000>;
254		regulator-ramp-delay = <2300>;
255		vin-supply = <&vcc5v0_sys>;
256
257		regulator-state-mem {
258			regulator-off-in-suspend;
259		};
260	};
261};
262
263&i2c2 {
264	status = "okay";
265
266	hym8563: rtc@51 {
267		compatible = "haoyu,hym8563";
268		reg = <0x51>;
269		#clock-cells = <0>;
270		clock-output-names = "hym8563";
271		interrupt-parent = <&gpio0>;
272		interrupts = <RK_PD4 IRQ_TYPE_LEVEL_LOW>;
273		pinctrl-names = "default";
274		pinctrl-0 = <&hym8563_int>;
275		wakeup-source;
276	};
277};
278
279&mdio0 {
280	rgmii_phy: ethernet-phy@1 {
281		/* RTL8211F */
282		compatible = "ethernet-phy-id001c.c916";
283		reg = <0x1>;
284		pinctrl-names = "default";
285		pinctrl-0 = <&rtl8211f_rst>;
286		reset-assert-us = <20000>;
287		reset-deassert-us = <100000>;
288		reset-gpios = <&gpio4 RK_PB3 GPIO_ACTIVE_LOW>;
289	};
290};
291
292&pinctrl {
293	rtl8211f {
294		rtl8211f_rst: rtl8211f-rst {
295			rockchip,pins = <4 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>;
296		};
297
298	};
299
300	hym8563 {
301		hym8563_int: hym8563-int {
302			rockchip,pins = <0 RK_PD4 RK_FUNC_GPIO &pcfg_pull_up>;
303		};
304	};
305
306	usb {
307		vcc5v0_host_en: vcc5v0-host-en {
308			rockchip,pins = <4 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>;
309		};
310	};
311};
312
313&pwm2 {
314	status = "okay";
315};
316
317&saradc {
318	vref-supply = <&vcc_1v8_s0>;
319	status = "okay";
320};
321
322&sdhci {
323	bus-width = <8>;
324	mmc-hs400-1_8v;
325	mmc-hs400-enhanced-strobe;
326	no-sdio;
327	no-sd;
328	non-removable;
329	status = "okay";
330};
331
332&spi2 {
333	assigned-clocks = <&cru CLK_SPI2>;
334	assigned-clock-rates = <200000000>;
335	num-cs = <1>;
336	pinctrl-names = "default";
337	pinctrl-0 = <&spi2m2_cs0 &spi2m2_pins>;
338	status = "okay";
339
340	pmic@0 {
341		compatible = "rockchip,rk806";
342		reg = <0x0>;
343		gpio-controller;
344		#gpio-cells = <2>;
345		interrupt-parent = <&gpio0>;
346		interrupts = <7 IRQ_TYPE_LEVEL_LOW>;
347		pinctrl-names = "default";
348		pinctrl-0 = <&pmic_pins>, <&rk806_dvs1_null>,
349			    <&rk806_dvs2_null>, <&rk806_dvs3_null>;
350		spi-max-frequency = <1000000>;
351		system-power-controller;
352
353		vcc1-supply = <&vcc5v0_sys>;
354		vcc2-supply = <&vcc5v0_sys>;
355		vcc3-supply = <&vcc5v0_sys>;
356		vcc4-supply = <&vcc5v0_sys>;
357		vcc5-supply = <&vcc5v0_sys>;
358		vcc6-supply = <&vcc5v0_sys>;
359		vcc7-supply = <&vcc5v0_sys>;
360		vcc8-supply = <&vcc5v0_sys>;
361		vcc9-supply = <&vcc5v0_sys>;
362		vcc10-supply = <&vcc5v0_sys>;
363		vcc11-supply = <&vcc_2v0_pldo_s3>;
364		vcc12-supply = <&vcc5v0_sys>;
365		vcc13-supply = <&vcc_1v1_nldo_s3>;
366		vcc14-supply = <&vcc_1v1_nldo_s3>;
367		vcca-supply = <&vcc5v0_sys>;
368
369		rk806_dvs1_null: dvs1-null-pins {
370			pins = "gpio_pwrctrl1";
371			function = "pin_fun0";
372		};
373
374		rk806_dvs2_null: dvs2-null-pins {
375			pins = "gpio_pwrctrl2";
376			function = "pin_fun0";
377		};
378
379		rk806_dvs3_null: dvs3-null-pins {
380			pins = "gpio_pwrctrl3";
381			function = "pin_fun0";
382		};
383
384		regulators {
385			vdd_gpu_s0: vdd_gpu_mem_s0: dcdc-reg1 {
386				regulator-name = "vdd_gpu_s0";
387				regulator-boot-on;
388				regulator-enable-ramp-delay = <400>;
389				regulator-min-microvolt = <550000>;
390				regulator-max-microvolt = <950000>;
391				regulator-ramp-delay = <12500>;
392
393				regulator-state-mem {
394					regulator-off-in-suspend;
395				};
396			};
397
398			vdd_cpu_lit_s0: vdd_cpu_lit_mem_s0: dcdc-reg2 {
399				regulator-name = "vdd_cpu_lit_s0";
400				regulator-always-on;
401				regulator-boot-on;
402				regulator-min-microvolt = <550000>;
403				regulator-max-microvolt = <950000>;
404				regulator-ramp-delay = <12500>;
405
406				regulator-state-mem {
407					regulator-off-in-suspend;
408				};
409			};
410
411			vdd_log_s0: dcdc-reg3 {
412				regulator-name = "vdd_log_s0";
413				regulator-always-on;
414				regulator-boot-on;
415				regulator-min-microvolt = <675000>;
416				regulator-max-microvolt = <750000>;
417				regulator-ramp-delay = <12500>;
418
419				regulator-state-mem {
420					regulator-off-in-suspend;
421					regulator-suspend-microvolt = <750000>;
422				};
423			};
424
425			vdd_vdenc_s0: vdd_vdenc_mem_s0: dcdc-reg4 {
426				regulator-name = "vdd_vdenc_s0";
427				regulator-always-on;
428				regulator-boot-on;
429				regulator-min-microvolt = <550000>;
430				regulator-max-microvolt = <950000>;
431				regulator-ramp-delay = <12500>;
432
433				regulator-state-mem {
434					regulator-off-in-suspend;
435				};
436			};
437
438			vdd_ddr_s0: dcdc-reg5 {
439				regulator-name = "vdd_ddr_s0";
440				regulator-always-on;
441				regulator-boot-on;
442				regulator-min-microvolt = <675000>;
443				regulator-max-microvolt = <900000>;
444				regulator-ramp-delay = <12500>;
445
446				regulator-state-mem {
447					regulator-off-in-suspend;
448					regulator-suspend-microvolt = <850000>;
449				};
450			};
451
452			vdd2_ddr_s3: dcdc-reg6 {
453				regulator-name = "vdd2_ddr_s3";
454				regulator-always-on;
455				regulator-boot-on;
456
457				regulator-state-mem {
458					regulator-on-in-suspend;
459				};
460			};
461
462			vcc_2v0_pldo_s3: dcdc-reg7 {
463				regulator-name = "vdd_2v0_pldo_s3";
464				regulator-always-on;
465				regulator-boot-on;
466				regulator-min-microvolt = <2000000>;
467				regulator-max-microvolt = <2000000>;
468
469				regulator-state-mem {
470					regulator-on-in-suspend;
471					regulator-suspend-microvolt = <2000000>;
472				};
473			};
474
475			vcc_3v3_s3: dcdc-reg8 {
476				regulator-name = "vcc_3v3_s3";
477				regulator-always-on;
478				regulator-boot-on;
479				regulator-min-microvolt = <3300000>;
480				regulator-max-microvolt = <3300000>;
481
482				regulator-state-mem {
483					regulator-on-in-suspend;
484					regulator-suspend-microvolt = <3300000>;
485				};
486			};
487
488			vddq_ddr_s0: dcdc-reg9 {
489				regulator-name = "vddq_ddr_s0";
490				regulator-always-on;
491				regulator-boot-on;
492
493				regulator-state-mem {
494					regulator-off-in-suspend;
495				};
496			};
497
498			vcc_1v8_s3: dcdc-reg10 {
499				regulator-name = "vcc_1v8_s3";
500				regulator-always-on;
501				regulator-boot-on;
502				regulator-min-microvolt = <1800000>;
503				regulator-max-microvolt = <1800000>;
504
505				regulator-state-mem {
506					regulator-on-in-suspend;
507					regulator-suspend-microvolt = <1800000>;
508				};
509			};
510
511			avcc_1v8_s0: pldo-reg1 {
512				regulator-name = "avcc_1v8_s0";
513				regulator-always-on;
514				regulator-boot-on;
515				regulator-min-microvolt = <1800000>;
516				regulator-max-microvolt = <1800000>;
517
518				regulator-state-mem {
519					regulator-off-in-suspend;
520				};
521			};
522
523			vcc_1v8_s0: pldo-reg2 {
524				regulator-name = "vcc_1v8_s0";
525				regulator-always-on;
526				regulator-boot-on;
527				regulator-min-microvolt = <1800000>;
528				regulator-max-microvolt = <1800000>;
529
530				regulator-state-mem {
531					regulator-off-in-suspend;
532					regulator-suspend-microvolt = <1800000>;
533				};
534			};
535
536			avdd_1v2_s0: pldo-reg3 {
537				regulator-name = "avdd_1v2_s0";
538				regulator-always-on;
539				regulator-boot-on;
540				regulator-min-microvolt = <1200000>;
541				regulator-max-microvolt = <1200000>;
542
543				regulator-state-mem {
544					regulator-off-in-suspend;
545				};
546			};
547
548			vcc_3v3_s0: pldo-reg4 {
549				regulator-name = "vcc_3v3_s0";
550				regulator-always-on;
551				regulator-boot-on;
552				regulator-min-microvolt = <3300000>;
553				regulator-max-microvolt = <3300000>;
554
555				regulator-state-mem {
556					regulator-off-in-suspend;
557				};
558			};
559
560			vccio_sd_s0: pldo-reg5 {
561				regulator-name = "vccio_sd_s0";
562				regulator-always-on;
563				regulator-boot-on;
564				regulator-min-microvolt = <1800000>;
565				regulator-max-microvolt = <3300000>;
566
567				regulator-state-mem {
568					regulator-off-in-suspend;
569				};
570			};
571
572			pldo6_s3: pldo-reg6 {
573				regulator-name = "pldo6_s3";
574				regulator-always-on;
575				regulator-boot-on;
576				regulator-min-microvolt = <1800000>;
577				regulator-max-microvolt = <1800000>;
578
579				regulator-state-mem {
580					regulator-on-in-suspend;
581					regulator-suspend-microvolt = <1800000>;
582				};
583			};
584
585			vdd_0v75_s3: nldo-reg1 {
586				regulator-name = "vdd_0v75_s3";
587				regulator-always-on;
588				regulator-boot-on;
589				regulator-min-microvolt = <750000>;
590				regulator-max-microvolt = <750000>;
591
592				regulator-state-mem {
593					regulator-on-in-suspend;
594					regulator-suspend-microvolt = <750000>;
595				};
596			};
597
598			vdd_ddr_pll_s0: nldo-reg2 {
599				regulator-name = "vdd_ddr_pll_s0";
600				regulator-always-on;
601				regulator-boot-on;
602				regulator-min-microvolt = <850000>;
603				regulator-max-microvolt = <850000>;
604
605				regulator-state-mem {
606					regulator-off-in-suspend;
607					regulator-suspend-microvolt = <850000>;
608				};
609			};
610
611			avdd_0v75_s0: nldo-reg3 {
612				regulator-name = "avdd_0v75_s0";
613				regulator-always-on;
614				regulator-boot-on;
615				regulator-min-microvolt = <837500>;
616				regulator-max-microvolt = <837500>;
617
618				regulator-state-mem {
619					regulator-off-in-suspend;
620				};
621			};
622
623			vdd_0v85_s0: nldo-reg4 {
624				regulator-name = "vdd_0v85_s0";
625				regulator-always-on;
626				regulator-boot-on;
627				regulator-min-microvolt = <850000>;
628				regulator-max-microvolt = <850000>;
629
630				regulator-state-mem {
631					regulator-off-in-suspend;
632				};
633			};
634
635			vdd_0v75_s0: nldo-reg5 {
636				regulator-name = "vdd_0v75_s0";
637				regulator-always-on;
638				regulator-boot-on;
639				regulator-min-microvolt = <750000>;
640				regulator-max-microvolt = <750000>;
641
642				regulator-state-mem {
643					regulator-off-in-suspend;
644				};
645			};
646		};
647	};
648};
649
650&tsadc {
651	status = "okay";
652};
653
654&u2phy2 {
655	status = "okay";
656};
657
658&u2phy2_host {
659	phy-supply = <&vcc5v0_host>;
660	status = "okay";
661};
662
663&u2phy3 {
664	status = "okay";
665};
666
667&u2phy3_host {
668	phy-supply = <&vcc5v0_host>;
669	status = "okay";
670};
671
672&uart2 {
673	pinctrl-0 = <&uart2m0_xfer>;
674	status = "okay";
675};
676
677&usb_host0_ehci {
678	status = "okay";
679};
680
681&usb_host0_ohci {
682	status = "okay";
683};
684
685&usb_host1_ehci {
686	status = "okay";
687};
688
689&usb_host1_ohci {
690	status = "okay";
691};
692