xref: /linux/arch/powerpc/boot/dts/bamboo.dts (revision 72fda1148e14d2f06d8653c26f579b7d2dabba57)
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";
19*72fda114SJosh Boyer	dcr-parent = <&/cpus/cpu@0>;
20142b58eeSJosh Boyer
21142b58eeSJosh Boyer	cpus {
22142b58eeSJosh Boyer		#address-cells = <1>;
23142b58eeSJosh Boyer		#size-cells = <0>;
24142b58eeSJosh Boyer
25*72fda114SJosh Boyer		cpu@0 {
26142b58eeSJosh Boyer			device_type = "cpu";
27*72fda114SJosh Boyer			model = "PowerPC,440EP";
28142b58eeSJosh Boyer			reg = <0>;
29142b58eeSJosh Boyer			clock-frequency = <0>; /* Filled in by zImage */
30142b58eeSJosh Boyer			timebase-frequency = <0>; /* Filled in by zImage */
31142b58eeSJosh Boyer			i-cache-line-size = <20>;
32142b58eeSJosh Boyer			d-cache-line-size = <20>;
33142b58eeSJosh Boyer			i-cache-size = <8000>;
34142b58eeSJosh Boyer			d-cache-size = <8000>;
35142b58eeSJosh Boyer			dcr-controller;
36142b58eeSJosh Boyer			dcr-access-method = "native";
37142b58eeSJosh Boyer		};
38142b58eeSJosh Boyer	};
39142b58eeSJosh Boyer
40142b58eeSJosh Boyer	memory {
41142b58eeSJosh Boyer		device_type = "memory";
42142b58eeSJosh Boyer		reg = <0 0 0>; /* Filled in by zImage */
43142b58eeSJosh Boyer	};
44142b58eeSJosh Boyer
45142b58eeSJosh Boyer	UIC0: interrupt-controller0 {
46142b58eeSJosh Boyer		compatible = "ibm,uic-440ep","ibm,uic";
47142b58eeSJosh Boyer		interrupt-controller;
48142b58eeSJosh Boyer		cell-index = <0>;
49142b58eeSJosh Boyer		dcr-reg = <0c0 009>;
50142b58eeSJosh Boyer		#address-cells = <0>;
51142b58eeSJosh Boyer		#size-cells = <0>;
52142b58eeSJosh Boyer		#interrupt-cells = <2>;
53142b58eeSJosh Boyer	};
54142b58eeSJosh Boyer
55142b58eeSJosh Boyer	UIC1: interrupt-controller1 {
56142b58eeSJosh Boyer		compatible = "ibm,uic-440ep","ibm,uic";
57142b58eeSJosh Boyer		interrupt-controller;
58142b58eeSJosh Boyer		cell-index = <1>;
59142b58eeSJosh Boyer		dcr-reg = <0d0 009>;
60142b58eeSJosh Boyer		#address-cells = <0>;
61142b58eeSJosh Boyer		#size-cells = <0>;
62142b58eeSJosh Boyer		#interrupt-cells = <2>;
63142b58eeSJosh Boyer		interrupts = <1e 4 1f 4>; /* cascade */
64142b58eeSJosh Boyer		interrupt-parent = <&UIC0>;
65142b58eeSJosh Boyer	};
66142b58eeSJosh Boyer
67142b58eeSJosh Boyer	SDR0: sdr {
68142b58eeSJosh Boyer		compatible = "ibm,sdr-440ep";
69142b58eeSJosh Boyer		dcr-reg = <00e 002>;
70142b58eeSJosh Boyer	};
71142b58eeSJosh Boyer
72142b58eeSJosh Boyer	CPR0: cpr {
73142b58eeSJosh Boyer		compatible = "ibm,cpr-440ep";
74142b58eeSJosh Boyer		dcr-reg = <00c 002>;
75142b58eeSJosh Boyer	};
76142b58eeSJosh Boyer
77142b58eeSJosh Boyer	plb {
78142b58eeSJosh Boyer		compatible = "ibm,plb-440ep", "ibm,plb-440gp", "ibm,plb4";
79142b58eeSJosh Boyer		#address-cells = <2>;
80142b58eeSJosh Boyer		#size-cells = <1>;
81142b58eeSJosh Boyer		ranges;
82142b58eeSJosh Boyer		clock-frequency = <0>; /* Filled in by zImage */
83142b58eeSJosh Boyer
84142b58eeSJosh Boyer		SDRAM0: sdram {
85142b58eeSJosh Boyer			compatible = "ibm,sdram-440ep", "ibm,sdram-405gp";
86142b58eeSJosh Boyer			dcr-reg = <010 2>;
87142b58eeSJosh Boyer		};
88142b58eeSJosh Boyer
89142b58eeSJosh Boyer		DMA0: dma {
90142b58eeSJosh Boyer			compatible = "ibm,dma-440ep", "ibm,dma-440gp";
91142b58eeSJosh Boyer			dcr-reg = <100 027>;
92142b58eeSJosh Boyer		};
93142b58eeSJosh Boyer
94142b58eeSJosh Boyer		MAL0: mcmal {
95142b58eeSJosh Boyer			compatible = "ibm,mcmal-440ep", "ibm,mcmal-440gp", "ibm,mcmal";
96142b58eeSJosh Boyer			dcr-reg = <180 62>;
97142b58eeSJosh Boyer			num-tx-chans = <4>;
98e52f5677SValentine Barshak			num-rx-chans = <2>;
99142b58eeSJosh Boyer			interrupt-parent = <&MAL0>;
100142b58eeSJosh Boyer			interrupts = <0 1 2 3 4>;
101142b58eeSJosh Boyer			#interrupt-cells = <1>;
10273925376SJosh Boyer			#address-cells = <0>;
10373925376SJosh Boyer			#size-cells = <0>;
104142b58eeSJosh Boyer			interrupt-map = </*TXEOB*/ 0 &UIC0 a 4
105142b58eeSJosh Boyer					/*RXEOB*/ 1 &UIC0 b 4
106142b58eeSJosh Boyer					/*SERR*/  2 &UIC1 0 4
107142b58eeSJosh Boyer					/*TXDE*/  3 &UIC1 1 4
10873925376SJosh Boyer					/*RXDE*/  4 &UIC1 2 4>;
109142b58eeSJosh Boyer		};
110142b58eeSJosh Boyer
111142b58eeSJosh Boyer		POB0: opb {
112142b58eeSJosh Boyer		  	compatible = "ibm,opb-440ep", "ibm,opb-440gp", "ibm,opb";
113142b58eeSJosh Boyer			#address-cells = <1>;
114142b58eeSJosh Boyer			#size-cells = <1>;
115142b58eeSJosh Boyer			/* Bamboo is oddball in the 44x world and doesn't use the ERPN
116142b58eeSJosh Boyer			 * bits.
117142b58eeSJosh Boyer			 */
118142b58eeSJosh Boyer		  	ranges = <00000000 0 00000000 80000000
119142b58eeSJosh Boyer			          80000000 0 80000000 80000000>;
120142b58eeSJosh Boyer		  	interrupt-parent = <&UIC1>;
121142b58eeSJosh Boyer		  	interrupts = <7 4>;
122142b58eeSJosh Boyer		  	clock-frequency = <0>; /* Filled in by zImage */
123142b58eeSJosh Boyer
124142b58eeSJosh Boyer			EBC0: ebc {
125142b58eeSJosh Boyer				compatible = "ibm,ebc-440ep", "ibm,ebc-440gp", "ibm,ebc";
126142b58eeSJosh Boyer				dcr-reg = <012 2>;
127142b58eeSJosh Boyer				#address-cells = <2>;
128142b58eeSJosh Boyer				#size-cells = <1>;
129142b58eeSJosh Boyer				clock-frequency = <0>; /* Filled in by zImage */
130142b58eeSJosh Boyer				interrupts = <5 1>;
131142b58eeSJosh Boyer				interrupt-parent = <&UIC1>;
132142b58eeSJosh Boyer			};
133142b58eeSJosh Boyer
134142b58eeSJosh Boyer			UART0: serial@ef600300 {
135142b58eeSJosh Boyer		   		device_type = "serial";
136142b58eeSJosh Boyer		   		compatible = "ns16550";
137142b58eeSJosh Boyer		   		reg = <ef600300 8>;
138142b58eeSJosh Boyer		   		virtual-reg = <ef600300>;
139142b58eeSJosh Boyer		   		clock-frequency = <0>; /* Filled in by zImage */
140142b58eeSJosh Boyer		   		current-speed = <1c200>;
141142b58eeSJosh Boyer		   		interrupt-parent = <&UIC0>;
142142b58eeSJosh Boyer		   		interrupts = <0 4>;
143142b58eeSJosh Boyer	   		};
144142b58eeSJosh Boyer
145142b58eeSJosh Boyer			UART1: serial@ef600400 {
146142b58eeSJosh Boyer		   		device_type = "serial";
147142b58eeSJosh Boyer		   		compatible = "ns16550";
148142b58eeSJosh Boyer		   		reg = <ef600400 8>;
149142b58eeSJosh Boyer		   		virtual-reg = <ef600400>;
150142b58eeSJosh Boyer		   		clock-frequency = <0>;
151142b58eeSJosh Boyer		   		current-speed = <0>;
152142b58eeSJosh Boyer		   		interrupt-parent = <&UIC0>;
153142b58eeSJosh Boyer		   		interrupts = <1 4>;
154142b58eeSJosh Boyer	   		};
155142b58eeSJosh Boyer
156142b58eeSJosh Boyer			UART2: serial@ef600500 {
157142b58eeSJosh Boyer		   		device_type = "serial";
158142b58eeSJosh Boyer		   		compatible = "ns16550";
159142b58eeSJosh Boyer		   		reg = <ef600500 8>;
160142b58eeSJosh Boyer		   		virtual-reg = <ef600500>;
161142b58eeSJosh Boyer		   		clock-frequency = <0>;
162142b58eeSJosh Boyer		   		current-speed = <0>;
163142b58eeSJosh Boyer		   		interrupt-parent = <&UIC0>;
164142b58eeSJosh Boyer		   		interrupts = <3 4>;
165142b58eeSJosh Boyer	   		};
166142b58eeSJosh Boyer
167142b58eeSJosh Boyer			UART3: serial@ef600600 {
168142b58eeSJosh Boyer		   		device_type = "serial";
169142b58eeSJosh Boyer		   		compatible = "ns16550";
170142b58eeSJosh Boyer		   		reg = <ef600600 8>;
171142b58eeSJosh Boyer		   		virtual-reg = <ef600600>;
172142b58eeSJosh Boyer		   		clock-frequency = <0>;
173142b58eeSJosh Boyer		   		current-speed = <0>;
174142b58eeSJosh Boyer		   		interrupt-parent = <&UIC0>;
175142b58eeSJosh Boyer		   		interrupts = <4 4>;
176142b58eeSJosh Boyer	   		};
177142b58eeSJosh Boyer
178142b58eeSJosh Boyer			IIC0: i2c@ef600700 {
179142b58eeSJosh Boyer				device_type = "i2c";
180142b58eeSJosh Boyer				compatible = "ibm,iic-440ep", "ibm,iic-440gp", "ibm,iic";
181142b58eeSJosh Boyer				reg = <ef600700 14>;
182142b58eeSJosh Boyer				interrupt-parent = <&UIC0>;
183142b58eeSJosh Boyer				interrupts = <2 4>;
184142b58eeSJosh Boyer			};
185142b58eeSJosh Boyer
186142b58eeSJosh Boyer			IIC1: i2c@ef600800 {
187142b58eeSJosh Boyer				device_type = "i2c";
188142b58eeSJosh Boyer				compatible = "ibm,iic-440ep", "ibm,iic-440gp", "ibm,iic";
189142b58eeSJosh Boyer				reg = <ef600800 14>;
190142b58eeSJosh Boyer				interrupt-parent = <&UIC0>;
191142b58eeSJosh Boyer				interrupts = <7 4>;
192142b58eeSJosh Boyer			};
193142b58eeSJosh Boyer
194142b58eeSJosh Boyer			ZMII0: emac-zmii@ef600d00 {
195142b58eeSJosh Boyer				device_type = "zmii-interface";
196142b58eeSJosh Boyer				compatible = "ibm,zmii-440ep", "ibm,zmii-440gp", "ibm,zmii";
197142b58eeSJosh Boyer				reg = <ef600d00 c>;
198142b58eeSJosh Boyer			};
199142b58eeSJosh Boyer
200142b58eeSJosh Boyer			EMAC0: ethernet@ef600e00 {
20173925376SJosh Boyer				linux,network-index = <0>;
202142b58eeSJosh Boyer				device_type = "network";
203142b58eeSJosh Boyer				compatible = "ibm,emac-440ep", "ibm,emac-440gp", "ibm,emac";
204142b58eeSJosh Boyer				interrupt-parent = <&UIC1>;
205142b58eeSJosh Boyer				interrupts = <1c 4 1d 4>;
206142b58eeSJosh Boyer				reg = <ef600e00 70>;
207142b58eeSJosh Boyer				local-mac-address = [000000000000];
208142b58eeSJosh Boyer				mal-device = <&MAL0>;
209142b58eeSJosh Boyer				mal-tx-channel = <0 1>;
210142b58eeSJosh Boyer				mal-rx-channel = <0>;
211142b58eeSJosh Boyer				cell-index = <0>;
212142b58eeSJosh Boyer				max-frame-size = <5dc>;
213142b58eeSJosh Boyer				rx-fifo-size = <1000>;
214142b58eeSJosh Boyer				tx-fifo-size = <800>;
215142b58eeSJosh Boyer				phy-mode = "rmii";
21673925376SJosh Boyer				phy-map = <00000000>;
217142b58eeSJosh Boyer				zmii-device = <&ZMII0>;
218142b58eeSJosh Boyer				zmii-channel = <0>;
219142b58eeSJosh Boyer			};
220142b58eeSJosh Boyer
221142b58eeSJosh Boyer			EMAC1: ethernet@ef600f00 {
22273925376SJosh Boyer				linux,network-index = <1>;
223142b58eeSJosh Boyer				device_type = "network";
224142b58eeSJosh Boyer				compatible = "ibm,emac-440ep", "ibm,emac-440gp", "ibm,emac";
225142b58eeSJosh Boyer				interrupt-parent = <&UIC1>;
226142b58eeSJosh Boyer				interrupts = <1e 4 1f 4>;
227142b58eeSJosh Boyer				reg = <ef600f00 70>;
228142b58eeSJosh Boyer				local-mac-address = [000000000000];
229142b58eeSJosh Boyer				mal-device = <&MAL0>;
230142b58eeSJosh Boyer				mal-tx-channel = <2 3>;
231142b58eeSJosh Boyer				mal-rx-channel = <1>;
232142b58eeSJosh Boyer				cell-index = <1>;
233142b58eeSJosh Boyer				max-frame-size = <5dc>;
234142b58eeSJosh Boyer				rx-fifo-size = <1000>;
235142b58eeSJosh Boyer				tx-fifo-size = <800>;
236142b58eeSJosh Boyer				phy-mode = "rmii";
23773925376SJosh Boyer				phy-map = <00000000>;
238142b58eeSJosh Boyer				zmii-device = <&ZMII0>;
239142b58eeSJosh Boyer				zmii-channel = <1>;
240142b58eeSJosh Boyer			};
241007b6aa8SBenjamin Herrenschmidt
242007b6aa8SBenjamin Herrenschmidt			usb@ef601000 {
243007b6aa8SBenjamin Herrenschmidt				compatible = "ohci-be";
244007b6aa8SBenjamin Herrenschmidt				reg = <ef601000 80>;
245007b6aa8SBenjamin Herrenschmidt				interrupts = <8 1 9 1>;
246007b6aa8SBenjamin Herrenschmidt				interrupt-parent = < &UIC1 >;
247007b6aa8SBenjamin Herrenschmidt			};
248142b58eeSJosh Boyer		};
249c3fc2de0SBenjamin Herrenschmidt
250c3fc2de0SBenjamin Herrenschmidt		PCI0: pci@ec000000 {
251c3fc2de0SBenjamin Herrenschmidt			device_type = "pci";
252c3fc2de0SBenjamin Herrenschmidt			#interrupt-cells = <1>;
253c3fc2de0SBenjamin Herrenschmidt			#size-cells = <2>;
254c3fc2de0SBenjamin Herrenschmidt			#address-cells = <3>;
255c3fc2de0SBenjamin Herrenschmidt			compatible = "ibm,plb440ep-pci", "ibm,plb-pci";
256c3fc2de0SBenjamin Herrenschmidt			primary;
257c3fc2de0SBenjamin Herrenschmidt			reg = <0 eec00000 8	/* Config space access */
258c3fc2de0SBenjamin Herrenschmidt			       0 eed00000 4	/* IACK */
259c3fc2de0SBenjamin Herrenschmidt			       0 eed00000 4	/* Special cycle */
260c3fc2de0SBenjamin Herrenschmidt			       0 ef400000 40>;	/* Internal registers */
261c3fc2de0SBenjamin Herrenschmidt
262c3fc2de0SBenjamin Herrenschmidt			/* Outbound ranges, one memory and one IO,
263c3fc2de0SBenjamin Herrenschmidt			 * later cannot be changed. Chip supports a second
264c3fc2de0SBenjamin Herrenschmidt			 * IO range but we don't use it for now
265c3fc2de0SBenjamin Herrenschmidt			 */
266c3fc2de0SBenjamin Herrenschmidt			ranges = <02000000 0 a0000000 0 a0000000 0 20000000
267c3fc2de0SBenjamin Herrenschmidt				  01000000 0 00000000 0 e8000000 0 00010000>;
268c3fc2de0SBenjamin Herrenschmidt
269c3fc2de0SBenjamin Herrenschmidt			/* Inbound 2GB range starting at 0 */
270c3fc2de0SBenjamin Herrenschmidt			dma-ranges = <42000000 0 0 0 0 0 80000000>;
271c3fc2de0SBenjamin Herrenschmidt
272c3fc2de0SBenjamin Herrenschmidt			/* Bamboo has all 4 IRQ pins tied together per slot */
273c3fc2de0SBenjamin Herrenschmidt			interrupt-map-mask = <f800 0 0 0>;
274c3fc2de0SBenjamin Herrenschmidt			interrupt-map = <
275c3fc2de0SBenjamin Herrenschmidt				/* IDSEL 1 */
276c3fc2de0SBenjamin Herrenschmidt				0800 0 0 0 &UIC0 1c 8
277c3fc2de0SBenjamin Herrenschmidt
278c3fc2de0SBenjamin Herrenschmidt				/* IDSEL 2 */
279c3fc2de0SBenjamin Herrenschmidt				1000 0 0 0 &UIC0 1b 8
280c3fc2de0SBenjamin Herrenschmidt
281c3fc2de0SBenjamin Herrenschmidt				/* IDSEL 3 */
282c3fc2de0SBenjamin Herrenschmidt				1800 0 0 0 &UIC0 1a 8
283c3fc2de0SBenjamin Herrenschmidt
284c3fc2de0SBenjamin Herrenschmidt				/* IDSEL 4 */
285c3fc2de0SBenjamin Herrenschmidt				2000 0 0 0 &UIC0 19 8
286c3fc2de0SBenjamin Herrenschmidt			>;
287c3fc2de0SBenjamin Herrenschmidt		};
288142b58eeSJosh Boyer	};
289142b58eeSJosh Boyer
290142b58eeSJosh Boyer	chosen {
291142b58eeSJosh Boyer		linux,stdout-path = "/plb/opb/serial@ef600300";
292142b58eeSJosh Boyer	};
293142b58eeSJosh Boyer};
294