xref: /openbmc/linux/arch/powerpc/boot/dts/bamboo.dts (revision 3cfb9ebe)
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
1471f34979SDavid Gibson/dts-v1/;
1571f34979SDavid Gibson
16142b58eeSJosh Boyer/ {
17142b58eeSJosh Boyer	#address-cells = <2>;
18142b58eeSJosh Boyer	#size-cells = <1>;
19142b58eeSJosh Boyer	model = "amcc,bamboo";
20142b58eeSJosh Boyer	compatible = "amcc,bamboo";
2171f34979SDavid Gibson	dcr-parent = <&{/cpus/cpu@0}>;
22142b58eeSJosh Boyer
238aaed98cSStefan Roese	aliases {
248aaed98cSStefan Roese		ethernet0 = &EMAC0;
258aaed98cSStefan Roese		ethernet1 = &EMAC1;
268aaed98cSStefan Roese		serial0 = &UART0;
278aaed98cSStefan Roese		serial1 = &UART1;
288aaed98cSStefan Roese		serial2 = &UART2;
298aaed98cSStefan Roese		serial3 = &UART3;
308aaed98cSStefan Roese	};
318aaed98cSStefan Roese
32142b58eeSJosh Boyer	cpus {
33142b58eeSJosh Boyer		#address-cells = <1>;
34142b58eeSJosh Boyer		#size-cells = <0>;
35142b58eeSJosh Boyer
3672fda114SJosh Boyer		cpu@0 {
37142b58eeSJosh Boyer			device_type = "cpu";
3872fda114SJosh Boyer			model = "PowerPC,440EP";
3971f34979SDavid Gibson			reg = <0x00000000>;
40142b58eeSJosh Boyer			clock-frequency = <0>; /* Filled in by zImage */
41142b58eeSJosh Boyer			timebase-frequency = <0>; /* Filled in by zImage */
4271f34979SDavid Gibson			i-cache-line-size = <32>;
4371f34979SDavid Gibson			d-cache-line-size = <32>;
4471f34979SDavid Gibson			i-cache-size = <32768>;
4571f34979SDavid Gibson			d-cache-size = <32768>;
46142b58eeSJosh Boyer			dcr-controller;
47142b58eeSJosh Boyer			dcr-access-method = "native";
48142b58eeSJosh Boyer		};
49142b58eeSJosh Boyer	};
50142b58eeSJosh Boyer
51142b58eeSJosh Boyer	memory {
52142b58eeSJosh Boyer		device_type = "memory";
5371f34979SDavid Gibson		reg = <0x00000000 0x00000000 0x00000000>; /* Filled in by zImage */
54142b58eeSJosh Boyer	};
55142b58eeSJosh Boyer
56142b58eeSJosh Boyer	UIC0: interrupt-controller0 {
57142b58eeSJosh Boyer		compatible = "ibm,uic-440ep","ibm,uic";
58142b58eeSJosh Boyer		interrupt-controller;
59142b58eeSJosh Boyer		cell-index = <0>;
6071f34979SDavid Gibson		dcr-reg = <0x0c0 0x009>;
61142b58eeSJosh Boyer		#address-cells = <0>;
62142b58eeSJosh Boyer		#size-cells = <0>;
63142b58eeSJosh Boyer		#interrupt-cells = <2>;
64142b58eeSJosh Boyer	};
65142b58eeSJosh Boyer
66142b58eeSJosh Boyer	UIC1: interrupt-controller1 {
67142b58eeSJosh Boyer		compatible = "ibm,uic-440ep","ibm,uic";
68142b58eeSJosh Boyer		interrupt-controller;
69142b58eeSJosh Boyer		cell-index = <1>;
7071f34979SDavid Gibson		dcr-reg = <0x0d0 0x009>;
71142b58eeSJosh Boyer		#address-cells = <0>;
72142b58eeSJosh Boyer		#size-cells = <0>;
73142b58eeSJosh Boyer		#interrupt-cells = <2>;
7471f34979SDavid Gibson		interrupts = <0x1e 0x4 0x1f 0x4>; /* cascade */
75142b58eeSJosh Boyer		interrupt-parent = <&UIC0>;
76142b58eeSJosh Boyer	};
77142b58eeSJosh Boyer
78142b58eeSJosh Boyer	SDR0: sdr {
79142b58eeSJosh Boyer		compatible = "ibm,sdr-440ep";
8071f34979SDavid Gibson		dcr-reg = <0x00e 0x002>;
81142b58eeSJosh Boyer	};
82142b58eeSJosh Boyer
83142b58eeSJosh Boyer	CPR0: cpr {
84142b58eeSJosh Boyer		compatible = "ibm,cpr-440ep";
8571f34979SDavid Gibson		dcr-reg = <0x00c 0x002>;
86142b58eeSJosh Boyer	};
87142b58eeSJosh Boyer
88142b58eeSJosh Boyer	plb {
89142b58eeSJosh Boyer		compatible = "ibm,plb-440ep", "ibm,plb-440gp", "ibm,plb4";
90142b58eeSJosh Boyer		#address-cells = <2>;
91142b58eeSJosh Boyer		#size-cells = <1>;
92142b58eeSJosh Boyer		ranges;
93142b58eeSJosh Boyer		clock-frequency = <0>; /* Filled in by zImage */
94142b58eeSJosh Boyer
95142b58eeSJosh Boyer		SDRAM0: sdram {
96142b58eeSJosh Boyer			compatible = "ibm,sdram-440ep", "ibm,sdram-405gp";
9771f34979SDavid Gibson			dcr-reg = <0x010 0x002>;
98142b58eeSJosh Boyer		};
99142b58eeSJosh Boyer
100142b58eeSJosh Boyer		DMA0: dma {
101142b58eeSJosh Boyer			compatible = "ibm,dma-440ep", "ibm,dma-440gp";
10271f34979SDavid Gibson			dcr-reg = <0x100 0x027>;
103142b58eeSJosh Boyer		};
104142b58eeSJosh Boyer
105142b58eeSJosh Boyer		MAL0: mcmal {
106142b58eeSJosh Boyer			compatible = "ibm,mcmal-440ep", "ibm,mcmal-440gp", "ibm,mcmal";
10771f34979SDavid Gibson			dcr-reg = <0x180 0x062>;
108142b58eeSJosh Boyer			num-tx-chans = <4>;
109e52f5677SValentine Barshak			num-rx-chans = <2>;
110142b58eeSJosh Boyer			interrupt-parent = <&MAL0>;
11171f34979SDavid Gibson			interrupts = <0x0 0x1 0x2 0x3 0x4>;
112142b58eeSJosh Boyer			#interrupt-cells = <1>;
11373925376SJosh Boyer			#address-cells = <0>;
11473925376SJosh Boyer			#size-cells = <0>;
11571f34979SDavid Gibson			interrupt-map = </*TXEOB*/ 0x0 &UIC0 0xa 0x4
11671f34979SDavid Gibson					/*RXEOB*/ 0x1 &UIC0 0xb 0x4
11771f34979SDavid Gibson					/*SERR*/  0x2 &UIC1 0x0 0x4
11871f34979SDavid Gibson					/*TXDE*/  0x3 &UIC1 0x1 0x4
11971f34979SDavid Gibson					/*RXDE*/  0x4 &UIC1 0x2 0x4>;
120142b58eeSJosh Boyer		};
121142b58eeSJosh Boyer
122142b58eeSJosh Boyer		POB0: opb {
123142b58eeSJosh Boyer		  	compatible = "ibm,opb-440ep", "ibm,opb-440gp", "ibm,opb";
124142b58eeSJosh Boyer			#address-cells = <1>;
125142b58eeSJosh Boyer			#size-cells = <1>;
126142b58eeSJosh Boyer			/* Bamboo is oddball in the 44x world and doesn't use the ERPN
127142b58eeSJosh Boyer			 * bits.
128142b58eeSJosh Boyer			 */
12971f34979SDavid Gibson		  	ranges = <0x00000000 0x00000000 0x00000000 0x80000000
13071f34979SDavid Gibson			          0x80000000 0x00000000 0x80000000 0x80000000>;
131142b58eeSJosh Boyer		  	interrupt-parent = <&UIC1>;
13271f34979SDavid Gibson		  	interrupts = <0x7 0x4>;
133142b58eeSJosh Boyer		  	clock-frequency = <0>; /* Filled in by zImage */
134142b58eeSJosh Boyer
135142b58eeSJosh Boyer			EBC0: ebc {
136142b58eeSJosh Boyer				compatible = "ibm,ebc-440ep", "ibm,ebc-440gp", "ibm,ebc";
13771f34979SDavid Gibson				dcr-reg = <0x012 0x002>;
138142b58eeSJosh Boyer				#address-cells = <2>;
139142b58eeSJosh Boyer				#size-cells = <1>;
140142b58eeSJosh Boyer				clock-frequency = <0>; /* Filled in by zImage */
14171f34979SDavid Gibson				interrupts = <0x5 0x1>;
142142b58eeSJosh Boyer				interrupt-parent = <&UIC1>;
143142b58eeSJosh Boyer			};
144142b58eeSJosh Boyer
145142b58eeSJosh Boyer			UART0: serial@ef600300 {
146142b58eeSJosh Boyer		   		device_type = "serial";
147142b58eeSJosh Boyer		   		compatible = "ns16550";
14871f34979SDavid Gibson		   		reg = <0xef600300 0x00000008>;
14971f34979SDavid Gibson		   		virtual-reg = <0xef600300>;
150142b58eeSJosh Boyer		   		clock-frequency = <0>; /* Filled in by zImage */
15171f34979SDavid Gibson		   		current-speed = <115200>;
152142b58eeSJosh Boyer		   		interrupt-parent = <&UIC0>;
15371f34979SDavid Gibson		   		interrupts = <0x0 0x4>;
154142b58eeSJosh Boyer	   		};
155142b58eeSJosh Boyer
156142b58eeSJosh Boyer			UART1: serial@ef600400 {
157142b58eeSJosh Boyer		   		device_type = "serial";
158142b58eeSJosh Boyer		   		compatible = "ns16550";
15971f34979SDavid Gibson		   		reg = <0xef600400 0x00000008>;
16071f34979SDavid Gibson		   		virtual-reg = <0xef600400>;
161142b58eeSJosh Boyer		   		clock-frequency = <0>;
162142b58eeSJosh Boyer		   		current-speed = <0>;
163142b58eeSJosh Boyer		   		interrupt-parent = <&UIC0>;
16471f34979SDavid Gibson		   		interrupts = <0x1 0x4>;
165142b58eeSJosh Boyer	   		};
166142b58eeSJosh Boyer
167142b58eeSJosh Boyer			UART2: serial@ef600500 {
168142b58eeSJosh Boyer		   		device_type = "serial";
169142b58eeSJosh Boyer		   		compatible = "ns16550";
17071f34979SDavid Gibson		   		reg = <0xef600500 0x00000008>;
17171f34979SDavid Gibson		   		virtual-reg = <0xef600500>;
172142b58eeSJosh Boyer		   		clock-frequency = <0>;
173142b58eeSJosh Boyer		   		current-speed = <0>;
174142b58eeSJosh Boyer		   		interrupt-parent = <&UIC0>;
17571f34979SDavid Gibson		   		interrupts = <0x3 0x4>;
176142b58eeSJosh Boyer	   		};
177142b58eeSJosh Boyer
178142b58eeSJosh Boyer			UART3: serial@ef600600 {
179142b58eeSJosh Boyer		   		device_type = "serial";
180142b58eeSJosh Boyer		   		compatible = "ns16550";
18171f34979SDavid Gibson		   		reg = <0xef600600 0x00000008>;
18271f34979SDavid Gibson		   		virtual-reg = <0xef600600>;
183142b58eeSJosh Boyer		   		clock-frequency = <0>;
184142b58eeSJosh Boyer		   		current-speed = <0>;
185142b58eeSJosh Boyer		   		interrupt-parent = <&UIC0>;
18671f34979SDavid Gibson		   		interrupts = <0x4 0x4>;
187142b58eeSJosh Boyer	   		};
188142b58eeSJosh Boyer
189142b58eeSJosh Boyer			IIC0: i2c@ef600700 {
190142b58eeSJosh Boyer				compatible = "ibm,iic-440ep", "ibm,iic-440gp", "ibm,iic";
19171f34979SDavid Gibson				reg = <0xef600700 0x00000014>;
192142b58eeSJosh Boyer				interrupt-parent = <&UIC0>;
19371f34979SDavid Gibson				interrupts = <0x2 0x4>;
194142b58eeSJosh Boyer			};
195142b58eeSJosh Boyer
196142b58eeSJosh Boyer			IIC1: i2c@ef600800 {
197142b58eeSJosh Boyer				compatible = "ibm,iic-440ep", "ibm,iic-440gp", "ibm,iic";
19871f34979SDavid Gibson				reg = <0xef600800 0x00000014>;
199142b58eeSJosh Boyer				interrupt-parent = <&UIC0>;
20071f34979SDavid Gibson				interrupts = <0x7 0x4>;
201142b58eeSJosh Boyer			};
202142b58eeSJosh Boyer
203142b58eeSJosh Boyer			ZMII0: emac-zmii@ef600d00 {
204142b58eeSJosh Boyer				compatible = "ibm,zmii-440ep", "ibm,zmii-440gp", "ibm,zmii";
20571f34979SDavid Gibson				reg = <0xef600d00 0x0000000c>;
206142b58eeSJosh Boyer			};
207142b58eeSJosh Boyer
208142b58eeSJosh Boyer			EMAC0: ethernet@ef600e00 {
209142b58eeSJosh Boyer				device_type = "network";
210142b58eeSJosh Boyer				compatible = "ibm,emac-440ep", "ibm,emac-440gp", "ibm,emac";
211142b58eeSJosh Boyer				interrupt-parent = <&UIC1>;
21271f34979SDavid Gibson				interrupts = <0x1c 0x4 0x1d 0x4>;
21371f34979SDavid Gibson				reg = <0xef600e00 0x00000070>;
214142b58eeSJosh Boyer				local-mac-address = [000000000000];
215142b58eeSJosh Boyer				mal-device = <&MAL0>;
216142b58eeSJosh Boyer				mal-tx-channel = <0 1>;
217142b58eeSJosh Boyer				mal-rx-channel = <0>;
218142b58eeSJosh Boyer				cell-index = <0>;
21971f34979SDavid Gibson				max-frame-size = <1500>;
22071f34979SDavid Gibson				rx-fifo-size = <4096>;
22171f34979SDavid Gibson				tx-fifo-size = <2048>;
222142b58eeSJosh Boyer				phy-mode = "rmii";
22371f34979SDavid Gibson				phy-map = <0x00000000>;
224142b58eeSJosh Boyer				zmii-device = <&ZMII0>;
225142b58eeSJosh Boyer				zmii-channel = <0>;
226142b58eeSJosh Boyer			};
227142b58eeSJosh Boyer
228142b58eeSJosh Boyer			EMAC1: ethernet@ef600f00 {
229142b58eeSJosh Boyer				device_type = "network";
230142b58eeSJosh Boyer				compatible = "ibm,emac-440ep", "ibm,emac-440gp", "ibm,emac";
231142b58eeSJosh Boyer				interrupt-parent = <&UIC1>;
23271f34979SDavid Gibson				interrupts = <0x1e 0x4 0x1f 0x4>;
23371f34979SDavid Gibson				reg = <0xef600f00 0x00000070>;
234142b58eeSJosh Boyer				local-mac-address = [000000000000];
235142b58eeSJosh Boyer				mal-device = <&MAL0>;
236142b58eeSJosh Boyer				mal-tx-channel = <2 3>;
237142b58eeSJosh Boyer				mal-rx-channel = <1>;
238142b58eeSJosh Boyer				cell-index = <1>;
23971f34979SDavid Gibson				max-frame-size = <1500>;
24071f34979SDavid Gibson				rx-fifo-size = <4096>;
24171f34979SDavid Gibson				tx-fifo-size = <2048>;
242142b58eeSJosh Boyer				phy-mode = "rmii";
24371f34979SDavid Gibson				phy-map = <0x00000000>;
244142b58eeSJosh Boyer				zmii-device = <&ZMII0>;
245142b58eeSJosh Boyer				zmii-channel = <1>;
246142b58eeSJosh Boyer			};
247007b6aa8SBenjamin Herrenschmidt
248007b6aa8SBenjamin Herrenschmidt			usb@ef601000 {
249007b6aa8SBenjamin Herrenschmidt				compatible = "ohci-be";
25071f34979SDavid Gibson				reg = <0xef601000 0x00000080>;
25171f34979SDavid Gibson				interrupts = <0x8 0x1 0x9 0x1>;
252007b6aa8SBenjamin Herrenschmidt				interrupt-parent = < &UIC1 >;
253007b6aa8SBenjamin Herrenschmidt			};
254142b58eeSJosh Boyer		};
255c3fc2de0SBenjamin Herrenschmidt
256c3fc2de0SBenjamin Herrenschmidt		PCI0: pci@ec000000 {
257c3fc2de0SBenjamin Herrenschmidt			device_type = "pci";
258c3fc2de0SBenjamin Herrenschmidt			#interrupt-cells = <1>;
259c3fc2de0SBenjamin Herrenschmidt			#size-cells = <2>;
260c3fc2de0SBenjamin Herrenschmidt			#address-cells = <3>;
261c3fc2de0SBenjamin Herrenschmidt			compatible = "ibm,plb440ep-pci", "ibm,plb-pci";
262c3fc2de0SBenjamin Herrenschmidt			primary;
26371f34979SDavid Gibson			reg = <0x00000000 0xeec00000 0x00000008	/* Config space access */
26471f34979SDavid Gibson			       0x00000000 0xeed00000 0x00000004	/* IACK */
26571f34979SDavid Gibson			       0x00000000 0xeed00000 0x00000004	/* Special cycle */
26671f34979SDavid Gibson			       0x00000000 0xef400000 0x00000040>;	/* Internal registers */
267c3fc2de0SBenjamin Herrenschmidt
268c3fc2de0SBenjamin Herrenschmidt			/* Outbound ranges, one memory and one IO,
269c3fc2de0SBenjamin Herrenschmidt			 * later cannot be changed. Chip supports a second
270c3fc2de0SBenjamin Herrenschmidt			 * IO range but we don't use it for now
2713cfb9ebeSBenjamin Herrenschmidt			 * The chip also supports a larger memory range but
2723cfb9ebeSBenjamin Herrenschmidt			 * it's not naturally aligned, so our code will break
273c3fc2de0SBenjamin Herrenschmidt			 */
2743cfb9ebeSBenjamin Herrenschmidt			ranges = <0x02000000 0x00000000 0xa0000000 0x00000000 0xa0000000 0x00000000 0x20000000
27584d727a1SBenjamin Herrenschmidt				  0x02000000 0x00000000 0x00000000 0x00000000 0xe0000000 0x00000000 0x00100000
27671f34979SDavid Gibson				  0x01000000 0x00000000 0x00000000 0x00000000 0xe8000000 0x00000000 0x00010000>;
277c3fc2de0SBenjamin Herrenschmidt
278c3fc2de0SBenjamin Herrenschmidt			/* Inbound 2GB range starting at 0 */
27971f34979SDavid Gibson			dma-ranges = <0x42000000 0x0 0x0 0x0 0x0 0x0 0x80000000>;
280c3fc2de0SBenjamin Herrenschmidt
281c3fc2de0SBenjamin Herrenschmidt			/* Bamboo has all 4 IRQ pins tied together per slot */
28271f34979SDavid Gibson			interrupt-map-mask = <0xf800 0x0 0x0 0x0>;
283c3fc2de0SBenjamin Herrenschmidt			interrupt-map = <
284c3fc2de0SBenjamin Herrenschmidt				/* IDSEL 1 */
28571f34979SDavid Gibson				0x800 0x0 0x0 0x0 &UIC0 0x1c 0x8
286c3fc2de0SBenjamin Herrenschmidt
287c3fc2de0SBenjamin Herrenschmidt				/* IDSEL 2 */
28871f34979SDavid Gibson				0x1000 0x0 0x0 0x0 &UIC0 0x1b 0x8
289c3fc2de0SBenjamin Herrenschmidt
290c3fc2de0SBenjamin Herrenschmidt				/* IDSEL 3 */
29171f34979SDavid Gibson				0x1800 0x0 0x0 0x0 &UIC0 0x1a 0x8
292c3fc2de0SBenjamin Herrenschmidt
293c3fc2de0SBenjamin Herrenschmidt				/* IDSEL 4 */
29471f34979SDavid Gibson				0x2000 0x0 0x0 0x0 &UIC0 0x19 0x8
295c3fc2de0SBenjamin Herrenschmidt			>;
296c3fc2de0SBenjamin Herrenschmidt		};
297142b58eeSJosh Boyer	};
298142b58eeSJosh Boyer
299142b58eeSJosh Boyer	chosen {
30078e5dfeaSRob Herring		stdout-path = "/plb/opb/serial@ef600300";
301142b58eeSJosh Boyer	};
302142b58eeSJosh Boyer};
303