Merge git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
[wrt350n-kernel.git] / arch / powerpc / boot / dts / katmai.dts
bloba3f78fef35989144b54481b9ce6f916f144b693e
1 /*
2  * Device Tree Source for AMCC Katmai eval board
3  *
4  * Copyright (c) 2006, 2007 IBM Corp.
5  * Benjamin Herrenschmidt <benh@kernel.crashing.org>
6  *
7  * Copyright (c) 2006, 2007 IBM Corp.
8  * Josh Boyer <jwboyer@linux.vnet.ibm.com>
9  *
10  * This file is licensed under the terms of the GNU General Public
11  * License version 2.  This program is licensed "as is" without
12  * any warranty of any kind, whether express or implied.
13  */
15 / {
16         #address-cells = <2>;
17         #size-cells = <1>;
18         model = "amcc,katmai";
19         compatible = "amcc,katmai";
20         dcr-parent = <&/cpus/cpu@0>;
22         aliases {
23                 ethernet0 = &EMAC0;
24                 serial0 = &UART0;
25                 serial1 = &UART1;
26                 serial2 = &UART2;
27         };
29         cpus {
30                 #address-cells = <1>;
31                 #size-cells = <0>;
33                 cpu@0 {
34                         device_type = "cpu";
35                         model = "PowerPC,440SPe";
36                         reg = <0>;
37                         clock-frequency = <0>; /* Filled in by zImage */
38                         timebase-frequency = <0>; /* Filled in by zImage */
39                         i-cache-line-size = <20>;
40                         d-cache-line-size = <20>;
41 <<<<<<< HEAD:arch/powerpc/boot/dts/katmai.dts
42                         i-cache-size = <20000>;
43                         d-cache-size = <20000>;
44 =======
45                         i-cache-size = <8000>;
46                         d-cache-size = <8000>;
47 >>>>>>> 264e3e889d86e552b4191d69bb60f4f3b383135a:arch/powerpc/boot/dts/katmai.dts
48                         dcr-controller;
49                         dcr-access-method = "native";
50                 };
51         };
53         memory {
54                 device_type = "memory";
55                 reg = <0 0 0>; /* Filled in by zImage */
56         };
58         UIC0: interrupt-controller0 {
59                 compatible = "ibm,uic-440spe","ibm,uic";
60                 interrupt-controller;
61                 cell-index = <0>;
62                 dcr-reg = <0c0 009>;
63                 #address-cells = <0>;
64                 #size-cells = <0>;
65                 #interrupt-cells = <2>;
66         };
68         UIC1: interrupt-controller1 {
69                 compatible = "ibm,uic-440spe","ibm,uic";
70                 interrupt-controller;
71                 cell-index = <1>;
72                 dcr-reg = <0d0 009>;
73                 #address-cells = <0>;
74                 #size-cells = <0>;
75                 #interrupt-cells = <2>;
76                 interrupts = <1e 4 1f 4>; /* cascade */
77                 interrupt-parent = <&UIC0>;
78         };
80         UIC2: interrupt-controller2 {
81                 compatible = "ibm,uic-440spe","ibm,uic";
82                 interrupt-controller;
83                 cell-index = <2>;
84                 dcr-reg = <0e0 009>;
85                 #address-cells = <0>;
86                 #size-cells = <0>;
87                 #interrupt-cells = <2>;
88                 interrupts = <a 4 b 4>; /* cascade */
89                 interrupt-parent = <&UIC0>;
90         };
92         UIC3: interrupt-controller3 {
93                 compatible = "ibm,uic-440spe","ibm,uic";
94                 interrupt-controller;
95                 cell-index = <3>;
96                 dcr-reg = <0f0 009>;
97                 #address-cells = <0>;
98                 #size-cells = <0>;
99                 #interrupt-cells = <2>;
100                 interrupts = <10 4 11 4>; /* cascade */
101                 interrupt-parent = <&UIC0>;
102         };
104         SDR0: sdr {
105                 compatible = "ibm,sdr-440spe";
106                 dcr-reg = <00e 002>;
107         };
109         CPR0: cpr {
110                 compatible = "ibm,cpr-440spe";
111                 dcr-reg = <00c 002>;
112         };
114         plb {
115                 compatible = "ibm,plb-440spe", "ibm,plb-440gp", "ibm,plb4";
116                 #address-cells = <2>;
117                 #size-cells = <1>;
118                 ranges;
119                 clock-frequency = <0>; /* Filled in by zImage */
121                 SDRAM0: sdram {
122                         compatible = "ibm,sdram-440spe", "ibm,sdram-405gp";
123                         dcr-reg = <010 2>;
124                 };
126                 MAL0: mcmal {
127                         compatible = "ibm,mcmal-440spe", "ibm,mcmal2";
128                         dcr-reg = <180 62>;
129                         num-tx-chans = <2>;
130                         num-rx-chans = <1>;
131                         interrupt-parent = <&MAL0>;
132                         interrupts = <0 1 2 3 4>;
133                         #interrupt-cells = <1>;
134                         #address-cells = <0>;
135                         #size-cells = <0>;
136                         interrupt-map = </*TXEOB*/ 0 &UIC1 6 4
137                                          /*RXEOB*/ 1 &UIC1 7 4
138                                          /*SERR*/  2 &UIC1 1 4
139                                          /*TXDE*/  3 &UIC1 2 4
140                                          /*RXDE*/  4 &UIC1 3 4>;
141                 };
143                 POB0: opb {
144 <<<<<<< HEAD:arch/powerpc/boot/dts/katmai.dts
145                         compatible = "ibm,opb-440spe", "ibm,opb-440gp", "ibm,opb";
146 =======
147                         compatible = "ibm,opb-440spe", "ibm,opb-440gp", "ibm,opb";
148 >>>>>>> 264e3e889d86e552b4191d69bb60f4f3b383135a:arch/powerpc/boot/dts/katmai.dts
149                         #address-cells = <1>;
150                         #size-cells = <1>;
151 <<<<<<< HEAD:arch/powerpc/boot/dts/katmai.dts
152                         ranges = <00000000 4 e0000000 20000000>;
153                         clock-frequency = <0>; /* Filled in by zImage */
154 =======
155                         ranges = <00000000 4 e0000000 20000000>;
156                         clock-frequency = <0>; /* Filled in by zImage */
157 >>>>>>> 264e3e889d86e552b4191d69bb60f4f3b383135a:arch/powerpc/boot/dts/katmai.dts
159                         EBC0: ebc {
160                                 compatible = "ibm,ebc-440spe", "ibm,ebc-440gp", "ibm,ebc";
161                                 dcr-reg = <012 2>;
162                                 #address-cells = <2>;
163                                 #size-cells = <1>;
164                                 clock-frequency = <0>; /* Filled in by zImage */
165                                 interrupts = <5 1>;
166                                 interrupt-parent = <&UIC1>;
167                         };
169                         UART0: serial@10000200 {
170 <<<<<<< HEAD:arch/powerpc/boot/dts/katmai.dts
171                                 device_type = "serial";
172                                 compatible = "ns16550";
173                                 reg = <10000200 8>;
174 =======
175                                 device_type = "serial";
176                                 compatible = "ns16550";
177                                 reg = <10000200 8>;
178 >>>>>>> 264e3e889d86e552b4191d69bb60f4f3b383135a:arch/powerpc/boot/dts/katmai.dts
179                                 virtual-reg = <a0000200>;
180 <<<<<<< HEAD:arch/powerpc/boot/dts/katmai.dts
181                                 clock-frequency = <0>; /* Filled in by zImage */
182                                 current-speed = <1c200>;
183                                 interrupt-parent = <&UIC0>;
184                                 interrupts = <0 4>;
185                         };
186 =======
187                                 clock-frequency = <0>; /* Filled in by zImage */
188                                 current-speed = <1c200>;
189                                 interrupt-parent = <&UIC0>;
190                                 interrupts = <0 4>;
191                         };
192 >>>>>>> 264e3e889d86e552b4191d69bb60f4f3b383135a:arch/powerpc/boot/dts/katmai.dts
194                         UART1: serial@10000300 {
195 <<<<<<< HEAD:arch/powerpc/boot/dts/katmai.dts
196                                 device_type = "serial";
197                                 compatible = "ns16550";
198                                 reg = <10000300 8>;
199 =======
200                                 device_type = "serial";
201                                 compatible = "ns16550";
202                                 reg = <10000300 8>;
203 >>>>>>> 264e3e889d86e552b4191d69bb60f4f3b383135a:arch/powerpc/boot/dts/katmai.dts
204                                 virtual-reg = <a0000300>;
205 <<<<<<< HEAD:arch/powerpc/boot/dts/katmai.dts
206                                 clock-frequency = <0>;
207                                 current-speed = <0>;
208                                 interrupt-parent = <&UIC0>;
209                                 interrupts = <1 4>;
210                         };
211 =======
212                                 clock-frequency = <0>;
213                                 current-speed = <0>;
214                                 interrupt-parent = <&UIC0>;
215                                 interrupts = <1 4>;
216                         };
217 >>>>>>> 264e3e889d86e552b4191d69bb60f4f3b383135a:arch/powerpc/boot/dts/katmai.dts
220                         UART2: serial@10000600 {
221 <<<<<<< HEAD:arch/powerpc/boot/dts/katmai.dts
222                                 device_type = "serial";
223                                 compatible = "ns16550";
224                                 reg = <10000600 8>;
225 =======
226                                 device_type = "serial";
227                                 compatible = "ns16550";
228                                 reg = <10000600 8>;
229 >>>>>>> 264e3e889d86e552b4191d69bb60f4f3b383135a:arch/powerpc/boot/dts/katmai.dts
230                                 virtual-reg = <a0000600>;
231 <<<<<<< HEAD:arch/powerpc/boot/dts/katmai.dts
232                                 clock-frequency = <0>;
233                                 current-speed = <0>;
234                                 interrupt-parent = <&UIC1>;
235                                 interrupts = <5 4>;
236                         };
237 =======
238                                 clock-frequency = <0>;
239                                 current-speed = <0>;
240                                 interrupt-parent = <&UIC1>;
241                                 interrupts = <5 4>;
242                         };
243 >>>>>>> 264e3e889d86e552b4191d69bb60f4f3b383135a:arch/powerpc/boot/dts/katmai.dts
245                         IIC0: i2c@10000400 {
246 <<<<<<< HEAD:arch/powerpc/boot/dts/katmai.dts
247                                 device_type = "i2c";
248 =======
249 >>>>>>> 264e3e889d86e552b4191d69bb60f4f3b383135a:arch/powerpc/boot/dts/katmai.dts
250                                 compatible = "ibm,iic-440spe", "ibm,iic-440gp", "ibm,iic";
251                                 reg = <10000400 14>;
252                                 interrupt-parent = <&UIC0>;
253                                 interrupts = <2 4>;
254                         };
256                         IIC1: i2c@10000500 {
257 <<<<<<< HEAD:arch/powerpc/boot/dts/katmai.dts
258                                 device_type = "i2c";
259 =======
260 >>>>>>> 264e3e889d86e552b4191d69bb60f4f3b383135a:arch/powerpc/boot/dts/katmai.dts
261                                 compatible = "ibm,iic-440spe", "ibm,iic-440gp", "ibm,iic";
262                                 reg = <10000500 14>;
263                                 interrupt-parent = <&UIC0>;
264                                 interrupts = <3 4>;
265                         };
267                         EMAC0: ethernet@10000800 {
268                                 linux,network-index = <0>;
269                                 device_type = "network";
270                                 compatible = "ibm,emac-440spe", "ibm,emac4";
271                                 interrupt-parent = <&UIC1>;
272                                 interrupts = <1c 4 1d 4>;
273                                 reg = <10000800 70>;
274                                 local-mac-address = [000000000000];
275                                 mal-device = <&MAL0>;
276                                 mal-tx-channel = <0>;
277                                 mal-rx-channel = <0>;
278                                 cell-index = <0>;
279                                 max-frame-size = <5dc>;
280                                 rx-fifo-size = <1000>;
281                                 tx-fifo-size = <800>;
282                                 phy-mode = "gmii";
283                                 phy-map = <00000000>;
284                                 has-inverted-stacr-oc;
285                                 has-new-stacr-staopc;
286                         };
287                 };
289                 PCIX0: pci@c0ec00000 {
290                         device_type = "pci";
291                         #interrupt-cells = <1>;
292                         #size-cells = <2>;
293                         #address-cells = <3>;
294                         compatible = "ibm,plb-pcix-440spe", "ibm,plb-pcix";
295                         primary;
296                         large-inbound-windows;
297                         enable-msi-hole;
298                         reg = <c 0ec00000   8   /* Config space access */
299                                0 0 0            /* no IACK cycles */
300                                c 0ed00000   4   /* Special cycles */
301                                c 0ec80000 100   /* Internal registers */
302                                c 0ec80100  fc>; /* Internal messaging registers */
304                         /* Outbound ranges, one memory and one IO,
305                          * later cannot be changed
306                          */
307                         ranges = <02000000 0 80000000 0000000d 80000000 0 80000000
308                                   01000000 0 00000000 0000000c 08000000 0 00010000>;
310                         /* Inbound 2GB range starting at 0 */
311                         dma-ranges = <42000000 0 0 0 0 0 80000000>;
313                         /* This drives busses 0 to 0xf */
314                         bus-range = <0 f>;
316                         /*
317                          * On Katmai, the following PCI-X interrupts signals
318                          * have to be enabled via jumpers (only INTA is
319                          * enabled per default):
320                          *
321                          * INTB: J3: 1-2
322                          * INTC: J2: 1-2
323                          * INTD: J1: 1-2
324                          */
325                         interrupt-map-mask = <f800 0 0 7>;
326                         interrupt-map = <
327                                 /* IDSEL 1 */
328                                 0800 0 0 1 &UIC1 14 8
329                                 0800 0 0 2 &UIC1 13 8
330                                 0800 0 0 3 &UIC1 12 8
331                                 0800 0 0 4 &UIC1 11 8
332                         >;
333                 };
335                 PCIE0: pciex@d00000000 {
336                         device_type = "pci";
337                         #interrupt-cells = <1>;
338                         #size-cells = <2>;
339                         #address-cells = <3>;
340                         compatible = "ibm,plb-pciex-440spe", "ibm,plb-pciex";
341                         primary;
342                         port = <0>; /* port number */
343                         reg = <d 00000000 20000000      /* Config space access */
344                                c 10000000 00001000>;    /* Registers */
345                         dcr-reg = <100 020>;
346                         sdr-base = <300>;
348                         /* Outbound ranges, one memory and one IO,
349                          * later cannot be changed
350                          */
351                         ranges = <02000000 0 80000000 0000000e 00000000 0 80000000
352                                   01000000 0 00000000 0000000f 80000000 0 00010000>;
354                         /* Inbound 2GB range starting at 0 */
355                         dma-ranges = <42000000 0 0 0 0 0 80000000>;
357                         /* This drives busses 10 to 0x1f */
358                         bus-range = <10 1f>;
360                         /* Legacy interrupts (note the weird polarity, the bridge seems
361                          * to invert PCIe legacy interrupts).
362                          * We are de-swizzling here because the numbers are actually for
363                          * port of the root complex virtual P2P bridge. But I want
364                          * to avoid putting a node for it in the tree, so the numbers
365                          * below are basically de-swizzled numbers.
366                          * The real slot is on idsel 0, so the swizzling is 1:1
367                          */
368                         interrupt-map-mask = <0000 0 0 7>;
369                         interrupt-map = <
370                                 0000 0 0 1 &UIC3 0 4 /* swizzled int A */
371                                 0000 0 0 2 &UIC3 1 4 /* swizzled int B */
372                                 0000 0 0 3 &UIC3 2 4 /* swizzled int C */
373                                 0000 0 0 4 &UIC3 3 4 /* swizzled int D */>;
374                 };
376                 PCIE1: pciex@d20000000 {
377                         device_type = "pci";
378                         #interrupt-cells = <1>;
379                         #size-cells = <2>;
380                         #address-cells = <3>;
381                         compatible = "ibm,plb-pciex-440spe", "ibm,plb-pciex";
382                         primary;
383                         port = <1>; /* port number */
384                         reg = <d 20000000 20000000      /* Config space access */
385                                c 10001000 00001000>;    /* Registers */
386                         dcr-reg = <120 020>;
387                         sdr-base = <340>;
389                         /* Outbound ranges, one memory and one IO,
390                          * later cannot be changed
391                          */
392                         ranges = <02000000 0 80000000 0000000e 80000000 0 80000000
393                                   01000000 0 00000000 0000000f 80010000 0 00010000>;
395                         /* Inbound 2GB range starting at 0 */
396                         dma-ranges = <42000000 0 0 0 0 0 80000000>;
398                         /* This drives busses 10 to 0x1f */
399                         bus-range = <20 2f>;
401                         /* Legacy interrupts (note the weird polarity, the bridge seems
402                          * to invert PCIe legacy interrupts).
403                          * We are de-swizzling here because the numbers are actually for
404                          * port of the root complex virtual P2P bridge. But I want
405                          * to avoid putting a node for it in the tree, so the numbers
406                          * below are basically de-swizzled numbers.
407                          * The real slot is on idsel 0, so the swizzling is 1:1
408                          */
409                         interrupt-map-mask = <0000 0 0 7>;
410                         interrupt-map = <
411                                 0000 0 0 1 &UIC3 4 4 /* swizzled int A */
412                                 0000 0 0 2 &UIC3 5 4 /* swizzled int B */
413                                 0000 0 0 3 &UIC3 6 4 /* swizzled int C */
414                                 0000 0 0 4 &UIC3 7 4 /* swizzled int D */>;
415                 };
417                 PCIE2: pciex@d40000000 {
418                         device_type = "pci";
419                         #interrupt-cells = <1>;
420                         #size-cells = <2>;
421                         #address-cells = <3>;
422                         compatible = "ibm,plb-pciex-440spe", "ibm,plb-pciex";
423                         primary;
424                         port = <2>; /* port number */
425                         reg = <d 40000000 20000000      /* Config space access */
426                                c 10002000 00001000>;    /* Registers */
427                         dcr-reg = <140 020>;
428                         sdr-base = <370>;
430                         /* Outbound ranges, one memory and one IO,
431                          * later cannot be changed
432                          */
433                         ranges = <02000000 0 80000000 0000000f 00000000 0 80000000
434                                   01000000 0 00000000 0000000f 80020000 0 00010000>;
436                         /* Inbound 2GB range starting at 0 */
437                         dma-ranges = <42000000 0 0 0 0 0 80000000>;
439                         /* This drives busses 10 to 0x1f */
440                         bus-range = <30 3f>;
442                         /* Legacy interrupts (note the weird polarity, the bridge seems
443                          * to invert PCIe legacy interrupts).
444                          * We are de-swizzling here because the numbers are actually for
445                          * port of the root complex virtual P2P bridge. But I want
446                          * to avoid putting a node for it in the tree, so the numbers
447                          * below are basically de-swizzled numbers.
448                          * The real slot is on idsel 0, so the swizzling is 1:1
449                          */
450                         interrupt-map-mask = <0000 0 0 7>;
451                         interrupt-map = <
452                                 0000 0 0 1 &UIC3 8 4 /* swizzled int A */
453                                 0000 0 0 2 &UIC3 9 4 /* swizzled int B */
454                                 0000 0 0 3 &UIC3 a 4 /* swizzled int C */
455                                 0000 0 0 4 &UIC3 b 4 /* swizzled int D */>;
456                 };
457         };
459         chosen {
460                 linux,stdout-path = "/plb/opb/serial@10000200";
461         };