xref: /openbmc/linux/arch/powerpc/boot/dts/sequoia.dts (revision 72fda114)
1/*
2 * Device Tree Source for AMCC Sequoia
3 *
4 * Based on Bamboo code by Josh Boyer <jwboyer@linux.vnet.ibm.com>
5 * Copyright (c) 2006, 2007 IBM Corp.
6 *
7 * FIXME: Draft only!
8 *
9 * This file is licensed under the terms of the GNU General Public
10 * License version 2.  This program is licensed "as is" without
11 * any warranty of any kind, whether express or implied.
12 *
13 */
14
15/ {
16	#address-cells = <2>;
17	#size-cells = <1>;
18	model = "amcc,sequoia";
19	compatible = "amcc,sequoia";
20	dcr-parent = <&/cpus/cpu@0>;
21
22	cpus {
23		#address-cells = <1>;
24		#size-cells = <0>;
25
26		cpu@0 {
27			device_type = "cpu";
28			model = "PowerPC,440EPx";
29			reg = <0>;
30			clock-frequency = <0>; /* Filled in by zImage */
31			timebase-frequency = <0>; /* Filled in by zImage */
32			i-cache-line-size = <20>;
33			d-cache-line-size = <20>;
34			i-cache-size = <8000>;
35			d-cache-size = <8000>;
36			dcr-controller;
37			dcr-access-method = "native";
38		};
39	};
40
41	memory {
42		device_type = "memory";
43		reg = <0 0 0>; /* Filled in by zImage */
44	};
45
46	UIC0: interrupt-controller0 {
47		compatible = "ibm,uic-440epx","ibm,uic";
48		interrupt-controller;
49		cell-index = <0>;
50		dcr-reg = <0c0 009>;
51		#address-cells = <0>;
52		#size-cells = <0>;
53		#interrupt-cells = <2>;
54	};
55
56	UIC1: interrupt-controller1 {
57		compatible = "ibm,uic-440epx","ibm,uic";
58		interrupt-controller;
59		cell-index = <1>;
60		dcr-reg = <0d0 009>;
61		#address-cells = <0>;
62		#size-cells = <0>;
63		#interrupt-cells = <2>;
64		interrupts = <1e 4 1f 4>; /* cascade */
65		interrupt-parent = <&UIC0>;
66	};
67
68	UIC2: interrupt-controller2 {
69		compatible = "ibm,uic-440epx","ibm,uic";
70		interrupt-controller;
71		cell-index = <2>;
72		dcr-reg = <0e0 009>;
73		#address-cells = <0>;
74		#size-cells = <0>;
75		#interrupt-cells = <2>;
76		interrupts = <1c 4 1d 4>; /* cascade */
77		interrupt-parent = <&UIC0>;
78	};
79
80	SDR0: sdr {
81		compatible = "ibm,sdr-440epx", "ibm,sdr-440ep";
82		dcr-reg = <00e 002>;
83	};
84
85	CPR0: cpr {
86		compatible = "ibm,cpr-440epx", "ibm,cpr-440ep";
87		dcr-reg = <00c 002>;
88	};
89
90	plb {
91		compatible = "ibm,plb-440epx", "ibm,plb4";
92		#address-cells = <2>;
93		#size-cells = <1>;
94		ranges;
95		clock-frequency = <0>; /* Filled in by zImage */
96
97		SDRAM0: sdram {
98			compatible = "ibm,sdram-440epx", "ibm,sdram-44x-ddr2denali";
99			dcr-reg = <010 2>;
100		};
101
102		DMA0: dma {
103			compatible = "ibm,dma-440epx", "ibm,dma-4xx";
104			dcr-reg = <100 027>;
105		};
106
107		MAL0: mcmal {
108			compatible = "ibm,mcmal-440epx", "ibm,mcmal2";
109			dcr-reg = <180 62>;
110			num-tx-chans = <2>;
111			num-rx-chans = <2>;
112			interrupt-parent = <&MAL0>;
113			interrupts = <0 1 2 3 4>;
114			#interrupt-cells = <1>;
115			#address-cells = <0>;
116			#size-cells = <0>;
117			interrupt-map = </*TXEOB*/ 0 &UIC0 a 4
118					/*RXEOB*/ 1 &UIC0 b 4
119					/*SERR*/  2 &UIC1 0 4
120					/*TXDE*/  3 &UIC1 1 4
121					/*RXDE*/  4 &UIC1 2 4>;
122			interrupt-map-mask = <ffffffff>;
123		};
124
125		USB1: usb@e0000400 {
126			compatible = "ohci-be";
127			reg = <0 e0000400 60>;
128			interrupt-parent = <&UIC0>;
129			interrupts = <15 8>;
130		};
131
132		POB0: opb {
133		  	compatible = "ibm,opb-440epx", "ibm,opb";
134			#address-cells = <1>;
135			#size-cells = <1>;
136		  	ranges = <00000000 1 00000000 80000000
137			          80000000 1 80000000 80000000>;
138		  	interrupt-parent = <&UIC1>;
139		  	interrupts = <7 4>;
140		  	clock-frequency = <0>; /* Filled in by zImage */
141
142			EBC0: ebc {
143				compatible = "ibm,ebc-440epx", "ibm,ebc";
144				dcr-reg = <012 2>;
145				#address-cells = <2>;
146				#size-cells = <1>;
147				clock-frequency = <0>; /* Filled in by zImage */
148				interrupts = <5 1>;
149				interrupt-parent = <&UIC1>;
150
151				nor_flash@0,0 {
152					compatible = "amd,s29gl256n", "cfi-flash";
153					bank-width = <2>;
154					reg = <0 000000 4000000>;
155					#address-cells = <1>;
156					#size-cells = <1>;
157					partition@0 {
158						label = "Kernel";
159						reg = <0 180000>;
160					};
161					partition@180000 {
162						label = "ramdisk";
163						reg = <180000 200000>;
164					};
165					partition@380000 {
166						label = "file system";
167						reg = <380000 3aa0000>;
168					};
169					partition@3e20000 {
170						label = "kozio";
171						reg = <3e20000 140000>;
172					};
173					partition@3f60000 {
174						label = "env";
175						reg = <3f60000 40000>;
176					};
177					partition@3fa0000 {
178						label = "u-boot";
179						reg = <3fa0000 60000>;
180					};
181				};
182
183			};
184
185			UART0: serial@ef600300 {
186		   		device_type = "serial";
187		   		compatible = "ns16550";
188		   		reg = <ef600300 8>;
189		   		virtual-reg = <ef600300>;
190		   		clock-frequency = <0>; /* Filled in by zImage */
191		   		current-speed = <1c200>;
192		   		interrupt-parent = <&UIC0>;
193		   		interrupts = <0 4>;
194	   		};
195
196			UART1: serial@ef600400 {
197		   		device_type = "serial";
198		   		compatible = "ns16550";
199		   		reg = <ef600400 8>;
200		   		virtual-reg = <ef600400>;
201		   		clock-frequency = <0>;
202		   		current-speed = <0>;
203		   		interrupt-parent = <&UIC0>;
204		   		interrupts = <1 4>;
205	   		};
206
207			UART2: serial@ef600500 {
208		   		device_type = "serial";
209		   		compatible = "ns16550";
210		   		reg = <ef600500 8>;
211		   		virtual-reg = <ef600500>;
212		   		clock-frequency = <0>;
213		   		current-speed = <0>;
214		   		interrupt-parent = <&UIC1>;
215		   		interrupts = <3 4>;
216	   		};
217
218			UART3: serial@ef600600 {
219		   		device_type = "serial";
220		   		compatible = "ns16550";
221		   		reg = <ef600600 8>;
222		   		virtual-reg = <ef600600>;
223		   		clock-frequency = <0>;
224		   		current-speed = <0>;
225		   		interrupt-parent = <&UIC1>;
226		   		interrupts = <4 4>;
227	   		};
228
229			IIC0: i2c@ef600700 {
230				device_type = "i2c";
231				compatible = "ibm,iic-440epx", "ibm,iic";
232				reg = <ef600700 14>;
233				interrupt-parent = <&UIC0>;
234				interrupts = <2 4>;
235			};
236
237			IIC1: i2c@ef600800 {
238				device_type = "i2c";
239				compatible = "ibm,iic-440epx", "ibm,iic";
240				reg = <ef600800 14>;
241				interrupt-parent = <&UIC0>;
242				interrupts = <7 4>;
243			};
244
245			ZMII0: emac-zmii@ef600d00 {
246				device_type = "zmii-interface";
247				compatible = "ibm,zmii-440epx", "ibm,zmii";
248				reg = <ef600d00 c>;
249			};
250
251			RGMII0: emac-rgmii@ef601000 {
252				device_type = "rgmii-interface";
253				compatible = "ibm,rgmii-440epx", "ibm,rgmii";
254				reg = <ef601000 8>;
255				has-mdio;
256			};
257
258			EMAC0: ethernet@ef600e00 {
259				linux,network-index = <0>;
260				device_type = "network";
261				compatible = "ibm,emac-440epx", "ibm,emac4";
262				interrupt-parent = <&EMAC0>;
263				interrupts = <0 1>;
264				#interrupt-cells = <1>;
265				#address-cells = <0>;
266				#size-cells = <0>;
267				interrupt-map = </*Status*/ 0 &UIC0 18 4
268						/*Wake*/  1 &UIC1 1d 4>;
269				reg = <ef600e00 70>;
270				local-mac-address = [000000000000];
271				mal-device = <&MAL0>;
272				mal-tx-channel = <0>;
273				mal-rx-channel = <0>;
274				cell-index = <0>;
275				max-frame-size = <5dc>;
276				rx-fifo-size = <1000>;
277				tx-fifo-size = <800>;
278				phy-mode = "rgmii";
279				phy-map = <00000000>;
280				zmii-device = <&ZMII0>;
281				zmii-channel = <0>;
282				rgmii-device = <&RGMII0>;
283				rgmii-channel = <0>;
284				has-inverted-stacr-oc;
285				has-new-stacr-staopc;
286			};
287
288			EMAC1: ethernet@ef600f00 {
289				linux,network-index = <1>;
290				device_type = "network";
291				compatible = "ibm,emac-440epx", "ibm,emac4";
292				interrupt-parent = <&EMAC1>;
293				interrupts = <0 1>;
294				#interrupt-cells = <1>;
295				#address-cells = <0>;
296				#size-cells = <0>;
297				interrupt-map = </*Status*/ 0 &UIC0 19 4
298						/*Wake*/  1 &UIC1 1f 4>;
299				reg = <ef600f00 70>;
300				local-mac-address = [000000000000];
301				mal-device = <&MAL0>;
302				mal-tx-channel = <1>;
303				mal-rx-channel = <1>;
304				cell-index = <1>;
305				max-frame-size = <5dc>;
306				rx-fifo-size = <1000>;
307				tx-fifo-size = <800>;
308				phy-mode = "rgmii";
309				phy-map = <00000000>;
310				zmii-device = <&ZMII0>;
311				zmii-channel = <1>;
312				rgmii-device = <&RGMII0>;
313				rgmii-channel = <1>;
314				has-inverted-stacr-oc;
315				has-new-stacr-staopc;
316			};
317		};
318
319		PCI0: pci@1ec000000 {
320			device_type = "pci";
321			#interrupt-cells = <1>;
322			#size-cells = <2>;
323			#address-cells = <3>;
324			compatible = "ibm,plb440epx-pci", "ibm,plb-pci";
325			primary;
326			reg = <1 eec00000 8	/* Config space access */
327			       1 eed00000 4	/* IACK */
328			       1 eed00000 4	/* Special cycle */
329			       1 ef400000 40>;	/* Internal registers */
330
331			/* Outbound ranges, one memory and one IO,
332			 * later cannot be changed. Chip supports a second
333			 * IO range but we don't use it for now
334			 */
335			ranges = <02000000 0 80000000 1 80000000 0 10000000
336				01000000 0 00000000 1 e8000000 0 00100000>;
337
338			/* Inbound 2GB range starting at 0 */
339			dma-ranges = <42000000 0 0 0 0 0 80000000>;
340
341			/* All PCI interrupts are routed to IRQ 67 */
342			interrupt-map-mask = <0000 0 0 0>;
343			interrupt-map = < 0000 0 0 0 &UIC2 3 8 >;
344		};
345	};
346
347	chosen {
348		linux,stdout-path = "/plb/opb/serial@ef600300";
349		bootargs = "console=ttyS0,115200";
350	};
351};
352