xref: /freebsd/sys/contrib/device-tree/src/mips/ralink/mt7621.dtsi (revision 84943d6f38e936ac3b7a3947ca26eeb27a39f938)
1c9ccf3a3SEmmanuel Vadot// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2c9ccf3a3SEmmanuel Vadot#include <dt-bindings/interrupt-controller/mips-gic.h>
3c9ccf3a3SEmmanuel Vadot#include <dt-bindings/gpio/gpio.h>
4c9ccf3a3SEmmanuel Vadot#include <dt-bindings/clock/mt7621-clk.h>
5c9ccf3a3SEmmanuel Vadot#include <dt-bindings/reset/mt7621-reset.h>
6c9ccf3a3SEmmanuel Vadot
7c9ccf3a3SEmmanuel Vadot/ {
8c9ccf3a3SEmmanuel Vadot	#address-cells = <1>;
9c9ccf3a3SEmmanuel Vadot	#size-cells = <1>;
10c9ccf3a3SEmmanuel Vadot	compatible = "mediatek,mt7621-soc";
11c9ccf3a3SEmmanuel Vadot
12c9ccf3a3SEmmanuel Vadot	cpus {
13c9ccf3a3SEmmanuel Vadot		#address-cells = <1>;
14c9ccf3a3SEmmanuel Vadot		#size-cells = <0>;
15c9ccf3a3SEmmanuel Vadot
16c9ccf3a3SEmmanuel Vadot		cpu@0 {
17c9ccf3a3SEmmanuel Vadot			device_type = "cpu";
18c9ccf3a3SEmmanuel Vadot			compatible = "mips,mips1004Kc";
19c9ccf3a3SEmmanuel Vadot			reg = <0>;
20c9ccf3a3SEmmanuel Vadot		};
21c9ccf3a3SEmmanuel Vadot
22c9ccf3a3SEmmanuel Vadot		cpu@1 {
23c9ccf3a3SEmmanuel Vadot			device_type = "cpu";
24c9ccf3a3SEmmanuel Vadot			compatible = "mips,mips1004Kc";
25c9ccf3a3SEmmanuel Vadot			reg = <1>;
26c9ccf3a3SEmmanuel Vadot		};
27c9ccf3a3SEmmanuel Vadot	};
28c9ccf3a3SEmmanuel Vadot
29c9ccf3a3SEmmanuel Vadot	cpuintc: cpuintc {
30c9ccf3a3SEmmanuel Vadot		#address-cells = <0>;
31c9ccf3a3SEmmanuel Vadot		#interrupt-cells = <1>;
32c9ccf3a3SEmmanuel Vadot		interrupt-controller;
33c9ccf3a3SEmmanuel Vadot		compatible = "mti,cpu-interrupt-controller";
34c9ccf3a3SEmmanuel Vadot	};
35c9ccf3a3SEmmanuel Vadot
36c9ccf3a3SEmmanuel Vadot	mmc_fixed_3v3: regulator-3v3 {
37c9ccf3a3SEmmanuel Vadot		compatible = "regulator-fixed";
38c9ccf3a3SEmmanuel Vadot		regulator-name = "mmc_power";
39c9ccf3a3SEmmanuel Vadot		regulator-min-microvolt = <3300000>;
40c9ccf3a3SEmmanuel Vadot		regulator-max-microvolt = <3300000>;
41c9ccf3a3SEmmanuel Vadot		enable-active-high;
42c9ccf3a3SEmmanuel Vadot		regulator-always-on;
43c9ccf3a3SEmmanuel Vadot	};
44c9ccf3a3SEmmanuel Vadot
45c9ccf3a3SEmmanuel Vadot	mmc_fixed_1v8_io: regulator-1v8 {
46c9ccf3a3SEmmanuel Vadot		compatible = "regulator-fixed";
47c9ccf3a3SEmmanuel Vadot		regulator-name = "mmc_io";
48c9ccf3a3SEmmanuel Vadot		regulator-min-microvolt = <1800000>;
49c9ccf3a3SEmmanuel Vadot		regulator-max-microvolt = <1800000>;
50c9ccf3a3SEmmanuel Vadot		enable-active-high;
51c9ccf3a3SEmmanuel Vadot		regulator-always-on;
52c9ccf3a3SEmmanuel Vadot	};
53c9ccf3a3SEmmanuel Vadot
54c9ccf3a3SEmmanuel Vadot	palmbus: palmbus@1e000000 {
55c9ccf3a3SEmmanuel Vadot		compatible = "palmbus";
56c9ccf3a3SEmmanuel Vadot		reg = <0x1e000000 0x100000>;
57c9ccf3a3SEmmanuel Vadot		ranges = <0x0 0x1e000000 0x0fffff>;
58c9ccf3a3SEmmanuel Vadot
59c9ccf3a3SEmmanuel Vadot		#address-cells = <1>;
60c9ccf3a3SEmmanuel Vadot		#size-cells = <1>;
61c9ccf3a3SEmmanuel Vadot
62c9ccf3a3SEmmanuel Vadot		sysc: syscon@0 {
63c9ccf3a3SEmmanuel Vadot			compatible = "mediatek,mt7621-sysc", "syscon";
64c9ccf3a3SEmmanuel Vadot			reg = <0x0 0x100>;
65c9ccf3a3SEmmanuel Vadot			#clock-cells = <1>;
66c9ccf3a3SEmmanuel Vadot			#reset-cells = <1>;
67c9ccf3a3SEmmanuel Vadot			ralink,memctl = <&memc>;
68c9ccf3a3SEmmanuel Vadot			clock-output-names = "xtal", "cpu", "bus",
69c9ccf3a3SEmmanuel Vadot					     "50m", "125m", "150m",
70c9ccf3a3SEmmanuel Vadot					     "250m", "270m";
71c9ccf3a3SEmmanuel Vadot		};
72c9ccf3a3SEmmanuel Vadot
73cb7aa33aSEmmanuel Vadot		wdt: watchdog@100 {
74c9ccf3a3SEmmanuel Vadot			compatible = "mediatek,mt7621-wdt";
75c9ccf3a3SEmmanuel Vadot			reg = <0x100 0x100>;
76cb7aa33aSEmmanuel Vadot			mediatek,sysctl = <&sysc>;
77c9ccf3a3SEmmanuel Vadot		};
78c9ccf3a3SEmmanuel Vadot
79c9ccf3a3SEmmanuel Vadot		gpio: gpio@600 {
80c9ccf3a3SEmmanuel Vadot			#gpio-cells = <2>;
81c9ccf3a3SEmmanuel Vadot			#interrupt-cells = <2>;
82c9ccf3a3SEmmanuel Vadot			compatible = "mediatek,mt7621-gpio";
83c9ccf3a3SEmmanuel Vadot			gpio-controller;
84c9ccf3a3SEmmanuel Vadot			gpio-ranges = <&pinctrl 0 0 95>;
85c9ccf3a3SEmmanuel Vadot			interrupt-controller;
86c9ccf3a3SEmmanuel Vadot			reg = <0x600 0x100>;
87c9ccf3a3SEmmanuel Vadot			interrupt-parent = <&gic>;
88c9ccf3a3SEmmanuel Vadot			interrupts = <GIC_SHARED 12 IRQ_TYPE_LEVEL_HIGH>;
89c9ccf3a3SEmmanuel Vadot		};
90c9ccf3a3SEmmanuel Vadot
91c9ccf3a3SEmmanuel Vadot		i2c: i2c@900 {
92c9ccf3a3SEmmanuel Vadot			compatible = "mediatek,mt7621-i2c";
93c9ccf3a3SEmmanuel Vadot			reg = <0x900 0x100>;
94c9ccf3a3SEmmanuel Vadot
95c9ccf3a3SEmmanuel Vadot			clocks = <&sysc MT7621_CLK_I2C>;
96c9ccf3a3SEmmanuel Vadot			clock-names = "i2c";
97c9ccf3a3SEmmanuel Vadot			resets = <&sysc MT7621_RST_I2C>;
98c9ccf3a3SEmmanuel Vadot			reset-names = "i2c";
99c9ccf3a3SEmmanuel Vadot
100c9ccf3a3SEmmanuel Vadot			#address-cells = <1>;
101c9ccf3a3SEmmanuel Vadot			#size-cells = <0>;
102c9ccf3a3SEmmanuel Vadot
103c9ccf3a3SEmmanuel Vadot			status = "disabled";
104c9ccf3a3SEmmanuel Vadot
105c9ccf3a3SEmmanuel Vadot			pinctrl-names = "default";
106c9ccf3a3SEmmanuel Vadot			pinctrl-0 = <&i2c_pins>;
107c9ccf3a3SEmmanuel Vadot		};
108c9ccf3a3SEmmanuel Vadot
1097ef62cebSEmmanuel Vadot		memc: memory-controller@5000 {
110c9ccf3a3SEmmanuel Vadot			compatible = "mediatek,mt7621-memc", "syscon";
111c9ccf3a3SEmmanuel Vadot			reg = <0x5000 0x1000>;
112c9ccf3a3SEmmanuel Vadot		};
113c9ccf3a3SEmmanuel Vadot
1147ef62cebSEmmanuel Vadot		serial0: serial@c00 {
115c9ccf3a3SEmmanuel Vadot			compatible = "ns16550a";
116c9ccf3a3SEmmanuel Vadot			reg = <0xc00 0x100>;
117c9ccf3a3SEmmanuel Vadot
118c9ccf3a3SEmmanuel Vadot			clocks = <&sysc MT7621_CLK_UART1>;
119c9ccf3a3SEmmanuel Vadot
120c9ccf3a3SEmmanuel Vadot			interrupt-parent = <&gic>;
121c9ccf3a3SEmmanuel Vadot			interrupts = <GIC_SHARED 26 IRQ_TYPE_LEVEL_HIGH>;
122c9ccf3a3SEmmanuel Vadot
123c9ccf3a3SEmmanuel Vadot			reg-shift = <2>;
124c9ccf3a3SEmmanuel Vadot			reg-io-width = <4>;
125c9ccf3a3SEmmanuel Vadot			no-loopback-test;
126c9ccf3a3SEmmanuel Vadot		};
127c9ccf3a3SEmmanuel Vadot
128c9ccf3a3SEmmanuel Vadot		spi0: spi@b00 {
129c9ccf3a3SEmmanuel Vadot			status = "disabled";
130c9ccf3a3SEmmanuel Vadot
131c9ccf3a3SEmmanuel Vadot			compatible = "ralink,mt7621-spi";
132c9ccf3a3SEmmanuel Vadot			reg = <0xb00 0x100>;
133c9ccf3a3SEmmanuel Vadot
134c9ccf3a3SEmmanuel Vadot			clocks = <&sysc MT7621_CLK_SPI>;
135c9ccf3a3SEmmanuel Vadot			clock-names = "spi";
136c9ccf3a3SEmmanuel Vadot
137c9ccf3a3SEmmanuel Vadot			resets = <&sysc MT7621_RST_SPI>;
138c9ccf3a3SEmmanuel Vadot			reset-names = "spi";
139c9ccf3a3SEmmanuel Vadot
140c9ccf3a3SEmmanuel Vadot			#address-cells = <1>;
141c9ccf3a3SEmmanuel Vadot			#size-cells = <0>;
142c9ccf3a3SEmmanuel Vadot
143c9ccf3a3SEmmanuel Vadot			pinctrl-names = "default";
144c9ccf3a3SEmmanuel Vadot			pinctrl-0 = <&spi_pins>;
145c9ccf3a3SEmmanuel Vadot		};
146c9ccf3a3SEmmanuel Vadot	};
147c9ccf3a3SEmmanuel Vadot
148c9ccf3a3SEmmanuel Vadot	pinctrl: pinctrl {
149d5b0e70fSEmmanuel Vadot		compatible = "ralink,mt7621-pinctrl";
150c9ccf3a3SEmmanuel Vadot
151c9ccf3a3SEmmanuel Vadot		i2c_pins: i2c0-pins {
152c9ccf3a3SEmmanuel Vadot			pinmux {
153c9ccf3a3SEmmanuel Vadot				groups = "i2c";
154c9ccf3a3SEmmanuel Vadot				function = "i2c";
155c9ccf3a3SEmmanuel Vadot			};
156c9ccf3a3SEmmanuel Vadot		};
157c9ccf3a3SEmmanuel Vadot
158c9ccf3a3SEmmanuel Vadot		spi_pins: spi0-pins {
159c9ccf3a3SEmmanuel Vadot			pinmux {
160c9ccf3a3SEmmanuel Vadot				groups = "spi";
161c9ccf3a3SEmmanuel Vadot				function = "spi";
162c9ccf3a3SEmmanuel Vadot			};
163c9ccf3a3SEmmanuel Vadot		};
164c9ccf3a3SEmmanuel Vadot
165c9ccf3a3SEmmanuel Vadot		uart1_pins: uart1-pins {
166c9ccf3a3SEmmanuel Vadot			pinmux {
167c9ccf3a3SEmmanuel Vadot				groups = "uart1";
168c9ccf3a3SEmmanuel Vadot				function = "uart1";
169c9ccf3a3SEmmanuel Vadot			};
170c9ccf3a3SEmmanuel Vadot		};
171c9ccf3a3SEmmanuel Vadot
172c9ccf3a3SEmmanuel Vadot		uart2_pins: uart2-pins {
173c9ccf3a3SEmmanuel Vadot			pinmux {
174c9ccf3a3SEmmanuel Vadot				groups = "uart2";
175c9ccf3a3SEmmanuel Vadot				function = "uart2";
176c9ccf3a3SEmmanuel Vadot			};
177c9ccf3a3SEmmanuel Vadot		};
178c9ccf3a3SEmmanuel Vadot
179c9ccf3a3SEmmanuel Vadot		uart3_pins: uart3-pins {
180c9ccf3a3SEmmanuel Vadot			pinmux {
181c9ccf3a3SEmmanuel Vadot				groups = "uart3";
182c9ccf3a3SEmmanuel Vadot				function = "uart3";
183c9ccf3a3SEmmanuel Vadot			};
184c9ccf3a3SEmmanuel Vadot		};
185c9ccf3a3SEmmanuel Vadot
186c9ccf3a3SEmmanuel Vadot		rgmii1_pins: rgmii1-pins {
187c9ccf3a3SEmmanuel Vadot			pinmux {
188c9ccf3a3SEmmanuel Vadot				groups = "rgmii1";
189c9ccf3a3SEmmanuel Vadot				function = "rgmii1";
190c9ccf3a3SEmmanuel Vadot			};
191c9ccf3a3SEmmanuel Vadot		};
192c9ccf3a3SEmmanuel Vadot
193c9ccf3a3SEmmanuel Vadot		rgmii2_pins: rgmii2-pins {
194c9ccf3a3SEmmanuel Vadot			pinmux {
195c9ccf3a3SEmmanuel Vadot				groups = "rgmii2";
196c9ccf3a3SEmmanuel Vadot				function = "rgmii2";
197c9ccf3a3SEmmanuel Vadot			};
198c9ccf3a3SEmmanuel Vadot		};
199c9ccf3a3SEmmanuel Vadot
200c9ccf3a3SEmmanuel Vadot		mdio_pins: mdio0-pins {
201c9ccf3a3SEmmanuel Vadot			pinmux {
202c9ccf3a3SEmmanuel Vadot				groups = "mdio";
203c9ccf3a3SEmmanuel Vadot				function = "mdio";
204c9ccf3a3SEmmanuel Vadot			};
205c9ccf3a3SEmmanuel Vadot		};
206c9ccf3a3SEmmanuel Vadot
207c9ccf3a3SEmmanuel Vadot		pcie_pins: pcie0-pins {
208c9ccf3a3SEmmanuel Vadot			pinmux {
209c9ccf3a3SEmmanuel Vadot				groups = "pcie";
210c9ccf3a3SEmmanuel Vadot				function = "gpio";
211c9ccf3a3SEmmanuel Vadot			};
212c9ccf3a3SEmmanuel Vadot		};
213c9ccf3a3SEmmanuel Vadot
214c9ccf3a3SEmmanuel Vadot		nand_pins: nand0-pins {
215c9ccf3a3SEmmanuel Vadot			spi-pinmux {
216c9ccf3a3SEmmanuel Vadot				groups = "spi";
217c9ccf3a3SEmmanuel Vadot				function = "nand1";
218c9ccf3a3SEmmanuel Vadot			};
219c9ccf3a3SEmmanuel Vadot
220c9ccf3a3SEmmanuel Vadot			sdhci-pinmux {
221c9ccf3a3SEmmanuel Vadot				groups = "sdhci";
222c9ccf3a3SEmmanuel Vadot				function = "nand2";
223c9ccf3a3SEmmanuel Vadot			};
224c9ccf3a3SEmmanuel Vadot		};
225c9ccf3a3SEmmanuel Vadot
226c9ccf3a3SEmmanuel Vadot		sdhci_pins: sdhci0-pins {
227c9ccf3a3SEmmanuel Vadot			pinmux {
228c9ccf3a3SEmmanuel Vadot				groups = "sdhci";
229c9ccf3a3SEmmanuel Vadot				function = "sdhci";
230c9ccf3a3SEmmanuel Vadot			};
231c9ccf3a3SEmmanuel Vadot		};
232c9ccf3a3SEmmanuel Vadot	};
233c9ccf3a3SEmmanuel Vadot
2347ef62cebSEmmanuel Vadot	mmc: mmc@1e130000 {
235c9ccf3a3SEmmanuel Vadot		status = "disabled";
236c9ccf3a3SEmmanuel Vadot
237c9ccf3a3SEmmanuel Vadot		compatible = "mediatek,mt7620-mmc";
238c9ccf3a3SEmmanuel Vadot		reg = <0x1e130000 0x4000>;
239c9ccf3a3SEmmanuel Vadot
240c9ccf3a3SEmmanuel Vadot		bus-width = <4>;
241c9ccf3a3SEmmanuel Vadot		max-frequency = <48000000>;
242c9ccf3a3SEmmanuel Vadot		cap-sd-highspeed;
243c9ccf3a3SEmmanuel Vadot		cap-mmc-highspeed;
244c9ccf3a3SEmmanuel Vadot		vmmc-supply = <&mmc_fixed_3v3>;
245c9ccf3a3SEmmanuel Vadot		vqmmc-supply = <&mmc_fixed_1v8_io>;
246c9ccf3a3SEmmanuel Vadot		disable-wp;
247c9ccf3a3SEmmanuel Vadot
248c9ccf3a3SEmmanuel Vadot		pinctrl-names = "default", "state_uhs";
249c9ccf3a3SEmmanuel Vadot		pinctrl-0 = <&sdhci_pins>;
250c9ccf3a3SEmmanuel Vadot		pinctrl-1 = <&sdhci_pins>;
251c9ccf3a3SEmmanuel Vadot
252c9ccf3a3SEmmanuel Vadot		clocks = <&sysc MT7621_CLK_SHXC>,
253c9ccf3a3SEmmanuel Vadot			 <&sysc MT7621_CLK_50M>;
254c9ccf3a3SEmmanuel Vadot		clock-names = "source", "hclk";
255c9ccf3a3SEmmanuel Vadot
256c9ccf3a3SEmmanuel Vadot		interrupt-parent = <&gic>;
257c9ccf3a3SEmmanuel Vadot		interrupts = <GIC_SHARED 20 IRQ_TYPE_LEVEL_HIGH>;
258c9ccf3a3SEmmanuel Vadot	};
259c9ccf3a3SEmmanuel Vadot
2607ef62cebSEmmanuel Vadot	usb: usb@1e1c0000 {
2617ef62cebSEmmanuel Vadot		compatible = "mediatek,mt8173-xhci", "mediatek,mtk-xhci";
262c9ccf3a3SEmmanuel Vadot		reg = <0x1e1c0000 0x1000
263c9ccf3a3SEmmanuel Vadot		       0x1e1d0700 0x0100>;
264c9ccf3a3SEmmanuel Vadot		reg-names = "mac", "ippc";
265c9ccf3a3SEmmanuel Vadot
266c9ccf3a3SEmmanuel Vadot		clocks = <&sysc MT7621_CLK_XTAL>;
267c9ccf3a3SEmmanuel Vadot		clock-names = "sys_ck";
268c9ccf3a3SEmmanuel Vadot
269c9ccf3a3SEmmanuel Vadot		interrupt-parent = <&gic>;
270c9ccf3a3SEmmanuel Vadot		interrupts = <GIC_SHARED 22 IRQ_TYPE_LEVEL_HIGH>;
271c9ccf3a3SEmmanuel Vadot	};
272c9ccf3a3SEmmanuel Vadot
273c9ccf3a3SEmmanuel Vadot	gic: interrupt-controller@1fbc0000 {
274c9ccf3a3SEmmanuel Vadot		compatible = "mti,gic";
275c9ccf3a3SEmmanuel Vadot		reg = <0x1fbc0000 0x2000>;
276c9ccf3a3SEmmanuel Vadot
277c9ccf3a3SEmmanuel Vadot		interrupt-controller;
278c9ccf3a3SEmmanuel Vadot		#interrupt-cells = <3>;
279c9ccf3a3SEmmanuel Vadot
280c9ccf3a3SEmmanuel Vadot		mti,reserved-cpu-vectors = <7>;
281c9ccf3a3SEmmanuel Vadot
282c9ccf3a3SEmmanuel Vadot		timer {
283c9ccf3a3SEmmanuel Vadot			compatible = "mti,gic-timer";
284c9ccf3a3SEmmanuel Vadot			interrupts = <GIC_LOCAL 1 IRQ_TYPE_NONE>;
285c9ccf3a3SEmmanuel Vadot			clocks = <&sysc MT7621_CLK_CPU>;
286c9ccf3a3SEmmanuel Vadot		};
287c9ccf3a3SEmmanuel Vadot	};
288c9ccf3a3SEmmanuel Vadot
289c9ccf3a3SEmmanuel Vadot	cpc: cpc@1fbf0000 {
290c9ccf3a3SEmmanuel Vadot		compatible = "mti,mips-cpc";
291c9ccf3a3SEmmanuel Vadot		reg = <0x1fbf0000 0x8000>;
292c9ccf3a3SEmmanuel Vadot	};
293c9ccf3a3SEmmanuel Vadot
294c9ccf3a3SEmmanuel Vadot	cdmm: cdmm@1fbf8000 {
295c9ccf3a3SEmmanuel Vadot		compatible = "mti,mips-cdmm";
296c9ccf3a3SEmmanuel Vadot		reg = <0x1fbf8000 0x8000>;
297c9ccf3a3SEmmanuel Vadot	};
298c9ccf3a3SEmmanuel Vadot
299c9ccf3a3SEmmanuel Vadot	ethernet: ethernet@1e100000 {
300c9ccf3a3SEmmanuel Vadot		compatible = "mediatek,mt7621-eth";
301c9ccf3a3SEmmanuel Vadot		reg = <0x1e100000 0x10000>;
302c9ccf3a3SEmmanuel Vadot
303*84943d6fSEmmanuel Vadot		clocks = <&sysc MT7621_CLK_FE>, <&sysc MT7621_CLK_ETH>;
304c9ccf3a3SEmmanuel Vadot		clock-names = "fe", "ethif";
305c9ccf3a3SEmmanuel Vadot
306c9ccf3a3SEmmanuel Vadot		#address-cells = <1>;
307c9ccf3a3SEmmanuel Vadot		#size-cells = <0>;
308c9ccf3a3SEmmanuel Vadot
309*84943d6fSEmmanuel Vadot		resets = <&sysc MT7621_RST_FE>, <&sysc MT7621_RST_ETH>;
310c9ccf3a3SEmmanuel Vadot		reset-names = "fe", "eth";
311c9ccf3a3SEmmanuel Vadot
312c9ccf3a3SEmmanuel Vadot		interrupt-parent = <&gic>;
313c9ccf3a3SEmmanuel Vadot		interrupts = <GIC_SHARED 3 IRQ_TYPE_LEVEL_HIGH>;
314c9ccf3a3SEmmanuel Vadot
315c9ccf3a3SEmmanuel Vadot		mediatek,ethsys = <&sysc>;
316c9ccf3a3SEmmanuel Vadot
317c9ccf3a3SEmmanuel Vadot		pinctrl-names = "default";
318c9ccf3a3SEmmanuel Vadot		pinctrl-0 = <&mdio_pins>, <&rgmii1_pins>, <&rgmii2_pins>;
319c9ccf3a3SEmmanuel Vadot
320c9ccf3a3SEmmanuel Vadot		gmac0: mac@0 {
321c9ccf3a3SEmmanuel Vadot			compatible = "mediatek,eth-mac";
322c9ccf3a3SEmmanuel Vadot			reg = <0>;
323c9ccf3a3SEmmanuel Vadot			phy-mode = "trgmii";
324c9ccf3a3SEmmanuel Vadot
325c9ccf3a3SEmmanuel Vadot			fixed-link {
326c9ccf3a3SEmmanuel Vadot				speed = <1000>;
327c9ccf3a3SEmmanuel Vadot				full-duplex;
328c9ccf3a3SEmmanuel Vadot				pause;
329c9ccf3a3SEmmanuel Vadot			};
330c9ccf3a3SEmmanuel Vadot		};
331c9ccf3a3SEmmanuel Vadot
332c9ccf3a3SEmmanuel Vadot		gmac1: mac@1 {
333c9ccf3a3SEmmanuel Vadot			compatible = "mediatek,eth-mac";
334c9ccf3a3SEmmanuel Vadot			reg = <1>;
3357ef62cebSEmmanuel Vadot			phy-mode = "rgmii";
336cb7aa33aSEmmanuel Vadot
337cb7aa33aSEmmanuel Vadot			fixed-link {
338cb7aa33aSEmmanuel Vadot				speed = <1000>;
339cb7aa33aSEmmanuel Vadot				full-duplex;
340cb7aa33aSEmmanuel Vadot				pause;
341cb7aa33aSEmmanuel Vadot			};
342c9ccf3a3SEmmanuel Vadot		};
343c9ccf3a3SEmmanuel Vadot
344d5b0e70fSEmmanuel Vadot		mdio: mdio-bus {
345c9ccf3a3SEmmanuel Vadot			#address-cells = <1>;
346c9ccf3a3SEmmanuel Vadot			#size-cells = <0>;
347c9ccf3a3SEmmanuel Vadot
3487ef62cebSEmmanuel Vadot			switch0: switch@1f {
349c9ccf3a3SEmmanuel Vadot				compatible = "mediatek,mt7621";
3507ef62cebSEmmanuel Vadot				reg = <0x1f>;
351c9ccf3a3SEmmanuel Vadot				mediatek,mcm;
352c9ccf3a3SEmmanuel Vadot				resets = <&sysc MT7621_RST_MCM>;
353c9ccf3a3SEmmanuel Vadot				reset-names = "mcm";
354c9ccf3a3SEmmanuel Vadot				interrupt-controller;
355c9ccf3a3SEmmanuel Vadot				#interrupt-cells = <1>;
356c9ccf3a3SEmmanuel Vadot				interrupts = <GIC_SHARED 23 IRQ_TYPE_LEVEL_HIGH>;
357c9ccf3a3SEmmanuel Vadot
358c9ccf3a3SEmmanuel Vadot				ports {
359c9ccf3a3SEmmanuel Vadot					#address-cells = <1>;
360c9ccf3a3SEmmanuel Vadot					#size-cells = <0>;
361c9ccf3a3SEmmanuel Vadot
362c9ccf3a3SEmmanuel Vadot					port@0 {
3637ef62cebSEmmanuel Vadot						status = "disabled";
364c9ccf3a3SEmmanuel Vadot						reg = <0>;
3658bab661aSEmmanuel Vadot						label = "swp0";
366c9ccf3a3SEmmanuel Vadot					};
367c9ccf3a3SEmmanuel Vadot
368c9ccf3a3SEmmanuel Vadot					port@1 {
3697ef62cebSEmmanuel Vadot						status = "disabled";
370c9ccf3a3SEmmanuel Vadot						reg = <1>;
3718bab661aSEmmanuel Vadot						label = "swp1";
372c9ccf3a3SEmmanuel Vadot					};
373c9ccf3a3SEmmanuel Vadot
374c9ccf3a3SEmmanuel Vadot					port@2 {
3757ef62cebSEmmanuel Vadot						status = "disabled";
376c9ccf3a3SEmmanuel Vadot						reg = <2>;
3778bab661aSEmmanuel Vadot						label = "swp2";
378c9ccf3a3SEmmanuel Vadot					};
379c9ccf3a3SEmmanuel Vadot
380c9ccf3a3SEmmanuel Vadot					port@3 {
3817ef62cebSEmmanuel Vadot						status = "disabled";
382c9ccf3a3SEmmanuel Vadot						reg = <3>;
3838bab661aSEmmanuel Vadot						label = "swp3";
384c9ccf3a3SEmmanuel Vadot					};
385c9ccf3a3SEmmanuel Vadot
386c9ccf3a3SEmmanuel Vadot					port@4 {
3877ef62cebSEmmanuel Vadot						status = "disabled";
388c9ccf3a3SEmmanuel Vadot						reg = <4>;
3898bab661aSEmmanuel Vadot						label = "swp4";
390c9ccf3a3SEmmanuel Vadot					};
391c9ccf3a3SEmmanuel Vadot
392cb7aa33aSEmmanuel Vadot					port@5 {
393cb7aa33aSEmmanuel Vadot						reg = <5>;
394cb7aa33aSEmmanuel Vadot						ethernet = <&gmac1>;
395cb7aa33aSEmmanuel Vadot						phy-mode = "rgmii";
396cb7aa33aSEmmanuel Vadot
397cb7aa33aSEmmanuel Vadot						fixed-link {
398cb7aa33aSEmmanuel Vadot							speed = <1000>;
399cb7aa33aSEmmanuel Vadot							full-duplex;
400cb7aa33aSEmmanuel Vadot							pause;
401cb7aa33aSEmmanuel Vadot						};
402cb7aa33aSEmmanuel Vadot					};
403cb7aa33aSEmmanuel Vadot
404c9ccf3a3SEmmanuel Vadot					port@6 {
405c9ccf3a3SEmmanuel Vadot						reg = <6>;
406c9ccf3a3SEmmanuel Vadot						ethernet = <&gmac0>;
407c9ccf3a3SEmmanuel Vadot						phy-mode = "trgmii";
408c9ccf3a3SEmmanuel Vadot
409c9ccf3a3SEmmanuel Vadot						fixed-link {
410c9ccf3a3SEmmanuel Vadot							speed = <1000>;
411c9ccf3a3SEmmanuel Vadot							full-duplex;
412c9ccf3a3SEmmanuel Vadot							pause;
413c9ccf3a3SEmmanuel Vadot						};
414c9ccf3a3SEmmanuel Vadot					};
415c9ccf3a3SEmmanuel Vadot				};
416c9ccf3a3SEmmanuel Vadot			};
417c9ccf3a3SEmmanuel Vadot		};
418c9ccf3a3SEmmanuel Vadot	};
419c9ccf3a3SEmmanuel Vadot
420c9ccf3a3SEmmanuel Vadot	pcie: pcie@1e140000 {
421c9ccf3a3SEmmanuel Vadot		compatible = "mediatek,mt7621-pci";
422c9ccf3a3SEmmanuel Vadot		reg = <0x1e140000 0x100>, /* host-pci bridge registers */
423c9ccf3a3SEmmanuel Vadot		      <0x1e142000 0x100>, /* pcie port 0 RC control registers */
424c9ccf3a3SEmmanuel Vadot		      <0x1e143000 0x100>, /* pcie port 1 RC control registers */
425c9ccf3a3SEmmanuel Vadot		      <0x1e144000 0x100>; /* pcie port 2 RC control registers */
426c9ccf3a3SEmmanuel Vadot		#address-cells = <3>;
427c9ccf3a3SEmmanuel Vadot		#size-cells = <2>;
428c9ccf3a3SEmmanuel Vadot
429c9ccf3a3SEmmanuel Vadot		pinctrl-names = "default";
430c9ccf3a3SEmmanuel Vadot		pinctrl-0 = <&pcie_pins>;
431c9ccf3a3SEmmanuel Vadot
432c9ccf3a3SEmmanuel Vadot		device_type = "pci";
433c9ccf3a3SEmmanuel Vadot
434c9ccf3a3SEmmanuel Vadot		ranges = <0x02000000 0 0x60000000 0x60000000 0 0x10000000>, /* pci memory */
435c9ccf3a3SEmmanuel Vadot			 <0x01000000 0 0x00000000 0x1e160000 0 0x00010000>; /* io space */
436c9ccf3a3SEmmanuel Vadot
437c9ccf3a3SEmmanuel Vadot		#interrupt-cells = <1>;
438c9ccf3a3SEmmanuel Vadot		interrupt-map-mask = <0xF800 0 0 0>;
439c9ccf3a3SEmmanuel Vadot		interrupt-map = <0x0000 0 0 0 &gic GIC_SHARED 4 IRQ_TYPE_LEVEL_HIGH>,
440c9ccf3a3SEmmanuel Vadot				<0x0800 0 0 0 &gic GIC_SHARED 24 IRQ_TYPE_LEVEL_HIGH>,
441c9ccf3a3SEmmanuel Vadot				<0x1000 0 0 0 &gic GIC_SHARED 25 IRQ_TYPE_LEVEL_HIGH>;
442c9ccf3a3SEmmanuel Vadot
443c9ccf3a3SEmmanuel Vadot		status = "disabled";
444c9ccf3a3SEmmanuel Vadot
445c9ccf3a3SEmmanuel Vadot		reset-gpios = <&gpio 19 GPIO_ACTIVE_LOW>;
446c9ccf3a3SEmmanuel Vadot
447c9ccf3a3SEmmanuel Vadot		pcie@0,0 {
448c9ccf3a3SEmmanuel Vadot			reg = <0x0000 0 0 0 0>;
449c9ccf3a3SEmmanuel Vadot			#address-cells = <3>;
450c9ccf3a3SEmmanuel Vadot			#size-cells = <2>;
451c9ccf3a3SEmmanuel Vadot			device_type = "pci";
452c9ccf3a3SEmmanuel Vadot			#interrupt-cells = <1>;
453c9ccf3a3SEmmanuel Vadot			interrupt-map-mask = <0 0 0 0>;
454c9ccf3a3SEmmanuel Vadot			interrupt-map = <0 0 0 0 &gic GIC_SHARED 4 IRQ_TYPE_LEVEL_HIGH>;
455c9ccf3a3SEmmanuel Vadot			resets = <&sysc MT7621_RST_PCIE0>;
456c9ccf3a3SEmmanuel Vadot			clocks = <&sysc MT7621_CLK_PCIE0>;
457c9ccf3a3SEmmanuel Vadot			phys = <&pcie0_phy 1>;
458c9ccf3a3SEmmanuel Vadot			phy-names = "pcie-phy0";
459c9ccf3a3SEmmanuel Vadot			ranges;
460c9ccf3a3SEmmanuel Vadot		};
461c9ccf3a3SEmmanuel Vadot
462c9ccf3a3SEmmanuel Vadot		pcie@1,0 {
463c9ccf3a3SEmmanuel Vadot			reg = <0x0800 0 0 0 0>;
464c9ccf3a3SEmmanuel Vadot			#address-cells = <3>;
465c9ccf3a3SEmmanuel Vadot			#size-cells = <2>;
466c9ccf3a3SEmmanuel Vadot			device_type = "pci";
467c9ccf3a3SEmmanuel Vadot			#interrupt-cells = <1>;
468c9ccf3a3SEmmanuel Vadot			interrupt-map-mask = <0 0 0 0>;
469c9ccf3a3SEmmanuel Vadot			interrupt-map = <0 0 0 0 &gic GIC_SHARED 24 IRQ_TYPE_LEVEL_HIGH>;
470c9ccf3a3SEmmanuel Vadot			resets = <&sysc MT7621_RST_PCIE1>;
471c9ccf3a3SEmmanuel Vadot			clocks = <&sysc MT7621_CLK_PCIE1>;
472c9ccf3a3SEmmanuel Vadot			phys = <&pcie0_phy 1>;
473c9ccf3a3SEmmanuel Vadot			phy-names = "pcie-phy1";
474c9ccf3a3SEmmanuel Vadot			ranges;
475c9ccf3a3SEmmanuel Vadot		};
476c9ccf3a3SEmmanuel Vadot
477c9ccf3a3SEmmanuel Vadot		pcie@2,0 {
478c9ccf3a3SEmmanuel Vadot			reg = <0x1000 0 0 0 0>;
479c9ccf3a3SEmmanuel Vadot			#address-cells = <3>;
480c9ccf3a3SEmmanuel Vadot			#size-cells = <2>;
481c9ccf3a3SEmmanuel Vadot			device_type = "pci";
482c9ccf3a3SEmmanuel Vadot			#interrupt-cells = <1>;
483c9ccf3a3SEmmanuel Vadot			interrupt-map-mask = <0 0 0 0>;
484c9ccf3a3SEmmanuel Vadot			interrupt-map = <0 0 0 0 &gic GIC_SHARED 25 IRQ_TYPE_LEVEL_HIGH>;
485c9ccf3a3SEmmanuel Vadot			resets = <&sysc MT7621_RST_PCIE2>;
486c9ccf3a3SEmmanuel Vadot			clocks = <&sysc MT7621_CLK_PCIE2>;
487c9ccf3a3SEmmanuel Vadot			phys = <&pcie2_phy 0>;
488c9ccf3a3SEmmanuel Vadot			phy-names = "pcie-phy2";
489c9ccf3a3SEmmanuel Vadot			ranges;
490c9ccf3a3SEmmanuel Vadot		};
491c9ccf3a3SEmmanuel Vadot	};
492c9ccf3a3SEmmanuel Vadot
493c9ccf3a3SEmmanuel Vadot	pcie0_phy: pcie-phy@1e149000 {
494c9ccf3a3SEmmanuel Vadot		compatible = "mediatek,mt7621-pci-phy";
495c9ccf3a3SEmmanuel Vadot		reg = <0x1e149000 0x0700>;
496c9ccf3a3SEmmanuel Vadot		clocks = <&sysc MT7621_CLK_XTAL>;
497c9ccf3a3SEmmanuel Vadot		#phy-cells = <1>;
498c9ccf3a3SEmmanuel Vadot	};
499c9ccf3a3SEmmanuel Vadot
500c9ccf3a3SEmmanuel Vadot	pcie2_phy: pcie-phy@1e14a000 {
501c9ccf3a3SEmmanuel Vadot		compatible = "mediatek,mt7621-pci-phy";
502c9ccf3a3SEmmanuel Vadot		reg = <0x1e14a000 0x0700>;
503c9ccf3a3SEmmanuel Vadot		clocks = <&sysc MT7621_CLK_XTAL>;
504c9ccf3a3SEmmanuel Vadot		#phy-cells = <1>;
505c9ccf3a3SEmmanuel Vadot	};
506c9ccf3a3SEmmanuel Vadot};
507