xref: /openbmc/linux/arch/powerpc/boot/dts/bamboo.dts (revision c3fc2de0)
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";
19142b58eeSJosh Boyer	dcr-parent = <&/cpus/PowerPC,440EP@0>;
20142b58eeSJosh Boyer
21142b58eeSJosh Boyer	cpus {
22142b58eeSJosh Boyer		#address-cells = <1>;
23142b58eeSJosh Boyer		#size-cells = <0>;
24142b58eeSJosh Boyer
25142b58eeSJosh Boyer		PowerPC,440EP@0 {
26142b58eeSJosh Boyer			device_type = "cpu";
27142b58eeSJosh Boyer			reg = <0>;
28142b58eeSJosh Boyer			clock-frequency = <0>; /* Filled in by zImage */
29142b58eeSJosh Boyer			timebase-frequency = <0>; /* Filled in by zImage */
30142b58eeSJosh Boyer			i-cache-line-size = <20>;
31142b58eeSJosh Boyer			d-cache-line-size = <20>;
32142b58eeSJosh Boyer			i-cache-size = <8000>;
33142b58eeSJosh Boyer			d-cache-size = <8000>;
34142b58eeSJosh Boyer			dcr-controller;
35142b58eeSJosh Boyer			dcr-access-method = "native";
36142b58eeSJosh Boyer		};
37142b58eeSJosh Boyer	};
38142b58eeSJosh Boyer
39142b58eeSJosh Boyer	memory {
40142b58eeSJosh Boyer		device_type = "memory";
41142b58eeSJosh Boyer		reg = <0 0 0>; /* Filled in by zImage */
42142b58eeSJosh Boyer	};
43142b58eeSJosh Boyer
44142b58eeSJosh Boyer	UIC0: interrupt-controller0 {
45142b58eeSJosh Boyer		compatible = "ibm,uic-440ep","ibm,uic";
46142b58eeSJosh Boyer		interrupt-controller;
47142b58eeSJosh Boyer		cell-index = <0>;
48142b58eeSJosh Boyer		dcr-reg = <0c0 009>;
49142b58eeSJosh Boyer		#address-cells = <0>;
50142b58eeSJosh Boyer		#size-cells = <0>;
51142b58eeSJosh Boyer		#interrupt-cells = <2>;
52142b58eeSJosh Boyer	};
53142b58eeSJosh Boyer
54142b58eeSJosh Boyer	UIC1: interrupt-controller1 {
55142b58eeSJosh Boyer		compatible = "ibm,uic-440ep","ibm,uic";
56142b58eeSJosh Boyer		interrupt-controller;
57142b58eeSJosh Boyer		cell-index = <1>;
58142b58eeSJosh Boyer		dcr-reg = <0d0 009>;
59142b58eeSJosh Boyer		#address-cells = <0>;
60142b58eeSJosh Boyer		#size-cells = <0>;
61142b58eeSJosh Boyer		#interrupt-cells = <2>;
62142b58eeSJosh Boyer		interrupts = <1e 4 1f 4>; /* cascade */
63142b58eeSJosh Boyer		interrupt-parent = <&UIC0>;
64142b58eeSJosh Boyer	};
65142b58eeSJosh Boyer
66142b58eeSJosh Boyer	SDR0: sdr {
67142b58eeSJosh Boyer		compatible = "ibm,sdr-440ep";
68142b58eeSJosh Boyer		dcr-reg = <00e 002>;
69142b58eeSJosh Boyer	};
70142b58eeSJosh Boyer
71142b58eeSJosh Boyer	CPR0: cpr {
72142b58eeSJosh Boyer		compatible = "ibm,cpr-440ep";
73142b58eeSJosh Boyer		dcr-reg = <00c 002>;
74142b58eeSJosh Boyer	};
75142b58eeSJosh Boyer
76142b58eeSJosh Boyer	plb {
77142b58eeSJosh Boyer		compatible = "ibm,plb-440ep", "ibm,plb-440gp", "ibm,plb4";
78142b58eeSJosh Boyer		#address-cells = <2>;
79142b58eeSJosh Boyer		#size-cells = <1>;
80142b58eeSJosh Boyer		ranges;
81142b58eeSJosh Boyer		clock-frequency = <0>; /* Filled in by zImage */
82142b58eeSJosh Boyer
83142b58eeSJosh Boyer		SDRAM0: sdram {
84142b58eeSJosh Boyer			compatible = "ibm,sdram-440ep", "ibm,sdram-405gp";
85142b58eeSJosh Boyer			dcr-reg = <010 2>;
86142b58eeSJosh Boyer		};
87142b58eeSJosh Boyer
88142b58eeSJosh Boyer		DMA0: dma {
89142b58eeSJosh Boyer			compatible = "ibm,dma-440ep", "ibm,dma-440gp";
90142b58eeSJosh Boyer			dcr-reg = <100 027>;
91142b58eeSJosh Boyer		};
92142b58eeSJosh Boyer
93142b58eeSJosh Boyer		MAL0: mcmal {
94142b58eeSJosh Boyer			compatible = "ibm,mcmal-440ep", "ibm,mcmal-440gp", "ibm,mcmal";
95142b58eeSJosh Boyer			dcr-reg = <180 62>;
96142b58eeSJosh Boyer			num-tx-chans = <4>;
97e52f5677SValentine Barshak			num-rx-chans = <2>;
98142b58eeSJosh Boyer			interrupt-parent = <&MAL0>;
99142b58eeSJosh Boyer			interrupts = <0 1 2 3 4>;
100142b58eeSJosh Boyer			#interrupt-cells = <1>;
10173925376SJosh Boyer			#address-cells = <0>;
10273925376SJosh Boyer			#size-cells = <0>;
103142b58eeSJosh Boyer			interrupt-map = </*TXEOB*/ 0 &UIC0 a 4
104142b58eeSJosh Boyer					/*RXEOB*/ 1 &UIC0 b 4
105142b58eeSJosh Boyer					/*SERR*/  2 &UIC1 0 4
106142b58eeSJosh Boyer					/*TXDE*/  3 &UIC1 1 4
10773925376SJosh Boyer					/*RXDE*/  4 &UIC1 2 4>;
108142b58eeSJosh Boyer		};
109142b58eeSJosh Boyer
110142b58eeSJosh Boyer		POB0: opb {
111142b58eeSJosh Boyer		  	compatible = "ibm,opb-440ep", "ibm,opb-440gp", "ibm,opb";
112142b58eeSJosh Boyer			#address-cells = <1>;
113142b58eeSJosh Boyer			#size-cells = <1>;
114142b58eeSJosh Boyer			/* Bamboo is oddball in the 44x world and doesn't use the ERPN
115142b58eeSJosh Boyer			 * bits.
116142b58eeSJosh Boyer			 */
117142b58eeSJosh Boyer		  	ranges = <00000000 0 00000000 80000000
118142b58eeSJosh Boyer			          80000000 0 80000000 80000000>;
119142b58eeSJosh Boyer		  	interrupt-parent = <&UIC1>;
120142b58eeSJosh Boyer		  	interrupts = <7 4>;
121142b58eeSJosh Boyer		  	clock-frequency = <0>; /* Filled in by zImage */
122142b58eeSJosh Boyer
123142b58eeSJosh Boyer			EBC0: ebc {
124142b58eeSJosh Boyer				compatible = "ibm,ebc-440ep", "ibm,ebc-440gp", "ibm,ebc";
125142b58eeSJosh Boyer				dcr-reg = <012 2>;
126142b58eeSJosh Boyer				#address-cells = <2>;
127142b58eeSJosh Boyer				#size-cells = <1>;
128142b58eeSJosh Boyer				clock-frequency = <0>; /* Filled in by zImage */
129142b58eeSJosh Boyer				ranges;
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			};
241142b58eeSJosh Boyer		};
242c3fc2de0SBenjamin Herrenschmidt
243c3fc2de0SBenjamin Herrenschmidt		PCI0: pci@ec000000 {
244c3fc2de0SBenjamin Herrenschmidt			device_type = "pci";
245c3fc2de0SBenjamin Herrenschmidt			#interrupt-cells = <1>;
246c3fc2de0SBenjamin Herrenschmidt			#size-cells = <2>;
247c3fc2de0SBenjamin Herrenschmidt			#address-cells = <3>;
248c3fc2de0SBenjamin Herrenschmidt			compatible = "ibm,plb440ep-pci", "ibm,plb-pci";
249c3fc2de0SBenjamin Herrenschmidt			primary;
250c3fc2de0SBenjamin Herrenschmidt			reg = <0 eec00000 8	/* Config space access */
251c3fc2de0SBenjamin Herrenschmidt			       0 eed00000 4	/* IACK */
252c3fc2de0SBenjamin Herrenschmidt			       0 eed00000 4	/* Special cycle */
253c3fc2de0SBenjamin Herrenschmidt			       0 ef400000 40>;	/* Internal registers */
254c3fc2de0SBenjamin Herrenschmidt
255c3fc2de0SBenjamin Herrenschmidt			/* Outbound ranges, one memory and one IO,
256c3fc2de0SBenjamin Herrenschmidt			 * later cannot be changed. Chip supports a second
257c3fc2de0SBenjamin Herrenschmidt			 * IO range but we don't use it for now
258c3fc2de0SBenjamin Herrenschmidt			 */
259c3fc2de0SBenjamin Herrenschmidt			ranges = <02000000 0 a0000000 0 a0000000 0 20000000
260c3fc2de0SBenjamin Herrenschmidt				  01000000 0 00000000 0 e8000000 0 00010000>;
261c3fc2de0SBenjamin Herrenschmidt
262c3fc2de0SBenjamin Herrenschmidt			/* Inbound 2GB range starting at 0 */
263c3fc2de0SBenjamin Herrenschmidt			dma-ranges = <42000000 0 0 0 0 0 80000000>;
264c3fc2de0SBenjamin Herrenschmidt
265c3fc2de0SBenjamin Herrenschmidt			/* Bamboo has all 4 IRQ pins tied together per slot */
266c3fc2de0SBenjamin Herrenschmidt			interrupt-map-mask = <f800 0 0 0>;
267c3fc2de0SBenjamin Herrenschmidt			interrupt-map = <
268c3fc2de0SBenjamin Herrenschmidt				/* IDSEL 1 */
269c3fc2de0SBenjamin Herrenschmidt				0800 0 0 0 &UIC0 1c 8
270c3fc2de0SBenjamin Herrenschmidt
271c3fc2de0SBenjamin Herrenschmidt				/* IDSEL 2 */
272c3fc2de0SBenjamin Herrenschmidt				1000 0 0 0 &UIC0 1b 8
273c3fc2de0SBenjamin Herrenschmidt
274c3fc2de0SBenjamin Herrenschmidt				/* IDSEL 3 */
275c3fc2de0SBenjamin Herrenschmidt				1800 0 0 0 &UIC0 1a 8
276c3fc2de0SBenjamin Herrenschmidt
277c3fc2de0SBenjamin Herrenschmidt				/* IDSEL 4 */
278c3fc2de0SBenjamin Herrenschmidt				2000 0 0 0 &UIC0 19 8
279c3fc2de0SBenjamin Herrenschmidt			>;
280c3fc2de0SBenjamin Herrenschmidt		};
281142b58eeSJosh Boyer	};
282142b58eeSJosh Boyer
283142b58eeSJosh Boyer	chosen {
284142b58eeSJosh Boyer		linux,stdout-path = "/plb/opb/serial@ef600300";
285142b58eeSJosh Boyer	};
286142b58eeSJosh Boyer};
287