xref: /freebsd-src/sys/contrib/device-tree/src/mips/qca/ar9331.dtsi (revision 8bab661a3316d8bd9b9fbd11a3b4371b91507bd2)
1c66ec88fSEmmanuel Vadot// SPDX-License-Identifier: GPL-2.0
2c66ec88fSEmmanuel Vadot#include <dt-bindings/clock/ath79-clk.h>
3c66ec88fSEmmanuel Vadot
4c66ec88fSEmmanuel Vadot/ {
5c66ec88fSEmmanuel Vadot	compatible = "qca,ar9331";
6c66ec88fSEmmanuel Vadot
7c66ec88fSEmmanuel Vadot	#address-cells = <1>;
8c66ec88fSEmmanuel Vadot	#size-cells = <1>;
9c66ec88fSEmmanuel Vadot
10c66ec88fSEmmanuel Vadot	cpus {
11c66ec88fSEmmanuel Vadot		#address-cells = <1>;
12c66ec88fSEmmanuel Vadot		#size-cells = <0>;
13c66ec88fSEmmanuel Vadot
14c66ec88fSEmmanuel Vadot		cpu@0 {
15c66ec88fSEmmanuel Vadot			device_type = "cpu";
16c66ec88fSEmmanuel Vadot			compatible = "mips,mips24Kc";
17c66ec88fSEmmanuel Vadot			clocks = <&pll ATH79_CLK_CPU>;
18c66ec88fSEmmanuel Vadot			reg = <0>;
19c66ec88fSEmmanuel Vadot		};
20c66ec88fSEmmanuel Vadot	};
21c66ec88fSEmmanuel Vadot
22c66ec88fSEmmanuel Vadot	cpuintc: interrupt-controller {
23c66ec88fSEmmanuel Vadot		compatible = "qca,ar7100-cpu-intc";
24c66ec88fSEmmanuel Vadot
25c66ec88fSEmmanuel Vadot		interrupt-controller;
26c66ec88fSEmmanuel Vadot		#interrupt-cells = <1>;
27c66ec88fSEmmanuel Vadot
28c66ec88fSEmmanuel Vadot		qca,ddr-wb-channel-interrupts = <2>, <3>;
29c66ec88fSEmmanuel Vadot		qca,ddr-wb-channels = <&ddr_ctrl 3>, <&ddr_ctrl 2>;
30c66ec88fSEmmanuel Vadot	};
31c66ec88fSEmmanuel Vadot
32c66ec88fSEmmanuel Vadot	ref: ref {
33c66ec88fSEmmanuel Vadot		compatible = "fixed-clock";
34c66ec88fSEmmanuel Vadot		#clock-cells = <0>;
35c66ec88fSEmmanuel Vadot	};
36c66ec88fSEmmanuel Vadot
37c66ec88fSEmmanuel Vadot	ahb {
38c66ec88fSEmmanuel Vadot		compatible = "simple-bus";
39c66ec88fSEmmanuel Vadot		ranges;
40c66ec88fSEmmanuel Vadot
41c66ec88fSEmmanuel Vadot		#address-cells = <1>;
42c66ec88fSEmmanuel Vadot		#size-cells = <1>;
43c66ec88fSEmmanuel Vadot
44c66ec88fSEmmanuel Vadot		interrupt-parent = <&cpuintc>;
45c66ec88fSEmmanuel Vadot
46c66ec88fSEmmanuel Vadot		apb {
47c66ec88fSEmmanuel Vadot			compatible = "simple-bus";
48c66ec88fSEmmanuel Vadot			ranges;
49c66ec88fSEmmanuel Vadot
50c66ec88fSEmmanuel Vadot			#address-cells = <1>;
51c66ec88fSEmmanuel Vadot			#size-cells = <1>;
52c66ec88fSEmmanuel Vadot
53c66ec88fSEmmanuel Vadot			interrupt-parent = <&miscintc>;
54c66ec88fSEmmanuel Vadot
55c66ec88fSEmmanuel Vadot			ddr_ctrl: memory-controller@18000000 {
56c66ec88fSEmmanuel Vadot				compatible = "qca,ar7240-ddr-controller";
57c66ec88fSEmmanuel Vadot				reg = <0x18000000 0x100>;
58c66ec88fSEmmanuel Vadot
59c66ec88fSEmmanuel Vadot				#qca,ddr-wb-channel-cells = <1>;
60c66ec88fSEmmanuel Vadot			};
61c66ec88fSEmmanuel Vadot
62c66ec88fSEmmanuel Vadot			uart: serial@18020000 {
63c66ec88fSEmmanuel Vadot				compatible = "qca,ar9330-uart";
64c66ec88fSEmmanuel Vadot				reg = <0x18020000 0x14>;
65c66ec88fSEmmanuel Vadot
66c66ec88fSEmmanuel Vadot				interrupts = <3>;
67c66ec88fSEmmanuel Vadot
68c66ec88fSEmmanuel Vadot				clocks = <&ref>;
69c66ec88fSEmmanuel Vadot				clock-names = "uart";
70c66ec88fSEmmanuel Vadot
71c66ec88fSEmmanuel Vadot				status = "disabled";
72c66ec88fSEmmanuel Vadot			};
73c66ec88fSEmmanuel Vadot
74c66ec88fSEmmanuel Vadot			gpio: gpio@18040000 {
75c66ec88fSEmmanuel Vadot				compatible = "qca,ar7100-gpio";
76c66ec88fSEmmanuel Vadot				reg = <0x18040000 0x34>;
77c66ec88fSEmmanuel Vadot				interrupts = <2>;
78c66ec88fSEmmanuel Vadot
79c66ec88fSEmmanuel Vadot				ngpios = <30>;
80c66ec88fSEmmanuel Vadot
81c66ec88fSEmmanuel Vadot				gpio-controller;
82c66ec88fSEmmanuel Vadot				#gpio-cells = <2>;
83c66ec88fSEmmanuel Vadot
84c66ec88fSEmmanuel Vadot				interrupt-controller;
85c66ec88fSEmmanuel Vadot				#interrupt-cells = <2>;
86c66ec88fSEmmanuel Vadot
87c66ec88fSEmmanuel Vadot				status = "disabled";
88c66ec88fSEmmanuel Vadot			};
89c66ec88fSEmmanuel Vadot
90c66ec88fSEmmanuel Vadot			pll: pll-controller@18050000 {
91c66ec88fSEmmanuel Vadot				compatible = "qca,ar9330-pll";
92c66ec88fSEmmanuel Vadot				reg = <0x18050000 0x100>;
93c66ec88fSEmmanuel Vadot
94c66ec88fSEmmanuel Vadot				clocks = <&ref>;
95c66ec88fSEmmanuel Vadot				clock-names = "ref";
96c66ec88fSEmmanuel Vadot
97c66ec88fSEmmanuel Vadot				#clock-cells = <1>;
98c66ec88fSEmmanuel Vadot			};
99c66ec88fSEmmanuel Vadot
100c66ec88fSEmmanuel Vadot			miscintc: interrupt-controller@18060010 {
101c66ec88fSEmmanuel Vadot				compatible = "qca,ar7240-misc-intc";
102c66ec88fSEmmanuel Vadot				reg = <0x18060010 0x8>;
103c66ec88fSEmmanuel Vadot
104c66ec88fSEmmanuel Vadot				interrupt-parent = <&cpuintc>;
105c66ec88fSEmmanuel Vadot				interrupts = <6>;
106c66ec88fSEmmanuel Vadot
107c66ec88fSEmmanuel Vadot				interrupt-controller;
108c66ec88fSEmmanuel Vadot				#interrupt-cells = <1>;
109c66ec88fSEmmanuel Vadot			};
110c66ec88fSEmmanuel Vadot
111c66ec88fSEmmanuel Vadot			rst: reset-controller@1806001c {
112c66ec88fSEmmanuel Vadot				compatible = "qca,ar7100-reset";
113c66ec88fSEmmanuel Vadot				reg = <0x1806001c 0x4>;
114c66ec88fSEmmanuel Vadot
115c66ec88fSEmmanuel Vadot				#reset-cells = <1>;
116c66ec88fSEmmanuel Vadot			};
117c66ec88fSEmmanuel Vadot		};
118c66ec88fSEmmanuel Vadot
119c66ec88fSEmmanuel Vadot		eth0: ethernet@19000000 {
120c66ec88fSEmmanuel Vadot			compatible = "qca,ar9330-eth";
121c66ec88fSEmmanuel Vadot			reg = <0x19000000 0x200>;
122c66ec88fSEmmanuel Vadot			interrupts = <4>;
123c66ec88fSEmmanuel Vadot
124c66ec88fSEmmanuel Vadot			resets = <&rst 9>, <&rst 22>;
125c66ec88fSEmmanuel Vadot			reset-names = "mac", "mdio";
126c66ec88fSEmmanuel Vadot			clocks = <&pll ATH79_CLK_AHB>, <&pll ATH79_CLK_AHB>;
127c66ec88fSEmmanuel Vadot			clock-names = "eth", "mdio";
128c66ec88fSEmmanuel Vadot
129c66ec88fSEmmanuel Vadot			phy-mode = "mii";
130c66ec88fSEmmanuel Vadot			phy-handle = <&phy_port4>;
131c66ec88fSEmmanuel Vadot
132c66ec88fSEmmanuel Vadot			status = "disabled";
133c66ec88fSEmmanuel Vadot		};
134c66ec88fSEmmanuel Vadot
135c66ec88fSEmmanuel Vadot		eth1: ethernet@1a000000 {
136c66ec88fSEmmanuel Vadot			compatible = "qca,ar9330-eth";
137c66ec88fSEmmanuel Vadot			reg = <0x1a000000 0x200>;
138c66ec88fSEmmanuel Vadot			interrupts = <5>;
139c66ec88fSEmmanuel Vadot			resets = <&rst 13>, <&rst 23>;
140c66ec88fSEmmanuel Vadot			reset-names = "mac", "mdio";
141c66ec88fSEmmanuel Vadot			clocks = <&pll ATH79_CLK_AHB>, <&pll ATH79_CLK_AHB>;
142c66ec88fSEmmanuel Vadot			clock-names = "eth", "mdio";
143c66ec88fSEmmanuel Vadot
144c66ec88fSEmmanuel Vadot			phy-mode = "gmii";
145c66ec88fSEmmanuel Vadot
146c66ec88fSEmmanuel Vadot			status = "disabled";
147c66ec88fSEmmanuel Vadot
148c66ec88fSEmmanuel Vadot			fixed-link {
149c66ec88fSEmmanuel Vadot				speed = <1000>;
150c66ec88fSEmmanuel Vadot				full-duplex;
151*5956d97fSEmmanuel Vadot				pause;
152c66ec88fSEmmanuel Vadot			};
153c66ec88fSEmmanuel Vadot
154c66ec88fSEmmanuel Vadot			mdio {
155c66ec88fSEmmanuel Vadot				#address-cells = <1>;
156c66ec88fSEmmanuel Vadot				#size-cells = <0>;
157c66ec88fSEmmanuel Vadot
158c66ec88fSEmmanuel Vadot				switch10: switch@10 {
159c66ec88fSEmmanuel Vadot					#address-cells = <1>;
160c66ec88fSEmmanuel Vadot					#size-cells = <0>;
161c66ec88fSEmmanuel Vadot
162c66ec88fSEmmanuel Vadot					compatible = "qca,ar9331-switch";
163c66ec88fSEmmanuel Vadot					reg = <0x10>;
164c66ec88fSEmmanuel Vadot					resets = <&rst 8>;
165c66ec88fSEmmanuel Vadot					reset-names = "switch";
166c66ec88fSEmmanuel Vadot
167c66ec88fSEmmanuel Vadot					interrupt-parent = <&miscintc>;
168c66ec88fSEmmanuel Vadot					interrupts = <12>;
169c66ec88fSEmmanuel Vadot
170c66ec88fSEmmanuel Vadot					interrupt-controller;
171c66ec88fSEmmanuel Vadot					#interrupt-cells = <1>;
172c66ec88fSEmmanuel Vadot
173c66ec88fSEmmanuel Vadot					ports {
174c66ec88fSEmmanuel Vadot						#address-cells = <1>;
175c66ec88fSEmmanuel Vadot						#size-cells = <0>;
176c66ec88fSEmmanuel Vadot
177c66ec88fSEmmanuel Vadot						switch_port0: port@0 {
178c66ec88fSEmmanuel Vadot							reg = <0x0>;
179c66ec88fSEmmanuel Vadot							ethernet = <&eth1>;
180c66ec88fSEmmanuel Vadot
181c66ec88fSEmmanuel Vadot							phy-mode = "gmii";
182c66ec88fSEmmanuel Vadot
183c66ec88fSEmmanuel Vadot							fixed-link {
184c66ec88fSEmmanuel Vadot								speed = <1000>;
185c66ec88fSEmmanuel Vadot								full-duplex;
186*5956d97fSEmmanuel Vadot								pause;
187c66ec88fSEmmanuel Vadot							};
188c66ec88fSEmmanuel Vadot						};
189c66ec88fSEmmanuel Vadot
190c66ec88fSEmmanuel Vadot						switch_port1: port@1 {
191c66ec88fSEmmanuel Vadot							reg = <0x1>;
192c66ec88fSEmmanuel Vadot							phy-handle = <&phy_port0>;
193c66ec88fSEmmanuel Vadot							phy-mode = "internal";
194c66ec88fSEmmanuel Vadot
195c66ec88fSEmmanuel Vadot							status = "disabled";
196c66ec88fSEmmanuel Vadot						};
197c66ec88fSEmmanuel Vadot
198c66ec88fSEmmanuel Vadot						switch_port2: port@2 {
199c66ec88fSEmmanuel Vadot							reg = <0x2>;
200c66ec88fSEmmanuel Vadot							phy-handle = <&phy_port1>;
201c66ec88fSEmmanuel Vadot							phy-mode = "internal";
202c66ec88fSEmmanuel Vadot
203c66ec88fSEmmanuel Vadot							status = "disabled";
204c66ec88fSEmmanuel Vadot						};
205c66ec88fSEmmanuel Vadot
206c66ec88fSEmmanuel Vadot						switch_port3: port@3 {
207c66ec88fSEmmanuel Vadot							reg = <0x3>;
208c66ec88fSEmmanuel Vadot							phy-handle = <&phy_port2>;
209c66ec88fSEmmanuel Vadot							phy-mode = "internal";
210c66ec88fSEmmanuel Vadot
211c66ec88fSEmmanuel Vadot							status = "disabled";
212c66ec88fSEmmanuel Vadot						};
213c66ec88fSEmmanuel Vadot
214c66ec88fSEmmanuel Vadot						switch_port4: port@4 {
215c66ec88fSEmmanuel Vadot							reg = <0x4>;
216c66ec88fSEmmanuel Vadot							phy-handle = <&phy_port3>;
217c66ec88fSEmmanuel Vadot							phy-mode = "internal";
218c66ec88fSEmmanuel Vadot
219c66ec88fSEmmanuel Vadot							status = "disabled";
220c66ec88fSEmmanuel Vadot						};
221c66ec88fSEmmanuel Vadot					};
222c66ec88fSEmmanuel Vadot
223c66ec88fSEmmanuel Vadot					mdio {
224c66ec88fSEmmanuel Vadot						#address-cells = <1>;
225c66ec88fSEmmanuel Vadot						#size-cells = <0>;
226c66ec88fSEmmanuel Vadot
227c66ec88fSEmmanuel Vadot						interrupt-parent = <&switch10>;
228c66ec88fSEmmanuel Vadot
229c66ec88fSEmmanuel Vadot						phy_port0: phy@0 {
230c66ec88fSEmmanuel Vadot							reg = <0x0>;
231c66ec88fSEmmanuel Vadot							interrupts = <0>;
232c66ec88fSEmmanuel Vadot							status = "disabled";
233c66ec88fSEmmanuel Vadot						};
234c66ec88fSEmmanuel Vadot
235c66ec88fSEmmanuel Vadot						phy_port1: phy@1 {
236c66ec88fSEmmanuel Vadot							reg = <0x1>;
237c66ec88fSEmmanuel Vadot							interrupts = <0>;
238c66ec88fSEmmanuel Vadot							status = "disabled";
239c66ec88fSEmmanuel Vadot						};
240c66ec88fSEmmanuel Vadot
241c66ec88fSEmmanuel Vadot						phy_port2: phy@2 {
242c66ec88fSEmmanuel Vadot							reg = <0x2>;
243c66ec88fSEmmanuel Vadot							interrupts = <0>;
244c66ec88fSEmmanuel Vadot							status = "disabled";
245c66ec88fSEmmanuel Vadot						};
246c66ec88fSEmmanuel Vadot
247c66ec88fSEmmanuel Vadot						phy_port3: phy@3 {
248c66ec88fSEmmanuel Vadot							reg = <0x3>;
249c66ec88fSEmmanuel Vadot							interrupts = <0>;
250c66ec88fSEmmanuel Vadot							status = "disabled";
251c66ec88fSEmmanuel Vadot						};
252c66ec88fSEmmanuel Vadot
253c66ec88fSEmmanuel Vadot						phy_port4: phy@4 {
254c66ec88fSEmmanuel Vadot							reg = <0x4>;
255c66ec88fSEmmanuel Vadot							interrupts = <0>;
256c66ec88fSEmmanuel Vadot							status = "disabled";
257c66ec88fSEmmanuel Vadot						};
258c66ec88fSEmmanuel Vadot					};
259c66ec88fSEmmanuel Vadot				};
260c66ec88fSEmmanuel Vadot			};
261c66ec88fSEmmanuel Vadot		};
262c66ec88fSEmmanuel Vadot
263c66ec88fSEmmanuel Vadot		usb: usb@1b000100 {
264c66ec88fSEmmanuel Vadot			compatible = "chipidea,usb2";
265c66ec88fSEmmanuel Vadot			reg = <0x1b000000 0x200>;
266c66ec88fSEmmanuel Vadot
267c66ec88fSEmmanuel Vadot			interrupts = <3>;
268c66ec88fSEmmanuel Vadot			resets = <&rst 5>;
269c66ec88fSEmmanuel Vadot
270c66ec88fSEmmanuel Vadot			phy-names = "usb-phy";
271c66ec88fSEmmanuel Vadot			phys = <&usb_phy>;
272c66ec88fSEmmanuel Vadot
273c66ec88fSEmmanuel Vadot			status = "disabled";
274c66ec88fSEmmanuel Vadot		};
275c66ec88fSEmmanuel Vadot
276c66ec88fSEmmanuel Vadot		spi: spi@1f000000 {
277c66ec88fSEmmanuel Vadot			compatible = "qca,ar7100-spi";
278c66ec88fSEmmanuel Vadot			reg = <0x1f000000 0x10>;
279c66ec88fSEmmanuel Vadot
280c66ec88fSEmmanuel Vadot			clocks = <&pll ATH79_CLK_AHB>;
281c66ec88fSEmmanuel Vadot			clock-names = "ahb";
282c66ec88fSEmmanuel Vadot
283c66ec88fSEmmanuel Vadot			#address-cells = <1>;
284c66ec88fSEmmanuel Vadot			#size-cells = <0>;
285c66ec88fSEmmanuel Vadot
286c66ec88fSEmmanuel Vadot			status = "disabled";
287c66ec88fSEmmanuel Vadot		};
288c66ec88fSEmmanuel Vadot	};
289c66ec88fSEmmanuel Vadot
290c66ec88fSEmmanuel Vadot	usb_phy: usb-phy {
291c66ec88fSEmmanuel Vadot		compatible = "qca,ar7100-usb-phy";
292c66ec88fSEmmanuel Vadot
293c66ec88fSEmmanuel Vadot		reset-names = "phy", "suspend-override";
294c66ec88fSEmmanuel Vadot		resets = <&rst 4>, <&rst 3>;
295c66ec88fSEmmanuel Vadot
296c66ec88fSEmmanuel Vadot		#phy-cells = <0>;
297c66ec88fSEmmanuel Vadot
298c66ec88fSEmmanuel Vadot		status = "disabled";
299c66ec88fSEmmanuel Vadot	};
300c66ec88fSEmmanuel Vadot};
301