17109d817SMarek Behún// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 27109d817SMarek Behún/* 37109d817SMarek Behún * Device Tree file for CZ.NIC Turris Mox Board 4b37c3848SMarek Behún * 2019 by Marek Behún <kabel@kernel.org> 57109d817SMarek Behún */ 67109d817SMarek Behún 77109d817SMarek Behún/dts-v1/; 87109d817SMarek Behún 97109d817SMarek Behún#include <dt-bindings/bus/moxtet.h> 107109d817SMarek Behún#include <dt-bindings/gpio/gpio.h> 117109d817SMarek Behún#include <dt-bindings/input/input.h> 127109d817SMarek Behún#include "armada-372x.dtsi" 137109d817SMarek Behún 147109d817SMarek Behún/ { 157109d817SMarek Behún model = "CZ.NIC Turris Mox Board"; 167109d817SMarek Behún compatible = "cznic,turris-mox", "marvell,armada3720", 17*47905289SRob Herring (Arm) "marvell,armada3710"; 187109d817SMarek Behún 197109d817SMarek Behún aliases { 207109d817SMarek Behún spi0 = &spi0; 21a0e897d1SPali Rohár ethernet0 = ð0; 227109d817SMarek Behún ethernet1 = ð1; 23923f9892SVladimir Oltean mmc0 = &sdhci0; 24923f9892SVladimir Oltean mmc1 = &sdhci1; 257109d817SMarek Behún }; 267109d817SMarek Behún 277109d817SMarek Behún chosen { 287109d817SMarek Behún stdout-path = "serial0:115200n8"; 297109d817SMarek Behún }; 307109d817SMarek Behún 317109d817SMarek Behún memory@0 { 327109d817SMarek Behún device_type = "memory"; 337109d817SMarek Behún reg = <0x00000000 0x00000000 0x00000000 0x20000000>; 347109d817SMarek Behún }; 357109d817SMarek Behún 367109d817SMarek Behún leds { 377109d817SMarek Behún compatible = "gpio-leds"; 382b090180SKrzysztof Kozlowski led { 397109d817SMarek Behún label = "mox:red:activity"; 407109d817SMarek Behún gpios = <&gpiosb 21 GPIO_ACTIVE_LOW>; 417109d817SMarek Behún linux,default-trigger = "default-on"; 427109d817SMarek Behún }; 437109d817SMarek Behún }; 447109d817SMarek Behún 457109d817SMarek Behún gpio-keys { 467109d817SMarek Behún compatible = "gpio-keys"; 477109d817SMarek Behún 48ebb8ba54SKrzysztof Kozlowski key-reset { 497109d817SMarek Behún label = "reset"; 507109d817SMarek Behún linux,code = <KEY_RESTART>; 517109d817SMarek Behún gpios = <&gpiosb 20 GPIO_ACTIVE_LOW>; 527109d817SMarek Behún debounce-interval = <60>; 537109d817SMarek Behún }; 547109d817SMarek Behún }; 557109d817SMarek Behún 567109d817SMarek Behún exp_usb3_vbus: usb3-vbus { 577109d817SMarek Behún compatible = "regulator-fixed"; 587109d817SMarek Behún regulator-name = "usb3-vbus"; 597109d817SMarek Behún regulator-min-microvolt = <5000000>; 607109d817SMarek Behún regulator-max-microvolt = <5000000>; 617109d817SMarek Behún enable-active-high; 627109d817SMarek Behún regulator-always-on; 637109d817SMarek Behún gpio = <&gpiosb 0 GPIO_ACTIVE_HIGH>; 647109d817SMarek Behún }; 657109d817SMarek Behún 667109d817SMarek Behún vsdc_reg: vsdc-reg { 677109d817SMarek Behún compatible = "regulator-gpio"; 687109d817SMarek Behún regulator-name = "vsdc"; 697109d817SMarek Behún regulator-min-microvolt = <1800000>; 707109d817SMarek Behún regulator-max-microvolt = <3300000>; 717109d817SMarek Behún regulator-boot-on; 727109d817SMarek Behún 737109d817SMarek Behún gpios = <&gpiosb 23 GPIO_ACTIVE_HIGH>; 747109d817SMarek Behún gpios-states = <0>; 757109d817SMarek Behún states = <1800000 0x1 767109d817SMarek Behún 3300000 0x0>; 777109d817SMarek Behún enable-active-high; 787109d817SMarek Behún }; 797109d817SMarek Behún 807109d817SMarek Behún vsdio_reg: vsdio-reg { 817109d817SMarek Behún compatible = "regulator-gpio"; 827109d817SMarek Behún regulator-name = "vsdio"; 837109d817SMarek Behún regulator-min-microvolt = <1800000>; 847109d817SMarek Behún regulator-max-microvolt = <3300000>; 857109d817SMarek Behún regulator-boot-on; 867109d817SMarek Behún 877109d817SMarek Behún gpios = <&gpiosb 22 GPIO_ACTIVE_HIGH>; 887109d817SMarek Behún gpios-states = <0>; 897109d817SMarek Behún states = <1800000 0x1 907109d817SMarek Behún 3300000 0x0>; 917109d817SMarek Behún enable-active-high; 927109d817SMarek Behún }; 937109d817SMarek Behún 947109d817SMarek Behún sdhci1_pwrseq: sdhci1-pwrseq { 957109d817SMarek Behún compatible = "mmc-pwrseq-simple"; 967109d817SMarek Behún reset-gpios = <&gpionb 19 GPIO_ACTIVE_HIGH>; 977109d817SMarek Behún status = "okay"; 987109d817SMarek Behún }; 997109d817SMarek Behún 1007109d817SMarek Behún sfp: sfp { 101c2671acbSMarek Behún compatible = "sff,sfp"; 1027109d817SMarek Behún i2c-bus = <&i2c0>; 1034ce223e5SIoana Ciornei los-gpios = <&moxtet_sfp 0 GPIO_ACTIVE_HIGH>; 1044ce223e5SIoana Ciornei tx-fault-gpios = <&moxtet_sfp 1 GPIO_ACTIVE_HIGH>; 1054ce223e5SIoana Ciornei mod-def0-gpios = <&moxtet_sfp 2 GPIO_ACTIVE_LOW>; 1064ce223e5SIoana Ciornei tx-disable-gpios = <&moxtet_sfp 4 GPIO_ACTIVE_HIGH>; 1074ce223e5SIoana Ciornei rate-select0-gpios = <&moxtet_sfp 5 GPIO_ACTIVE_HIGH>; 108a2081c09SMarek Behún maximum-power-milliwatt = <3000>; 1097109d817SMarek Behún 1107109d817SMarek Behún /* enabled by U-Boot if SFP module is present */ 1117109d817SMarek Behún status = "disabled"; 1127109d817SMarek Behún }; 11346d2f6d0SMarek Behún 11446d2f6d0SMarek Behún firmware { 1153a52a489SPali Rohár armada-3700-rwtm { 1163a52a489SPali Rohár compatible = "marvell,armada-3700-rwtm-firmware", "cznic,turris-mox-rwtm"; 11746d2f6d0SMarek Behún }; 11846d2f6d0SMarek Behún }; 1197109d817SMarek Behún}; 1207109d817SMarek Behún 1217109d817SMarek Behún&i2c0 { 1227109d817SMarek Behún pinctrl-names = "default"; 1237109d817SMarek Behún pinctrl-0 = <&i2c1_pins>; 1247109d817SMarek Behún clock-frequency = <100000>; 125ee7ab3f2SPali Rohár /delete-property/ mrvl,i2c-fast-mode; 1267109d817SMarek Behún status = "okay"; 1277109d817SMarek Behún 12821aad8baSPali Rohár /* MCP7940MT-I/MNY RTC */ 1297109d817SMarek Behún rtc@6f { 1307109d817SMarek Behún compatible = "microchip,mcp7940x"; 1317109d817SMarek Behún reg = <0x6f>; 13221aad8baSPali Rohár interrupt-parent = <&gpiosb>; 133fca8a117SSjoerd Simons interrupts = <5 IRQ_TYPE_EDGE_FALLING>; /* GPIO2_5 */ 1347109d817SMarek Behún }; 1357109d817SMarek Behún}; 1367109d817SMarek Behún 1377109d817SMarek Behún&pcie0 { 1387109d817SMarek Behún pinctrl-names = "default"; 1397109d817SMarek Behún pinctrl-0 = <&pcie_reset_pins &pcie_clkreq_pins>; 1407109d817SMarek Behún status = "okay"; 1417109d817SMarek Behún reset-gpios = <&gpiosb 3 GPIO_ACTIVE_LOW>; 1423b730f48SPali Rohár slot-power-limit-milliwatt = <10000>; 143514ef1e6SPali Rohár /* 144514ef1e6SPali Rohár * U-Boot port for Turris Mox has a bug which always expects that "ranges" DT property 145514ef1e6SPali Rohár * contains exactly 2 ranges with 3 (child) address cells, 2 (parent) address cells and 146a1cc1697SPali Rohár * 2 size cells and also expects that the second range starts at 16 MB offset. Also it 147a1cc1697SPali Rohár * expects that first range uses same address for PCI (child) and CPU (parent) cells (so 148a1cc1697SPali Rohár * no remapping) and that this address is the lowest from all specified ranges. If these 149514ef1e6SPali Rohár * conditions are not met then U-Boot crashes during loading kernel DTB file. PCIe address 150514ef1e6SPali Rohár * space is 128 MB long, so the best split between MEM and IO is to use fixed 16 MB window 151514ef1e6SPali Rohár * for IO and the rest 112 MB (64+32+16) for MEM, despite that maximal IO size is just 64 kB. 152514ef1e6SPali Rohár * This bug is not present in U-Boot ports for other Armada 3700 devices and is fixed in 153514ef1e6SPali Rohár * U-Boot version 2021.07. See relevant U-Boot commits (the last one contains fix): 154514ef1e6SPali Rohár * https://source.denx.de/u-boot/u-boot/-/commit/cb2ddb291ee6fcbddd6d8f4ff49089dfe580f5d7 155514ef1e6SPali Rohár * https://source.denx.de/u-boot/u-boot/-/commit/c64ac3b3185aeb3846297ad7391fc6df8ecd73bf 156514ef1e6SPali Rohár * https://source.denx.de/u-boot/u-boot/-/commit/4a82fca8e330157081fc132a591ebd99ba02ee33 157a1cc1697SPali Rohár * Bug related to requirement of same child and parent addresses for first range is fixed 158a1cc1697SPali Rohár * in U-Boot version 2022.04 by following commit: 159a1cc1697SPali Rohár * https://source.denx.de/u-boot/u-boot/-/commit/1fd54253bca7d43d046bba4853fe5fafd034bc17 160514ef1e6SPali Rohár */ 161514ef1e6SPali Rohár #address-cells = <3>; 162514ef1e6SPali Rohár #size-cells = <2>; 163514ef1e6SPali Rohár ranges = <0x81000000 0 0xe8000000 0 0xe8000000 0 0x01000000 /* Port 0 IO */ 164514ef1e6SPali Rohár 0x82000000 0 0xe9000000 0 0xe9000000 0 0x07000000>; /* Port 0 MEM */ 1657109d817SMarek Behún 1667109d817SMarek Behún /* enabled by U-Boot if PCIe module is present */ 1677109d817SMarek Behún status = "disabled"; 1687109d817SMarek Behún}; 1697109d817SMarek Behún 1707109d817SMarek Behún&uart0 { 1717109d817SMarek Behún status = "okay"; 1727109d817SMarek Behún}; 1737109d817SMarek Behún 1747109d817SMarek Behúnð0 { 1757109d817SMarek Behún pinctrl-names = "default"; 1767109d817SMarek Behún pinctrl-0 = <&rgmii_pins>; 1777109d817SMarek Behún phy-mode = "rgmii-id"; 1783aa669a9SMarek Behún phy-handle = <&phy1>; 1797109d817SMarek Behún status = "okay"; 1807109d817SMarek Behún}; 1817109d817SMarek Behún 1827109d817SMarek Behúnð1 { 1837109d817SMarek Behún phy-mode = "2500base-x"; 1847109d817SMarek Behún managed = "in-band-status"; 1857109d817SMarek Behún phys = <&comphy0 1>; 1867109d817SMarek Behún}; 1877109d817SMarek Behún 1887109d817SMarek Behún&sdhci0 { 1897109d817SMarek Behún wp-inverted; 1907109d817SMarek Behún bus-width = <4>; 1917109d817SMarek Behún cd-gpios = <&gpionb 10 GPIO_ACTIVE_HIGH>; 1927109d817SMarek Behún vqmmc-supply = <&vsdc_reg>; 1937109d817SMarek Behún marvell,pad-type = "sd"; 1947109d817SMarek Behún status = "okay"; 1957109d817SMarek Behún}; 1967109d817SMarek Behún 1977109d817SMarek Behún&sdhci1 { 1987109d817SMarek Behún pinctrl-names = "default"; 1997109d817SMarek Behún pinctrl-0 = <&sdio_pins>; 2007109d817SMarek Behún non-removable; 2017109d817SMarek Behún bus-width = <4>; 2027109d817SMarek Behún marvell,pad-type = "sd"; 2037109d817SMarek Behún vqmmc-supply = <&vsdio_reg>; 2047109d817SMarek Behún mmc-pwrseq = <&sdhci1_pwrseq>; 2057a2c36b0SMarek Behún /* forbid SDR104 for FCC purposes */ 2067a2c36b0SMarek Behún sdhci-caps-mask = <0x2 0x0>; 2077109d817SMarek Behún status = "okay"; 2087109d817SMarek Behún}; 2097109d817SMarek Behún 2107109d817SMarek Behún&spi0 { 2117109d817SMarek Behún status = "okay"; 2127109d817SMarek Behún pinctrl-names = "default"; 2137109d817SMarek Behún pinctrl-0 = <&spi_quad_pins &spi_cs1_pins>; 2147109d817SMarek Behún assigned-clocks = <&nb_periph_clk 7>; 2157109d817SMarek Behún assigned-clock-parents = <&tbg 1>; 2167109d817SMarek Behún assigned-clock-rates = <20000000>; 2177109d817SMarek Behún 2182f00bb4aSKrzysztof Kozlowski flash@0 { 2197109d817SMarek Behún compatible = "jedec,spi-nor"; 2207109d817SMarek Behún reg = <0>; 2217109d817SMarek Behún spi-max-frequency = <20000000>; 2227109d817SMarek Behún 2237109d817SMarek Behún partitions { 2247109d817SMarek Behún compatible = "fixed-partitions"; 2257109d817SMarek Behún #address-cells = <1>; 2267109d817SMarek Behún #size-cells = <1>; 2277109d817SMarek Behún 2287109d817SMarek Behún partition@0 { 2297109d817SMarek Behún label = "secure-firmware"; 2307109d817SMarek Behún reg = <0x0 0x20000>; 2317109d817SMarek Behún }; 2327109d817SMarek Behún 2337109d817SMarek Behún partition@20000 { 234a9d9bfcaSMarek Behún label = "a53-firmware"; 2357109d817SMarek Behún reg = <0x20000 0x160000>; 2367109d817SMarek Behún }; 2377109d817SMarek Behún 2387109d817SMarek Behún partition@180000 { 2397109d817SMarek Behún label = "u-boot-env"; 2407109d817SMarek Behún reg = <0x180000 0x10000>; 2417109d817SMarek Behún }; 2427109d817SMarek Behún 2437109d817SMarek Behún partition@190000 { 2447109d817SMarek Behún label = "Rescue system"; 2457109d817SMarek Behún reg = <0x190000 0x660000>; 2467109d817SMarek Behún }; 2477109d817SMarek Behún 2487109d817SMarek Behún partition@7f0000 { 2497109d817SMarek Behún label = "dtb"; 2507109d817SMarek Behún reg = <0x7f0000 0x10000>; 2517109d817SMarek Behún }; 2527109d817SMarek Behún }; 2537109d817SMarek Behún }; 2547109d817SMarek Behún 2557109d817SMarek Behún moxtet: moxtet@1 { 2567109d817SMarek Behún #address-cells = <1>; 2577109d817SMarek Behún #size-cells = <0>; 2587109d817SMarek Behún compatible = "cznic,moxtet"; 2597109d817SMarek Behún reg = <1>; 2607109d817SMarek Behún reset-gpios = <&gpiosb 2 GPIO_ACTIVE_LOW>; 2617109d817SMarek Behún spi-max-frequency = <10000000>; 2627109d817SMarek Behún spi-cpol; 2637109d817SMarek Behún spi-cpha; 2647109d817SMarek Behún interrupt-controller; 2657109d817SMarek Behún #interrupt-cells = <1>; 2667109d817SMarek Behún interrupt-parent = <&gpiosb>; 2677109d817SMarek Behún interrupts = <5 IRQ_TYPE_EDGE_FALLING>; 2687109d817SMarek Behún status = "okay"; 2697109d817SMarek Behún 2707109d817SMarek Behún moxtet_sfp: gpio@0 { 2717109d817SMarek Behún compatible = "cznic,moxtet-gpio"; 2727109d817SMarek Behún gpio-controller; 2737109d817SMarek Behún #gpio-cells = <2>; 2747109d817SMarek Behún reg = <0>; 2757109d817SMarek Behún status = "disabled"; 2767109d817SMarek Behún }; 2777109d817SMarek Behún }; 2787109d817SMarek Behún}; 2797109d817SMarek Behún 2807109d817SMarek Behún&usb2 { 2817109d817SMarek Behún status = "okay"; 2827109d817SMarek Behún}; 2837109d817SMarek Behún 284187c195aSMarek Behún&comphy2 { 285187c195aSMarek Behún connector { 286187c195aSMarek Behún compatible = "usb-a-connector"; 287187c195aSMarek Behún phy-supply = <&exp_usb3_vbus>; 288187c195aSMarek Behún }; 289187c195aSMarek Behún}; 290187c195aSMarek Behún 2917109d817SMarek Behún&usb3 { 2927109d817SMarek Behún status = "okay"; 2937109d817SMarek Behún phys = <&comphy2 0>; 2947109d817SMarek Behún}; 2957109d817SMarek Behún 2967109d817SMarek Behún&mdio { 2977109d817SMarek Behún pinctrl-names = "default"; 2987109d817SMarek Behún pinctrl-0 = <&smi_pins>; 2997109d817SMarek Behún status = "okay"; 3007109d817SMarek Behún 3017109d817SMarek Behún phy1: ethernet-phy@1 { 3027109d817SMarek Behún reg = <1>; 3037109d817SMarek Behún }; 3047109d817SMarek Behún 305fedb923aSLinus Walleij /* 306fedb923aSLinus Walleij * NOTE: switch nodes are enabled by U-Boot if modules are present 307fedb923aSLinus Walleij * DO NOT change this node name (switch0@10) even if it is not following 308fedb923aSLinus Walleij * conventions! Deployed U-Boot binaries are explicitly looking for 309fedb923aSLinus Walleij * this node in order to augment the device tree! 310fedb923aSLinus Walleij * Also do not touch the "ports" or "port@n" nodes. These are also ABI. 311fedb923aSLinus Walleij */ 3127109d817SMarek Behún switch0@10 { 313f1b45de7SLinus Walleij compatible = "marvell,turris-mox-mv88e6190", "marvell,mv88e6190"; 3149fd914bbSChris Packham reg = <0x10>; 3157109d817SMarek Behún dsa,member = <0 0>; 3167109d817SMarek Behún interrupt-parent = <&moxtet>; 3177109d817SMarek Behún interrupts = <MOXTET_IRQ_PERIDOT(0)>; 3187109d817SMarek Behún status = "disabled"; 3197109d817SMarek Behún 3207109d817SMarek Behún mdio { 3217109d817SMarek Behún #address-cells = <1>; 3227109d817SMarek Behún #size-cells = <0>; 3237109d817SMarek Behún 324fedb923aSLinus Walleij switch0phy1: ethernet-phy@1 { 3257109d817SMarek Behún reg = <0x1>; 3267109d817SMarek Behún }; 3277109d817SMarek Behún 328fedb923aSLinus Walleij switch0phy2: ethernet-phy@2 { 3297109d817SMarek Behún reg = <0x2>; 3307109d817SMarek Behún }; 3317109d817SMarek Behún 332fedb923aSLinus Walleij switch0phy3: ethernet-phy@3 { 3337109d817SMarek Behún reg = <0x3>; 3347109d817SMarek Behún }; 3357109d817SMarek Behún 336fedb923aSLinus Walleij switch0phy4: ethernet-phy@4 { 3377109d817SMarek Behún reg = <0x4>; 3387109d817SMarek Behún }; 3397109d817SMarek Behún 340fedb923aSLinus Walleij switch0phy5: ethernet-phy@5 { 3417109d817SMarek Behún reg = <0x5>; 3427109d817SMarek Behún }; 3437109d817SMarek Behún 344fedb923aSLinus Walleij switch0phy6: ethernet-phy@6 { 3457109d817SMarek Behún reg = <0x6>; 3467109d817SMarek Behún }; 3477109d817SMarek Behún 348fedb923aSLinus Walleij switch0phy7: ethernet-phy@7 { 3497109d817SMarek Behún reg = <0x7>; 3507109d817SMarek Behún }; 3517109d817SMarek Behún 352fedb923aSLinus Walleij switch0phy8: ethernet-phy@8 { 3537109d817SMarek Behún reg = <0x8>; 3547109d817SMarek Behún }; 3557109d817SMarek Behún }; 3567109d817SMarek Behún 3577109d817SMarek Behún ports { 3587109d817SMarek Behún #address-cells = <1>; 3597109d817SMarek Behún #size-cells = <0>; 3607109d817SMarek Behún 3617109d817SMarek Behún port@1 { 3627109d817SMarek Behún reg = <0x1>; 3637109d817SMarek Behún label = "lan1"; 3647109d817SMarek Behún phy-handle = <&switch0phy1>; 3657109d817SMarek Behún }; 3667109d817SMarek Behún 3677109d817SMarek Behún port@2 { 3687109d817SMarek Behún reg = <0x2>; 3697109d817SMarek Behún label = "lan2"; 3707109d817SMarek Behún phy-handle = <&switch0phy2>; 3717109d817SMarek Behún }; 3727109d817SMarek Behún 3737109d817SMarek Behún port@3 { 3747109d817SMarek Behún reg = <0x3>; 3757109d817SMarek Behún label = "lan3"; 3767109d817SMarek Behún phy-handle = <&switch0phy3>; 3777109d817SMarek Behún }; 3787109d817SMarek Behún 3797109d817SMarek Behún port@4 { 3807109d817SMarek Behún reg = <0x4>; 3817109d817SMarek Behún label = "lan4"; 3827109d817SMarek Behún phy-handle = <&switch0phy4>; 3837109d817SMarek Behún }; 3847109d817SMarek Behún 3857109d817SMarek Behún port@5 { 3867109d817SMarek Behún reg = <0x5>; 3877109d817SMarek Behún label = "lan5"; 3887109d817SMarek Behún phy-handle = <&switch0phy5>; 3897109d817SMarek Behún }; 3907109d817SMarek Behún 3917109d817SMarek Behún port@6 { 3927109d817SMarek Behún reg = <0x6>; 3937109d817SMarek Behún label = "lan6"; 3947109d817SMarek Behún phy-handle = <&switch0phy6>; 3957109d817SMarek Behún }; 3967109d817SMarek Behún 3977109d817SMarek Behún port@7 { 3987109d817SMarek Behún reg = <0x7>; 3997109d817SMarek Behún label = "lan7"; 4007109d817SMarek Behún phy-handle = <&switch0phy7>; 4017109d817SMarek Behún }; 4027109d817SMarek Behún 4037109d817SMarek Behún port@8 { 4047109d817SMarek Behún reg = <0x8>; 4057109d817SMarek Behún label = "lan8"; 4067109d817SMarek Behún phy-handle = <&switch0phy8>; 4077109d817SMarek Behún }; 4087109d817SMarek Behún 4097109d817SMarek Behún port@9 { 4107109d817SMarek Behún reg = <0x9>; 4117109d817SMarek Behún label = "cpu"; 4127109d817SMarek Behún ethernet = <ð1>; 4137109d817SMarek Behún phy-mode = "2500base-x"; 4147109d817SMarek Behún managed = "in-band-status"; 4157109d817SMarek Behún }; 4167109d817SMarek Behún 4177109d817SMarek Behún switch0port10: port@a { 4187109d817SMarek Behún reg = <0xa>; 4197109d817SMarek Behún label = "dsa"; 4207109d817SMarek Behún phy-mode = "2500base-x"; 4217109d817SMarek Behún managed = "in-band-status"; 4227109d817SMarek Behún link = <&switch1port9 &switch2port9>; 4237109d817SMarek Behún status = "disabled"; 4247109d817SMarek Behún }; 4257109d817SMarek Behún 4267109d817SMarek Behún port-sfp@a { 4277109d817SMarek Behún reg = <0xa>; 4287109d817SMarek Behún label = "sfp"; 4297109d817SMarek Behún sfp = <&sfp>; 4307109d817SMarek Behún phy-mode = "sgmii"; 4317109d817SMarek Behún managed = "in-band-status"; 4327109d817SMarek Behún status = "disabled"; 4337109d817SMarek Behún }; 4347109d817SMarek Behún }; 4357109d817SMarek Behún }; 4367109d817SMarek Behún 437fedb923aSLinus Walleij /* NOTE: this node name is ABI, don't change it! */ 4387109d817SMarek Behún switch0@2 { 439f1b45de7SLinus Walleij compatible = "marvell,turris-mox-mv88e6085", "marvell,mv88e6085"; 4409fd914bbSChris Packham reg = <0x2>; 4417109d817SMarek Behún dsa,member = <0 0>; 4427109d817SMarek Behún interrupt-parent = <&moxtet>; 4437109d817SMarek Behún interrupts = <MOXTET_IRQ_TOPAZ>; 4447109d817SMarek Behún status = "disabled"; 4457109d817SMarek Behún 4467109d817SMarek Behún mdio { 4477109d817SMarek Behún #address-cells = <1>; 4487109d817SMarek Behún #size-cells = <0>; 4497109d817SMarek Behún 450fedb923aSLinus Walleij switch0phy1_topaz: ethernet-phy@11 { 4517109d817SMarek Behún reg = <0x11>; 4527109d817SMarek Behún }; 4537109d817SMarek Behún 454fedb923aSLinus Walleij switch0phy2_topaz: ethernet-phy@12 { 4557109d817SMarek Behún reg = <0x12>; 4567109d817SMarek Behún }; 4577109d817SMarek Behún 458fedb923aSLinus Walleij switch0phy3_topaz: ethernet-phy@13 { 4597109d817SMarek Behún reg = <0x13>; 4607109d817SMarek Behún }; 4617109d817SMarek Behún 462fedb923aSLinus Walleij switch0phy4_topaz: ethernet-phy@14 { 4637109d817SMarek Behún reg = <0x14>; 4647109d817SMarek Behún }; 4657109d817SMarek Behún }; 4667109d817SMarek Behún 4677109d817SMarek Behún ports { 4687109d817SMarek Behún #address-cells = <1>; 4697109d817SMarek Behún #size-cells = <0>; 4707109d817SMarek Behún 4717109d817SMarek Behún port@1 { 4727109d817SMarek Behún reg = <0x1>; 4737109d817SMarek Behún label = "lan1"; 4747109d817SMarek Behún phy-handle = <&switch0phy1_topaz>; 4757109d817SMarek Behún }; 4767109d817SMarek Behún 4777109d817SMarek Behún port@2 { 4787109d817SMarek Behún reg = <0x2>; 4797109d817SMarek Behún label = "lan2"; 4807109d817SMarek Behún phy-handle = <&switch0phy2_topaz>; 4817109d817SMarek Behún }; 4827109d817SMarek Behún 4837109d817SMarek Behún port@3 { 4847109d817SMarek Behún reg = <0x3>; 4857109d817SMarek Behún label = "lan3"; 4867109d817SMarek Behún phy-handle = <&switch0phy3_topaz>; 4877109d817SMarek Behún }; 4887109d817SMarek Behún 4897109d817SMarek Behún port@4 { 4907109d817SMarek Behún reg = <0x4>; 4917109d817SMarek Behún label = "lan4"; 4927109d817SMarek Behún phy-handle = <&switch0phy4_topaz>; 4937109d817SMarek Behún }; 4947109d817SMarek Behún 4957109d817SMarek Behún port@5 { 4967109d817SMarek Behún reg = <0x5>; 4977109d817SMarek Behún label = "cpu"; 4987109d817SMarek Behún phy-mode = "2500base-x"; 4997109d817SMarek Behún managed = "in-band-status"; 5007109d817SMarek Behún ethernet = <ð1>; 5017109d817SMarek Behún }; 5027109d817SMarek Behún }; 5037109d817SMarek Behún }; 5047109d817SMarek Behún 505fedb923aSLinus Walleij /* NOTE: this node name is ABI, don't change it! */ 5067109d817SMarek Behún switch1@11 { 507f1b45de7SLinus Walleij compatible = "marvell,turris-mox-mv88e6190", "marvell,mv88e6190"; 5089fd914bbSChris Packham reg = <0x11>; 5097109d817SMarek Behún dsa,member = <0 1>; 5107109d817SMarek Behún interrupt-parent = <&moxtet>; 5117109d817SMarek Behún interrupts = <MOXTET_IRQ_PERIDOT(1)>; 5127109d817SMarek Behún status = "disabled"; 5137109d817SMarek Behún 5147109d817SMarek Behún mdio { 5157109d817SMarek Behún #address-cells = <1>; 5167109d817SMarek Behún #size-cells = <0>; 5177109d817SMarek Behún 518fedb923aSLinus Walleij switch1phy1: ethernet-phy@1 { 5197109d817SMarek Behún reg = <0x1>; 5207109d817SMarek Behún }; 5217109d817SMarek Behún 522fedb923aSLinus Walleij switch1phy2: ethernet-phy@2 { 5237109d817SMarek Behún reg = <0x2>; 5247109d817SMarek Behún }; 5257109d817SMarek Behún 526fedb923aSLinus Walleij switch1phy3: ethernet-phy@3 { 5277109d817SMarek Behún reg = <0x3>; 5287109d817SMarek Behún }; 5297109d817SMarek Behún 530fedb923aSLinus Walleij switch1phy4: ethernet-phy@4 { 5317109d817SMarek Behún reg = <0x4>; 5327109d817SMarek Behún }; 5337109d817SMarek Behún 534fedb923aSLinus Walleij switch1phy5: ethernet-phy@5 { 5357109d817SMarek Behún reg = <0x5>; 5367109d817SMarek Behún }; 5377109d817SMarek Behún 538fedb923aSLinus Walleij switch1phy6: ethernet-phy@6 { 5397109d817SMarek Behún reg = <0x6>; 5407109d817SMarek Behún }; 5417109d817SMarek Behún 542fedb923aSLinus Walleij switch1phy7: ethernet-phy@7 { 5437109d817SMarek Behún reg = <0x7>; 5447109d817SMarek Behún }; 5457109d817SMarek Behún 546fedb923aSLinus Walleij switch1phy8: ethernet-phy@8 { 5477109d817SMarek Behún reg = <0x8>; 5487109d817SMarek Behún }; 5497109d817SMarek Behún }; 5507109d817SMarek Behún 5517109d817SMarek Behún ports { 5527109d817SMarek Behún #address-cells = <1>; 5537109d817SMarek Behún #size-cells = <0>; 5547109d817SMarek Behún 5557109d817SMarek Behún port@1 { 5567109d817SMarek Behún reg = <0x1>; 5577109d817SMarek Behún label = "lan9"; 5587109d817SMarek Behún phy-handle = <&switch1phy1>; 5597109d817SMarek Behún }; 5607109d817SMarek Behún 5617109d817SMarek Behún port@2 { 5627109d817SMarek Behún reg = <0x2>; 5637109d817SMarek Behún label = "lan10"; 5647109d817SMarek Behún phy-handle = <&switch1phy2>; 5657109d817SMarek Behún }; 5667109d817SMarek Behún 5677109d817SMarek Behún port@3 { 5687109d817SMarek Behún reg = <0x3>; 5697109d817SMarek Behún label = "lan11"; 5707109d817SMarek Behún phy-handle = <&switch1phy3>; 5717109d817SMarek Behún }; 5727109d817SMarek Behún 5737109d817SMarek Behún port@4 { 5747109d817SMarek Behún reg = <0x4>; 5757109d817SMarek Behún label = "lan12"; 5767109d817SMarek Behún phy-handle = <&switch1phy4>; 5777109d817SMarek Behún }; 5787109d817SMarek Behún 5797109d817SMarek Behún port@5 { 5807109d817SMarek Behún reg = <0x5>; 5817109d817SMarek Behún label = "lan13"; 5827109d817SMarek Behún phy-handle = <&switch1phy5>; 5837109d817SMarek Behún }; 5847109d817SMarek Behún 5857109d817SMarek Behún port@6 { 5867109d817SMarek Behún reg = <0x6>; 5877109d817SMarek Behún label = "lan14"; 5887109d817SMarek Behún phy-handle = <&switch1phy6>; 5897109d817SMarek Behún }; 5907109d817SMarek Behún 5917109d817SMarek Behún port@7 { 5927109d817SMarek Behún reg = <0x7>; 5937109d817SMarek Behún label = "lan15"; 5947109d817SMarek Behún phy-handle = <&switch1phy7>; 5957109d817SMarek Behún }; 5967109d817SMarek Behún 5977109d817SMarek Behún port@8 { 5987109d817SMarek Behún reg = <0x8>; 5997109d817SMarek Behún label = "lan16"; 6007109d817SMarek Behún phy-handle = <&switch1phy8>; 6017109d817SMarek Behún }; 6027109d817SMarek Behún 6037109d817SMarek Behún switch1port9: port@9 { 6047109d817SMarek Behún reg = <0x9>; 6057109d817SMarek Behún label = "dsa"; 6067109d817SMarek Behún phy-mode = "2500base-x"; 6077109d817SMarek Behún managed = "in-band-status"; 6087109d817SMarek Behún link = <&switch0port10>; 6097109d817SMarek Behún }; 6107109d817SMarek Behún 6117109d817SMarek Behún switch1port10: port@a { 6127109d817SMarek Behún reg = <0xa>; 6137109d817SMarek Behún label = "dsa"; 6147109d817SMarek Behún phy-mode = "2500base-x"; 6157109d817SMarek Behún managed = "in-band-status"; 6167109d817SMarek Behún link = <&switch2port9>; 6177109d817SMarek Behún status = "disabled"; 6187109d817SMarek Behún }; 6197109d817SMarek Behún 6207109d817SMarek Behún port-sfp@a { 6217109d817SMarek Behún reg = <0xa>; 6227109d817SMarek Behún label = "sfp"; 6237109d817SMarek Behún sfp = <&sfp>; 6247109d817SMarek Behún phy-mode = "sgmii"; 6257109d817SMarek Behún managed = "in-band-status"; 6267109d817SMarek Behún status = "disabled"; 6277109d817SMarek Behún }; 6287109d817SMarek Behún }; 6297109d817SMarek Behún }; 6307109d817SMarek Behún 631fedb923aSLinus Walleij /* NOTE: this node name is ABI, don't change it! */ 6327109d817SMarek Behún switch1@2 { 633f1b45de7SLinus Walleij compatible = "marvell,turris-mox-mv88e6085", "marvell,mv88e6085"; 6349fd914bbSChris Packham reg = <0x2>; 6357109d817SMarek Behún dsa,member = <0 1>; 6367109d817SMarek Behún interrupt-parent = <&moxtet>; 6377109d817SMarek Behún interrupts = <MOXTET_IRQ_TOPAZ>; 6387109d817SMarek Behún status = "disabled"; 6397109d817SMarek Behún 6407109d817SMarek Behún mdio { 6417109d817SMarek Behún #address-cells = <1>; 6427109d817SMarek Behún #size-cells = <0>; 6437109d817SMarek Behún 644fedb923aSLinus Walleij switch1phy1_topaz: ethernet-phy@11 { 6457109d817SMarek Behún reg = <0x11>; 6467109d817SMarek Behún }; 6477109d817SMarek Behún 648fedb923aSLinus Walleij switch1phy2_topaz: ethernet-phy@12 { 6497109d817SMarek Behún reg = <0x12>; 6507109d817SMarek Behún }; 6517109d817SMarek Behún 652fedb923aSLinus Walleij switch1phy3_topaz: ethernet-phy@13 { 6537109d817SMarek Behún reg = <0x13>; 6547109d817SMarek Behún }; 6557109d817SMarek Behún 656fedb923aSLinus Walleij switch1phy4_topaz: ethernet-phy@14 { 6577109d817SMarek Behún reg = <0x14>; 6587109d817SMarek Behún }; 6597109d817SMarek Behún }; 6607109d817SMarek Behún 6617109d817SMarek Behún ports { 6627109d817SMarek Behún #address-cells = <1>; 6637109d817SMarek Behún #size-cells = <0>; 6647109d817SMarek Behún 6657109d817SMarek Behún port@1 { 6667109d817SMarek Behún reg = <0x1>; 6677109d817SMarek Behún label = "lan9"; 6687109d817SMarek Behún phy-handle = <&switch1phy1_topaz>; 6697109d817SMarek Behún }; 6707109d817SMarek Behún 6717109d817SMarek Behún port@2 { 6727109d817SMarek Behún reg = <0x2>; 6737109d817SMarek Behún label = "lan10"; 6747109d817SMarek Behún phy-handle = <&switch1phy2_topaz>; 6757109d817SMarek Behún }; 6767109d817SMarek Behún 6777109d817SMarek Behún port@3 { 6787109d817SMarek Behún reg = <0x3>; 6797109d817SMarek Behún label = "lan11"; 6807109d817SMarek Behún phy-handle = <&switch1phy3_topaz>; 6817109d817SMarek Behún }; 6827109d817SMarek Behún 6837109d817SMarek Behún port@4 { 6847109d817SMarek Behún reg = <0x4>; 6857109d817SMarek Behún label = "lan12"; 6867109d817SMarek Behún phy-handle = <&switch1phy4_topaz>; 6877109d817SMarek Behún }; 6887109d817SMarek Behún 6897109d817SMarek Behún port@5 { 6907109d817SMarek Behún reg = <0x5>; 6917109d817SMarek Behún label = "dsa"; 6927109d817SMarek Behún phy-mode = "2500base-x"; 6937109d817SMarek Behún managed = "in-band-status"; 6947109d817SMarek Behún link = <&switch0port10>; 6957109d817SMarek Behún }; 6967109d817SMarek Behún }; 6977109d817SMarek Behún }; 6987109d817SMarek Behún 699fedb923aSLinus Walleij /* NOTE: this node name is ABI, don't change it! */ 7007109d817SMarek Behún switch2@12 { 701f1b45de7SLinus Walleij compatible = "marvell,turris-mox-mv88e6190", "marvell,mv88e6190"; 7029fd914bbSChris Packham reg = <0x12>; 7037109d817SMarek Behún dsa,member = <0 2>; 7047109d817SMarek Behún interrupt-parent = <&moxtet>; 7057109d817SMarek Behún interrupts = <MOXTET_IRQ_PERIDOT(2)>; 7067109d817SMarek Behún status = "disabled"; 7077109d817SMarek Behún 7087109d817SMarek Behún mdio { 7097109d817SMarek Behún #address-cells = <1>; 7107109d817SMarek Behún #size-cells = <0>; 7117109d817SMarek Behún 712fedb923aSLinus Walleij switch2phy1: ethernet-phy@1 { 7137109d817SMarek Behún reg = <0x1>; 7147109d817SMarek Behún }; 7157109d817SMarek Behún 716fedb923aSLinus Walleij switch2phy2: ethernet-phy@2 { 7177109d817SMarek Behún reg = <0x2>; 7187109d817SMarek Behún }; 7197109d817SMarek Behún 720fedb923aSLinus Walleij switch2phy3: ethernet-phy@3 { 7217109d817SMarek Behún reg = <0x3>; 7227109d817SMarek Behún }; 7237109d817SMarek Behún 724fedb923aSLinus Walleij switch2phy4: ethernet-phy@4 { 7257109d817SMarek Behún reg = <0x4>; 7267109d817SMarek Behún }; 7277109d817SMarek Behún 728fedb923aSLinus Walleij switch2phy5: ethernet-phy@5 { 7297109d817SMarek Behún reg = <0x5>; 7307109d817SMarek Behún }; 7317109d817SMarek Behún 732fedb923aSLinus Walleij switch2phy6: ethernet-phy@6 { 7337109d817SMarek Behún reg = <0x6>; 7347109d817SMarek Behún }; 7357109d817SMarek Behún 736fedb923aSLinus Walleij switch2phy7: ethernet-phy@7 { 7377109d817SMarek Behún reg = <0x7>; 7387109d817SMarek Behún }; 7397109d817SMarek Behún 740fedb923aSLinus Walleij switch2phy8: ethernet-phy@8 { 7417109d817SMarek Behún reg = <0x8>; 7427109d817SMarek Behún }; 7437109d817SMarek Behún }; 7447109d817SMarek Behún 7457109d817SMarek Behún ports { 7467109d817SMarek Behún #address-cells = <1>; 7477109d817SMarek Behún #size-cells = <0>; 7487109d817SMarek Behún 7497109d817SMarek Behún port@1 { 7507109d817SMarek Behún reg = <0x1>; 7517109d817SMarek Behún label = "lan17"; 7527109d817SMarek Behún phy-handle = <&switch2phy1>; 7537109d817SMarek Behún }; 7547109d817SMarek Behún 7557109d817SMarek Behún port@2 { 7567109d817SMarek Behún reg = <0x2>; 7577109d817SMarek Behún label = "lan18"; 7587109d817SMarek Behún phy-handle = <&switch2phy2>; 7597109d817SMarek Behún }; 7607109d817SMarek Behún 7617109d817SMarek Behún port@3 { 7627109d817SMarek Behún reg = <0x3>; 7637109d817SMarek Behún label = "lan19"; 7647109d817SMarek Behún phy-handle = <&switch2phy3>; 7657109d817SMarek Behún }; 7667109d817SMarek Behún 7677109d817SMarek Behún port@4 { 7687109d817SMarek Behún reg = <0x4>; 7697109d817SMarek Behún label = "lan20"; 7707109d817SMarek Behún phy-handle = <&switch2phy4>; 7717109d817SMarek Behún }; 7727109d817SMarek Behún 7737109d817SMarek Behún port@5 { 7747109d817SMarek Behún reg = <0x5>; 7757109d817SMarek Behún label = "lan21"; 7767109d817SMarek Behún phy-handle = <&switch2phy5>; 7777109d817SMarek Behún }; 7787109d817SMarek Behún 7797109d817SMarek Behún port@6 { 7807109d817SMarek Behún reg = <0x6>; 7817109d817SMarek Behún label = "lan22"; 7827109d817SMarek Behún phy-handle = <&switch2phy6>; 7837109d817SMarek Behún }; 7847109d817SMarek Behún 7857109d817SMarek Behún port@7 { 7867109d817SMarek Behún reg = <0x7>; 7877109d817SMarek Behún label = "lan23"; 7887109d817SMarek Behún phy-handle = <&switch2phy7>; 7897109d817SMarek Behún }; 7907109d817SMarek Behún 7917109d817SMarek Behún port@8 { 7927109d817SMarek Behún reg = <0x8>; 7937109d817SMarek Behún label = "lan24"; 7947109d817SMarek Behún phy-handle = <&switch2phy8>; 7957109d817SMarek Behún }; 7967109d817SMarek Behún 7977109d817SMarek Behún switch2port9: port@9 { 7987109d817SMarek Behún reg = <0x9>; 7997109d817SMarek Behún label = "dsa"; 8007109d817SMarek Behún phy-mode = "2500base-x"; 8017109d817SMarek Behún managed = "in-band-status"; 8027109d817SMarek Behún link = <&switch1port10 &switch0port10>; 8037109d817SMarek Behún }; 8047109d817SMarek Behún 8057109d817SMarek Behún port-sfp@a { 8067109d817SMarek Behún reg = <0xa>; 8077109d817SMarek Behún label = "sfp"; 8087109d817SMarek Behún sfp = <&sfp>; 8097109d817SMarek Behún phy-mode = "sgmii"; 8107109d817SMarek Behún managed = "in-band-status"; 8117109d817SMarek Behún status = "disabled"; 8127109d817SMarek Behún }; 8137109d817SMarek Behún }; 8147109d817SMarek Behún }; 8157109d817SMarek Behún 816fedb923aSLinus Walleij /* NOTE: this node name is ABI, don't change it! */ 8177109d817SMarek Behún switch2@2 { 818f1b45de7SLinus Walleij compatible = "marvell,turris-mox-mv88e6085", "marvell,mv88e6085"; 8199fd914bbSChris Packham reg = <0x2>; 8207109d817SMarek Behún dsa,member = <0 2>; 8217109d817SMarek Behún interrupt-parent = <&moxtet>; 8227109d817SMarek Behún interrupts = <MOXTET_IRQ_TOPAZ>; 8237109d817SMarek Behún status = "disabled"; 8247109d817SMarek Behún 8257109d817SMarek Behún mdio { 8267109d817SMarek Behún #address-cells = <1>; 8277109d817SMarek Behún #size-cells = <0>; 8287109d817SMarek Behún 829fedb923aSLinus Walleij switch2phy1_topaz: ethernet-phy@11 { 8307109d817SMarek Behún reg = <0x11>; 8317109d817SMarek Behún }; 8327109d817SMarek Behún 833fedb923aSLinus Walleij switch2phy2_topaz: ethernet-phy@12 { 8347109d817SMarek Behún reg = <0x12>; 8357109d817SMarek Behún }; 8367109d817SMarek Behún 837fedb923aSLinus Walleij switch2phy3_topaz: ethernet-phy@13 { 8387109d817SMarek Behún reg = <0x13>; 8397109d817SMarek Behún }; 8407109d817SMarek Behún 841fedb923aSLinus Walleij switch2phy4_topaz: ethernet-phy@14 { 8427109d817SMarek Behún reg = <0x14>; 8437109d817SMarek Behún }; 8447109d817SMarek Behún }; 8457109d817SMarek Behún 8467109d817SMarek Behún ports { 8477109d817SMarek Behún #address-cells = <1>; 8487109d817SMarek Behún #size-cells = <0>; 8497109d817SMarek Behún 8507109d817SMarek Behún port@1 { 8517109d817SMarek Behún reg = <0x1>; 8527109d817SMarek Behún label = "lan17"; 8537109d817SMarek Behún phy-handle = <&switch2phy1_topaz>; 8547109d817SMarek Behún }; 8557109d817SMarek Behún 8567109d817SMarek Behún port@2 { 8577109d817SMarek Behún reg = <0x2>; 8587109d817SMarek Behún label = "lan18"; 8597109d817SMarek Behún phy-handle = <&switch2phy2_topaz>; 8607109d817SMarek Behún }; 8617109d817SMarek Behún 8627109d817SMarek Behún port@3 { 8637109d817SMarek Behún reg = <0x3>; 8647109d817SMarek Behún label = "lan19"; 8657109d817SMarek Behún phy-handle = <&switch2phy3_topaz>; 8667109d817SMarek Behún }; 8677109d817SMarek Behún 8687109d817SMarek Behún port@4 { 8697109d817SMarek Behún reg = <0x4>; 8707109d817SMarek Behún label = "lan20"; 8717109d817SMarek Behún phy-handle = <&switch2phy4_topaz>; 8727109d817SMarek Behún }; 8737109d817SMarek Behún 8747109d817SMarek Behún port@5 { 8757109d817SMarek Behún reg = <0x5>; 8767109d817SMarek Behún label = "dsa"; 8777109d817SMarek Behún phy-mode = "2500base-x"; 8787109d817SMarek Behún managed = "in-band-status"; 8797109d817SMarek Behún link = <&switch1port10 &switch0port10>; 8807109d817SMarek Behún }; 8817109d817SMarek Behún }; 8827109d817SMarek Behún }; 8837109d817SMarek Behún}; 884