xref: /openbmc/linux/arch/powerpc/boot/dts/yosemite.dts (revision fd0ed740)
1fd0ed740SJosh Boyer/*
2fd0ed740SJosh Boyer * Device Tree Source for AMCC Yosemite
3fd0ed740SJosh Boyer *
4fd0ed740SJosh Boyer * Copyright 2008 IBM Corp.
5fd0ed740SJosh Boyer * Josh Boyer <jwboyer@linux.vnet.ibm.com>
6fd0ed740SJosh Boyer *
7fd0ed740SJosh Boyer * This file is licensed under the terms of the GNU General Public
8fd0ed740SJosh Boyer * License version 2.  This program is licensed "as is" without
9fd0ed740SJosh Boyer * any warranty of any kind, whether express or implied.
10fd0ed740SJosh Boyer */
11fd0ed740SJosh Boyer
12fd0ed740SJosh Boyer/ {
13fd0ed740SJosh Boyer	#address-cells = <2>;
14fd0ed740SJosh Boyer	#size-cells = <1>;
15fd0ed740SJosh Boyer	model = "amcc,yosemite";
16fd0ed740SJosh Boyer	compatible = "amcc,yosemite","amcc,bamboo";
17fd0ed740SJosh Boyer	dcr-parent = <&/cpus/cpu@0>;
18fd0ed740SJosh Boyer
19fd0ed740SJosh Boyer	aliases {
20fd0ed740SJosh Boyer		ethernet0 = &EMAC0;
21fd0ed740SJosh Boyer		ethernet1 = &EMAC1;
22fd0ed740SJosh Boyer		serial0 = &UART0;
23fd0ed740SJosh Boyer		serial1 = &UART1;
24fd0ed740SJosh Boyer		serial2 = &UART2;
25fd0ed740SJosh Boyer		serial3 = &UART3;
26fd0ed740SJosh Boyer	};
27fd0ed740SJosh Boyer
28fd0ed740SJosh Boyer	cpus {
29fd0ed740SJosh Boyer		#address-cells = <1>;
30fd0ed740SJosh Boyer		#size-cells = <0>;
31fd0ed740SJosh Boyer
32fd0ed740SJosh Boyer		cpu@0 {
33fd0ed740SJosh Boyer			device_type = "cpu";
34fd0ed740SJosh Boyer			model = "PowerPC,440EP";
35fd0ed740SJosh Boyer			reg = <0>;
36fd0ed740SJosh Boyer			clock-frequency = <0>; /* Filled in by zImage */
37fd0ed740SJosh Boyer			timebase-frequency = <0>; /* Filled in by zImage */
38fd0ed740SJosh Boyer			i-cache-line-size = <20>;
39fd0ed740SJosh Boyer			d-cache-line-size = <20>;
40fd0ed740SJosh Boyer			i-cache-size = <8000>;
41fd0ed740SJosh Boyer			d-cache-size = <8000>;
42fd0ed740SJosh Boyer			dcr-controller;
43fd0ed740SJosh Boyer			dcr-access-method = "native";
44fd0ed740SJosh Boyer		};
45fd0ed740SJosh Boyer	};
46fd0ed740SJosh Boyer
47fd0ed740SJosh Boyer	memory {
48fd0ed740SJosh Boyer		device_type = "memory";
49fd0ed740SJosh Boyer		reg = <0 0 0>; /* Filled in by zImage */
50fd0ed740SJosh Boyer	};
51fd0ed740SJosh Boyer
52fd0ed740SJosh Boyer	UIC0: interrupt-controller0 {
53fd0ed740SJosh Boyer		compatible = "ibm,uic-440ep","ibm,uic";
54fd0ed740SJosh Boyer		interrupt-controller;
55fd0ed740SJosh Boyer		cell-index = <0>;
56fd0ed740SJosh Boyer		dcr-reg = <0c0 009>;
57fd0ed740SJosh Boyer		#address-cells = <0>;
58fd0ed740SJosh Boyer		#size-cells = <0>;
59fd0ed740SJosh Boyer		#interrupt-cells = <2>;
60fd0ed740SJosh Boyer	};
61fd0ed740SJosh Boyer
62fd0ed740SJosh Boyer	UIC1: interrupt-controller1 {
63fd0ed740SJosh Boyer		compatible = "ibm,uic-440ep","ibm,uic";
64fd0ed740SJosh Boyer		interrupt-controller;
65fd0ed740SJosh Boyer		cell-index = <1>;
66fd0ed740SJosh Boyer		dcr-reg = <0d0 009>;
67fd0ed740SJosh Boyer		#address-cells = <0>;
68fd0ed740SJosh Boyer		#size-cells = <0>;
69fd0ed740SJosh Boyer		#interrupt-cells = <2>;
70fd0ed740SJosh Boyer		interrupts = <1e 4 1f 4>; /* cascade */
71fd0ed740SJosh Boyer		interrupt-parent = <&UIC0>;
72fd0ed740SJosh Boyer	};
73fd0ed740SJosh Boyer
74fd0ed740SJosh Boyer	SDR0: sdr {
75fd0ed740SJosh Boyer		compatible = "ibm,sdr-440ep";
76fd0ed740SJosh Boyer		dcr-reg = <00e 002>;
77fd0ed740SJosh Boyer	};
78fd0ed740SJosh Boyer
79fd0ed740SJosh Boyer	CPR0: cpr {
80fd0ed740SJosh Boyer		compatible = "ibm,cpr-440ep";
81fd0ed740SJosh Boyer		dcr-reg = <00c 002>;
82fd0ed740SJosh Boyer	};
83fd0ed740SJosh Boyer
84fd0ed740SJosh Boyer	plb {
85fd0ed740SJosh Boyer		compatible = "ibm,plb-440ep", "ibm,plb-440gp", "ibm,plb4";
86fd0ed740SJosh Boyer		#address-cells = <2>;
87fd0ed740SJosh Boyer		#size-cells = <1>;
88fd0ed740SJosh Boyer		ranges;
89fd0ed740SJosh Boyer		clock-frequency = <0>; /* Filled in by zImage */
90fd0ed740SJosh Boyer
91fd0ed740SJosh Boyer		SDRAM0: sdram {
92fd0ed740SJosh Boyer			compatible = "ibm,sdram-440ep", "ibm,sdram-405gp";
93fd0ed740SJosh Boyer			dcr-reg = <010 2>;
94fd0ed740SJosh Boyer		};
95fd0ed740SJosh Boyer
96fd0ed740SJosh Boyer		DMA0: dma {
97fd0ed740SJosh Boyer			compatible = "ibm,dma-440ep", "ibm,dma-440gp";
98fd0ed740SJosh Boyer			dcr-reg = <100 027>;
99fd0ed740SJosh Boyer		};
100fd0ed740SJosh Boyer
101fd0ed740SJosh Boyer		MAL0: mcmal {
102fd0ed740SJosh Boyer			compatible = "ibm,mcmal-440ep", "ibm,mcmal-440gp", "ibm,mcmal";
103fd0ed740SJosh Boyer			dcr-reg = <180 62>;
104fd0ed740SJosh Boyer			num-tx-chans = <4>;
105fd0ed740SJosh Boyer			num-rx-chans = <2>;
106fd0ed740SJosh Boyer			interrupt-parent = <&MAL0>;
107fd0ed740SJosh Boyer			interrupts = <0 1 2 3 4>;
108fd0ed740SJosh Boyer			#interrupt-cells = <1>;
109fd0ed740SJosh Boyer			#address-cells = <0>;
110fd0ed740SJosh Boyer			#size-cells = <0>;
111fd0ed740SJosh Boyer			interrupt-map = </*TXEOB*/ 0 &UIC0 a 4
112fd0ed740SJosh Boyer					/*RXEOB*/ 1 &UIC0 b 4
113fd0ed740SJosh Boyer					/*SERR*/  2 &UIC1 0 4
114fd0ed740SJosh Boyer					/*TXDE*/  3 &UIC1 1 4
115fd0ed740SJosh Boyer					/*RXDE*/  4 &UIC1 2 4>;
116fd0ed740SJosh Boyer		};
117fd0ed740SJosh Boyer
118fd0ed740SJosh Boyer		POB0: opb {
119fd0ed740SJosh Boyer			compatible = "ibm,opb-440ep", "ibm,opb-440gp", "ibm,opb";
120fd0ed740SJosh Boyer			#address-cells = <1>;
121fd0ed740SJosh Boyer			#size-cells = <1>;
122fd0ed740SJosh Boyer			/* Bamboo is oddball in the 44x world and doesn't use the ERPN
123fd0ed740SJosh Boyer			 * bits.
124fd0ed740SJosh Boyer			 */
125fd0ed740SJosh Boyer			ranges = <00000000 0 00000000 80000000
126fd0ed740SJosh Boyer			          80000000 0 80000000 80000000>;
127fd0ed740SJosh Boyer			interrupt-parent = <&UIC1>;
128fd0ed740SJosh Boyer			interrupts = <7 4>;
129fd0ed740SJosh Boyer			clock-frequency = <0>; /* Filled in by zImage */
130fd0ed740SJosh Boyer
131fd0ed740SJosh Boyer			EBC0: ebc {
132fd0ed740SJosh Boyer				compatible = "ibm,ebc-440ep", "ibm,ebc-440gp", "ibm,ebc";
133fd0ed740SJosh Boyer				dcr-reg = <012 2>;
134fd0ed740SJosh Boyer				#address-cells = <2>;
135fd0ed740SJosh Boyer				#size-cells = <1>;
136fd0ed740SJosh Boyer				clock-frequency = <0>; /* Filled in by zImage */
137fd0ed740SJosh Boyer				interrupts = <5 1>;
138fd0ed740SJosh Boyer				interrupt-parent = <&UIC1>;
139fd0ed740SJosh Boyer			};
140fd0ed740SJosh Boyer
141fd0ed740SJosh Boyer			UART0: serial@ef600300 {
142fd0ed740SJosh Boyer				device_type = "serial";
143fd0ed740SJosh Boyer				compatible = "ns16550";
144fd0ed740SJosh Boyer				reg = <ef600300 8>;
145fd0ed740SJosh Boyer				virtual-reg = <ef600300>;
146fd0ed740SJosh Boyer				clock-frequency = <0>; /* Filled in by zImage */
147fd0ed740SJosh Boyer				current-speed = <1c200>;
148fd0ed740SJosh Boyer				interrupt-parent = <&UIC0>;
149fd0ed740SJosh Boyer				interrupts = <0 4>;
150fd0ed740SJosh Boyer			};
151fd0ed740SJosh Boyer
152fd0ed740SJosh Boyer			UART1: serial@ef600400 {
153fd0ed740SJosh Boyer				device_type = "serial";
154fd0ed740SJosh Boyer				compatible = "ns16550";
155fd0ed740SJosh Boyer				reg = <ef600400 8>;
156fd0ed740SJosh Boyer				virtual-reg = <ef600400>;
157fd0ed740SJosh Boyer				clock-frequency = <0>;
158fd0ed740SJosh Boyer				current-speed = <0>;
159fd0ed740SJosh Boyer				interrupt-parent = <&UIC0>;
160fd0ed740SJosh Boyer				interrupts = <1 4>;
161fd0ed740SJosh Boyer			};
162fd0ed740SJosh Boyer
163fd0ed740SJosh Boyer			UART2: serial@ef600500 {
164fd0ed740SJosh Boyer				device_type = "serial";
165fd0ed740SJosh Boyer				compatible = "ns16550";
166fd0ed740SJosh Boyer				reg = <ef600500 8>;
167fd0ed740SJosh Boyer				virtual-reg = <ef600500>;
168fd0ed740SJosh Boyer				clock-frequency = <0>;
169fd0ed740SJosh Boyer				current-speed = <0>;
170fd0ed740SJosh Boyer				interrupt-parent = <&UIC0>;
171fd0ed740SJosh Boyer				interrupts = <3 4>;
172fd0ed740SJosh Boyer				status = "disabled";
173fd0ed740SJosh Boyer			};
174fd0ed740SJosh Boyer
175fd0ed740SJosh Boyer			UART3: serial@ef600600 {
176fd0ed740SJosh Boyer				device_type = "serial";
177fd0ed740SJosh Boyer				compatible = "ns16550";
178fd0ed740SJosh Boyer				reg = <ef600600 8>;
179fd0ed740SJosh Boyer				virtual-reg = <ef600600>;
180fd0ed740SJosh Boyer				clock-frequency = <0>;
181fd0ed740SJosh Boyer				current-speed = <0>;
182fd0ed740SJosh Boyer				interrupt-parent = <&UIC0>;
183fd0ed740SJosh Boyer				interrupts = <4 4>;
184fd0ed740SJosh Boyer				status = "disabled";
185fd0ed740SJosh Boyer			};
186fd0ed740SJosh Boyer
187fd0ed740SJosh Boyer			IIC0: i2c@ef600700 {
188fd0ed740SJosh Boyer				compatible = "ibm,iic-440ep", "ibm,iic-440gp", "ibm,iic";
189fd0ed740SJosh Boyer				reg = <ef600700 14>;
190fd0ed740SJosh Boyer				interrupt-parent = <&UIC0>;
191fd0ed740SJosh Boyer				interrupts = <2 4>;
192fd0ed740SJosh Boyer			};
193fd0ed740SJosh Boyer
194fd0ed740SJosh Boyer			IIC1: i2c@ef600800 {
195fd0ed740SJosh Boyer				compatible = "ibm,iic-440ep", "ibm,iic-440gp", "ibm,iic";
196fd0ed740SJosh Boyer				reg = <ef600800 14>;
197fd0ed740SJosh Boyer				interrupt-parent = <&UIC0>;
198fd0ed740SJosh Boyer				interrupts = <7 4>;
199fd0ed740SJosh Boyer			};
200fd0ed740SJosh Boyer
201fd0ed740SJosh Boyer			spi@ef600900 {
202fd0ed740SJosh Boyer				compatible = "amcc,spi-440ep";
203fd0ed740SJosh Boyer				reg = <ef600900 6>;
204fd0ed740SJosh Boyer				interrupts = <8 4>;
205fd0ed740SJosh Boyer				interrupt-parent = <&UIC0>;
206fd0ed740SJosh Boyer			};
207fd0ed740SJosh Boyer
208fd0ed740SJosh Boyer			ZMII0: emac-zmii@ef600d00 {
209fd0ed740SJosh Boyer				compatible = "ibm,zmii-440ep", "ibm,zmii-440gp", "ibm,zmii";
210fd0ed740SJosh Boyer				reg = <ef600d00 c>;
211fd0ed740SJosh Boyer			};
212fd0ed740SJosh Boyer
213fd0ed740SJosh Boyer			EMAC0: ethernet@ef600e00 {
214fd0ed740SJosh Boyer				device_type = "network";
215fd0ed740SJosh Boyer				compatible = "ibm,emac-440ep", "ibm,emac-440gp", "ibm,emac";
216fd0ed740SJosh Boyer				interrupt-parent = <&UIC1>;
217fd0ed740SJosh Boyer				interrupts = <1c 4 1d 4>;
218fd0ed740SJosh Boyer				reg = <ef600e00 70>;
219fd0ed740SJosh Boyer				local-mac-address = [000000000000];
220fd0ed740SJosh Boyer				mal-device = <&MAL0>;
221fd0ed740SJosh Boyer				mal-tx-channel = <0 1>;
222fd0ed740SJosh Boyer				mal-rx-channel = <0>;
223fd0ed740SJosh Boyer				cell-index = <0>;
224fd0ed740SJosh Boyer				max-frame-size = <5dc>;
225fd0ed740SJosh Boyer				rx-fifo-size = <1000>;
226fd0ed740SJosh Boyer				tx-fifo-size = <800>;
227fd0ed740SJosh Boyer				phy-mode = "rmii";
228fd0ed740SJosh Boyer				phy-map = <00000000>;
229fd0ed740SJosh Boyer				zmii-device = <&ZMII0>;
230fd0ed740SJosh Boyer				zmii-channel = <0>;
231fd0ed740SJosh Boyer			};
232fd0ed740SJosh Boyer
233fd0ed740SJosh Boyer			EMAC1: ethernet@ef600f00 {
234fd0ed740SJosh Boyer				device_type = "network";
235fd0ed740SJosh Boyer				compatible = "ibm,emac-440ep", "ibm,emac-440gp", "ibm,emac";
236fd0ed740SJosh Boyer				interrupt-parent = <&UIC1>;
237fd0ed740SJosh Boyer				interrupts = <1e 4 1f 4>;
238fd0ed740SJosh Boyer				reg = <ef600f00 70>;
239fd0ed740SJosh Boyer				local-mac-address = [000000000000];
240fd0ed740SJosh Boyer				mal-device = <&MAL0>;
241fd0ed740SJosh Boyer				mal-tx-channel = <2 3>;
242fd0ed740SJosh Boyer				mal-rx-channel = <1>;
243fd0ed740SJosh Boyer				cell-index = <1>;
244fd0ed740SJosh Boyer				max-frame-size = <5dc>;
245fd0ed740SJosh Boyer				rx-fifo-size = <1000>;
246fd0ed740SJosh Boyer				tx-fifo-size = <800>;
247fd0ed740SJosh Boyer				phy-mode = "rmii";
248fd0ed740SJosh Boyer				phy-map = <00000000>;
249fd0ed740SJosh Boyer				zmii-device = <&ZMII0>;
250fd0ed740SJosh Boyer				zmii-channel = <1>;
251fd0ed740SJosh Boyer			};
252fd0ed740SJosh Boyer
253fd0ed740SJosh Boyer			usb@ef601000 {
254fd0ed740SJosh Boyer				compatible = "ohci-be";
255fd0ed740SJosh Boyer				reg = <ef601000 80>;
256fd0ed740SJosh Boyer				interrupts = <8 4 9 4>;
257fd0ed740SJosh Boyer				interrupt-parent = < &UIC1 >;
258fd0ed740SJosh Boyer			};
259fd0ed740SJosh Boyer		};
260fd0ed740SJosh Boyer
261fd0ed740SJosh Boyer		PCI0: pci@ec000000 {
262fd0ed740SJosh Boyer			device_type = "pci";
263fd0ed740SJosh Boyer			#interrupt-cells = <1>;
264fd0ed740SJosh Boyer			#size-cells = <2>;
265fd0ed740SJosh Boyer			#address-cells = <3>;
266fd0ed740SJosh Boyer			compatible = "ibm,plb440ep-pci", "ibm,plb-pci";
267fd0ed740SJosh Boyer			primary;
268fd0ed740SJosh Boyer			reg = <0 eec00000 8	/* Config space access */
269fd0ed740SJosh Boyer			       0 eed00000 4	/* IACK */
270fd0ed740SJosh Boyer			       0 eed00000 4	/* Special cycle */
271fd0ed740SJosh Boyer			       0 ef400000 40>;	/* Internal registers */
272fd0ed740SJosh Boyer
273fd0ed740SJosh Boyer			/* Outbound ranges, one memory and one IO,
274fd0ed740SJosh Boyer			 * later cannot be changed. Chip supports a second
275fd0ed740SJosh Boyer			 * IO range but we don't use it for now
276fd0ed740SJosh Boyer			 */
277fd0ed740SJosh Boyer			ranges = <02000000 0 a0000000 0 a0000000 0 20000000
278fd0ed740SJosh Boyer				  01000000 0 00000000 0 e8000000 0 00010000>;
279fd0ed740SJosh Boyer
280fd0ed740SJosh Boyer			/* Inbound 2GB range starting at 0 */
281fd0ed740SJosh Boyer			dma-ranges = <42000000 0 0 0 0 0 80000000>;
282fd0ed740SJosh Boyer
283fd0ed740SJosh Boyer			/* Bamboo has all 4 IRQ pins tied together per slot */
284fd0ed740SJosh Boyer			interrupt-map-mask = <f800 0 0 0>;
285fd0ed740SJosh Boyer			interrupt-map = <
286fd0ed740SJosh Boyer				/* IDSEL 1 */
287fd0ed740SJosh Boyer				0800 0 0 0 &UIC0 1c 8
288fd0ed740SJosh Boyer
289fd0ed740SJosh Boyer				/* IDSEL 2 */
290fd0ed740SJosh Boyer				1000 0 0 0 &UIC0 1b 8
291fd0ed740SJosh Boyer
292fd0ed740SJosh Boyer				/* IDSEL 3 */
293fd0ed740SJosh Boyer				1800 0 0 0 &UIC0 1a 8
294fd0ed740SJosh Boyer
295fd0ed740SJosh Boyer				/* IDSEL 4 */
296fd0ed740SJosh Boyer				2000 0 0 0 &UIC0 19 8
297fd0ed740SJosh Boyer			>;
298fd0ed740SJosh Boyer		};
299fd0ed740SJosh Boyer	};
300fd0ed740SJosh Boyer
301fd0ed740SJosh Boyer	chosen {
302fd0ed740SJosh Boyer		linux,stdout-path = "/plb/opb/serial@ef600300";
303fd0ed740SJosh Boyer	};
304fd0ed740SJosh Boyer};
305