1142b58eeSJosh Boyer/*
2142b58eeSJosh Boyer * Device Tree Source for AMCC Bamboo
3142b58eeSJosh Boyer *
4142b58eeSJosh Boyer * Copyright (c) 2006, 2007 IBM Corp.
5142b58eeSJosh Boyer * Josh Boyer <jwboyer@linux.vnet.ibm.com>
6142b58eeSJosh Boyer *
7142b58eeSJosh Boyer * FIXME: Draft only!
8142b58eeSJosh Boyer *
9142b58eeSJosh Boyer * This file is licensed under the terms of the GNU General Public
10142b58eeSJosh Boyer * License version 2.  This program is licensed "as is" without
11142b58eeSJosh Boyer * any warranty of any kind, whether express or implied.
12142b58eeSJosh Boyer */
13142b58eeSJosh Boyer
14142b58eeSJosh Boyer/ {
15142b58eeSJosh Boyer	#address-cells = <2>;
16142b58eeSJosh Boyer	#size-cells = <1>;
17142b58eeSJosh Boyer	model = "amcc,bamboo";
18142b58eeSJosh Boyer	compatible = "amcc,bamboo";
1972fda114SJosh Boyer	dcr-parent = <&/cpus/cpu@0>;
20142b58eeSJosh Boyer
218aaed98cSStefan Roese	aliases {
228aaed98cSStefan Roese		ethernet0 = &EMAC0;
238aaed98cSStefan Roese		ethernet1 = &EMAC1;
248aaed98cSStefan Roese		serial0 = &UART0;
258aaed98cSStefan Roese		serial1 = &UART1;
268aaed98cSStefan Roese		serial2 = &UART2;
278aaed98cSStefan Roese		serial3 = &UART3;
288aaed98cSStefan Roese	};
298aaed98cSStefan Roese
30142b58eeSJosh Boyer	cpus {
31142b58eeSJosh Boyer		#address-cells = <1>;
32142b58eeSJosh Boyer		#size-cells = <0>;
33142b58eeSJosh Boyer
3472fda114SJosh Boyer		cpu@0 {
35142b58eeSJosh Boyer			device_type = "cpu";
3672fda114SJosh Boyer			model = "PowerPC,440EP";
37142b58eeSJosh Boyer			reg = <0>;
38142b58eeSJosh Boyer			clock-frequency = <0>; /* Filled in by zImage */
39142b58eeSJosh Boyer			timebase-frequency = <0>; /* Filled in by zImage */
40142b58eeSJosh Boyer			i-cache-line-size = <20>;
41142b58eeSJosh Boyer			d-cache-line-size = <20>;
42142b58eeSJosh Boyer			i-cache-size = <8000>;
43142b58eeSJosh Boyer			d-cache-size = <8000>;
44142b58eeSJosh Boyer			dcr-controller;
45142b58eeSJosh Boyer			dcr-access-method = "native";
46142b58eeSJosh Boyer		};
47142b58eeSJosh Boyer	};
48142b58eeSJosh Boyer
49142b58eeSJosh Boyer	memory {
50142b58eeSJosh Boyer		device_type = "memory";
51142b58eeSJosh Boyer		reg = <0 0 0>; /* Filled in by zImage */
52142b58eeSJosh Boyer	};
53142b58eeSJosh Boyer
54142b58eeSJosh Boyer	UIC0: interrupt-controller0 {
55142b58eeSJosh Boyer		compatible = "ibm,uic-440ep","ibm,uic";
56142b58eeSJosh Boyer		interrupt-controller;
57142b58eeSJosh Boyer		cell-index = <0>;
58142b58eeSJosh Boyer		dcr-reg = <0c0 009>;
59142b58eeSJosh Boyer		#address-cells = <0>;
60142b58eeSJosh Boyer		#size-cells = <0>;
61142b58eeSJosh Boyer		#interrupt-cells = <2>;
62142b58eeSJosh Boyer	};
63142b58eeSJosh Boyer
64142b58eeSJosh Boyer	UIC1: interrupt-controller1 {
65142b58eeSJosh Boyer		compatible = "ibm,uic-440ep","ibm,uic";
66142b58eeSJosh Boyer		interrupt-controller;
67142b58eeSJosh Boyer		cell-index = <1>;
68142b58eeSJosh Boyer		dcr-reg = <0d0 009>;
69142b58eeSJosh Boyer		#address-cells = <0>;
70142b58eeSJosh Boyer		#size-cells = <0>;
71142b58eeSJosh Boyer		#interrupt-cells = <2>;
72142b58eeSJosh Boyer		interrupts = <1e 4 1f 4>; /* cascade */
73142b58eeSJosh Boyer		interrupt-parent = <&UIC0>;
74142b58eeSJosh Boyer	};
75142b58eeSJosh Boyer
76142b58eeSJosh Boyer	SDR0: sdr {
77142b58eeSJosh Boyer		compatible = "ibm,sdr-440ep";
78142b58eeSJosh Boyer		dcr-reg = <00e 002>;
79142b58eeSJosh Boyer	};
80142b58eeSJosh Boyer
81142b58eeSJosh Boyer	CPR0: cpr {
82142b58eeSJosh Boyer		compatible = "ibm,cpr-440ep";
83142b58eeSJosh Boyer		dcr-reg = <00c 002>;
84142b58eeSJosh Boyer	};
85142b58eeSJosh Boyer
86142b58eeSJosh Boyer	plb {
87142b58eeSJosh Boyer		compatible = "ibm,plb-440ep", "ibm,plb-440gp", "ibm,plb4";
88142b58eeSJosh Boyer		#address-cells = <2>;
89142b58eeSJosh Boyer		#size-cells = <1>;
90142b58eeSJosh Boyer		ranges;
91142b58eeSJosh Boyer		clock-frequency = <0>; /* Filled in by zImage */
92142b58eeSJosh Boyer
93142b58eeSJosh Boyer		SDRAM0: sdram {
94142b58eeSJosh Boyer			compatible = "ibm,sdram-440ep", "ibm,sdram-405gp";
95142b58eeSJosh Boyer			dcr-reg = <010 2>;
96142b58eeSJosh Boyer		};
97142b58eeSJosh Boyer
98142b58eeSJosh Boyer		DMA0: dma {
99142b58eeSJosh Boyer			compatible = "ibm,dma-440ep", "ibm,dma-440gp";
100142b58eeSJosh Boyer			dcr-reg = <100 027>;
101142b58eeSJosh Boyer		};
102142b58eeSJosh Boyer
103142b58eeSJosh Boyer		MAL0: mcmal {
104142b58eeSJosh Boyer			compatible = "ibm,mcmal-440ep", "ibm,mcmal-440gp", "ibm,mcmal";
105142b58eeSJosh Boyer			dcr-reg = <180 62>;
106142b58eeSJosh Boyer			num-tx-chans = <4>;
107e52f5677SValentine Barshak			num-rx-chans = <2>;
108142b58eeSJosh Boyer			interrupt-parent = <&MAL0>;
109142b58eeSJosh Boyer			interrupts = <0 1 2 3 4>;
110142b58eeSJosh Boyer			#interrupt-cells = <1>;
11173925376SJosh Boyer			#address-cells = <0>;
11273925376SJosh Boyer			#size-cells = <0>;
113142b58eeSJosh Boyer			interrupt-map = </*TXEOB*/ 0 &UIC0 a 4
114142b58eeSJosh Boyer					/*RXEOB*/ 1 &UIC0 b 4
115142b58eeSJosh Boyer					/*SERR*/  2 &UIC1 0 4
116142b58eeSJosh Boyer					/*TXDE*/  3 &UIC1 1 4
11773925376SJosh Boyer					/*RXDE*/  4 &UIC1 2 4>;
118142b58eeSJosh Boyer		};
119142b58eeSJosh Boyer
120142b58eeSJosh Boyer		POB0: opb {
121142b58eeSJosh Boyer		  	compatible = "ibm,opb-440ep", "ibm,opb-440gp", "ibm,opb";
122142b58eeSJosh Boyer			#address-cells = <1>;
123142b58eeSJosh Boyer			#size-cells = <1>;
124142b58eeSJosh Boyer			/* Bamboo is oddball in the 44x world and doesn't use the ERPN
125142b58eeSJosh Boyer			 * bits.
126142b58eeSJosh Boyer			 */
127142b58eeSJosh Boyer		  	ranges = <00000000 0 00000000 80000000
128142b58eeSJosh Boyer			          80000000 0 80000000 80000000>;
129142b58eeSJosh Boyer		  	interrupt-parent = <&UIC1>;
130142b58eeSJosh Boyer		  	interrupts = <7 4>;
131142b58eeSJosh Boyer		  	clock-frequency = <0>; /* Filled in by zImage */
132142b58eeSJosh Boyer
133142b58eeSJosh Boyer			EBC0: ebc {
134142b58eeSJosh Boyer				compatible = "ibm,ebc-440ep", "ibm,ebc-440gp", "ibm,ebc";
135142b58eeSJosh Boyer				dcr-reg = <012 2>;
136142b58eeSJosh Boyer				#address-cells = <2>;
137142b58eeSJosh Boyer				#size-cells = <1>;
138142b58eeSJosh Boyer				clock-frequency = <0>; /* Filled in by zImage */
139142b58eeSJosh Boyer				interrupts = <5 1>;
140142b58eeSJosh Boyer				interrupt-parent = <&UIC1>;
141142b58eeSJosh Boyer			};
142142b58eeSJosh Boyer
143142b58eeSJosh Boyer			UART0: serial@ef600300 {
144142b58eeSJosh Boyer		   		device_type = "serial";
145142b58eeSJosh Boyer		   		compatible = "ns16550";
146142b58eeSJosh Boyer		   		reg = <ef600300 8>;
147142b58eeSJosh Boyer		   		virtual-reg = <ef600300>;
148142b58eeSJosh Boyer		   		clock-frequency = <0>; /* Filled in by zImage */
149142b58eeSJosh Boyer		   		current-speed = <1c200>;
150142b58eeSJosh Boyer		   		interrupt-parent = <&UIC0>;
151142b58eeSJosh Boyer		   		interrupts = <0 4>;
152142b58eeSJosh Boyer	   		};
153142b58eeSJosh Boyer
154142b58eeSJosh Boyer			UART1: serial@ef600400 {
155142b58eeSJosh Boyer		   		device_type = "serial";
156142b58eeSJosh Boyer		   		compatible = "ns16550";
157142b58eeSJosh Boyer		   		reg = <ef600400 8>;
158142b58eeSJosh Boyer		   		virtual-reg = <ef600400>;
159142b58eeSJosh Boyer		   		clock-frequency = <0>;
160142b58eeSJosh Boyer		   		current-speed = <0>;
161142b58eeSJosh Boyer		   		interrupt-parent = <&UIC0>;
162142b58eeSJosh Boyer		   		interrupts = <1 4>;
163142b58eeSJosh Boyer	   		};
164142b58eeSJosh Boyer
165142b58eeSJosh Boyer			UART2: serial@ef600500 {
166142b58eeSJosh Boyer		   		device_type = "serial";
167142b58eeSJosh Boyer		   		compatible = "ns16550";
168142b58eeSJosh Boyer		   		reg = <ef600500 8>;
169142b58eeSJosh Boyer		   		virtual-reg = <ef600500>;
170142b58eeSJosh Boyer		   		clock-frequency = <0>;
171142b58eeSJosh Boyer		   		current-speed = <0>;
172142b58eeSJosh Boyer		   		interrupt-parent = <&UIC0>;
173142b58eeSJosh Boyer		   		interrupts = <3 4>;
174142b58eeSJosh Boyer	   		};
175142b58eeSJosh Boyer
176142b58eeSJosh Boyer			UART3: serial@ef600600 {
177142b58eeSJosh Boyer		   		device_type = "serial";
178142b58eeSJosh Boyer		   		compatible = "ns16550";
179142b58eeSJosh Boyer		   		reg = <ef600600 8>;
180142b58eeSJosh Boyer		   		virtual-reg = <ef600600>;
181142b58eeSJosh Boyer		   		clock-frequency = <0>;
182142b58eeSJosh Boyer		   		current-speed = <0>;
183142b58eeSJosh Boyer		   		interrupt-parent = <&UIC0>;
184142b58eeSJosh Boyer		   		interrupts = <4 4>;
185142b58eeSJosh Boyer	   		};
186142b58eeSJosh Boyer
187142b58eeSJosh Boyer			IIC0: i2c@ef600700 {
188142b58eeSJosh Boyer				device_type = "i2c";
189142b58eeSJosh Boyer				compatible = "ibm,iic-440ep", "ibm,iic-440gp", "ibm,iic";
190142b58eeSJosh Boyer				reg = <ef600700 14>;
191142b58eeSJosh Boyer				interrupt-parent = <&UIC0>;
192142b58eeSJosh Boyer				interrupts = <2 4>;
193142b58eeSJosh Boyer			};
194142b58eeSJosh Boyer
195142b58eeSJosh Boyer			IIC1: i2c@ef600800 {
196142b58eeSJosh Boyer				device_type = "i2c";
197142b58eeSJosh Boyer				compatible = "ibm,iic-440ep", "ibm,iic-440gp", "ibm,iic";
198142b58eeSJosh Boyer				reg = <ef600800 14>;
199142b58eeSJosh Boyer				interrupt-parent = <&UIC0>;
200142b58eeSJosh Boyer				interrupts = <7 4>;
201142b58eeSJosh Boyer			};
202142b58eeSJosh Boyer
203142b58eeSJosh Boyer			ZMII0: emac-zmii@ef600d00 {
204142b58eeSJosh Boyer				device_type = "zmii-interface";
205142b58eeSJosh Boyer				compatible = "ibm,zmii-440ep", "ibm,zmii-440gp", "ibm,zmii";
206142b58eeSJosh Boyer				reg = <ef600d00 c>;
207142b58eeSJosh Boyer			};
208142b58eeSJosh Boyer
209142b58eeSJosh Boyer			EMAC0: ethernet@ef600e00 {
21073925376SJosh Boyer				linux,network-index = <0>;
211142b58eeSJosh Boyer				device_type = "network";
212142b58eeSJosh Boyer				compatible = "ibm,emac-440ep", "ibm,emac-440gp", "ibm,emac";
213142b58eeSJosh Boyer				interrupt-parent = <&UIC1>;
214142b58eeSJosh Boyer				interrupts = <1c 4 1d 4>;
215142b58eeSJosh Boyer				reg = <ef600e00 70>;
216142b58eeSJosh Boyer				local-mac-address = [000000000000];
217142b58eeSJosh Boyer				mal-device = <&MAL0>;
218142b58eeSJosh Boyer				mal-tx-channel = <0 1>;
219142b58eeSJosh Boyer				mal-rx-channel = <0>;
220142b58eeSJosh Boyer				cell-index = <0>;
221142b58eeSJosh Boyer				max-frame-size = <5dc>;
222142b58eeSJosh Boyer				rx-fifo-size = <1000>;
223142b58eeSJosh Boyer				tx-fifo-size = <800>;
224142b58eeSJosh Boyer				phy-mode = "rmii";
22573925376SJosh Boyer				phy-map = <00000000>;
226142b58eeSJosh Boyer				zmii-device = <&ZMII0>;
227142b58eeSJosh Boyer				zmii-channel = <0>;
228142b58eeSJosh Boyer			};
229142b58eeSJosh Boyer
230142b58eeSJosh Boyer			EMAC1: ethernet@ef600f00 {
23173925376SJosh Boyer				linux,network-index = <1>;
232142b58eeSJosh Boyer				device_type = "network";
233142b58eeSJosh Boyer				compatible = "ibm,emac-440ep", "ibm,emac-440gp", "ibm,emac";
234142b58eeSJosh Boyer				interrupt-parent = <&UIC1>;
235142b58eeSJosh Boyer				interrupts = <1e 4 1f 4>;
236142b58eeSJosh Boyer				reg = <ef600f00 70>;
237142b58eeSJosh Boyer				local-mac-address = [000000000000];
238142b58eeSJosh Boyer				mal-device = <&MAL0>;
239142b58eeSJosh Boyer				mal-tx-channel = <2 3>;
240142b58eeSJosh Boyer				mal-rx-channel = <1>;
241142b58eeSJosh Boyer				cell-index = <1>;
242142b58eeSJosh Boyer				max-frame-size = <5dc>;
243142b58eeSJosh Boyer				rx-fifo-size = <1000>;
244142b58eeSJosh Boyer				tx-fifo-size = <800>;
245142b58eeSJosh Boyer				phy-mode = "rmii";
24673925376SJosh Boyer				phy-map = <00000000>;
247142b58eeSJosh Boyer				zmii-device = <&ZMII0>;
248142b58eeSJosh Boyer				zmii-channel = <1>;
249142b58eeSJosh Boyer			};
250007b6aa8SBenjamin Herrenschmidt
251007b6aa8SBenjamin Herrenschmidt			usb@ef601000 {
252007b6aa8SBenjamin Herrenschmidt				compatible = "ohci-be";
253007b6aa8SBenjamin Herrenschmidt				reg = <ef601000 80>;
254007b6aa8SBenjamin Herrenschmidt				interrupts = <8 1 9 1>;
255007b6aa8SBenjamin Herrenschmidt				interrupt-parent = < &UIC1 >;
256007b6aa8SBenjamin Herrenschmidt			};
257142b58eeSJosh Boyer		};
258c3fc2de0SBenjamin Herrenschmidt
259c3fc2de0SBenjamin Herrenschmidt		PCI0: pci@ec000000 {
260c3fc2de0SBenjamin Herrenschmidt			device_type = "pci";
261c3fc2de0SBenjamin Herrenschmidt			#interrupt-cells = <1>;
262c3fc2de0SBenjamin Herrenschmidt			#size-cells = <2>;
263c3fc2de0SBenjamin Herrenschmidt			#address-cells = <3>;
264c3fc2de0SBenjamin Herrenschmidt			compatible = "ibm,plb440ep-pci", "ibm,plb-pci";
265c3fc2de0SBenjamin Herrenschmidt			primary;
266c3fc2de0SBenjamin Herrenschmidt			reg = <0 eec00000 8	/* Config space access */
267c3fc2de0SBenjamin Herrenschmidt			       0 eed00000 4	/* IACK */
268c3fc2de0SBenjamin Herrenschmidt			       0 eed00000 4	/* Special cycle */
269c3fc2de0SBenjamin Herrenschmidt			       0 ef400000 40>;	/* Internal registers */
270c3fc2de0SBenjamin Herrenschmidt
271c3fc2de0SBenjamin Herrenschmidt			/* Outbound ranges, one memory and one IO,
272c3fc2de0SBenjamin Herrenschmidt			 * later cannot be changed. Chip supports a second
273c3fc2de0SBenjamin Herrenschmidt			 * IO range but we don't use it for now
274c3fc2de0SBenjamin Herrenschmidt			 */
275c3fc2de0SBenjamin Herrenschmidt			ranges = <02000000 0 a0000000 0 a0000000 0 20000000
276c3fc2de0SBenjamin Herrenschmidt				  01000000 0 00000000 0 e8000000 0 00010000>;
277c3fc2de0SBenjamin Herrenschmidt
278c3fc2de0SBenjamin Herrenschmidt			/* Inbound 2GB range starting at 0 */
279c3fc2de0SBenjamin Herrenschmidt			dma-ranges = <42000000 0 0 0 0 0 80000000>;
280c3fc2de0SBenjamin Herrenschmidt
281c3fc2de0SBenjamin Herrenschmidt			/* Bamboo has all 4 IRQ pins tied together per slot */
282c3fc2de0SBenjamin Herrenschmidt			interrupt-map-mask = <f800 0 0 0>;
283c3fc2de0SBenjamin Herrenschmidt			interrupt-map = <
284c3fc2de0SBenjamin Herrenschmidt				/* IDSEL 1 */
285c3fc2de0SBenjamin Herrenschmidt				0800 0 0 0 &UIC0 1c 8
286c3fc2de0SBenjamin Herrenschmidt
287c3fc2de0SBenjamin Herrenschmidt				/* IDSEL 2 */
288c3fc2de0SBenjamin Herrenschmidt				1000 0 0 0 &UIC0 1b 8
289c3fc2de0SBenjamin Herrenschmidt
290c3fc2de0SBenjamin Herrenschmidt				/* IDSEL 3 */
291c3fc2de0SBenjamin Herrenschmidt				1800 0 0 0 &UIC0 1a 8
292c3fc2de0SBenjamin Herrenschmidt
293c3fc2de0SBenjamin Herrenschmidt				/* IDSEL 4 */
294c3fc2de0SBenjamin Herrenschmidt				2000 0 0 0 &UIC0 19 8
295c3fc2de0SBenjamin Herrenschmidt			>;
296c3fc2de0SBenjamin Herrenschmidt		};
297142b58eeSJosh Boyer	};
298142b58eeSJosh Boyer
299142b58eeSJosh Boyer	chosen {
300142b58eeSJosh Boyer		linux,stdout-path = "/plb/opb/serial@ef600300";
301142b58eeSJosh Boyer	};
302142b58eeSJosh Boyer};
303