xref: /freebsd-src/sys/contrib/device-tree/src/arm/marvell/armada-385-turris-omnia.dts (revision 0e8011faf58b743cc652e3b2ad0f7671227610df)
1f126890aSEmmanuel Vadot// SPDX-License-Identifier: (GPL-2.0 OR MIT)
2f126890aSEmmanuel Vadot/*
3f126890aSEmmanuel Vadot * Device Tree file for the Turris Omnia
4f126890aSEmmanuel Vadot *
5f126890aSEmmanuel Vadot * Copyright (C) 2016 Uwe Kleine-König <uwe@kleine-koenig.org>
6f126890aSEmmanuel Vadot * Copyright (C) 2016 Tomas Hlavacek <tmshlvkc@gmail.com>
7f126890aSEmmanuel Vadot *
8f126890aSEmmanuel Vadot * Schematic available at https://www.turris.cz/doc/_media/rtrom01-schema.pdf
9f126890aSEmmanuel Vadot */
10f126890aSEmmanuel Vadot
11f126890aSEmmanuel Vadot/dts-v1/;
12f126890aSEmmanuel Vadot
13f126890aSEmmanuel Vadot#include <dt-bindings/gpio/gpio.h>
14f126890aSEmmanuel Vadot#include <dt-bindings/input/input.h>
15f126890aSEmmanuel Vadot#include <dt-bindings/leds/common.h>
16f126890aSEmmanuel Vadot#include "armada-385.dtsi"
17f126890aSEmmanuel Vadot
18f126890aSEmmanuel Vadot/ {
19f126890aSEmmanuel Vadot	model = "Turris Omnia";
20f126890aSEmmanuel Vadot	compatible = "cznic,turris-omnia", "marvell,armada385", "marvell,armada380";
21f126890aSEmmanuel Vadot
22f126890aSEmmanuel Vadot	chosen {
23f126890aSEmmanuel Vadot		stdout-path = &uart0;
24f126890aSEmmanuel Vadot	};
25f126890aSEmmanuel Vadot
26f126890aSEmmanuel Vadot	aliases {
27f126890aSEmmanuel Vadot		ethernet0 = &eth0;
28f126890aSEmmanuel Vadot		ethernet1 = &eth1;
29f126890aSEmmanuel Vadot		ethernet2 = &eth2;
30f126890aSEmmanuel Vadot	};
31f126890aSEmmanuel Vadot
32f126890aSEmmanuel Vadot	memory {
33f126890aSEmmanuel Vadot		device_type = "memory";
34f126890aSEmmanuel Vadot		reg = <0x00000000 0x40000000>; /* 1024 MB */
35f126890aSEmmanuel Vadot	};
36f126890aSEmmanuel Vadot
37f126890aSEmmanuel Vadot	soc {
38f126890aSEmmanuel Vadot		ranges = <MBUS_ID(0xf0, 0x01) 0 0xf1000000 0x100000
39f126890aSEmmanuel Vadot			  MBUS_ID(0x01, 0x1d) 0 0xfff00000 0x100000
40f126890aSEmmanuel Vadot			  MBUS_ID(0x09, 0x19) 0 0xf1100000 0x10000
41f126890aSEmmanuel Vadot			  MBUS_ID(0x09, 0x15) 0 0xf1110000 0x10000
42f126890aSEmmanuel Vadot			  MBUS_ID(0x0c, 0x04) 0 0xf1200000 0x100000>;
43f126890aSEmmanuel Vadot
44f126890aSEmmanuel Vadot		internal-regs {
45f126890aSEmmanuel Vadot
46f126890aSEmmanuel Vadot			/* USB part of the PCIe2/USB 2.0 port */
47f126890aSEmmanuel Vadot			usb@58000 {
48f126890aSEmmanuel Vadot				status = "okay";
49f126890aSEmmanuel Vadot			};
50f126890aSEmmanuel Vadot
51f126890aSEmmanuel Vadot			sata@a8000 {
52f126890aSEmmanuel Vadot				status = "okay";
53f126890aSEmmanuel Vadot			};
54f126890aSEmmanuel Vadot
55f126890aSEmmanuel Vadot			sdhci@d8000 {
56f126890aSEmmanuel Vadot				pinctrl-names = "default";
57f126890aSEmmanuel Vadot				pinctrl-0 = <&sdhci_pins>;
58f126890aSEmmanuel Vadot				status = "okay";
59f126890aSEmmanuel Vadot
60f126890aSEmmanuel Vadot				bus-width = <8>;
61f126890aSEmmanuel Vadot				no-1-8-v;
62f126890aSEmmanuel Vadot				non-removable;
63f126890aSEmmanuel Vadot			};
64f126890aSEmmanuel Vadot
65f126890aSEmmanuel Vadot			usb3@f0000 {
66f126890aSEmmanuel Vadot				status = "okay";
67f126890aSEmmanuel Vadot			};
68f126890aSEmmanuel Vadot
69f126890aSEmmanuel Vadot			usb3@f8000 {
70f126890aSEmmanuel Vadot				status = "okay";
71f126890aSEmmanuel Vadot			};
72f126890aSEmmanuel Vadot		};
73f126890aSEmmanuel Vadot
74f126890aSEmmanuel Vadot		pcie {
75f126890aSEmmanuel Vadot			status = "okay";
76f126890aSEmmanuel Vadot
77f126890aSEmmanuel Vadot			pcie@1,0 {
78f126890aSEmmanuel Vadot				/* Port 0, Lane 0 */
79f126890aSEmmanuel Vadot				status = "okay";
80f126890aSEmmanuel Vadot				slot-power-limit-milliwatt = <10000>;
81f126890aSEmmanuel Vadot			};
82f126890aSEmmanuel Vadot
83f126890aSEmmanuel Vadot			pcie@2,0 {
84f126890aSEmmanuel Vadot				/* Port 1, Lane 0 */
85f126890aSEmmanuel Vadot				status = "okay";
86f126890aSEmmanuel Vadot				slot-power-limit-milliwatt = <10000>;
87f126890aSEmmanuel Vadot			};
88f126890aSEmmanuel Vadot
89f126890aSEmmanuel Vadot			pcie@3,0 {
90f126890aSEmmanuel Vadot				/* Port 2, Lane 0 */
91f126890aSEmmanuel Vadot				status = "okay";
92f126890aSEmmanuel Vadot				slot-power-limit-milliwatt = <10000>;
93f126890aSEmmanuel Vadot			};
94f126890aSEmmanuel Vadot		};
95f126890aSEmmanuel Vadot	};
96f126890aSEmmanuel Vadot
97f126890aSEmmanuel Vadot	sfp: sfp {
98f126890aSEmmanuel Vadot		compatible = "sff,sfp";
99f126890aSEmmanuel Vadot		i2c-bus = <&sfp_i2c>;
100f126890aSEmmanuel Vadot		tx-fault-gpios = <&pcawan 0 GPIO_ACTIVE_HIGH>;
101f126890aSEmmanuel Vadot		tx-disable-gpios = <&pcawan 1 GPIO_ACTIVE_HIGH>;
102f126890aSEmmanuel Vadot		rate-select0-gpios = <&pcawan 2 GPIO_ACTIVE_HIGH>;
103f126890aSEmmanuel Vadot		los-gpios = <&pcawan 3 GPIO_ACTIVE_HIGH>;
104f126890aSEmmanuel Vadot		mod-def0-gpios = <&pcawan 4 GPIO_ACTIVE_LOW>;
105f126890aSEmmanuel Vadot		maximum-power-milliwatt = <3000>;
106f126890aSEmmanuel Vadot
107f126890aSEmmanuel Vadot		/*
108f126890aSEmmanuel Vadot		 * For now this has to be enabled at boot time by U-Boot when
109f126890aSEmmanuel Vadot		 * a SFP module is present. Read more in the comment in the
110f126890aSEmmanuel Vadot		 * eth2 node below.
111f126890aSEmmanuel Vadot		 */
112f126890aSEmmanuel Vadot		status = "disabled";
113f126890aSEmmanuel Vadot	};
114f126890aSEmmanuel Vadot
115*0e8011faSEmmanuel Vadot	gpio-keys {
116*0e8011faSEmmanuel Vadot		compatible = "gpio-keys";
117*0e8011faSEmmanuel Vadot
118*0e8011faSEmmanuel Vadot		front-button {
119*0e8011faSEmmanuel Vadot			label = "Front Button";
120*0e8011faSEmmanuel Vadot			linux,code = <KEY_VENDOR>;
121*0e8011faSEmmanuel Vadot			linux,can-disable;
122*0e8011faSEmmanuel Vadot			gpios = <&mcu 0 12 GPIO_ACTIVE_HIGH>;
123*0e8011faSEmmanuel Vadot			/* debouncing is done by the microcontroller */
124*0e8011faSEmmanuel Vadot			debounce-interval = <0>;
125*0e8011faSEmmanuel Vadot		};
126*0e8011faSEmmanuel Vadot	};
127*0e8011faSEmmanuel Vadot
128f126890aSEmmanuel Vadot	sound {
129f126890aSEmmanuel Vadot		compatible = "simple-audio-card";
130f126890aSEmmanuel Vadot		simple-audio-card,name = "SPDIF";
131f126890aSEmmanuel Vadot		simple-audio-card,format = "i2s";
132f126890aSEmmanuel Vadot
133f126890aSEmmanuel Vadot		simple-audio-card,cpu {
134f126890aSEmmanuel Vadot			sound-dai = <&audio_controller 1>;
135f126890aSEmmanuel Vadot		};
136f126890aSEmmanuel Vadot
137f126890aSEmmanuel Vadot		simple-audio-card,codec {
138f126890aSEmmanuel Vadot			sound-dai = <&spdif_out>;
139f126890aSEmmanuel Vadot		};
140f126890aSEmmanuel Vadot	};
141f126890aSEmmanuel Vadot
142f126890aSEmmanuel Vadot	spdif_out: spdif-out {
143f126890aSEmmanuel Vadot		#sound-dai-cells = <0>;
144f126890aSEmmanuel Vadot		compatible = "linux,spdif-dit";
145f126890aSEmmanuel Vadot	};
146f126890aSEmmanuel Vadot};
147f126890aSEmmanuel Vadot
148f126890aSEmmanuel Vadot&audio_controller {
149f126890aSEmmanuel Vadot	/* Pin header U16, GPIO51 in SPDIFO mode */
150f126890aSEmmanuel Vadot	pinctrl-0 = <&spdif_pins>;
151f126890aSEmmanuel Vadot	pinctrl-names = "default";
152f126890aSEmmanuel Vadot	spdif-mode;
153f126890aSEmmanuel Vadot	status = "okay";
154f126890aSEmmanuel Vadot};
155f126890aSEmmanuel Vadot
156f126890aSEmmanuel Vadot&bm {
157f126890aSEmmanuel Vadot	status = "okay";
158f126890aSEmmanuel Vadot};
159f126890aSEmmanuel Vadot
160f126890aSEmmanuel Vadot&bm_bppi {
161f126890aSEmmanuel Vadot	status = "okay";
162f126890aSEmmanuel Vadot};
163f126890aSEmmanuel Vadot
164f126890aSEmmanuel Vadot/* Connected to 88E6176 switch, port 6 */
165f126890aSEmmanuel Vadot&eth0 {
166f126890aSEmmanuel Vadot	pinctrl-names = "default";
167f126890aSEmmanuel Vadot	pinctrl-0 = <&ge0_rgmii_pins>;
168f126890aSEmmanuel Vadot	status = "okay";
169f126890aSEmmanuel Vadot	phy-mode = "rgmii";
170f126890aSEmmanuel Vadot	buffer-manager = <&bm>;
171f126890aSEmmanuel Vadot	bm,pool-long = <0>;
172f126890aSEmmanuel Vadot	bm,pool-short = <3>;
173f126890aSEmmanuel Vadot
174f126890aSEmmanuel Vadot	fixed-link {
175f126890aSEmmanuel Vadot		speed = <1000>;
176f126890aSEmmanuel Vadot		full-duplex;
177f126890aSEmmanuel Vadot	};
178f126890aSEmmanuel Vadot};
179f126890aSEmmanuel Vadot
180f126890aSEmmanuel Vadot/* Connected to 88E6176 switch, port 5 */
181f126890aSEmmanuel Vadot&eth1 {
182f126890aSEmmanuel Vadot	pinctrl-names = "default";
183f126890aSEmmanuel Vadot	pinctrl-0 = <&ge1_rgmii_pins>;
184f126890aSEmmanuel Vadot	status = "okay";
185f126890aSEmmanuel Vadot	phy-mode = "rgmii";
186f126890aSEmmanuel Vadot	buffer-manager = <&bm>;
187f126890aSEmmanuel Vadot	bm,pool-long = <1>;
188f126890aSEmmanuel Vadot	bm,pool-short = <3>;
189f126890aSEmmanuel Vadot
190f126890aSEmmanuel Vadot	fixed-link {
191f126890aSEmmanuel Vadot		speed = <1000>;
192f126890aSEmmanuel Vadot		full-duplex;
193f126890aSEmmanuel Vadot	};
194f126890aSEmmanuel Vadot};
195f126890aSEmmanuel Vadot
196f126890aSEmmanuel Vadot/* WAN port */
197f126890aSEmmanuel Vadot&eth2 {
198f126890aSEmmanuel Vadot	/*
199f126890aSEmmanuel Vadot	 * eth2 is connected via a multiplexor to both the SFP cage and to
200f126890aSEmmanuel Vadot	 * ethernet-phy@1. The multiplexor switches the signal to SFP cage when
201f126890aSEmmanuel Vadot	 * a SFP module is present, as determined by the mode-def0 GPIO.
202f126890aSEmmanuel Vadot	 *
203f126890aSEmmanuel Vadot	 * Until kernel supports this configuration properly, in case SFP module
204f126890aSEmmanuel Vadot	 * is present, U-Boot has to enable the sfp node above, remove phy
205f126890aSEmmanuel Vadot	 * handle and add managed = "in-band-status" property.
206f126890aSEmmanuel Vadot	 */
207f126890aSEmmanuel Vadot	status = "okay";
208f126890aSEmmanuel Vadot	phy-mode = "sgmii";
209f126890aSEmmanuel Vadot	phy-handle = <&phy1>;
210f126890aSEmmanuel Vadot	phys = <&comphy5 2>;
211f126890aSEmmanuel Vadot	sfp = <&sfp>;
212f126890aSEmmanuel Vadot	buffer-manager = <&bm>;
213f126890aSEmmanuel Vadot	bm,pool-long = <2>;
214f126890aSEmmanuel Vadot	bm,pool-short = <3>;
215f126890aSEmmanuel Vadot	label = "wan";
216f126890aSEmmanuel Vadot};
217f126890aSEmmanuel Vadot
218f126890aSEmmanuel Vadot&i2c0 {
219f126890aSEmmanuel Vadot	pinctrl-names = "default";
220f126890aSEmmanuel Vadot	pinctrl-0 = <&i2c0_pins>;
221f126890aSEmmanuel Vadot	status = "okay";
222f126890aSEmmanuel Vadot
223f126890aSEmmanuel Vadot	i2cmux@70 {
224f126890aSEmmanuel Vadot		compatible = "nxp,pca9547";
225f126890aSEmmanuel Vadot		#address-cells = <1>;
226f126890aSEmmanuel Vadot		#size-cells = <0>;
227f126890aSEmmanuel Vadot		reg = <0x70>;
228f126890aSEmmanuel Vadot
229f126890aSEmmanuel Vadot		i2c@0 {
230f126890aSEmmanuel Vadot			#address-cells = <1>;
231f126890aSEmmanuel Vadot			#size-cells = <0>;
232f126890aSEmmanuel Vadot			reg = <0>;
233f126890aSEmmanuel Vadot
234*0e8011faSEmmanuel Vadot			mcu: system-controller@2a {
235*0e8011faSEmmanuel Vadot				compatible = "cznic,turris-omnia-mcu";
236*0e8011faSEmmanuel Vadot				reg = <0x2a>;
237*0e8011faSEmmanuel Vadot
238*0e8011faSEmmanuel Vadot				pinctrl-names = "default";
239*0e8011faSEmmanuel Vadot				pinctrl-0 = <&mcu_pins>;
240*0e8011faSEmmanuel Vadot
241*0e8011faSEmmanuel Vadot				interrupt-parent = <&gpio1>;
242*0e8011faSEmmanuel Vadot				interrupts = <11 IRQ_TYPE_NONE>;
243*0e8011faSEmmanuel Vadot
244*0e8011faSEmmanuel Vadot				gpio-controller;
245*0e8011faSEmmanuel Vadot				#gpio-cells = <3>;
246*0e8011faSEmmanuel Vadot
247*0e8011faSEmmanuel Vadot				interrupt-controller;
248*0e8011faSEmmanuel Vadot				#interrupt-cells = <2>;
249*0e8011faSEmmanuel Vadot			};
250f126890aSEmmanuel Vadot
251f126890aSEmmanuel Vadot			led-controller@2b {
252f126890aSEmmanuel Vadot				compatible = "cznic,turris-omnia-leds";
253f126890aSEmmanuel Vadot				reg = <0x2b>;
254f126890aSEmmanuel Vadot				#address-cells = <1>;
255f126890aSEmmanuel Vadot				#size-cells = <0>;
256f126890aSEmmanuel Vadot				status = "okay";
257f126890aSEmmanuel Vadot
258f126890aSEmmanuel Vadot				/*
259f126890aSEmmanuel Vadot				 * LEDs are controlled by MCU (STM32F0) at
260f126890aSEmmanuel Vadot				 * address 0x2b.
261f126890aSEmmanuel Vadot				 *
262f126890aSEmmanuel Vadot				 * LED functions are not stable yet:
263f126890aSEmmanuel Vadot				 * - there are 3 LEDs connected via MCU to PCIe
264f126890aSEmmanuel Vadot				 *   ports. One of these ports supports mSATA.
265f126890aSEmmanuel Vadot				 *   There is no mSATA nor PCIe function.
266f126890aSEmmanuel Vadot				 *   For now we use LED_FUNCTION_WLAN, since
267f126890aSEmmanuel Vadot				 *   in most cases users have wifi cards in
268f126890aSEmmanuel Vadot				 *   these slots
269f126890aSEmmanuel Vadot				 * - there are 2 LEDs dedicated for user: A and
270f126890aSEmmanuel Vadot				 *   B. Again there is no such function defined.
271f126890aSEmmanuel Vadot				 *   For now we use LED_FUNCTION_INDICATOR
272f126890aSEmmanuel Vadot				 */
273f126890aSEmmanuel Vadot
274f126890aSEmmanuel Vadot				multi-led@0 {
275f126890aSEmmanuel Vadot					reg = <0x0>;
276f126890aSEmmanuel Vadot					color = <LED_COLOR_ID_RGB>;
277f126890aSEmmanuel Vadot					function = LED_FUNCTION_INDICATOR;
278f126890aSEmmanuel Vadot					function-enumerator = <2>;
279f126890aSEmmanuel Vadot				};
280f126890aSEmmanuel Vadot
281f126890aSEmmanuel Vadot				multi-led@1 {
282f126890aSEmmanuel Vadot					reg = <0x1>;
283f126890aSEmmanuel Vadot					color = <LED_COLOR_ID_RGB>;
284f126890aSEmmanuel Vadot					function = LED_FUNCTION_INDICATOR;
285f126890aSEmmanuel Vadot					function-enumerator = <1>;
286f126890aSEmmanuel Vadot				};
287f126890aSEmmanuel Vadot
288f126890aSEmmanuel Vadot				multi-led@2 {
289f126890aSEmmanuel Vadot					reg = <0x2>;
290f126890aSEmmanuel Vadot					color = <LED_COLOR_ID_RGB>;
291f126890aSEmmanuel Vadot					function = LED_FUNCTION_WLAN;
292f126890aSEmmanuel Vadot					function-enumerator = <3>;
293f126890aSEmmanuel Vadot				};
294f126890aSEmmanuel Vadot
295f126890aSEmmanuel Vadot				multi-led@3 {
296f126890aSEmmanuel Vadot					reg = <0x3>;
297f126890aSEmmanuel Vadot					color = <LED_COLOR_ID_RGB>;
298f126890aSEmmanuel Vadot					function = LED_FUNCTION_WLAN;
299f126890aSEmmanuel Vadot					function-enumerator = <2>;
300f126890aSEmmanuel Vadot				};
301f126890aSEmmanuel Vadot
302f126890aSEmmanuel Vadot				multi-led@4 {
303f126890aSEmmanuel Vadot					reg = <0x4>;
304f126890aSEmmanuel Vadot					color = <LED_COLOR_ID_RGB>;
305f126890aSEmmanuel Vadot					function = LED_FUNCTION_WLAN;
306f126890aSEmmanuel Vadot					function-enumerator = <1>;
307f126890aSEmmanuel Vadot				};
308f126890aSEmmanuel Vadot
309f126890aSEmmanuel Vadot				multi-led@5 {
310f126890aSEmmanuel Vadot					reg = <0x5>;
311f126890aSEmmanuel Vadot					color = <LED_COLOR_ID_RGB>;
312f126890aSEmmanuel Vadot					function = LED_FUNCTION_WAN;
313f126890aSEmmanuel Vadot				};
314f126890aSEmmanuel Vadot
315f126890aSEmmanuel Vadot				multi-led@6 {
316f126890aSEmmanuel Vadot					reg = <0x6>;
317f126890aSEmmanuel Vadot					color = <LED_COLOR_ID_RGB>;
318f126890aSEmmanuel Vadot					function = LED_FUNCTION_LAN;
319f126890aSEmmanuel Vadot					function-enumerator = <4>;
320f126890aSEmmanuel Vadot				};
321f126890aSEmmanuel Vadot
322f126890aSEmmanuel Vadot				multi-led@7 {
323f126890aSEmmanuel Vadot					reg = <0x7>;
324f126890aSEmmanuel Vadot					color = <LED_COLOR_ID_RGB>;
325f126890aSEmmanuel Vadot					function = LED_FUNCTION_LAN;
326f126890aSEmmanuel Vadot					function-enumerator = <3>;
327f126890aSEmmanuel Vadot				};
328f126890aSEmmanuel Vadot
329f126890aSEmmanuel Vadot				multi-led@8 {
330f126890aSEmmanuel Vadot					reg = <0x8>;
331f126890aSEmmanuel Vadot					color = <LED_COLOR_ID_RGB>;
332f126890aSEmmanuel Vadot					function = LED_FUNCTION_LAN;
333f126890aSEmmanuel Vadot					function-enumerator = <2>;
334f126890aSEmmanuel Vadot				};
335f126890aSEmmanuel Vadot
336f126890aSEmmanuel Vadot				multi-led@9 {
337f126890aSEmmanuel Vadot					reg = <0x9>;
338f126890aSEmmanuel Vadot					color = <LED_COLOR_ID_RGB>;
339f126890aSEmmanuel Vadot					function = LED_FUNCTION_LAN;
340f126890aSEmmanuel Vadot					function-enumerator = <1>;
341f126890aSEmmanuel Vadot				};
342f126890aSEmmanuel Vadot
343f126890aSEmmanuel Vadot				multi-led@a {
344f126890aSEmmanuel Vadot					reg = <0xa>;
345f126890aSEmmanuel Vadot					color = <LED_COLOR_ID_RGB>;
346f126890aSEmmanuel Vadot					function = LED_FUNCTION_LAN;
347f126890aSEmmanuel Vadot					function-enumerator = <0>;
348f126890aSEmmanuel Vadot				};
349f126890aSEmmanuel Vadot
350f126890aSEmmanuel Vadot				multi-led@b {
351f126890aSEmmanuel Vadot					reg = <0xb>;
352f126890aSEmmanuel Vadot					color = <LED_COLOR_ID_RGB>;
353f126890aSEmmanuel Vadot					function = LED_FUNCTION_POWER;
354f126890aSEmmanuel Vadot				};
355f126890aSEmmanuel Vadot			};
356f126890aSEmmanuel Vadot
357f126890aSEmmanuel Vadot			eeprom@54 {
358f126890aSEmmanuel Vadot				compatible = "atmel,24c64";
359f126890aSEmmanuel Vadot				reg = <0x54>;
360f126890aSEmmanuel Vadot
361f126890aSEmmanuel Vadot				/* The EEPROM contains data for bootloader.
362f126890aSEmmanuel Vadot				 * Contents:
363f126890aSEmmanuel Vadot				 * 	struct omnia_eeprom {
364f126890aSEmmanuel Vadot				 * 		u32 magic; (=0x0341a034 in LE)
365f126890aSEmmanuel Vadot				 *		u32 ramsize; (in GiB)
366f126890aSEmmanuel Vadot				 * 		char regdomain[4];
367f126890aSEmmanuel Vadot				 * 		u32 crc32;
368f126890aSEmmanuel Vadot				 * 	};
369f126890aSEmmanuel Vadot				 */
370f126890aSEmmanuel Vadot			};
371f126890aSEmmanuel Vadot		};
372f126890aSEmmanuel Vadot
373f126890aSEmmanuel Vadot		i2c@1 {
374f126890aSEmmanuel Vadot			#address-cells = <1>;
375f126890aSEmmanuel Vadot			#size-cells = <0>;
376f126890aSEmmanuel Vadot			reg = <1>;
377f126890aSEmmanuel Vadot
378f126890aSEmmanuel Vadot			/* routed to PCIe0/mSATA connector (CN7A) */
379f126890aSEmmanuel Vadot		};
380f126890aSEmmanuel Vadot
381f126890aSEmmanuel Vadot		i2c@2 {
382f126890aSEmmanuel Vadot			#address-cells = <1>;
383f126890aSEmmanuel Vadot			#size-cells = <0>;
384f126890aSEmmanuel Vadot			reg = <2>;
385f126890aSEmmanuel Vadot
386f126890aSEmmanuel Vadot			/* routed to PCIe1/USB2 connector (CN61A) */
387f126890aSEmmanuel Vadot		};
388f126890aSEmmanuel Vadot
389f126890aSEmmanuel Vadot		i2c@3 {
390f126890aSEmmanuel Vadot			#address-cells = <1>;
391f126890aSEmmanuel Vadot			#size-cells = <0>;
392f126890aSEmmanuel Vadot			reg = <3>;
393f126890aSEmmanuel Vadot
394f126890aSEmmanuel Vadot			/* routed to PCIe2 connector (CN62A) */
395f126890aSEmmanuel Vadot		};
396f126890aSEmmanuel Vadot
397f126890aSEmmanuel Vadot		sfp_i2c: i2c@4 {
398f126890aSEmmanuel Vadot			#address-cells = <1>;
399f126890aSEmmanuel Vadot			#size-cells = <0>;
400f126890aSEmmanuel Vadot			reg = <4>;
401f126890aSEmmanuel Vadot
402f126890aSEmmanuel Vadot			/* routed to SFP+ */
403f126890aSEmmanuel Vadot		};
404f126890aSEmmanuel Vadot
405f126890aSEmmanuel Vadot		i2c@5 {
406f126890aSEmmanuel Vadot			#address-cells = <1>;
407f126890aSEmmanuel Vadot			#size-cells = <0>;
408f126890aSEmmanuel Vadot			reg = <5>;
409f126890aSEmmanuel Vadot
410f126890aSEmmanuel Vadot			/* ATSHA204A-MAHDA-T crypto module */
411f126890aSEmmanuel Vadot			crypto@64 {
412f126890aSEmmanuel Vadot				compatible = "atmel,atsha204a";
413f126890aSEmmanuel Vadot				reg = <0x64>;
414f126890aSEmmanuel Vadot			};
415f126890aSEmmanuel Vadot		};
416f126890aSEmmanuel Vadot
417f126890aSEmmanuel Vadot		i2c@6 {
418f126890aSEmmanuel Vadot			#address-cells = <1>;
419f126890aSEmmanuel Vadot			#size-cells = <0>;
420f126890aSEmmanuel Vadot			reg = <6>;
421f126890aSEmmanuel Vadot
422f126890aSEmmanuel Vadot			/* exposed on pin header */
423f126890aSEmmanuel Vadot		};
424f126890aSEmmanuel Vadot
425f126890aSEmmanuel Vadot		i2c@7 {
426f126890aSEmmanuel Vadot			#address-cells = <1>;
427f126890aSEmmanuel Vadot			#size-cells = <0>;
428f126890aSEmmanuel Vadot			reg = <7>;
429f126890aSEmmanuel Vadot
430f126890aSEmmanuel Vadot			pcawan: gpio@71 {
431f126890aSEmmanuel Vadot				/*
432f126890aSEmmanuel Vadot				 * GPIO expander for SFP+ signals and
433f126890aSEmmanuel Vadot				 * and phy irq
434f126890aSEmmanuel Vadot				 */
435f126890aSEmmanuel Vadot				compatible = "nxp,pca9538";
436f126890aSEmmanuel Vadot				reg = <0x71>;
437f126890aSEmmanuel Vadot
438f126890aSEmmanuel Vadot				pinctrl-names = "default";
439f126890aSEmmanuel Vadot				pinctrl-0 = <&pcawan_pins>;
440f126890aSEmmanuel Vadot
441f126890aSEmmanuel Vadot				interrupt-parent = <&gpio1>;
442f126890aSEmmanuel Vadot				interrupts = <14 IRQ_TYPE_LEVEL_LOW>;
443f126890aSEmmanuel Vadot
444f126890aSEmmanuel Vadot				gpio-controller;
445f126890aSEmmanuel Vadot				#gpio-cells = <2>;
446f126890aSEmmanuel Vadot			};
447f126890aSEmmanuel Vadot		};
448f126890aSEmmanuel Vadot	};
449f126890aSEmmanuel Vadot};
450f126890aSEmmanuel Vadot
451f126890aSEmmanuel Vadot&mdio {
452f126890aSEmmanuel Vadot	pinctrl-names = "default";
453f126890aSEmmanuel Vadot	pinctrl-0 = <&mdio_pins>;
454f126890aSEmmanuel Vadot	status = "okay";
455f126890aSEmmanuel Vadot
456f126890aSEmmanuel Vadot	phy1: ethernet-phy@1 {
457f126890aSEmmanuel Vadot		compatible = "ethernet-phy-ieee802.3-c22";
458f126890aSEmmanuel Vadot		reg = <1>;
459f126890aSEmmanuel Vadot		marvell,reg-init = <3 18 0 0x4985>,
460f126890aSEmmanuel Vadot				   <3 16 0xfff0 0x0001>;
461f126890aSEmmanuel Vadot
462f126890aSEmmanuel Vadot		/* irq is connected to &pcawan pin 7 */
463f126890aSEmmanuel Vadot	};
464f126890aSEmmanuel Vadot
465f126890aSEmmanuel Vadot	/* Switch MV88E6176 at address 0x10 */
4668d13bc63SEmmanuel Vadot	ethernet-switch@10 {
467f126890aSEmmanuel Vadot		pinctrl-names = "default";
468f126890aSEmmanuel Vadot		pinctrl-0 = <&swint_pins>;
469f126890aSEmmanuel Vadot		compatible = "marvell,mv88e6085";
470f126890aSEmmanuel Vadot
471f126890aSEmmanuel Vadot		dsa,member = <0 0>;
472f126890aSEmmanuel Vadot		reg = <0x10>;
473f126890aSEmmanuel Vadot
474f126890aSEmmanuel Vadot		interrupt-parent = <&gpio1>;
475f126890aSEmmanuel Vadot		interrupts = <13 IRQ_TYPE_LEVEL_LOW>;
476f126890aSEmmanuel Vadot
4778d13bc63SEmmanuel Vadot		ethernet-ports {
478f126890aSEmmanuel Vadot			#address-cells = <1>;
479f126890aSEmmanuel Vadot			#size-cells = <0>;
480f126890aSEmmanuel Vadot
4818d13bc63SEmmanuel Vadot			ethernet-port@0 {
482f126890aSEmmanuel Vadot				reg = <0>;
483f126890aSEmmanuel Vadot				label = "lan0";
484f126890aSEmmanuel Vadot			};
485f126890aSEmmanuel Vadot
4868d13bc63SEmmanuel Vadot			ethernet-port@1 {
487f126890aSEmmanuel Vadot				reg = <1>;
488f126890aSEmmanuel Vadot				label = "lan1";
489f126890aSEmmanuel Vadot			};
490f126890aSEmmanuel Vadot
4918d13bc63SEmmanuel Vadot			ethernet-port@2 {
492f126890aSEmmanuel Vadot				reg = <2>;
493f126890aSEmmanuel Vadot				label = "lan2";
494f126890aSEmmanuel Vadot			};
495f126890aSEmmanuel Vadot
4968d13bc63SEmmanuel Vadot			ethernet-port@3 {
497f126890aSEmmanuel Vadot				reg = <3>;
498f126890aSEmmanuel Vadot				label = "lan3";
499f126890aSEmmanuel Vadot			};
500f126890aSEmmanuel Vadot
5018d13bc63SEmmanuel Vadot			ethernet-port@4 {
502f126890aSEmmanuel Vadot				reg = <4>;
503f126890aSEmmanuel Vadot				label = "lan4";
504f126890aSEmmanuel Vadot			};
505f126890aSEmmanuel Vadot
5068d13bc63SEmmanuel Vadot			ethernet-port@5 {
507f126890aSEmmanuel Vadot				reg = <5>;
508f126890aSEmmanuel Vadot				ethernet = <&eth1>;
509f126890aSEmmanuel Vadot				phy-mode = "rgmii-id";
510f126890aSEmmanuel Vadot
511f126890aSEmmanuel Vadot				fixed-link {
512f126890aSEmmanuel Vadot					speed = <1000>;
513f126890aSEmmanuel Vadot					full-duplex;
514f126890aSEmmanuel Vadot				};
515f126890aSEmmanuel Vadot			};
516f126890aSEmmanuel Vadot
5178d13bc63SEmmanuel Vadot			ethernet-port@6 {
518f126890aSEmmanuel Vadot				reg = <6>;
519f126890aSEmmanuel Vadot				ethernet = <&eth0>;
520f126890aSEmmanuel Vadot				phy-mode = "rgmii-id";
521f126890aSEmmanuel Vadot
522f126890aSEmmanuel Vadot				fixed-link {
523f126890aSEmmanuel Vadot					speed = <1000>;
524f126890aSEmmanuel Vadot					full-duplex;
525f126890aSEmmanuel Vadot				};
526f126890aSEmmanuel Vadot			};
527f126890aSEmmanuel Vadot		};
528f126890aSEmmanuel Vadot	};
529f126890aSEmmanuel Vadot};
530f126890aSEmmanuel Vadot
531f126890aSEmmanuel Vadot&pinctrl {
532*0e8011faSEmmanuel Vadot	mcu_pins: mcu-pins {
533*0e8011faSEmmanuel Vadot		marvell,pins = "mpp43";
534*0e8011faSEmmanuel Vadot		marvell,function = "gpio";
535*0e8011faSEmmanuel Vadot	};
536*0e8011faSEmmanuel Vadot
537f126890aSEmmanuel Vadot	pcawan_pins: pcawan-pins {
538f126890aSEmmanuel Vadot		marvell,pins = "mpp46";
539f126890aSEmmanuel Vadot		marvell,function = "gpio";
540f126890aSEmmanuel Vadot	};
541f126890aSEmmanuel Vadot
542f126890aSEmmanuel Vadot	swint_pins: swint-pins {
543f126890aSEmmanuel Vadot		marvell,pins = "mpp45";
544f126890aSEmmanuel Vadot		marvell,function = "gpio";
545f126890aSEmmanuel Vadot	};
546f126890aSEmmanuel Vadot
547f126890aSEmmanuel Vadot	spi0cs0_pins: spi0cs0-pins {
548f126890aSEmmanuel Vadot		marvell,pins = "mpp25";
549f126890aSEmmanuel Vadot		marvell,function = "spi0";
550f126890aSEmmanuel Vadot	};
551f126890aSEmmanuel Vadot
552f126890aSEmmanuel Vadot	spi0cs2_pins: spi0cs2-pins {
553f126890aSEmmanuel Vadot		marvell,pins = "mpp26";
554f126890aSEmmanuel Vadot		marvell,function = "spi0";
555f126890aSEmmanuel Vadot	};
556f126890aSEmmanuel Vadot};
557f126890aSEmmanuel Vadot
558f126890aSEmmanuel Vadot&spi0 {
559f126890aSEmmanuel Vadot	pinctrl-names = "default";
560f126890aSEmmanuel Vadot	pinctrl-0 = <&spi0_pins &spi0cs0_pins>;
561f126890aSEmmanuel Vadot	status = "okay";
562f126890aSEmmanuel Vadot
563f126890aSEmmanuel Vadot	flash@0 {
564f126890aSEmmanuel Vadot		compatible = "spansion,s25fl164k", "jedec,spi-nor";
565f126890aSEmmanuel Vadot		#address-cells = <1>;
566f126890aSEmmanuel Vadot		#size-cells = <1>;
567f126890aSEmmanuel Vadot		reg = <0>;
568f126890aSEmmanuel Vadot		spi-max-frequency = <40000000>;
569f126890aSEmmanuel Vadot
570f126890aSEmmanuel Vadot		partitions {
571f126890aSEmmanuel Vadot			compatible = "fixed-partitions";
572f126890aSEmmanuel Vadot			#address-cells = <1>;
573f126890aSEmmanuel Vadot			#size-cells = <1>;
574f126890aSEmmanuel Vadot
575f126890aSEmmanuel Vadot			partition@0 {
576f126890aSEmmanuel Vadot				reg = <0x0 0x00100000>;
577f126890aSEmmanuel Vadot				label = "U-Boot";
578f126890aSEmmanuel Vadot			};
579f126890aSEmmanuel Vadot
580f126890aSEmmanuel Vadot			partition@100000 {
581f126890aSEmmanuel Vadot				reg = <0x00100000 0x00700000>;
582f126890aSEmmanuel Vadot				label = "Rescue system";
583f126890aSEmmanuel Vadot			};
584f126890aSEmmanuel Vadot		};
585f126890aSEmmanuel Vadot	};
586f126890aSEmmanuel Vadot
587f126890aSEmmanuel Vadot	/* MISO, MOSI, SCLK and CS2 are routed to pin header CN11 */
588f126890aSEmmanuel Vadot};
589f126890aSEmmanuel Vadot
590f126890aSEmmanuel Vadot&uart0 {
591f126890aSEmmanuel Vadot	/* Pin header CN10 */
592f126890aSEmmanuel Vadot	pinctrl-names = "default";
593f126890aSEmmanuel Vadot	pinctrl-0 = <&uart0_pins>;
594f126890aSEmmanuel Vadot	status = "okay";
595f126890aSEmmanuel Vadot};
596f126890aSEmmanuel Vadot
597f126890aSEmmanuel Vadot&uart1 {
598f126890aSEmmanuel Vadot	/* Pin header CN11 */
599f126890aSEmmanuel Vadot	pinctrl-names = "default";
600f126890aSEmmanuel Vadot	pinctrl-0 = <&uart1_pins>;
601f126890aSEmmanuel Vadot	status = "okay";
602f126890aSEmmanuel Vadot};
603