1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
3 * Device Tree file for CZ.NIC Turris Mox Board
4 * 2019 by Marek BehĂșn <kabel@kernel.org>
9 #include <dt-bindings/bus/moxtet.h>
10 #include <dt-bindings/gpio/gpio.h>
11 #include <dt-bindings/input/input.h>
12 #include "armada-372x.dtsi"
15 model = "CZ.NIC Turris Mox Board";
16 compatible = "cznic,turris-mox", "marvell,armada3720",
27 stdout-path = "serial0:115200n8";
31 device_type = "memory";
32 reg = <0x00000000 0x00000000 0x00000000 0x20000000>;
36 compatible = "gpio-leds";
38 label = "mox:red:activity";
39 gpios = <&gpiosb 21 GPIO_ACTIVE_LOW>;
40 linux,default-trigger = "default-on";
45 compatible = "gpio-keys";
49 linux,code = <KEY_RESTART>;
50 gpios = <&gpiosb 20 GPIO_ACTIVE_LOW>;
51 debounce-interval = <60>;
55 exp_usb3_vbus: usb3-vbus {
56 compatible = "regulator-fixed";
57 regulator-name = "usb3-vbus";
58 regulator-min-microvolt = <5000000>;
59 regulator-max-microvolt = <5000000>;
62 gpio = <&gpiosb 0 GPIO_ACTIVE_HIGH>;
66 compatible = "regulator-gpio";
67 regulator-name = "vsdc";
68 regulator-min-microvolt = <1800000>;
69 regulator-max-microvolt = <3300000>;
72 gpios = <&gpiosb 23 GPIO_ACTIVE_HIGH>;
79 vsdio_reg: vsdio-reg {
80 compatible = "regulator-gpio";
81 regulator-name = "vsdio";
82 regulator-min-microvolt = <1800000>;
83 regulator-max-microvolt = <3300000>;
86 gpios = <&gpiosb 22 GPIO_ACTIVE_HIGH>;
93 sdhci1_pwrseq: sdhci1-pwrseq {
94 compatible = "mmc-pwrseq-simple";
95 reset-gpios = <&gpionb 19 GPIO_ACTIVE_HIGH>;
100 compatible = "sff,sfp";
102 los-gpio = <&moxtet_sfp 0 GPIO_ACTIVE_HIGH>;
103 tx-fault-gpio = <&moxtet_sfp 1 GPIO_ACTIVE_HIGH>;
104 mod-def0-gpio = <&moxtet_sfp 2 GPIO_ACTIVE_LOW>;
105 tx-disable-gpio = <&moxtet_sfp 4 GPIO_ACTIVE_HIGH>;
106 rate-select0-gpio = <&moxtet_sfp 5 GPIO_ACTIVE_HIGH>;
107 maximum-power-milliwatt = <3000>;
109 /* enabled by U-Boot if SFP module is present */
115 compatible = "marvell,armada-3700-rwtm-firmware", "cznic,turris-mox-rwtm";
121 pinctrl-names = "default";
122 pinctrl-0 = <&i2c1_pins>;
123 clock-frequency = <100000>;
124 /delete-property/ mrvl,i2c-fast-mode;
128 compatible = "microchip,mcp7940x";
134 pinctrl-names = "default";
135 pinctrl-0 = <&pcie_reset_pins &pcie_clkreq_pins>;
137 reset-gpios = <&gpiosb 3 GPIO_ACTIVE_LOW>;
139 /* enabled by U-Boot if PCIe module is present */
148 pinctrl-names = "default";
149 pinctrl-0 = <&rgmii_pins>;
150 phy-mode = "rgmii-id";
151 phy-handle = <&phy1>;
156 phy-mode = "2500base-x";
157 managed = "in-band-status";
164 cd-gpios = <&gpionb 10 GPIO_ACTIVE_HIGH>;
165 vqmmc-supply = <&vsdc_reg>;
166 marvell,pad-type = "sd";
171 pinctrl-names = "default";
172 pinctrl-0 = <&sdio_pins>;
175 marvell,pad-type = "sd";
176 vqmmc-supply = <&vsdio_reg>;
177 mmc-pwrseq = <&sdhci1_pwrseq>;
178 /* forbid SDR104 for FCC purposes */
179 sdhci-caps-mask = <0x2 0x0>;
185 pinctrl-names = "default";
186 pinctrl-0 = <&spi_quad_pins &spi_cs1_pins>;
187 assigned-clocks = <&nb_periph_clk 7>;
188 assigned-clock-parents = <&tbg 1>;
189 assigned-clock-rates = <20000000>;
192 #address-cells = <1>;
194 compatible = "jedec,spi-nor";
196 spi-max-frequency = <20000000>;
199 compatible = "fixed-partitions";
200 #address-cells = <1>;
204 label = "secure-firmware";
209 label = "a53-firmware";
210 reg = <0x20000 0x160000>;
214 label = "u-boot-env";
215 reg = <0x180000 0x10000>;
219 label = "Rescue system";
220 reg = <0x190000 0x660000>;
225 reg = <0x7f0000 0x10000>;
231 #address-cells = <1>;
233 compatible = "cznic,moxtet";
235 reset-gpios = <&gpiosb 2 GPIO_ACTIVE_LOW>;
236 spi-max-frequency = <10000000>;
239 interrupt-controller;
240 #interrupt-cells = <1>;
241 interrupt-parent = <&gpiosb>;
242 interrupts = <5 IRQ_TYPE_EDGE_FALLING>;
246 compatible = "cznic,moxtet-gpio";
261 compatible = "usb-a-connector";
262 phy-supply = <&exp_usb3_vbus>;
272 pinctrl-names = "default";
273 pinctrl-0 = <&smi_pins>;
276 phy1: ethernet-phy@1 {
280 /* switch nodes are enabled by U-Boot if modules are present */
282 compatible = "marvell,mv88e6190";
285 interrupt-parent = <&moxtet>;
286 interrupts = <MOXTET_IRQ_PERIDOT(0)>;
290 #address-cells = <1>;
293 switch0phy1: switch0phy1@1 {
297 switch0phy2: switch0phy2@2 {
301 switch0phy3: switch0phy3@3 {
305 switch0phy4: switch0phy4@4 {
309 switch0phy5: switch0phy5@5 {
313 switch0phy6: switch0phy6@6 {
317 switch0phy7: switch0phy7@7 {
321 switch0phy8: switch0phy8@8 {
327 #address-cells = <1>;
333 phy-handle = <&switch0phy1>;
339 phy-handle = <&switch0phy2>;
345 phy-handle = <&switch0phy3>;
351 phy-handle = <&switch0phy4>;
357 phy-handle = <&switch0phy5>;
363 phy-handle = <&switch0phy6>;
369 phy-handle = <&switch0phy7>;
375 phy-handle = <&switch0phy8>;
382 phy-mode = "2500base-x";
383 managed = "in-band-status";
386 switch0port10: port@a {
389 phy-mode = "2500base-x";
390 managed = "in-band-status";
391 link = <&switch1port9 &switch2port9>;
400 managed = "in-band-status";
407 compatible = "marvell,mv88e6085";
410 interrupt-parent = <&moxtet>;
411 interrupts = <MOXTET_IRQ_TOPAZ>;
415 #address-cells = <1>;
418 switch0phy1_topaz: switch0phy1@11 {
422 switch0phy2_topaz: switch0phy2@12 {
426 switch0phy3_topaz: switch0phy3@13 {
430 switch0phy4_topaz: switch0phy4@14 {
436 #address-cells = <1>;
442 phy-handle = <&switch0phy1_topaz>;
448 phy-handle = <&switch0phy2_topaz>;
454 phy-handle = <&switch0phy3_topaz>;
460 phy-handle = <&switch0phy4_topaz>;
466 phy-mode = "2500base-x";
467 managed = "in-band-status";
474 compatible = "marvell,mv88e6190";
477 interrupt-parent = <&moxtet>;
478 interrupts = <MOXTET_IRQ_PERIDOT(1)>;
482 #address-cells = <1>;
485 switch1phy1: switch1phy1@1 {
489 switch1phy2: switch1phy2@2 {
493 switch1phy3: switch1phy3@3 {
497 switch1phy4: switch1phy4@4 {
501 switch1phy5: switch1phy5@5 {
505 switch1phy6: switch1phy6@6 {
509 switch1phy7: switch1phy7@7 {
513 switch1phy8: switch1phy8@8 {
519 #address-cells = <1>;
525 phy-handle = <&switch1phy1>;
531 phy-handle = <&switch1phy2>;
537 phy-handle = <&switch1phy3>;
543 phy-handle = <&switch1phy4>;
549 phy-handle = <&switch1phy5>;
555 phy-handle = <&switch1phy6>;
561 phy-handle = <&switch1phy7>;
567 phy-handle = <&switch1phy8>;
570 switch1port9: port@9 {
573 phy-mode = "2500base-x";
574 managed = "in-band-status";
575 link = <&switch0port10>;
578 switch1port10: port@a {
581 phy-mode = "2500base-x";
582 managed = "in-band-status";
583 link = <&switch2port9>;
592 managed = "in-band-status";
599 compatible = "marvell,mv88e6085";
602 interrupt-parent = <&moxtet>;
603 interrupts = <MOXTET_IRQ_TOPAZ>;
607 #address-cells = <1>;
610 switch1phy1_topaz: switch1phy1@11 {
614 switch1phy2_topaz: switch1phy2@12 {
618 switch1phy3_topaz: switch1phy3@13 {
622 switch1phy4_topaz: switch1phy4@14 {
628 #address-cells = <1>;
634 phy-handle = <&switch1phy1_topaz>;
640 phy-handle = <&switch1phy2_topaz>;
646 phy-handle = <&switch1phy3_topaz>;
652 phy-handle = <&switch1phy4_topaz>;
658 phy-mode = "2500base-x";
659 managed = "in-band-status";
660 link = <&switch0port10>;
666 compatible = "marvell,mv88e6190";
669 interrupt-parent = <&moxtet>;
670 interrupts = <MOXTET_IRQ_PERIDOT(2)>;
674 #address-cells = <1>;
677 switch2phy1: switch2phy1@1 {
681 switch2phy2: switch2phy2@2 {
685 switch2phy3: switch2phy3@3 {
689 switch2phy4: switch2phy4@4 {
693 switch2phy5: switch2phy5@5 {
697 switch2phy6: switch2phy6@6 {
701 switch2phy7: switch2phy7@7 {
705 switch2phy8: switch2phy8@8 {
711 #address-cells = <1>;
717 phy-handle = <&switch2phy1>;
723 phy-handle = <&switch2phy2>;
729 phy-handle = <&switch2phy3>;
735 phy-handle = <&switch2phy4>;
741 phy-handle = <&switch2phy5>;
747 phy-handle = <&switch2phy6>;
753 phy-handle = <&switch2phy7>;
759 phy-handle = <&switch2phy8>;
762 switch2port9: port@9 {
765 phy-mode = "2500base-x";
766 managed = "in-band-status";
767 link = <&switch1port10 &switch0port10>;
775 managed = "in-band-status";
782 compatible = "marvell,mv88e6085";
785 interrupt-parent = <&moxtet>;
786 interrupts = <MOXTET_IRQ_TOPAZ>;
790 #address-cells = <1>;
793 switch2phy1_topaz: switch2phy1@11 {
797 switch2phy2_topaz: switch2phy2@12 {
801 switch2phy3_topaz: switch2phy3@13 {
805 switch2phy4_topaz: switch2phy4@14 {
811 #address-cells = <1>;
817 phy-handle = <&switch2phy1_topaz>;
823 phy-handle = <&switch2phy2_topaz>;
829 phy-handle = <&switch2phy3_topaz>;
835 phy-handle = <&switch2phy4_topaz>;
841 phy-mode = "2500base-x";
842 managed = "in-band-status";
843 link = <&switch1port10 &switch0port10>;