1 // SPDX-License-Identifier: (GPL-2.0 OR MIT)
3 * Device Tree file for the Turris Omnia
5 * Copyright (C) 2016 Uwe Kleine-König <uwe@kleine-koenig.org>
6 * Copyright (C) 2016 Tomas Hlavacek <tmshlvkc@gmail.com>
8 * Schematic available at https://www.turris.cz/doc/_media/rtrom01-schema.pdf
13 #include <dt-bindings/gpio/gpio.h>
14 #include <dt-bindings/input/input.h>
15 #include <dt-bindings/leds/common.h>
16 #include "armada-385.dtsi"
19 model = "Turris Omnia";
20 compatible = "cznic,turris-omnia", "marvell,armada385", "marvell,armada380";
27 device_type = "memory";
28 reg = <0x00000000 0x40000000>; /* 1024 MB */
32 ranges = <MBUS_ID(0xf0, 0x01) 0 0xf1000000 0x100000
33 MBUS_ID(0x01, 0x1d) 0 0xfff00000 0x100000
34 MBUS_ID(0x09, 0x19) 0 0xf1100000 0x10000
35 MBUS_ID(0x09, 0x15) 0 0xf1110000 0x10000
36 MBUS_ID(0x0c, 0x04) 0 0xf1200000 0x100000>;
40 /* USB part of the PCIe2/USB 2.0 port */
50 pinctrl-names = "default";
51 pinctrl-0 = <&sdhci_pins>;
74 slot-power-limit-milliwatt = <10000>;
80 slot-power-limit-milliwatt = <10000>;
86 slot-power-limit-milliwatt = <10000>;
92 compatible = "sff,sfp";
94 tx-fault-gpios = <&pcawan 0 GPIO_ACTIVE_HIGH>;
95 tx-disable-gpios = <&pcawan 1 GPIO_ACTIVE_HIGH>;
96 rate-select0-gpios = <&pcawan 2 GPIO_ACTIVE_HIGH>;
97 los-gpios = <&pcawan 3 GPIO_ACTIVE_HIGH>;
98 mod-def0-gpios = <&pcawan 4 GPIO_ACTIVE_LOW>;
99 maximum-power-milliwatt = <3000>;
102 * For now this has to be enabled at boot time by U-Boot when
103 * a SFP module is present. Read more in the comment in the
118 /* Connected to 88E6176 switch, port 6 */
120 pinctrl-names = "default";
121 pinctrl-0 = <&ge0_rgmii_pins>;
124 buffer-manager = <&bm>;
134 /* Connected to 88E6176 switch, port 5 */
136 pinctrl-names = "default";
137 pinctrl-0 = <&ge1_rgmii_pins>;
140 buffer-manager = <&bm>;
153 * eth2 is connected via a multiplexor to both the SFP cage and to
154 * ethernet-phy@1. The multiplexor switches the signal to SFP cage when
155 * a SFP module is present, as determined by the mode-def0 GPIO.
157 * Until kernel supports this configuration properly, in case SFP module
158 * is present, U-Boot has to enable the sfp node above, remove phy
159 * handle and add managed = "in-band-status" property.
163 phy-handle = <&phy1>;
166 buffer-manager = <&bm>;
172 pinctrl-names = "default";
173 pinctrl-0 = <&i2c0_pins>;
177 compatible = "nxp,pca9547";
178 #address-cells = <1>;
183 #address-cells = <1>;
187 /* STM32F0 command interface at address 0x2a */
190 compatible = "cznic,turris-omnia-leds";
192 #address-cells = <1>;
196 * LEDs are controlled by MCU (STM32F0) at
199 * The driver does not support HW control mode
200 * for the LEDs yet. Disable the LEDs for now.
202 * Also LED functions are not stable yet:
203 * - there are 3 LEDs connected via MCU to PCIe
204 * ports. One of these ports supports mSATA.
205 * There is no mSATA nor PCIe function.
206 * For now we use LED_FUNCTION_WLAN, since
207 * in most cases users have wifi cards in
209 * - there are 2 LEDs dedicated for user: A and
210 * B. Again there is no such function defined.
211 * For now we use LED_FUNCTION_INDICATOR
217 color = <LED_COLOR_ID_RGB>;
218 function = LED_FUNCTION_INDICATOR;
219 function-enumerator = <2>;
224 color = <LED_COLOR_ID_RGB>;
225 function = LED_FUNCTION_INDICATOR;
226 function-enumerator = <1>;
231 color = <LED_COLOR_ID_RGB>;
232 function = LED_FUNCTION_WLAN;
233 function-enumerator = <3>;
238 color = <LED_COLOR_ID_RGB>;
239 function = LED_FUNCTION_WLAN;
240 function-enumerator = <2>;
245 color = <LED_COLOR_ID_RGB>;
246 function = LED_FUNCTION_WLAN;
247 function-enumerator = <1>;
252 color = <LED_COLOR_ID_RGB>;
253 function = LED_FUNCTION_WAN;
258 color = <LED_COLOR_ID_RGB>;
259 function = LED_FUNCTION_LAN;
260 function-enumerator = <4>;
265 color = <LED_COLOR_ID_RGB>;
266 function = LED_FUNCTION_LAN;
267 function-enumerator = <3>;
272 color = <LED_COLOR_ID_RGB>;
273 function = LED_FUNCTION_LAN;
274 function-enumerator = <2>;
279 color = <LED_COLOR_ID_RGB>;
280 function = LED_FUNCTION_LAN;
281 function-enumerator = <1>;
286 color = <LED_COLOR_ID_RGB>;
287 function = LED_FUNCTION_LAN;
288 function-enumerator = <0>;
293 color = <LED_COLOR_ID_RGB>;
294 function = LED_FUNCTION_POWER;
299 compatible = "atmel,24c64";
302 /* The EEPROM contains data for bootloader.
304 * struct omnia_eeprom {
305 * u32 magic; (=0x0341a034 in LE)
306 * u32 ramsize; (in GiB)
315 #address-cells = <1>;
319 /* routed to PCIe0/mSATA connector (CN7A) */
323 #address-cells = <1>;
327 /* routed to PCIe1/USB2 connector (CN61A) */
331 #address-cells = <1>;
335 /* routed to PCIe2 connector (CN62A) */
339 #address-cells = <1>;
347 #address-cells = <1>;
351 /* ATSHA204A-MAHDA-T crypto module */
353 compatible = "atmel,atsha204a";
359 #address-cells = <1>;
363 /* exposed on pin header */
367 #address-cells = <1>;
373 * GPIO expander for SFP+ signals and
376 compatible = "nxp,pca9538";
379 pinctrl-names = "default";
380 pinctrl-0 = <&pcawan_pins>;
382 interrupt-parent = <&gpio1>;
383 interrupts = <14 IRQ_TYPE_LEVEL_LOW>;
393 pinctrl-names = "default";
394 pinctrl-0 = <&mdio_pins>;
397 phy1: ethernet-phy@1 {
398 compatible = "ethernet-phy-ieee802.3-c22";
400 marvell,reg-init = <3 18 0 0x4985>;
402 /* irq is connected to &pcawan pin 7 */
405 /* Switch MV88E6176 at address 0x10 */
407 pinctrl-names = "default";
408 pinctrl-0 = <&swint_pins>;
409 compatible = "marvell,mv88e6085";
410 #address-cells = <1>;
416 interrupt-parent = <&gpio1>;
417 interrupts = <13 IRQ_TYPE_LEVEL_LOW>;
420 #address-cells = <1>;
452 phy-mode = "rgmii-id";
460 /* port 6 is connected to eth0 */
466 pcawan_pins: pcawan-pins {
467 marvell,pins = "mpp46";
468 marvell,function = "gpio";
471 swint_pins: swint-pins {
472 marvell,pins = "mpp45";
473 marvell,function = "gpio";
476 spi0cs0_pins: spi0cs0-pins {
477 marvell,pins = "mpp25";
478 marvell,function = "spi0";
481 spi0cs1_pins: spi0cs1-pins {
482 marvell,pins = "mpp26";
483 marvell,function = "spi0";
488 pinctrl-names = "default";
489 pinctrl-0 = <&spi0_pins &spi0cs0_pins>;
493 compatible = "spansion,s25fl164k", "jedec,spi-nor";
494 #address-cells = <1>;
497 spi-max-frequency = <40000000>;
500 compatible = "fixed-partitions";
501 #address-cells = <1>;
505 reg = <0x0 0x00100000>;
510 reg = <0x00100000 0x00700000>;
511 label = "Rescue system";
516 /* MISO, MOSI, SCLK and CS1 are routed to pin header CN11 */
520 /* Pin header CN10 */
521 pinctrl-names = "default";
522 pinctrl-0 = <&uart0_pins>;
527 /* Pin header CN11 */
528 pinctrl-names = "default";
529 pinctrl-0 = <&uart1_pins>;