1f126890aSEmmanuel Vadot// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
2f126890aSEmmanuel Vadot/* Copyright (c) 2021, Marcel Ziswiler <marcel@ziswiler.com> */
3f126890aSEmmanuel Vadot
4f126890aSEmmanuel Vadot/dts-v1/;
5f126890aSEmmanuel Vadot#include "armada-385.dtsi"
6f126890aSEmmanuel Vadot#include <dt-bindings/gpio/gpio.h>
7f126890aSEmmanuel Vadot#include <dt-bindings/input/input.h>
8f126890aSEmmanuel Vadot
9f126890aSEmmanuel Vadot/ {
10f126890aSEmmanuel Vadot	model = "Netgear GS110EMX";
11f126890aSEmmanuel Vadot	compatible = "netgear,gs110emx", "marvell,armada380";
12f126890aSEmmanuel Vadot
13f126890aSEmmanuel Vadot	aliases {
14f126890aSEmmanuel Vadot		/* So that mvebu u-boot can update the MAC addresses */
15f126890aSEmmanuel Vadot		ethernet1 = &eth0;
16f126890aSEmmanuel Vadot	};
17f126890aSEmmanuel Vadot
18f126890aSEmmanuel Vadot	chosen {
19f126890aSEmmanuel Vadot		stdout-path = "serial0:115200n8";
20f126890aSEmmanuel Vadot	};
21f126890aSEmmanuel Vadot
22f126890aSEmmanuel Vadot	gpio-keys {
23f126890aSEmmanuel Vadot		compatible = "gpio-keys";
24f126890aSEmmanuel Vadot		pinctrl-0 = <&front_button_pins>;
25f126890aSEmmanuel Vadot		pinctrl-names = "default";
26f126890aSEmmanuel Vadot
27f126890aSEmmanuel Vadot		key-factory-default {
28f126890aSEmmanuel Vadot			label = "Factory Default";
29f126890aSEmmanuel Vadot			gpios = <&gpio1 6 GPIO_ACTIVE_LOW>;
30f126890aSEmmanuel Vadot			linux,code = <KEY_RESTART>;
31f126890aSEmmanuel Vadot		};
32f126890aSEmmanuel Vadot	};
33f126890aSEmmanuel Vadot
34f126890aSEmmanuel Vadot	memory {
35f126890aSEmmanuel Vadot		device_type = "memory";
36f126890aSEmmanuel Vadot		reg = <0x00000000 0x08000000>; /* 128 MB */
37f126890aSEmmanuel Vadot	};
38f126890aSEmmanuel Vadot
39f126890aSEmmanuel Vadot	soc {
40f126890aSEmmanuel Vadot		ranges = <MBUS_ID(0xf0, 0x01) 0 0xf1000000 0x100000
41f126890aSEmmanuel Vadot			  MBUS_ID(0x01, 0x1d) 0 0xfff00000 0x100000
42f126890aSEmmanuel Vadot			  MBUS_ID(0x09, 0x19) 0 0xf1100000 0x10000
43f126890aSEmmanuel Vadot			  MBUS_ID(0x09, 0x15) 0 0xf1110000 0x10000
44f126890aSEmmanuel Vadot			  MBUS_ID(0x0c, 0x04) 0 0xf1200000 0x100000>;
45f126890aSEmmanuel Vadot
46f126890aSEmmanuel Vadot		internal-regs {
47f126890aSEmmanuel Vadot			rtc@a3800 {
48f126890aSEmmanuel Vadot				/*
49f126890aSEmmanuel Vadot				 * If the rtc doesn't work, run "date reset"
50f126890aSEmmanuel Vadot				 * twice in u-boot.
51f126890aSEmmanuel Vadot				 */
52f126890aSEmmanuel Vadot				status = "okay";
53f126890aSEmmanuel Vadot			};
54f126890aSEmmanuel Vadot		};
55f126890aSEmmanuel Vadot	};
56f126890aSEmmanuel Vadot};
57f126890aSEmmanuel Vadot
58f126890aSEmmanuel Vadot&eth0 {
59f126890aSEmmanuel Vadot	/* ethernet@70000 */
60f126890aSEmmanuel Vadot	bm,pool-long = <0>;
61f126890aSEmmanuel Vadot	bm,pool-short = <1>;
62f126890aSEmmanuel Vadot	buffer-manager = <&bm>;
63f126890aSEmmanuel Vadot	phy-mode = "rgmii-id";
64f126890aSEmmanuel Vadot	pinctrl-0 = <&ge0_rgmii_pins>;
65f126890aSEmmanuel Vadot	pinctrl-names = "default";
66f126890aSEmmanuel Vadot	status = "okay";
67f126890aSEmmanuel Vadot
68f126890aSEmmanuel Vadot	fixed-link {
69f126890aSEmmanuel Vadot		full-duplex;
70f126890aSEmmanuel Vadot		pause;
71f126890aSEmmanuel Vadot		speed = <1000>;
72f126890aSEmmanuel Vadot	};
73f126890aSEmmanuel Vadot};
74f126890aSEmmanuel Vadot
75f126890aSEmmanuel Vadot&mdio {
76f126890aSEmmanuel Vadot	pinctrl-names = "default";
77f126890aSEmmanuel Vadot	pinctrl-0 = <&mdio_pins>;
78f126890aSEmmanuel Vadot	status = "okay";
79f126890aSEmmanuel Vadot
80*8d13bc63SEmmanuel Vadot	ethernet-switch@0 {
81f126890aSEmmanuel Vadot		compatible = "marvell,mv88e6190";
82f126890aSEmmanuel Vadot		#interrupt-cells = <2>;
83f126890aSEmmanuel Vadot		interrupt-controller;
84f126890aSEmmanuel Vadot		interrupt-parent = <&gpio1>;
85f126890aSEmmanuel Vadot		interrupts = <7 IRQ_TYPE_LEVEL_LOW>;
86f126890aSEmmanuel Vadot		pinctrl-0 = <&switch_interrupt_pins>;
87f126890aSEmmanuel Vadot		pinctrl-names = "default";
88f126890aSEmmanuel Vadot		reg = <0>;
89f126890aSEmmanuel Vadot
90f126890aSEmmanuel Vadot		mdio {
91f126890aSEmmanuel Vadot			#address-cells = <1>;
92f126890aSEmmanuel Vadot			#size-cells = <0>;
93f126890aSEmmanuel Vadot
94*8d13bc63SEmmanuel Vadot			switch0phy1: ethernet-phy@1 {
95f126890aSEmmanuel Vadot				reg = <0x1>;
96f126890aSEmmanuel Vadot			};
97f126890aSEmmanuel Vadot
98*8d13bc63SEmmanuel Vadot			switch0phy2: ethernet-phy@2 {
99f126890aSEmmanuel Vadot				reg = <0x2>;
100f126890aSEmmanuel Vadot			};
101f126890aSEmmanuel Vadot
102*8d13bc63SEmmanuel Vadot			switch0phy3: ethernet-phy@3 {
103f126890aSEmmanuel Vadot				reg = <0x3>;
104f126890aSEmmanuel Vadot			};
105f126890aSEmmanuel Vadot
106*8d13bc63SEmmanuel Vadot			switch0phy4: ethernet-phy@4 {
107f126890aSEmmanuel Vadot				reg = <0x4>;
108f126890aSEmmanuel Vadot			};
109f126890aSEmmanuel Vadot
110*8d13bc63SEmmanuel Vadot			switch0phy5: ethernet-phy@5 {
111f126890aSEmmanuel Vadot				reg = <0x5>;
112f126890aSEmmanuel Vadot			};
113f126890aSEmmanuel Vadot
114*8d13bc63SEmmanuel Vadot			switch0phy6: ethernet-phy@6 {
115f126890aSEmmanuel Vadot				reg = <0x6>;
116f126890aSEmmanuel Vadot			};
117f126890aSEmmanuel Vadot
118*8d13bc63SEmmanuel Vadot			switch0phy7: ethernet-phy@7 {
119f126890aSEmmanuel Vadot				reg = <0x7>;
120f126890aSEmmanuel Vadot			};
121f126890aSEmmanuel Vadot
122*8d13bc63SEmmanuel Vadot			switch0phy8: ethernet-phy@8 {
123f126890aSEmmanuel Vadot				reg = <0x8>;
124f126890aSEmmanuel Vadot			};
125f126890aSEmmanuel Vadot		};
126f126890aSEmmanuel Vadot
127f126890aSEmmanuel Vadot		mdio-external {
128f126890aSEmmanuel Vadot			compatible = "marvell,mv88e6xxx-mdio-external";
129f126890aSEmmanuel Vadot			#address-cells = <1>;
130f126890aSEmmanuel Vadot			#size-cells = <0>;
131f126890aSEmmanuel Vadot
132f126890aSEmmanuel Vadot			phy1: ethernet-phy@b {
133f126890aSEmmanuel Vadot				reg = <0xb>;
134f126890aSEmmanuel Vadot				compatible = "ethernet-phy-ieee802.3-c45";
135f126890aSEmmanuel Vadot			};
136f126890aSEmmanuel Vadot
137f126890aSEmmanuel Vadot			phy2: ethernet-phy@c {
138f126890aSEmmanuel Vadot				reg = <0xc>;
139f126890aSEmmanuel Vadot				compatible = "ethernet-phy-ieee802.3-c45";
140f126890aSEmmanuel Vadot			};
141f126890aSEmmanuel Vadot		};
142f126890aSEmmanuel Vadot
143*8d13bc63SEmmanuel Vadot		ethernet-ports {
144f126890aSEmmanuel Vadot			#address-cells = <1>;
145f126890aSEmmanuel Vadot			#size-cells = <0>;
146f126890aSEmmanuel Vadot
147*8d13bc63SEmmanuel Vadot			ethernet-port@0 {
148f126890aSEmmanuel Vadot				ethernet = <&eth0>;
149f126890aSEmmanuel Vadot				phy-mode = "rgmii";
150f126890aSEmmanuel Vadot				reg = <0>;
151f126890aSEmmanuel Vadot
152f126890aSEmmanuel Vadot				fixed-link {
153f126890aSEmmanuel Vadot					full-duplex;
154f126890aSEmmanuel Vadot					pause;
155f126890aSEmmanuel Vadot					speed = <1000>;
156f126890aSEmmanuel Vadot				};
157f126890aSEmmanuel Vadot			};
158f126890aSEmmanuel Vadot
159*8d13bc63SEmmanuel Vadot			ethernet-port@1 {
160f126890aSEmmanuel Vadot				label = "lan1";
161f126890aSEmmanuel Vadot				phy-handle = <&switch0phy1>;
162f126890aSEmmanuel Vadot				reg = <1>;
163f126890aSEmmanuel Vadot			};
164f126890aSEmmanuel Vadot
165*8d13bc63SEmmanuel Vadot			ethernet-port@2 {
166f126890aSEmmanuel Vadot				label = "lan2";
167f126890aSEmmanuel Vadot				phy-handle = <&switch0phy2>;
168f126890aSEmmanuel Vadot				reg = <2>;
169f126890aSEmmanuel Vadot			};
170f126890aSEmmanuel Vadot
171*8d13bc63SEmmanuel Vadot			ethernet-port@3 {
172f126890aSEmmanuel Vadot				label = "lan3";
173f126890aSEmmanuel Vadot				phy-handle = <&switch0phy3>;
174f126890aSEmmanuel Vadot				reg = <3>;
175f126890aSEmmanuel Vadot			};
176f126890aSEmmanuel Vadot
177*8d13bc63SEmmanuel Vadot			ethernet-port@4 {
178f126890aSEmmanuel Vadot				label = "lan4";
179f126890aSEmmanuel Vadot				phy-handle = <&switch0phy4>;
180f126890aSEmmanuel Vadot				reg = <4>;
181f126890aSEmmanuel Vadot			};
182f126890aSEmmanuel Vadot
183*8d13bc63SEmmanuel Vadot			ethernet-port@5 {
184f126890aSEmmanuel Vadot				label = "lan5";
185f126890aSEmmanuel Vadot				phy-handle = <&switch0phy5>;
186f126890aSEmmanuel Vadot				reg = <5>;
187f126890aSEmmanuel Vadot			};
188f126890aSEmmanuel Vadot
189*8d13bc63SEmmanuel Vadot			ethernet-port@6 {
190f126890aSEmmanuel Vadot				label = "lan6";
191f126890aSEmmanuel Vadot				phy-handle = <&switch0phy6>;
192f126890aSEmmanuel Vadot				reg = <6>;
193f126890aSEmmanuel Vadot			};
194f126890aSEmmanuel Vadot
195*8d13bc63SEmmanuel Vadot			ethernet-port@7 {
196f126890aSEmmanuel Vadot				label = "lan7";
197f126890aSEmmanuel Vadot				phy-handle = <&switch0phy7>;
198f126890aSEmmanuel Vadot				reg = <7>;
199f126890aSEmmanuel Vadot			};
200f126890aSEmmanuel Vadot
201*8d13bc63SEmmanuel Vadot			ethernet-port@8 {
202f126890aSEmmanuel Vadot				label = "lan8";
203f126890aSEmmanuel Vadot				phy-handle = <&switch0phy8>;
204f126890aSEmmanuel Vadot				reg = <8>;
205f126890aSEmmanuel Vadot			};
206f126890aSEmmanuel Vadot
207*8d13bc63SEmmanuel Vadot			ethernet-port@9 {
208f126890aSEmmanuel Vadot				/* 88X3310P external phy */
209f126890aSEmmanuel Vadot				label = "lan9";
210f126890aSEmmanuel Vadot				phy-handle = <&phy1>;
211f126890aSEmmanuel Vadot				phy-mode = "xaui";
212f126890aSEmmanuel Vadot				reg = <9>;
213f126890aSEmmanuel Vadot			};
214f126890aSEmmanuel Vadot
215*8d13bc63SEmmanuel Vadot			ethernet-port@a {
216f126890aSEmmanuel Vadot				/* 88X3310P external phy */
217f126890aSEmmanuel Vadot				label = "lan10";
218f126890aSEmmanuel Vadot				phy-handle = <&phy2>;
219f126890aSEmmanuel Vadot				phy-mode = "xaui";
220f126890aSEmmanuel Vadot				reg = <0xa>;
221f126890aSEmmanuel Vadot			};
222f126890aSEmmanuel Vadot		};
223f126890aSEmmanuel Vadot	};
224f126890aSEmmanuel Vadot};
225f126890aSEmmanuel Vadot
226f126890aSEmmanuel Vadot&pinctrl {
227f126890aSEmmanuel Vadot	front_button_pins: front-button-pins {
228f126890aSEmmanuel Vadot		marvell,pins = "mpp38";
229f126890aSEmmanuel Vadot		marvell,function = "gpio";
230f126890aSEmmanuel Vadot	};
231f126890aSEmmanuel Vadot
232f126890aSEmmanuel Vadot	switch_interrupt_pins: switch-interrupt-pins {
233f126890aSEmmanuel Vadot		marvell,pins = "mpp39";
234f126890aSEmmanuel Vadot		marvell,function = "gpio";
235f126890aSEmmanuel Vadot	};
236f126890aSEmmanuel Vadot};
237f126890aSEmmanuel Vadot
238f126890aSEmmanuel Vadot&spi0 {
239f126890aSEmmanuel Vadot	pinctrl-0 = <&spi0_pins>;
240f126890aSEmmanuel Vadot	pinctrl-names = "default";
241f126890aSEmmanuel Vadot	status = "okay";
242f126890aSEmmanuel Vadot
243f126890aSEmmanuel Vadot	flash@0 {
244f126890aSEmmanuel Vadot		#address-cells = <1>;
245f126890aSEmmanuel Vadot		#size-cells = <1>;
246f126890aSEmmanuel Vadot		compatible = "jedec,spi-nor";
247f126890aSEmmanuel Vadot		reg = <0>; /* Chip select 0 */
248f126890aSEmmanuel Vadot		spi-max-frequency = <3000000>;
249f126890aSEmmanuel Vadot
250f126890aSEmmanuel Vadot		partitions {
251f126890aSEmmanuel Vadot			compatible = "fixed-partitions";
252f126890aSEmmanuel Vadot			#address-cells = <1>;
253f126890aSEmmanuel Vadot			#size-cells = <1>;
254f126890aSEmmanuel Vadot
255f126890aSEmmanuel Vadot			partition@0 {
256f126890aSEmmanuel Vadot				label = "boot";
257f126890aSEmmanuel Vadot				read-only;
258f126890aSEmmanuel Vadot				reg = <0x00000000 0x00100000>;
259f126890aSEmmanuel Vadot			};
260f126890aSEmmanuel Vadot
261f126890aSEmmanuel Vadot			partition@100000 {
262f126890aSEmmanuel Vadot				label = "env";
263f126890aSEmmanuel Vadot				reg = <0x00100000 0x00010000>;
264f126890aSEmmanuel Vadot			};
265f126890aSEmmanuel Vadot
266f126890aSEmmanuel Vadot			partition@200000 {
267f126890aSEmmanuel Vadot				label = "rsv";
268f126890aSEmmanuel Vadot				reg = <0x00110000 0x00010000>;
269f126890aSEmmanuel Vadot			};
270f126890aSEmmanuel Vadot
271f126890aSEmmanuel Vadot			partition@300000 {
272f126890aSEmmanuel Vadot				label = "image0";
273f126890aSEmmanuel Vadot				reg = <0x00120000 0x00900000>;
274f126890aSEmmanuel Vadot			};
275f126890aSEmmanuel Vadot
276f126890aSEmmanuel Vadot			partition@400000 {
277f126890aSEmmanuel Vadot				label = "config";
278f126890aSEmmanuel Vadot				reg = <0x00a20000 0x00300000>;
279f126890aSEmmanuel Vadot			};
280f126890aSEmmanuel Vadot
281f126890aSEmmanuel Vadot			partition@480000 {
282f126890aSEmmanuel Vadot				label = "debug";
283f126890aSEmmanuel Vadot				reg = <0x00d20000 0x002e0000>;
284f126890aSEmmanuel Vadot			};
285f126890aSEmmanuel Vadot		};
286f126890aSEmmanuel Vadot	};
287f126890aSEmmanuel Vadot};
288f126890aSEmmanuel Vadot
289f126890aSEmmanuel Vadot&uart0 {
290f126890aSEmmanuel Vadot	pinctrl-0 = <&uart0_pins>;
291f126890aSEmmanuel Vadot	pinctrl-names = "default";
292f126890aSEmmanuel Vadot	status = "okay";
293f126890aSEmmanuel Vadot};
294