1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
3 * Copyright (c) 2023 Theobroma Systems Design und Consulting GmbH
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/usb/pd.h>
12 #include "rk3588.dtsi"
15 model = "Theobroma Systems RK3588-SBC Jaguar";
16 compatible = "tsd,rk3588-jaguar", "rockchip,rk3588";
19 compatible = "adc-keys";
20 io-channels = <&saradc 0>;
21 io-channel-names = "buttons";
22 keyup-threshold-microvolt = <1800000>;
23 poll-interval = <100>;
25 /* Can be controlled through SW2 but also GPIO1 on CP2102 on P20 */
27 label = "BIOS_DISABLE";
28 linux,code = <KEY_VENDOR>;
29 press-threshold-microvolt = <0>;
41 stdout-path = "serial2:115200n8";
44 /* DCIN is 12-24V but standard is 12V */
45 dc_12v: dc-12v-regulator {
46 compatible = "regulator-fixed";
47 regulator-name = "dc_12v";
50 regulator-min-microvolt = <12000000>;
51 regulator-max-microvolt = <12000000>;
54 emmc_pwrseq: emmc-pwrseq {
55 compatible = "mmc-pwrseq-emmc";
56 pinctrl-0 = <&emmc_reset>;
57 pinctrl-names = "default";
58 reset-gpios = <&gpio2 RK_PA3 GPIO_ACTIVE_HIGH>;
62 compatible = "gpio-leds";
63 pinctrl-names = "default";
64 pinctrl-0 = <&led1_pin>;
68 gpios = <&gpio1 RK_PD4 GPIO_ACTIVE_HIGH>;
69 function = LED_FUNCTION_HEARTBEAT;
70 linux,default-trigger = "heartbeat";
71 color = <LED_COLOR_ID_AMBER>;
76 compatible = "pps-gpio";
77 gpios = <&gpio0 RK_PD5 GPIO_ACTIVE_HIGH>;
80 vcc_1v1_nldo_s3: vcc-1v1-nldo-s3-regulator {
81 compatible = "regulator-fixed";
82 regulator-name = "vcc_1v1_nldo_s3";
85 regulator-min-microvolt = <1100000>;
86 regulator-max-microvolt = <1100000>;
87 vin-supply = <&vcc5v0_sys>;
90 vcc_1v2_s3: vcc-1v2-s3-regulator {
91 compatible = "regulator-fixed";
92 regulator-name = "vcc_1v2_s3";
95 regulator-min-microvolt = <1200000>;
96 regulator-max-microvolt = <1200000>;
97 vin-supply = <&vcc5v0_sys>;
100 /* Exposed on P14 and P15 */
101 vcc_2v8_s3: vcc-2v8-s3-regulator {
102 compatible = "regulator-fixed";
103 regulator-name = "vcc_2v8_s3";
106 regulator-min-microvolt = <2800000>;
107 regulator-max-microvolt = <2800000>;
108 vin-supply = <&vcc_3v3_s3>;
111 vcc_5v0_usb_a: vcc-5v0-usb-a-regulator {
112 compatible = "regulator-fixed";
113 regulator-name = "usb_a_vcc";
114 regulator-min-microvolt = <5000000>;
115 regulator-max-microvolt = <5000000>;
116 vin-supply = <&vcc5v0_sys>;
117 gpio = <&gpio1 RK_PB4 GPIO_ACTIVE_HIGH>;
121 vcc_5v0_usb_c1: vcc-5v0-usb-c1-regulator {
122 compatible = "regulator-fixed";
123 regulator-name = "5v_usbc1";
124 regulator-min-microvolt = <5000000>;
125 regulator-max-microvolt = <5000000>;
126 vin-supply = <&vcc5v0_usb>;
127 gpio = <&gpio4 RK_PB5 GPIO_ACTIVE_HIGH>;
131 vcc_5v0_usb_c2: vcc-5v0-usb-c2-regulator {
132 compatible = "regulator-fixed";
133 regulator-name = "5v_usbc2";
134 regulator-min-microvolt = <5000000>;
135 regulator-max-microvolt = <5000000>;
136 vin-supply = <&vcc5v0_usb>;
137 gpio = <&gpio4 RK_PB6 GPIO_ACTIVE_HIGH>;
141 vcc3v3_mdot2: vcc3v3-mdot2-regulator {
142 compatible = "regulator-fixed";
143 regulator-name = "vcc3v3_mdot2";
146 regulator-min-microvolt = <3300000>;
147 regulator-max-microvolt = <3300000>;
148 vin-supply = <&dc_12v>;
151 vcc5v0_sys: vcc5v0-sys-regulator {
152 compatible = "regulator-fixed";
153 regulator-name = "vcc5v0_sys";
156 regulator-min-microvolt = <5000000>;
157 regulator-max-microvolt = <5000000>;
158 vin-supply = <&dc_12v>;
161 vcc5v0_usb: vcc5v0-usb-regulator {
162 compatible = "regulator-fixed";
163 regulator-name = "vcc5v0_usb";
166 regulator-min-microvolt = <5000000>;
167 regulator-max-microvolt = <5000000>;
168 vin-supply = <&vcc5v0_sys>;
177 cpu-supply = <&vdd_cpu_big0_s0>;
181 cpu-supply = <&vdd_cpu_big0_s0>;
185 cpu-supply = <&vdd_cpu_big1_s0>;
189 cpu-supply = <&vdd_cpu_big1_s0>;
193 cpu-supply = <&vdd_cpu_lit_s0>;
197 cpu-supply = <&vdd_cpu_lit_s0>;
201 cpu-supply = <&vdd_cpu_lit_s0>;
205 cpu-supply = <&vdd_cpu_lit_s0>;
209 clock_in_out = "output";
210 phy-handle = <&rgmii_phy>;
212 phy-supply = <&vcc_1v2_s3>;
213 pinctrl-names = "default";
214 pinctrl-0 = <&gmac0_miim
223 snps,reset-gpio = <&gpio4 RK_PC3 GPIO_ACTIVE_LOW>;
224 snps,reset-active-low;
225 snps,reset-delays-us = <0 10000 100000>;
231 mdot2e-w-disable1-n-hog {
232 gpios = <RK_PB1 GPIO_ACTIVE_LOW>;
234 line-name = "m.2 E-key W_DISABLE1#";
240 mdot2e-w-disable2-n-hog {
241 gpios = <RK_PC1 GPIO_ACTIVE_LOW>;
243 line-name = "m.2 E-key W_DISABLE2#";
249 pinctrl-0 = <&i2c0m2_xfer>;
253 compatible = "ti,amc6821";
257 vdd_npu_s0: regulator@42 {
258 compatible = "rockchip,rk8602";
260 fcs,suspend-voltage-selector = <1>;
261 regulator-name = "vdd_npu_s0";
264 regulator-min-microvolt = <550000>;
265 regulator-max-microvolt = <950000>;
266 regulator-ramp-delay = <2300>;
267 vin-supply = <&vcc5v0_sys>;
269 regulator-state-mem {
270 regulator-off-in-suspend;
274 vdd_cpu_big1_s0: regulator@43 {
275 compatible = "rockchip,rk8603", "rockchip,rk8602";
277 fcs,suspend-voltage-selector = <1>;
278 regulator-name = "vdd_cpu_big1_s0";
281 regulator-min-microvolt = <550000>;
282 regulator-max-microvolt = <1050000>;
283 regulator-ramp-delay = <2300>;
284 vin-supply = <&vcc5v0_sys>;
286 regulator-state-mem {
287 regulator-off-in-suspend;
292 compatible = "isil,isl1208";
298 pinctrl-0 = <&i2c1m4_xfer>;
302 pinctrl-0 = <&i2c6m4_xfer>;
308 /* SE050 Secure Element at 0x48; GPIO1_A4 for enable pin */
312 compatible = "st,24c04", "atmel,24c04";
315 vcc-supply = <&vcc_3v3_s3>;
320 pinctrl-0 = <&i2c8m2_xfer>;
323 vdd_cpu_big0_s0: regulator@42 {
324 compatible = "rockchip,rk8602";
326 fcs,suspend-voltage-selector = <1>;
327 regulator-name = "vdd_cpu_big0_s0";
330 regulator-min-microvolt = <550000>;
331 regulator-max-microvolt = <1050000>;
332 regulator-ramp-delay = <2300>;
333 vin-supply = <&vcc5v0_sys>;
335 regulator-state-mem {
336 regulator-off-in-suspend;
342 rgmii_phy: ethernet-phy@6 {
343 /* KSZ9031 or KSZ9131 */
344 compatible = "ethernet-phy-ieee802.3-c22";
346 clocks = <&cru REFCLKO25M_ETH0_OUT>;
351 reset-gpios = <&gpio4 RK_PB3 GPIO_ACTIVE_HIGH>; /* WIFI_PERST0# */
352 vpcie3v3-supply = <&vcc3v3_mdot2>;
358 emmc_reset: emmc-reset {
359 rockchip,pins = <2 RK_PA3 RK_FUNC_GPIO &pcfg_pull_none>;
364 eth_reset: eth-reset {
365 rockchip,pins = <4 RK_PC3 RK_FUNC_GPIO &pcfg_pull_none>;
371 rockchip,pins = <1 RK_PD4 RK_FUNC_GPIO &pcfg_pull_none>;
377 vref-supply = <&vcc_1v8_s0>;
387 mmc-hs400-enhanced-strobe;
388 mmc-pwrseq = <&emmc_pwrseq>;
392 pinctrl-names = "default";
393 pinctrl-0 = <&emmc_bus8 &emmc_cmd &emmc_clk &emmc_data_strobe>;
395 vmmc-supply = <&vcc_3v3_s3>;
396 vqmmc-supply = <&vcc_1v8_s3>;
405 max-frequency = <150000000>;
406 pinctrl-names = "default";
407 pinctrl-0 = <&sdmmc_bus4 &sdmmc_cmd &sdmmc_clk>;
413 vmmc-supply = <&vcc_3v3_s3>;
414 vqmmc-supply = <&vccio_sd_s0>;
419 assigned-clocks = <&cru CLK_SPI2>;
420 assigned-clock-rates = <200000000>;
422 pinctrl-names = "default";
423 pinctrl-0 = <&spi2m2_cs0 &spi2m2_pins>;
427 compatible = "rockchip,rk806";
429 interrupt-parent = <&gpio0>;
430 interrupts = <7 IRQ_TYPE_LEVEL_LOW>;
433 pinctrl-names = "default";
434 pinctrl-0 = <&pmic_pins>, <&rk806_dvs1_null>,
435 <&rk806_dvs2_null>, <&rk806_dvs3_null>;
436 spi-max-frequency = <1000000>;
437 system-power-controller;
438 vcc1-supply = <&vcc5v0_sys>;
439 vcc2-supply = <&vcc5v0_sys>;
440 vcc3-supply = <&vcc5v0_sys>;
441 vcc4-supply = <&vcc5v0_sys>;
442 vcc5-supply = <&vcc5v0_sys>;
443 vcc6-supply = <&vcc5v0_sys>;
444 vcc7-supply = <&vcc5v0_sys>;
445 vcc8-supply = <&vcc5v0_sys>;
446 vcc9-supply = <&vcc5v0_sys>;
447 vcc10-supply = <&vcc5v0_sys>;
448 vcc11-supply = <&vcc_2v0_pldo_s3>;
449 vcc12-supply = <&vcc5v0_sys>;
450 vcc13-supply = <&vcc_1v1_nldo_s3>;
451 vcc14-supply = <&vcc_1v1_nldo_s3>;
452 vcca-supply = <&vcc5v0_sys>;
454 rk806_dvs1_null: dvs1-null-pins {
455 pins = "gpio_pwrctrl2";
456 function = "pin_fun0";
459 rk806_dvs2_null: dvs2-null-pins {
460 pins = "gpio_pwrctrl2";
461 function = "pin_fun0";
464 rk806_dvs3_null: dvs3-null-pins {
465 pins = "gpio_pwrctrl3";
466 function = "pin_fun0";
470 vdd_gpu_s0: dcdc-reg1 {
472 regulator-min-microvolt = <550000>;
473 regulator-max-microvolt = <950000>;
474 regulator-ramp-delay = <12500>;
475 regulator-name = "vdd_gpu_s0";
476 regulator-enable-ramp-delay = <400>;
478 regulator-state-mem {
479 regulator-off-in-suspend;
483 vdd_cpu_lit_s0: dcdc-reg2 {
484 regulator-name = "vdd_cpu_lit_s0";
487 regulator-min-microvolt = <550000>;
488 regulator-max-microvolt = <950000>;
489 regulator-ramp-delay = <12500>;
491 regulator-state-mem {
492 regulator-off-in-suspend;
496 vdd_log_s0: dcdc-reg3 {
497 regulator-name = "vdd_log_s0";
500 regulator-min-microvolt = <675000>;
501 regulator-max-microvolt = <750000>;
502 regulator-ramp-delay = <12500>;
504 regulator-state-mem {
505 regulator-off-in-suspend;
506 regulator-suspend-microvolt = <750000>;
510 vdd_vdenc_s0: dcdc-reg4 {
511 regulator-name = "vdd_vdenc_s0";
514 regulator-min-microvolt = <550000>;
515 regulator-max-microvolt = <950000>;
516 regulator-ramp-delay = <12500>;
518 regulator-state-mem {
519 regulator-off-in-suspend;
523 vdd_ddr_s0: dcdc-reg5 {
524 regulator-name = "vdd_ddr_s0";
527 regulator-min-microvolt = <675000>;
528 regulator-max-microvolt = <900000>;
529 regulator-ramp-delay = <12500>;
531 regulator-state-mem {
532 regulator-off-in-suspend;
533 regulator-suspend-microvolt = <850000>;
537 vdd2_ddr_s3: dcdc-reg6 {
538 regulator-name = "vdd2_ddr_s3";
542 regulator-state-mem {
543 regulator-on-in-suspend;
547 vcc_2v0_pldo_s3: dcdc-reg7 {
548 regulator-name = "vdd_2v0_pldo_s3";
551 regulator-min-microvolt = <2000000>;
552 regulator-max-microvolt = <2000000>;
553 regulator-ramp-delay = <12500>;
555 regulator-state-mem {
556 regulator-on-in-suspend;
557 regulator-suspend-microvolt = <2000000>;
561 vcc_3v3_s3: dcdc-reg8 {
562 regulator-name = "vcc_3v3_s3";
565 regulator-min-microvolt = <3300000>;
566 regulator-max-microvolt = <3300000>;
568 regulator-state-mem {
569 regulator-on-in-suspend;
570 regulator-suspend-microvolt = <3300000>;
574 vddq_ddr_s0: dcdc-reg9 {
575 regulator-name = "vddq_ddr_s0";
579 regulator-state-mem {
580 regulator-off-in-suspend;
584 vcc_1v8_s3: dcdc-reg10 {
585 regulator-name = "vcc_1v8_s3";
588 regulator-min-microvolt = <1800000>;
589 regulator-max-microvolt = <1800000>;
591 regulator-state-mem {
592 regulator-on-in-suspend;
593 regulator-suspend-microvolt = <1800000>;
597 vcca_1v8_s0: pldo-reg1 {
598 regulator-name = "vcca_1v8_s0";
601 regulator-min-microvolt = <1800000>;
602 regulator-max-microvolt = <1800000>;
604 regulator-state-mem {
605 regulator-off-in-suspend;
609 vcc_1v8_s0: pldo-reg2 {
610 regulator-name = "vcc_1v8_s0";
613 regulator-min-microvolt = <1800000>;
614 regulator-max-microvolt = <1800000>;
616 regulator-state-mem {
617 regulator-off-in-suspend;
618 regulator-suspend-microvolt = <1800000>;
622 vdda_1v2_s0: pldo-reg3 {
623 regulator-name = "vdda_1v2_s0";
626 regulator-min-microvolt = <1200000>;
627 regulator-max-microvolt = <1200000>;
629 regulator-state-mem {
630 regulator-off-in-suspend;
634 vcca_3v3_s0: pldo-reg4 {
635 regulator-name = "vcca_3v3_s0";
638 regulator-min-microvolt = <3300000>;
639 regulator-max-microvolt = <3300000>;
640 regulator-ramp-delay = <12500>;
642 regulator-state-mem {
643 regulator-off-in-suspend;
647 vccio_sd_s0: pldo-reg5 {
648 regulator-name = "vccio_sd_s0";
651 regulator-min-microvolt = <1800000>;
652 regulator-max-microvolt = <3300000>;
653 regulator-ramp-delay = <12500>;
655 regulator-state-mem {
656 regulator-off-in-suspend;
660 pldo6_s3: pldo-reg6 {
661 regulator-name = "pldo6_s3";
664 regulator-min-microvolt = <1800000>;
665 regulator-max-microvolt = <1800000>;
667 regulator-state-mem {
668 regulator-on-in-suspend;
669 regulator-suspend-microvolt = <1800000>;
673 vdd_0v75_s3: nldo-reg1 {
674 regulator-name = "vdd_0v75_s3";
677 regulator-min-microvolt = <750000>;
678 regulator-max-microvolt = <750000>;
680 regulator-state-mem {
681 regulator-on-in-suspend;
682 regulator-suspend-microvolt = <750000>;
686 vdda_ddr_pll_s0: nldo-reg2 {
687 regulator-name = "vdda_ddr_pll_s0";
690 regulator-min-microvolt = <850000>;
691 regulator-max-microvolt = <850000>;
693 regulator-state-mem {
694 regulator-off-in-suspend;
695 regulator-suspend-microvolt = <850000>;
699 vdda_0v75_s0: nldo-reg3 {
700 regulator-name = "vdda_0v75_s0";
703 regulator-min-microvolt = <750000>;
704 regulator-max-microvolt = <750000>;
706 regulator-state-mem {
707 regulator-off-in-suspend;
711 vdda_0v85_s0: nldo-reg4 {
712 regulator-name = "vdda_0v85_s0";
715 regulator-min-microvolt = <850000>;
716 regulator-max-microvolt = <850000>;
718 regulator-state-mem {
719 regulator-off-in-suspend;
723 vdd_0v75_s0: nldo-reg5 {
724 regulator-name = "vdd_0v75_s0";
727 regulator-min-microvolt = <750000>;
728 regulator-max-microvolt = <750000>;
730 regulator-state-mem {
731 regulator-off-in-suspend;
747 phy-supply = <&vcc_5v0_usb_a>;
759 /* Mule-ATtiny debug UART; typically baudrate 9600 */
761 pinctrl-0 = <&uart0m0_xfer>;
765 /* Main debug interface on P20 micro-USB B port and P21 header */
767 pinctrl-0 = <&uart2m0_xfer>;
773 pinctrl-0 = <&uart3m2_xfer &uart3_rtsn>;
774 linux,rs485-enabled-at-boot-time;
778 /* Mule-ATtiny UPDI flashing UART */
780 pinctrl-0 = <&uart7m0_xfer>;
784 /* host0 on P10 USB-A */
789 /* host0 on P10 USB-A */
794 /* host1 on M.2 E-key */
799 /* host1 on M.2 E-key */