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