1a89eda26SStefan Roese/*
2a89eda26SStefan Roese * Device Tree Source for Mosaix Technologies, Inc. ICON board
3a89eda26SStefan Roese *
4a89eda26SStefan Roese * Copyright 2010 DENX Software Engineering, Stefan Roese <sr@denx.de>
5a89eda26SStefan Roese *
6a89eda26SStefan Roese * This file is licensed under the terms of the GNU General Public
7a89eda26SStefan Roese * License version 2.  This program is licensed "as is" without
8a89eda26SStefan Roese * any warranty of any kind, whether express or implied.
9a89eda26SStefan Roese */
10a89eda26SStefan Roese
11a89eda26SStefan Roese/dts-v1/;
12a89eda26SStefan Roese
13a89eda26SStefan Roese/ {
14a89eda26SStefan Roese	#address-cells = <2>;
15a89eda26SStefan Roese	#size-cells = <2>;
16a89eda26SStefan Roese	model = "mosaixtech,icon";
17a89eda26SStefan Roese	compatible = "mosaixtech,icon";
18a89eda26SStefan Roese	dcr-parent = <&{/cpus/cpu@0}>;
19a89eda26SStefan Roese
20a89eda26SStefan Roese	aliases {
21a89eda26SStefan Roese		ethernet0 = &EMAC0;
22a89eda26SStefan Roese		serial0 = &UART0;
23a89eda26SStefan Roese		serial1 = &UART1;
24a89eda26SStefan Roese		serial2 = &UART2;
25a89eda26SStefan Roese	};
26a89eda26SStefan Roese
27a89eda26SStefan Roese	cpus {
28a89eda26SStefan Roese		#address-cells = <1>;
29a89eda26SStefan Roese		#size-cells = <0>;
30a89eda26SStefan Roese
31a89eda26SStefan Roese		cpu@0 {
32a89eda26SStefan Roese			device_type = "cpu";
33a89eda26SStefan Roese			model = "PowerPC,440SPe";
34a89eda26SStefan Roese			reg = <0x00000000>;
35a89eda26SStefan Roese			clock-frequency = <0>; /* Filled in by U-Boot */
36a89eda26SStefan Roese			timebase-frequency = <0>; /* Filled in by U-Boot */
37a89eda26SStefan Roese			i-cache-line-size = <32>;
38a89eda26SStefan Roese			d-cache-line-size = <32>;
39a89eda26SStefan Roese			i-cache-size = <32768>;
40a89eda26SStefan Roese			d-cache-size = <32768>;
41a89eda26SStefan Roese			dcr-controller;
42a89eda26SStefan Roese			dcr-access-method = "native";
43a89eda26SStefan Roese			reset-type = <2>;	/* Use chip-reset */
44a89eda26SStefan Roese		};
45a89eda26SStefan Roese	};
46a89eda26SStefan Roese
47a89eda26SStefan Roese	memory {
48a89eda26SStefan Roese		device_type = "memory";
49a89eda26SStefan Roese		reg = <0x0 0x00000000 0x0 0x00000000>; /* Filled in by U-Boot */
50a89eda26SStefan Roese	};
51a89eda26SStefan Roese
52a89eda26SStefan Roese	UIC0: interrupt-controller0 {
53a89eda26SStefan Roese		compatible = "ibm,uic-440spe","ibm,uic";
54a89eda26SStefan Roese		interrupt-controller;
55a89eda26SStefan Roese		cell-index = <0>;
56a89eda26SStefan Roese		dcr-reg = <0x0c0 0x009>;
57a89eda26SStefan Roese		#address-cells = <0>;
58a89eda26SStefan Roese		#size-cells = <0>;
59a89eda26SStefan Roese		#interrupt-cells = <2>;
60a89eda26SStefan Roese	};
61a89eda26SStefan Roese
62a89eda26SStefan Roese	UIC1: interrupt-controller1 {
63a89eda26SStefan Roese		compatible = "ibm,uic-440spe","ibm,uic";
64a89eda26SStefan Roese		interrupt-controller;
65a89eda26SStefan Roese		cell-index = <1>;
66a89eda26SStefan Roese		dcr-reg = <0x0d0 0x009>;
67a89eda26SStefan Roese		#address-cells = <0>;
68a89eda26SStefan Roese		#size-cells = <0>;
69a89eda26SStefan Roese		#interrupt-cells = <2>;
70a89eda26SStefan Roese		interrupts = <0x1e 0x4 0x1f 0x4>; /* cascade */
71a89eda26SStefan Roese		interrupt-parent = <&UIC0>;
72a89eda26SStefan Roese	};
73a89eda26SStefan Roese
74a89eda26SStefan Roese	UIC2: interrupt-controller2 {
75a89eda26SStefan Roese		compatible = "ibm,uic-440spe","ibm,uic";
76a89eda26SStefan Roese		interrupt-controller;
77a89eda26SStefan Roese		cell-index = <2>;
78a89eda26SStefan Roese		dcr-reg = <0x0e0 0x009>;
79a89eda26SStefan Roese		#address-cells = <0>;
80a89eda26SStefan Roese		#size-cells = <0>;
81a89eda26SStefan Roese		#interrupt-cells = <2>;
82a89eda26SStefan Roese		interrupts = <0xa 0x4 0xb 0x4>; /* cascade */
83a89eda26SStefan Roese		interrupt-parent = <&UIC0>;
84a89eda26SStefan Roese	};
85a89eda26SStefan Roese
86a89eda26SStefan Roese	UIC3: interrupt-controller3 {
87a89eda26SStefan Roese		compatible = "ibm,uic-440spe","ibm,uic";
88a89eda26SStefan Roese		interrupt-controller;
89a89eda26SStefan Roese		cell-index = <3>;
90a89eda26SStefan Roese		dcr-reg = <0x0f0 0x009>;
91a89eda26SStefan Roese		#address-cells = <0>;
92a89eda26SStefan Roese		#size-cells = <0>;
93a89eda26SStefan Roese		#interrupt-cells = <2>;
94a89eda26SStefan Roese		interrupts = <0x10 0x4 0x11 0x4>; /* cascade */
95a89eda26SStefan Roese		interrupt-parent = <&UIC0>;
96a89eda26SStefan Roese	};
97a89eda26SStefan Roese
98a89eda26SStefan Roese	SDR0: sdr {
99a89eda26SStefan Roese		compatible = "ibm,sdr-440spe";
100a89eda26SStefan Roese		dcr-reg = <0x00e 0x002>;
101a89eda26SStefan Roese	};
102a89eda26SStefan Roese
103a89eda26SStefan Roese	CPR0: cpr {
104a89eda26SStefan Roese		compatible = "ibm,cpr-440spe";
105a89eda26SStefan Roese		dcr-reg = <0x00c 0x002>;
106a89eda26SStefan Roese	};
107a89eda26SStefan Roese
108a89eda26SStefan Roese	MQ0: mq {
109a89eda26SStefan Roese		compatible = "ibm,mq-440spe";
110a89eda26SStefan Roese		dcr-reg = <0x040 0x020>;
111a89eda26SStefan Roese	};
112a89eda26SStefan Roese
113a89eda26SStefan Roese	plb {
114a89eda26SStefan Roese		compatible = "ibm,plb-440spe", "ibm,plb-440gp", "ibm,plb4";
115a89eda26SStefan Roese		#address-cells = <2>;
116a89eda26SStefan Roese		#size-cells = <1>;
117a89eda26SStefan Roese		/*        addr-child     addr-parent    size */
118a89eda26SStefan Roese		ranges = <0x4 0x00100000 0x4 0x00100000 0x00001000
119a89eda26SStefan Roese			  0x4 0x00200000 0x4 0x00200000 0x00000400
120a89eda26SStefan Roese			  0x4 0xe0000000 0x4 0xe0000000 0x20000000
121a89eda26SStefan Roese			  0xc 0x00000000 0xc 0x00000000 0x20000000
122a89eda26SStefan Roese			  0xd 0x00000000 0xd 0x00000000 0x80000000
123a89eda26SStefan Roese			  0xd 0x80000000 0xd 0x80000000 0x80000000
124a89eda26SStefan Roese			  0xe 0x00000000 0xe 0x00000000 0x80000000
125a89eda26SStefan Roese			  0xe 0x80000000 0xe 0x80000000 0x80000000
126a89eda26SStefan Roese			  0xf 0x00000000 0xf 0x00000000 0x80000000
127a89eda26SStefan Roese			  0xf 0x80000000 0xf 0x80000000 0x80000000>;
128a89eda26SStefan Roese		clock-frequency = <0>; /* Filled in by U-Boot */
129a89eda26SStefan Roese
130a89eda26SStefan Roese		SDRAM0: sdram {
131a89eda26SStefan Roese			compatible = "ibm,sdram-440spe", "ibm,sdram-405gp";
132a89eda26SStefan Roese			dcr-reg = <0x010 0x002>;
133a89eda26SStefan Roese		};
134a89eda26SStefan Roese
135a89eda26SStefan Roese		MAL0: mcmal {
136a89eda26SStefan Roese			compatible = "ibm,mcmal-440spe", "ibm,mcmal2";
137a89eda26SStefan Roese			dcr-reg = <0x180 0x062>;
138a89eda26SStefan Roese			num-tx-chans = <2>;
139a89eda26SStefan Roese			num-rx-chans = <1>;
140a89eda26SStefan Roese			interrupt-parent = <&MAL0>;
141a89eda26SStefan Roese			interrupts = <0x0 0x1 0x2 0x3 0x4>;
142a89eda26SStefan Roese			#interrupt-cells = <1>;
143a89eda26SStefan Roese			#address-cells = <0>;
144a89eda26SStefan Roese			#size-cells = <0>;
145a89eda26SStefan Roese			interrupt-map = </*TXEOB*/ 0x0 &UIC1 0x6 0x4
146a89eda26SStefan Roese					 /*RXEOB*/ 0x1 &UIC1 0x7 0x4
147a89eda26SStefan Roese					 /*SERR*/  0x2 &UIC1 0x1 0x4
148a89eda26SStefan Roese					 /*TXDE*/  0x3 &UIC1 0x2 0x4
149a89eda26SStefan Roese					 /*RXDE*/  0x4 &UIC1 0x3 0x4>;
150a89eda26SStefan Roese		};
151a89eda26SStefan Roese
152a89eda26SStefan Roese		POB0: opb {
153a89eda26SStefan Roese			compatible = "ibm,opb-440spe", "ibm,opb-440gp", "ibm,opb";
154a89eda26SStefan Roese			#address-cells = <1>;
155a89eda26SStefan Roese			#size-cells = <1>;
156a89eda26SStefan Roese			ranges = <0xe0000000 0x00000004 0xe0000000 0x20000000>;
157a89eda26SStefan Roese			clock-frequency = <0>; /* Filled in by U-Boot */
158a89eda26SStefan Roese
159a89eda26SStefan Roese			EBC0: ebc {
160a89eda26SStefan Roese				compatible = "ibm,ebc-440spe", "ibm,ebc-440gp", "ibm,ebc";
161a89eda26SStefan Roese				dcr-reg = <0x012 0x002>;
162a89eda26SStefan Roese				#address-cells = <2>;
163a89eda26SStefan Roese				#size-cells = <1>;
164a89eda26SStefan Roese				clock-frequency = <0>; /* Filled in by U-Boot */
165a89eda26SStefan Roese				/* ranges property is supplied by U-Boot */
166a89eda26SStefan Roese				interrupts = <0x5 0x1>;
167a89eda26SStefan Roese				interrupt-parent = <&UIC1>;
168a89eda26SStefan Roese
169a89eda26SStefan Roese				nor_flash@0,0 {
170a89eda26SStefan Roese					compatible = "cfi-flash";
171a89eda26SStefan Roese					bank-width = <2>;
172a89eda26SStefan Roese					reg = <0x00000000 0x00000000 0x01000000>;
173a89eda26SStefan Roese					#address-cells = <1>;
174a89eda26SStefan Roese					#size-cells = <1>;
175a89eda26SStefan Roese					partition@0 {
176a89eda26SStefan Roese						label = "kernel";
177a89eda26SStefan Roese						reg = <0x00000000 0x001e0000>;
178a89eda26SStefan Roese					};
179a89eda26SStefan Roese					partition@1e0000 {
180a89eda26SStefan Roese						label = "dtb";
181a89eda26SStefan Roese						reg = <0x001e0000 0x00020000>;
182a89eda26SStefan Roese					};
183a89eda26SStefan Roese					partition@200000 {
184a89eda26SStefan Roese						label = "root";
185a89eda26SStefan Roese						reg = <0x00200000 0x00200000>;
186a89eda26SStefan Roese					};
187a89eda26SStefan Roese					partition@400000 {
188a89eda26SStefan Roese						label = "user";
189a89eda26SStefan Roese						reg = <0x00400000 0x00b60000>;
190a89eda26SStefan Roese					};
191a89eda26SStefan Roese					partition@f60000 {
192a89eda26SStefan Roese						label = "env";
193a89eda26SStefan Roese						reg = <0x00f60000 0x00040000>;
194a89eda26SStefan Roese					};
195a89eda26SStefan Roese					partition@fa0000 {
196a89eda26SStefan Roese						label = "u-boot";
197a89eda26SStefan Roese						reg = <0x00fa0000 0x00060000>;
198a89eda26SStefan Roese					};
199a89eda26SStefan Roese				};
200a89eda26SStefan Roese			};
201a89eda26SStefan Roese
202a89eda26SStefan Roese			UART0: serial@f0000200 {
203a89eda26SStefan Roese				device_type = "serial";
204a89eda26SStefan Roese				compatible = "ns16550";
205a89eda26SStefan Roese				reg = <0xf0000200 0x00000008>;
206a89eda26SStefan Roese				virtual-reg = <0xa0000200>;
207a89eda26SStefan Roese				clock-frequency = <0>; /* Filled in by U-Boot */
208a89eda26SStefan Roese				current-speed = <115200>;
209a89eda26SStefan Roese				interrupt-parent = <&UIC0>;
210a89eda26SStefan Roese				interrupts = <0x0 0x4>;
211a89eda26SStefan Roese			};
212a89eda26SStefan Roese
213a89eda26SStefan Roese			UART1: serial@f0000300 {
214a89eda26SStefan Roese				device_type = "serial";
215a89eda26SStefan Roese				compatible = "ns16550";
216a89eda26SStefan Roese				reg = <0xf0000300 0x00000008>;
217a89eda26SStefan Roese				virtual-reg = <0xa0000300>;
218a89eda26SStefan Roese				clock-frequency = <0>;
219a89eda26SStefan Roese				current-speed = <0>;
220a89eda26SStefan Roese				interrupt-parent = <&UIC0>;
221a89eda26SStefan Roese				interrupts = <0x1 0x4>;
222a89eda26SStefan Roese			};
223a89eda26SStefan Roese
224a89eda26SStefan Roese
225a89eda26SStefan Roese			UART2: serial@f0000600 {
226a89eda26SStefan Roese				device_type = "serial";
227a89eda26SStefan Roese				compatible = "ns16550";
228a89eda26SStefan Roese				reg = <0xf0000600 0x00000008>;
229a89eda26SStefan Roese				virtual-reg = <0xa0000600>;
230a89eda26SStefan Roese				clock-frequency = <0>;
231a89eda26SStefan Roese				current-speed = <0>;
232a89eda26SStefan Roese				interrupt-parent = <&UIC1>;
233a89eda26SStefan Roese				interrupts = <0x5 0x4>;
234a89eda26SStefan Roese			};
235a89eda26SStefan Roese
236a89eda26SStefan Roese			IIC0: i2c@f0000400 {
237a89eda26SStefan Roese				compatible = "ibm,iic-440spe", "ibm,iic-440gp", "ibm,iic";
238a89eda26SStefan Roese				reg = <0xf0000400 0x00000014>;
239a89eda26SStefan Roese				interrupt-parent = <&UIC0>;
240a89eda26SStefan Roese				interrupts = <0x2 0x4>;
241a89eda26SStefan Roese			};
242a89eda26SStefan Roese
243a89eda26SStefan Roese			IIC1: i2c@f0000500 {
244a89eda26SStefan Roese				compatible = "ibm,iic-440spe", "ibm,iic-440gp", "ibm,iic";
245a89eda26SStefan Roese				reg = <0xf0000500 0x00000014>;
246a89eda26SStefan Roese				interrupt-parent = <&UIC0>;
247a89eda26SStefan Roese				interrupts = <0x3 0x4>;
248a89eda26SStefan Roese				#address-cells = <1>;
249a89eda26SStefan Roese				#size-cells = <0>;
250a89eda26SStefan Roese
251a89eda26SStefan Roese                                rtc@68 {
2525edc2aaeSStefan Agner                                        compatible = "st,m41t00";
253a89eda26SStefan Roese                                        reg = <0x68>;
254a89eda26SStefan Roese                                };
255a89eda26SStefan Roese			};
256a89eda26SStefan Roese
257a89eda26SStefan Roese			EMAC0: ethernet@f0000800 {
258a89eda26SStefan Roese				linux,network-index = <0x0>;
259a89eda26SStefan Roese				device_type = "network";
260a89eda26SStefan Roese				compatible = "ibm,emac-440spe", "ibm,emac4";
261a89eda26SStefan Roese				interrupt-parent = <&UIC1>;
262a89eda26SStefan Roese				interrupts = <0x1c 0x4 0x1d 0x4>;
263a89eda26SStefan Roese				reg = <0xf0000800 0x00000074>;
264a89eda26SStefan Roese				local-mac-address = [000000000000];
265a89eda26SStefan Roese				mal-device = <&MAL0>;
266a89eda26SStefan Roese				mal-tx-channel = <0>;
267a89eda26SStefan Roese				mal-rx-channel = <0>;
268a89eda26SStefan Roese				cell-index = <0>;
269a89eda26SStefan Roese				max-frame-size = <9000>;
270a89eda26SStefan Roese				rx-fifo-size = <4096>;
271a89eda26SStefan Roese				tx-fifo-size = <2048>;
272a89eda26SStefan Roese				phy-mode = "gmii";
273a89eda26SStefan Roese				phy-map = <0x00000000>;
274a89eda26SStefan Roese				has-inverted-stacr-oc;
275a89eda26SStefan Roese				has-new-stacr-staopc;
276a89eda26SStefan Roese			};
277a89eda26SStefan Roese		};
278a89eda26SStefan Roese
279a89eda26SStefan Roese		PCIX0: pci@c0ec00000 {
280a89eda26SStefan Roese			device_type = "pci";
281a89eda26SStefan Roese			#interrupt-cells = <1>;
282a89eda26SStefan Roese			#size-cells = <2>;
283a89eda26SStefan Roese			#address-cells = <3>;
284a89eda26SStefan Roese			compatible = "ibm,plb-pcix-440spe", "ibm,plb-pcix";
285a89eda26SStefan Roese			primary;
286a89eda26SStefan Roese			large-inbound-windows;
287a89eda26SStefan Roese			enable-msi-hole;
288a89eda26SStefan Roese			reg = <0x0000000c 0x0ec00000 0x00000008   /* Config space access */
289a89eda26SStefan Roese			       0x00000000 0x00000000 0x00000000   /* no IACK cycles */
290a89eda26SStefan Roese			       0x0000000c 0x0ed00000 0x00000004   /* Special cycles */
291a89eda26SStefan Roese			       0x0000000c 0x0ec80000 0x00000100   /* Internal registers */
292a89eda26SStefan Roese			       0x0000000c 0x0ec80100 0x000000fc>; /* Internal messaging registers */
293a89eda26SStefan Roese
294a89eda26SStefan Roese			/* Outbound ranges, one memory and one IO,
295a89eda26SStefan Roese			 * later cannot be changed
296a89eda26SStefan Roese			 */
297a89eda26SStefan Roese			ranges = <0x02000000 0x00000000 0x80000000 0x0000000d 0x80000000 0x00000000 0x80000000
298a89eda26SStefan Roese				  0x01000000 0x00000000 0x00000000 0x0000000c 0x08000000 0x00000000 0x00010000>;
299a89eda26SStefan Roese
300a89eda26SStefan Roese			/* Inbound 4GB range starting at 0 */
301a89eda26SStefan Roese			dma-ranges = <0x42000000 0x0 0x0 0x0 0x0 0x1 0x00000000>;
302a89eda26SStefan Roese
303a89eda26SStefan Roese			/* This drives busses 0 to 0xf */
304a89eda26SStefan Roese			bus-range = <0x0 0xf>;
305a89eda26SStefan Roese
306a89eda26SStefan Roese			/* PCI-X interrupt (SM502) is routed to extIRQ10 (UIC1, 19) */
307a89eda26SStefan Roese			interrupt-map-mask = <0x0 0x0 0x0 0x0>;
308a89eda26SStefan Roese			interrupt-map = <0x0 0x0 0x0 0x0 &UIC1 19 0x8>;
309a89eda26SStefan Roese		};
310a89eda26SStefan Roese
31186bc917dSMichael Ellerman		PCIE0: pcie@d00000000 {
312a89eda26SStefan Roese			device_type = "pci";
313a89eda26SStefan Roese			#interrupt-cells = <1>;
314a89eda26SStefan Roese			#size-cells = <2>;
315a89eda26SStefan Roese			#address-cells = <3>;
316a89eda26SStefan Roese			compatible = "ibm,plb-pciex-440spe", "ibm,plb-pciex";
317a89eda26SStefan Roese			primary;
318a89eda26SStefan Roese			port = <0x0>; /* port number */
319a89eda26SStefan Roese			reg = <0x0000000d 0x00000000 0x20000000	/* Config space access */
320a89eda26SStefan Roese			       0x0000000c 0x10000000 0x00001000>;	/* Registers */
321a89eda26SStefan Roese			dcr-reg = <0x100 0x020>;
322a89eda26SStefan Roese			sdr-base = <0x300>;
323a89eda26SStefan Roese
324a89eda26SStefan Roese			/* Outbound ranges, one memory and one IO,
325a89eda26SStefan Roese			 * later cannot be changed
326a89eda26SStefan Roese			 */
327a89eda26SStefan Roese			ranges = <0x02000000 0x00000000 0x80000000 0x0000000e 0x00000000 0x00000000 0x80000000
328a89eda26SStefan Roese				  0x01000000 0x00000000 0x00000000 0x0000000f 0x80000000 0x00000000 0x00010000>;
329a89eda26SStefan Roese
330a89eda26SStefan Roese			/* Inbound 4GB range starting at 0 */
331a89eda26SStefan Roese			dma-ranges = <0x42000000 0x0 0x0 0x0 0x0 0x1 0x00000000>;
332a89eda26SStefan Roese
333a89eda26SStefan Roese			/* This drives busses 0x10 to 0x1f */
334a89eda26SStefan Roese			bus-range = <0x10 0x1f>;
335a89eda26SStefan Roese
336a89eda26SStefan Roese			/* Legacy interrupts (note the weird polarity, the bridge seems
337a89eda26SStefan Roese			 * to invert PCIe legacy interrupts).
338a89eda26SStefan Roese			 * We are de-swizzling here because the numbers are actually for
339a89eda26SStefan Roese			 * port of the root complex virtual P2P bridge. But I want
340a89eda26SStefan Roese			 * to avoid putting a node for it in the tree, so the numbers
341a89eda26SStefan Roese			 * below are basically de-swizzled numbers.
342a89eda26SStefan Roese			 * The real slot is on idsel 0, so the swizzling is 1:1
343a89eda26SStefan Roese			 */
344a89eda26SStefan Roese			interrupt-map-mask = <0x0 0x0 0x0 0x7>;
345a89eda26SStefan Roese			interrupt-map = <
346a89eda26SStefan Roese				0x0 0x0 0x0 0x1 &UIC3 0x0 0x4 /* swizzled int A */
347a89eda26SStefan Roese				0x0 0x0 0x0 0x2 &UIC3 0x1 0x4 /* swizzled int B */
348a89eda26SStefan Roese				0x0 0x0 0x0 0x3 &UIC3 0x2 0x4 /* swizzled int C */
349a89eda26SStefan Roese				0x0 0x0 0x0 0x4 &UIC3 0x3 0x4 /* swizzled int D */>;
350a89eda26SStefan Roese		};
351a89eda26SStefan Roese
35286bc917dSMichael Ellerman		PCIE1: pcie@d20000000 {
353a89eda26SStefan Roese			device_type = "pci";
354a89eda26SStefan Roese			#interrupt-cells = <1>;
355a89eda26SStefan Roese			#size-cells = <2>;
356a89eda26SStefan Roese			#address-cells = <3>;
357a89eda26SStefan Roese			compatible = "ibm,plb-pciex-440spe", "ibm,plb-pciex";
358a89eda26SStefan Roese			primary;
359a89eda26SStefan Roese			port = <0x1>; /* port number */
360a89eda26SStefan Roese			reg = <0x0000000d 0x20000000 0x20000000	/* Config space access */
361a89eda26SStefan Roese			       0x0000000c 0x10001000 0x00001000>;	/* Registers */
362a89eda26SStefan Roese			dcr-reg = <0x120 0x020>;
363a89eda26SStefan Roese			sdr-base = <0x340>;
364a89eda26SStefan Roese
365a89eda26SStefan Roese			/* Outbound ranges, one memory and one IO,
366a89eda26SStefan Roese			 * later cannot be changed
367a89eda26SStefan Roese			 */
368a89eda26SStefan Roese			ranges = <0x02000000 0x00000000 0x80000000 0x0000000e 0x80000000 0x00000000 0x80000000
369a89eda26SStefan Roese				  0x01000000 0x00000000 0x00000000 0x0000000f 0x80010000 0x00000000 0x00010000>;
370a89eda26SStefan Roese
371a89eda26SStefan Roese			/* Inbound 4GB range starting at 0 */
372a89eda26SStefan Roese			dma-ranges = <0x42000000 0x0 0x0 0x0 0x0 0x1 0x00000000>;
373a89eda26SStefan Roese
374a89eda26SStefan Roese			/* This drives busses 0x20 to 0x2f */
375a89eda26SStefan Roese			bus-range = <0x20 0x2f>;
376a89eda26SStefan Roese
377a89eda26SStefan Roese			/* Legacy interrupts (note the weird polarity, the bridge seems
378a89eda26SStefan Roese			 * to invert PCIe legacy interrupts).
379a89eda26SStefan Roese			 * We are de-swizzling here because the numbers are actually for
380a89eda26SStefan Roese			 * port of the root complex virtual P2P bridge. But I want
381a89eda26SStefan Roese			 * to avoid putting a node for it in the tree, so the numbers
382a89eda26SStefan Roese			 * below are basically de-swizzled numbers.
383a89eda26SStefan Roese			 * The real slot is on idsel 0, so the swizzling is 1:1
384a89eda26SStefan Roese			 */
385a89eda26SStefan Roese			interrupt-map-mask = <0x0 0x0 0x0 0x7>;
386a89eda26SStefan Roese			interrupt-map = <
387a89eda26SStefan Roese				0x0 0x0 0x0 0x1 &UIC3 0x4 0x4 /* swizzled int A */
388a89eda26SStefan Roese				0x0 0x0 0x0 0x2 &UIC3 0x5 0x4 /* swizzled int B */
389a89eda26SStefan Roese				0x0 0x0 0x0 0x3 &UIC3 0x6 0x4 /* swizzled int C */
390a89eda26SStefan Roese				0x0 0x0 0x0 0x4 &UIC3 0x7 0x4 /* swizzled int D */>;
391a89eda26SStefan Roese		};
392a89eda26SStefan Roese
393a89eda26SStefan Roese		I2O: i2o@400100000 {
394a89eda26SStefan Roese			compatible = "ibm,i2o-440spe";
395a89eda26SStefan Roese			reg = <0x00000004 0x00100000 0x100>;
396a89eda26SStefan Roese			dcr-reg = <0x060 0x020>;
397a89eda26SStefan Roese		};
398a89eda26SStefan Roese
399a89eda26SStefan Roese		DMA0: dma0@400100100 {
400a89eda26SStefan Roese			compatible = "ibm,dma-440spe";
401a89eda26SStefan Roese			cell-index = <0>;
402a89eda26SStefan Roese			reg = <0x00000004 0x00100100 0x100>;
403a89eda26SStefan Roese			dcr-reg = <0x060 0x020>;
404a89eda26SStefan Roese			interrupt-parent = <&DMA0>;
405a89eda26SStefan Roese			interrupts = <0 1>;
406a89eda26SStefan Roese			#interrupt-cells = <1>;
407a89eda26SStefan Roese			#address-cells = <0>;
408a89eda26SStefan Roese			#size-cells = <0>;
409a89eda26SStefan Roese			interrupt-map = <
410a89eda26SStefan Roese				0 &UIC0 0x14 4
411a89eda26SStefan Roese				1 &UIC1 0x16 4>;
412a89eda26SStefan Roese		};
413a89eda26SStefan Roese
414a89eda26SStefan Roese		DMA1: dma1@400100200 {
415a89eda26SStefan Roese			compatible = "ibm,dma-440spe";
416a89eda26SStefan Roese			cell-index = <1>;
417a89eda26SStefan Roese			reg = <0x00000004 0x00100200 0x100>;
418a89eda26SStefan Roese			dcr-reg = <0x060 0x020>;
419a89eda26SStefan Roese			interrupt-parent = <&DMA1>;
420a89eda26SStefan Roese			interrupts = <0 1>;
421a89eda26SStefan Roese			#interrupt-cells = <1>;
422a89eda26SStefan Roese			#address-cells = <0>;
423a89eda26SStefan Roese			#size-cells = <0>;
424a89eda26SStefan Roese			interrupt-map = <
425a89eda26SStefan Roese				0 &UIC0 0x16 4
426a89eda26SStefan Roese				1 &UIC1 0x16 4>;
427a89eda26SStefan Roese		};
428a89eda26SStefan Roese
429a89eda26SStefan Roese		xor-accel@400200000 {
430a89eda26SStefan Roese			compatible = "amcc,xor-accelerator";
431a89eda26SStefan Roese			reg = <0x00000004 0x00200000 0x400>;
432a89eda26SStefan Roese			interrupt-parent = <&UIC1>;
433a89eda26SStefan Roese			interrupts = <0x1f 4>;
434a89eda26SStefan Roese		};
435a89eda26SStefan Roese	};
436a89eda26SStefan Roese
437a89eda26SStefan Roese	chosen {
43878e5dfeaSRob Herring		stdout-path = "/plb/opb/serial@f0000200";
439a89eda26SStefan Roese	};
440a89eda26SStefan Roese};
441