Merge git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
[wrt350n-kernel.git] / arch / powerpc / boot / dts / taishan.dts
blob9c528789fe36dc36a57b83571029932225e57f98
1 /*
2  * Device Tree Source for IBM/AMCC Taishan
3  *
4  * Copyright 2007 IBM Corp.
5  * Hugh Blemings <hugh@au.ibm.com> based off code by
6  * Josh Boyer <jwboyer@linux.vnet.ibm.com>, David Gibson <dwg@au1.ibm.com>
7  *
8  * This file is licensed under the terms of the GNU General Public
9  * License version 2.  This program is licensed "as is" without
10  * any warranty of any kind, whether express or implied.
11  */
13 / {
14         #address-cells = <2>;
15         #size-cells = <1>;
16         model = "amcc,taishan";
17         compatible = "amcc,taishan";
18         dcr-parent = <&/cpus/cpu@0>;
20         aliases {
21                 ethernet0 = &EMAC2;
22                 ethernet1 = &EMAC3;
23                 serial0 = &UART0;
24                 serial1 = &UART1;
25         };
27         cpus {
28                 #address-cells = <1>;
29                 #size-cells = <0>;
31                 cpu@0 {
32                         device_type = "cpu";
33                         model = "PowerPC,440GX";
34                         reg = <0>;
35                         clock-frequency = <2FAF0800>; // 800MHz
36                         timebase-frequency = <0>; // Filled in by zImage
37                         i-cache-line-size = <32>;
38                         d-cache-line-size = <32>;
39                         i-cache-size = <8000>; /* 32 kB */
40                         d-cache-size = <8000>; /* 32 kB */
41                         dcr-controller;
42                         dcr-access-method = "native";
43                 };
44         };
46         memory {
47                 device_type = "memory";
48                 reg = <0 0 0>; // Filled in by zImage
49         };
52         UICB0: interrupt-controller-base {
53                 compatible = "ibm,uic-440gx", "ibm,uic";
54                 interrupt-controller;
55                 cell-index = <3>;
56                 dcr-reg = <200 009>;
57                 #address-cells = <0>;
58                 #size-cells = <0>;
59                 #interrupt-cells = <2>;
60         };
63         UIC0: interrupt-controller0 {
64                 compatible = "ibm,uic-440gx", "ibm,uic";
65                 interrupt-controller;
66                 cell-index = <0>;
67                 dcr-reg = <0c0 009>;
68                 #address-cells = <0>;
69                 #size-cells = <0>;
70                 #interrupt-cells = <2>;
71                 interrupts = <01 4 00 4>; /* cascade - first non-critical */
72                 interrupt-parent = <&UICB0>;
74         };
76         UIC1: interrupt-controller1 {
77                 compatible = "ibm,uic-440gx", "ibm,uic";
78                 interrupt-controller;
79                 cell-index = <1>;
80                 dcr-reg = <0d0 009>;
81                 #address-cells = <0>;
82                 #size-cells = <0>;
83                 #interrupt-cells = <2>;
84                 interrupts = <03 4 02 4>; /* cascade */
85                 interrupt-parent = <&UICB0>;
86         };
88         UIC2: interrupt-controller2 {
89                 compatible = "ibm,uic-440gx", "ibm,uic";
90                 interrupt-controller;
91                 cell-index = <2>; /* was 1 */
92                 dcr-reg = <210 009>;
93                 #address-cells = <0>;
94                 #size-cells = <0>;
95                 #interrupt-cells = <2>;
96                 interrupts = <05 4 04 4>; /* cascade */
97                 interrupt-parent = <&UICB0>;
98         };
101         CPC0: cpc {
102                 compatible = "ibm,cpc-440gp";
103                 dcr-reg = <0b0 003 0e0 010>;
104                 // FIXME: anything else?
105         };
107         plb {
108                 compatible = "ibm,plb-440gx", "ibm,plb4";
109                 #address-cells = <2>;
110                 #size-cells = <1>;
111                 ranges;
112                 clock-frequency = <9896800>; // 160MHz
114                 SDRAM0: memory-controller {
115                         compatible = "ibm,sdram-440gp";
116                         dcr-reg = <010 2>;
117                         // FIXME: anything else?
118                 };
120                 SRAM0: sram {
121                         compatible = "ibm,sram-440gp";
122                         dcr-reg = <020 8 00a 1>;
123                 };
125                 DMA0: dma {
126                         // FIXME: ???
127                         compatible = "ibm,dma-440gp";
128                         dcr-reg = <100 027>;
129                 };
131                 MAL0: mcmal {
132                         compatible = "ibm,mcmal-440gx", "ibm,mcmal2";
133                         dcr-reg = <180 62>;
134                         num-tx-chans = <4>;
135                         num-rx-chans = <4>;
136                         interrupt-parent = <&MAL0>;
137                         interrupts = <0 1 2 3 4>;
138                         #interrupt-cells = <1>;
139                         #address-cells = <0>;
140                         #size-cells = <0>;
141                         interrupt-map = </*TXEOB*/ 0 &UIC0 a 4
142                                          /*RXEOB*/ 1 &UIC0 b 4
143                                          /*SERR*/  2 &UIC1 0 4
144                                          /*TXDE*/  3 &UIC1 1 4
145                                          /*RXDE*/  4 &UIC1 2 4>;
146                         interrupt-map-mask = <ffffffff>;
147                 };
149                 POB0: opb {
150                         compatible = "ibm,opb-440gx", "ibm,opb";
151                         #address-cells = <1>;
152                         #size-cells = <1>;
153                         /* Wish there was a nicer way of specifying a full 32-bit
154                            range */
155                         ranges = <00000000 1 00000000 80000000
156                                   80000000 1 80000000 80000000>;
157                         dcr-reg = <090 00b>;
158                         interrupt-parent = <&UIC1>;
159                         interrupts = <7 4>;
160                         clock-frequency = <4C4B400>; // 80MHz
163                         EBC0: ebc {
164                                 compatible = "ibm,ebc-440gx", "ibm,ebc";
165                                 dcr-reg = <012 2>;
166                                 #address-cells = <2>;
167                                 #size-cells = <1>;
168                                 clock-frequency = <4C4B400>; // 80MHz
170                                 /* ranges property is supplied by zImage
171                                  * based on firmware's configuration of the
172                                  * EBC bridge */
174                                 interrupts = <5 4>;
175                                 interrupt-parent = <&UIC1>;
177                                 /* TODO: Add other EBC devices */
178                         };
182                         UART0: serial@40000200 {
183                                 device_type = "serial";
184                                 compatible = "ns16550";
185                                 reg = <40000200 8>;
186                                 virtual-reg = <e0000200>;
187                                 clock-frequency = <A8C000>;
188                                 current-speed = <1C200>; /* 115200 */
189                                 interrupt-parent = <&UIC0>;
190                                 interrupts = <0 4>;
191                         };
193                         UART1: serial@40000300 {
194                                 device_type = "serial";
195                                 compatible = "ns16550";
196                                 reg = <40000300 8>;
197                                 virtual-reg = <e0000300>;
198                                 clock-frequency = <A8C000>;
199                                 current-speed = <1C200>; /* 115200 */
200                                 interrupt-parent = <&UIC0>;
201                                 interrupts = <1 4>;
202                         };
204                         IIC0: i2c@40000400 {
205                                 /* FIXME */
206 <<<<<<< HEAD:arch/powerpc/boot/dts/taishan.dts
207                                 device_type = "i2c";
208 =======
209 >>>>>>> 264e3e889d86e552b4191d69bb60f4f3b383135a:arch/powerpc/boot/dts/taishan.dts
210                                 compatible = "ibm,iic-440gp", "ibm,iic";
211                                 reg = <40000400 14>;
212                                 interrupt-parent = <&UIC0>;
213                                 interrupts = <2 4>;
214                         };
215                         IIC1: i2c@40000500 {
216                                 /* FIXME */
217 <<<<<<< HEAD:arch/powerpc/boot/dts/taishan.dts
218                                 device_type = "i2c";
219 =======
220 >>>>>>> 264e3e889d86e552b4191d69bb60f4f3b383135a:arch/powerpc/boot/dts/taishan.dts
221                                 compatible = "ibm,iic-440gp", "ibm,iic";
222                                 reg = <40000500 14>;
223                                 interrupt-parent = <&UIC0>;
224                                 interrupts = <3 4>;
225                         };
227                         GPIO0: gpio@40000700 {
228                                 /* FIXME */
229                                 compatible = "ibm,gpio-440gp";
230                                 reg = <40000700 20>;
231                         };
233                         ZMII0: emac-zmii@40000780 {
234 <<<<<<< HEAD:arch/powerpc/boot/dts/taishan.dts
235                                 device_type = "zgmii-interface";
236 =======
237 >>>>>>> 264e3e889d86e552b4191d69bb60f4f3b383135a:arch/powerpc/boot/dts/taishan.dts
238                                 compatible = "ibm,zmii-440gx", "ibm,zmii";
239                                 reg = <40000780 c>;
240                         };
242                         RGMII0: emac-rgmii@40000790 {
243 <<<<<<< HEAD:arch/powerpc/boot/dts/taishan.dts
244                                 device_type = "rgmii-interface";
245 =======
246 >>>>>>> 264e3e889d86e552b4191d69bb60f4f3b383135a:arch/powerpc/boot/dts/taishan.dts
247                                 compatible = "ibm,rgmii";
248                                 reg = <40000790 8>;
249                         };
252                         EMAC0: ethernet@40000800 {
253                                 unused = <1>;
254                                 linux,network-index = <2>;
255                                 device_type = "network";
256                                 compatible = "ibm,emac-440gx", "ibm,emac4";
257                                 interrupt-parent = <&UIC1>;
258                                 interrupts = <1c 4 1d 4>;
259                                 reg = <40000800 70>;
260                                 local-mac-address = [000000000000]; // Filled in by zImage
261                                 mal-device = <&MAL0>;
262                                 mal-tx-channel = <0>;
263                                 mal-rx-channel = <0>;
264                                 cell-index = <0>;
265                                 max-frame-size = <5dc>;
266                                 rx-fifo-size = <1000>;
267                                 tx-fifo-size = <800>;
268                                 phy-mode = "rmii";
269                                 phy-map = <00000001>;
270                                 zmii-device = <&ZMII0>;
271                                 zmii-channel = <0>;
272                         };
273                         EMAC1: ethernet@40000900 {
274                                 unused = <1>;
275                                 linux,network-index = <3>;
276                                 device_type = "network";
277                                 compatible = "ibm,emac-440gx", "ibm,emac4";
278                                 interrupt-parent = <&UIC1>;
279                                 interrupts = <1e 4 1f 4>;
280                                 reg = <40000900 70>;
281                                 local-mac-address = [000000000000]; // Filled in by zImage
282                                 mal-device = <&MAL0>;
283                                 mal-tx-channel = <1>;
284                                 mal-rx-channel = <1>;
285                                 cell-index = <1>;
286                                 max-frame-size = <5dc>;
287                                 rx-fifo-size = <1000>;
288                                 tx-fifo-size = <800>;
289                                 phy-mode = "rmii";
290                                 phy-map = <00000001>;
291                                 zmii-device = <&ZMII0>;
292                                 zmii-channel = <1>;
293                         };
295                         EMAC2: ethernet@40000c00 {
296                                 linux,network-index = <0>;
297                                 device_type = "network";
298                                 compatible = "ibm,emac-440gx", "ibm,emac4";
299                                 interrupt-parent = <&UIC2>;
300                                 interrupts = <0 4 1 4>;
301                                 reg = <40000c00 70>;
302                                 local-mac-address = [000000000000]; // Filled in by zImage
303                                 mal-device = <&MAL0>;
304                                 mal-tx-channel = <2>;
305                                 mal-rx-channel = <2>;
306                                 cell-index = <2>;
307                                 max-frame-size = <5dc>;
308                                 rx-fifo-size = <1000>;
309                                 tx-fifo-size = <800>;
310                                 phy-mode = "rgmii";
311                                 phy-map = <00000001>;
312                                 rgmii-device = <&RGMII0>;
313                                 rgmii-channel = <0>;
314                                 zmii-device = <&ZMII0>;
315                                 zmii-channel = <2>;
316                         };
318                         EMAC3: ethernet@40000e00 {
319                                 linux,network-index = <1>;
320                                 device_type = "network";
321                                 compatible = "ibm,emac-440gx", "ibm,emac4";
322                                 interrupt-parent = <&UIC2>;
323                                 interrupts = <2 4 3 4>;
324                                 reg = <40000e00 70>;
325                                 local-mac-address = [000000000000]; // Filled in by zImage
326                                 mal-device = <&MAL0>;
327                                 mal-tx-channel = <3>;
328                                 mal-rx-channel = <3>;
329                                 cell-index = <3>;
330                                 max-frame-size = <5dc>;
331                                 rx-fifo-size = <1000>;
332                                 tx-fifo-size = <800>;
333                                 phy-mode = "rgmii";
334                                 phy-map = <00000003>;
335                                 rgmii-device = <&RGMII0>;
336                                 rgmii-channel = <1>;
337                                 zmii-device = <&ZMII0>;
338                                 zmii-channel = <3>;
339                         };
342                         GPT0: gpt@40000a00 {
343                                 /* FIXME */
344                                 reg = <40000a00 d4>;
345                                 interrupt-parent = <&UIC0>;
346                                 interrupts = <12 4 13 4 14 4 15 4 16 4>;
347                         };
349                 };
351                 PCIX0: pci@20ec00000 {
352                         device_type = "pci";
353                         #interrupt-cells = <1>;
354                         #size-cells = <2>;
355                         #address-cells = <3>;
356                         compatible = "ibm,plb440gp-pcix", "ibm,plb-pcix";
357                         primary;
358                         large-inbound-windows;
359                         enable-msi-hole;
360                         reg = <2 0ec00000   8   /* Config space access */
361                                0 0 0            /* no IACK cycles */
362                                2 0ed00000   4   /* Special cycles */
363                                2 0ec80000 100   /* Internal registers */
364                                2 0ec80100  fc>; /* Internal messaging registers */
366                         /* Outbound ranges, one memory and one IO,
367                          * later cannot be changed
368                          */
369                         ranges = <02000000 0 80000000 00000003 80000000 0 80000000
370                                   01000000 0 00000000 00000002 08000000 0 00010000>;
372                         /* Inbound 2GB range starting at 0 */
373                         dma-ranges = <42000000 0 0 0 0 0 80000000>;
375                         interrupt-map-mask = <f800 0 0 7>;
376                         interrupt-map = <
377                                 /* IDSEL 1 */
378                                 0800 0 0 1 &UIC0 17 8
379                                 0800 0 0 2 &UIC0 18 8
380                                 0800 0 0 3 &UIC0 19 8
381                                 0800 0 0 4 &UIC0 1a 8
383                                 /* IDSEL 2 */
384                                 1000 0 0 1 &UIC0 18 8
385                                 1000 0 0 2 &UIC0 19 8
386                                 1000 0 0 3 &UIC0 1a 8
387                                 1000 0 0 4 &UIC0 17 8
388                         >;
389                 };
390         };
392         chosen {
393                 linux,stdout-path = "/plb/opb/serial@40000300";
394         };