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 at address 0x64 */
355 #address-cells = <1>;
359 /* exposed on pin header */
363 #address-cells = <1>;
369 * GPIO expander for SFP+ signals and
372 compatible = "nxp,pca9538";
375 pinctrl-names = "default";
376 pinctrl-0 = <&pcawan_pins>;
378 interrupt-parent = <&gpio1>;
379 interrupts = <14 IRQ_TYPE_LEVEL_LOW>;
389 pinctrl-names = "default";
390 pinctrl-0 = <&mdio_pins>;
393 phy1: ethernet-phy@1 {
394 compatible = "ethernet-phy-ieee802.3-c22";
396 marvell,reg-init = <3 18 0 0x4985>;
398 /* irq is connected to &pcawan pin 7 */
401 /* Switch MV88E6176 at address 0x10 */
403 pinctrl-names = "default";
404 pinctrl-0 = <&swint_pins>;
405 compatible = "marvell,mv88e6085";
406 #address-cells = <1>;
412 interrupt-parent = <&gpio1>;
413 interrupts = <13 IRQ_TYPE_LEVEL_LOW>;
416 #address-cells = <1>;
448 phy-mode = "rgmii-id";
456 /* port 6 is connected to eth0 */
462 pcawan_pins: pcawan-pins {
463 marvell,pins = "mpp46";
464 marvell,function = "gpio";
467 swint_pins: swint-pins {
468 marvell,pins = "mpp45";
469 marvell,function = "gpio";
472 spi0cs0_pins: spi0cs0-pins {
473 marvell,pins = "mpp25";
474 marvell,function = "spi0";
477 spi0cs1_pins: spi0cs1-pins {
478 marvell,pins = "mpp26";
479 marvell,function = "spi0";
484 pinctrl-names = "default";
485 pinctrl-0 = <&spi0_pins &spi0cs0_pins>;
489 compatible = "spansion,s25fl164k", "jedec,spi-nor";
490 #address-cells = <1>;
493 spi-max-frequency = <40000000>;
496 compatible = "fixed-partitions";
497 #address-cells = <1>;
501 reg = <0x0 0x00100000>;
506 reg = <0x00100000 0x00700000>;
507 label = "Rescue system";
512 /* MISO, MOSI, SCLK and CS1 are routed to pin header CN11 */
516 /* Pin header CN10 */
517 pinctrl-names = "default";
518 pinctrl-0 = <&uart0_pins>;
523 /* Pin header CN11 */
524 pinctrl-names = "default";
525 pinctrl-0 = <&uart1_pins>;