[POWERPC] 85xx: Enable MSI support for 85xxds board
[linux-2.6] / arch / powerpc / boot / dts / mpc8572ds.dts
1 /*
2  * MPC8572 DS Device Tree Source
3  *
4  * Copyright 2007, 2008 Freescale Semiconductor Inc.
5  *
6  * This program is free software; you can redistribute  it and/or modify it
7  * under  the terms of  the GNU General  Public License as published by the
8  * Free Software Foundation;  either version 2 of the  License, or (at your
9  * option) any later version.
10  */
11
12 /dts-v1/;
13 / {
14         model = "fsl,MPC8572DS";
15         compatible = "fsl,MPC8572DS";
16         #address-cells = <1>;
17         #size-cells = <1>;
18
19         aliases {
20                 ethernet0 = &enet0;
21                 ethernet1 = &enet1;
22                 ethernet2 = &enet2;
23                 ethernet3 = &enet3;
24                 serial0 = &serial0;
25                 serial1 = &serial1;
26                 pci0 = &pci0;
27                 pci1 = &pci1;
28                 pci2 = &pci2;
29         };
30
31         cpus {
32                 #address-cells = <1>;
33                 #size-cells = <0>;
34
35                 PowerPC,8572@0 {
36                         device_type = "cpu";
37                         reg = <0x0>;
38                         d-cache-line-size = <32>;       // 32 bytes
39                         i-cache-line-size = <32>;       // 32 bytes
40                         d-cache-size = <0x8000>;                // L1, 32K
41                         i-cache-size = <0x8000>;                // L1, 32K
42                         timebase-frequency = <0>;
43                         bus-frequency = <0>;
44                         clock-frequency = <0>;
45                 };
46
47                 PowerPC,8572@1 {
48                         device_type = "cpu";
49                         reg = <0x1>;
50                         d-cache-line-size = <32>;       // 32 bytes
51                         i-cache-line-size = <32>;       // 32 bytes
52                         d-cache-size = <0x8000>;                // L1, 32K
53                         i-cache-size = <0x8000>;                // L1, 32K
54                         timebase-frequency = <0>;
55                         bus-frequency = <0>;
56                         clock-frequency = <0>;
57                 };
58         };
59
60         memory {
61                 device_type = "memory";
62                 reg = <0x0 0x0>;        // Filled by U-Boot
63         };
64
65         soc8572@ffe00000 {
66                 #address-cells = <1>;
67                 #size-cells = <1>;
68                 device_type = "soc";
69                 ranges = <0x0 0xffe00000 0x100000>;
70                 reg = <0xffe00000 0x1000>;      // CCSRBAR & soc regs, remove once parse code for immrbase fixed
71                 bus-frequency = <0>;            // Filled out by uboot.
72
73                 memory-controller@2000 {
74                         compatible = "fsl,mpc8572-memory-controller";
75                         reg = <0x2000 0x1000>;
76                         interrupt-parent = <&mpic>;
77                         interrupts = <18 2>;
78                 };
79
80                 memory-controller@6000 {
81                         compatible = "fsl,mpc8572-memory-controller";
82                         reg = <0x6000 0x1000>;
83                         interrupt-parent = <&mpic>;
84                         interrupts = <18 2>;
85                 };
86
87                 l2-cache-controller@20000 {
88                         compatible = "fsl,mpc8572-l2-cache-controller";
89                         reg = <0x20000 0x1000>;
90                         cache-line-size = <32>; // 32 bytes
91                         cache-size = <0x80000>; // L2, 512K
92                         interrupt-parent = <&mpic>;
93                         interrupts = <16 2>;
94                 };
95
96                 i2c@3000 {
97                         #address-cells = <1>;
98                         #size-cells = <0>;
99                         cell-index = <0>;
100                         compatible = "fsl-i2c";
101                         reg = <0x3000 0x100>;
102                         interrupts = <43 2>;
103                         interrupt-parent = <&mpic>;
104                         dfsrr;
105                 };
106
107                 i2c@3100 {
108                         #address-cells = <1>;
109                         #size-cells = <0>;
110                         cell-index = <1>;
111                         compatible = "fsl-i2c";
112                         reg = <0x3100 0x100>;
113                         interrupts = <43 2>;
114                         interrupt-parent = <&mpic>;
115                         dfsrr;
116                 };
117
118                 mdio@24520 {
119                         #address-cells = <1>;
120                         #size-cells = <0>;
121                         compatible = "fsl,gianfar-mdio";
122                         reg = <0x24520 0x20>;
123
124                         phy0: ethernet-phy@0 {
125                                 interrupt-parent = <&mpic>;
126                                 interrupts = <10 1>;
127                                 reg = <0x0>;
128                         };
129                         phy1: ethernet-phy@1 {
130                                 interrupt-parent = <&mpic>;
131                                 interrupts = <10 1>;
132                                 reg = <0x1>;
133                         };
134                         phy2: ethernet-phy@2 {
135                                 interrupt-parent = <&mpic>;
136                                 interrupts = <10 1>;
137                                 reg = <0x2>;
138                         };
139                         phy3: ethernet-phy@3 {
140                                 interrupt-parent = <&mpic>;
141                                 interrupts = <10 1>;
142                                 reg = <0x3>;
143                         };
144                 };
145
146                 enet0: ethernet@24000 {
147                         cell-index = <0>;
148                         device_type = "network";
149                         model = "eTSEC";
150                         compatible = "gianfar";
151                         reg = <0x24000 0x1000>;
152                         local-mac-address = [ 00 00 00 00 00 00 ];
153                         interrupts = <29 2 30 2 34 2>;
154                         interrupt-parent = <&mpic>;
155                         phy-handle = <&phy0>;
156                         phy-connection-type = "rgmii-id";
157                 };
158
159                 enet1: ethernet@25000 {
160                         cell-index = <1>;
161                         device_type = "network";
162                         model = "eTSEC";
163                         compatible = "gianfar";
164                         reg = <0x25000 0x1000>;
165                         local-mac-address = [ 00 00 00 00 00 00 ];
166                         interrupts = <35 2 36 2 40 2>;
167                         interrupt-parent = <&mpic>;
168                         phy-handle = <&phy1>;
169                         phy-connection-type = "rgmii-id";
170                 };
171
172                 enet2: ethernet@26000 {
173                         cell-index = <2>;
174                         device_type = "network";
175                         model = "eTSEC";
176                         compatible = "gianfar";
177                         reg = <0x26000 0x1000>;
178                         local-mac-address = [ 00 00 00 00 00 00 ];
179                         interrupts = <31 2 32 2 33 2>;
180                         interrupt-parent = <&mpic>;
181                         phy-handle = <&phy2>;
182                         phy-connection-type = "rgmii-id";
183                 };
184
185                 enet3: ethernet@27000 {
186                         cell-index = <3>;
187                         device_type = "network";
188                         model = "eTSEC";
189                         compatible = "gianfar";
190                         reg = <0x27000 0x1000>;
191                         local-mac-address = [ 00 00 00 00 00 00 ];
192                         interrupts = <37 2 38 2 39 2>;
193                         interrupt-parent = <&mpic>;
194                         phy-handle = <&phy3>;
195                         phy-connection-type = "rgmii-id";
196                 };
197
198                 serial0: serial@4500 {
199                         cell-index = <0>;
200                         device_type = "serial";
201                         compatible = "ns16550";
202                         reg = <0x4500 0x100>;
203                         clock-frequency = <0>;
204                         interrupts = <42 2>;
205                         interrupt-parent = <&mpic>;
206                 };
207
208                 serial1: serial@4600 {
209                         cell-index = <1>;
210                         device_type = "serial";
211                         compatible = "ns16550";
212                         reg = <0x4600 0x100>;
213                         clock-frequency = <0>;
214                         interrupts = <42 2>;
215                         interrupt-parent = <&mpic>;
216                 };
217
218                 global-utilities@e0000 {        //global utilities block
219                         compatible = "fsl,mpc8572-guts";
220                         reg = <0xe0000 0x1000>;
221                         fsl,has-rstcr;
222                 };
223
224                 msi@41600 {
225                         compatible = "fsl,mpc8572-msi", "fsl,mpic-msi";
226                         reg = <0x41600 0x80>;
227                         msi-available-ranges = <0 0x100>;
228                         interrupts = <
229                                 0xe0 0
230                                 0xe1 0
231                                 0xe2 0
232                                 0xe3 0
233                                 0xe4 0
234                                 0xe5 0
235                                 0xe6 0
236                                 0xe7 0>;
237                         interrupt-parent = <&mpic>;
238                 };
239
240                 mpic: pic@40000 {
241                         clock-frequency = <0>;
242                         interrupt-controller;
243                         #address-cells = <0>;
244                         #interrupt-cells = <2>;
245                         reg = <0x40000 0x40000>;
246                         compatible = "chrp,open-pic";
247                         device_type = "open-pic";
248                         big-endian;
249                 };
250         };
251
252         pci0: pcie@ffe08000 {
253                 cell-index = <0>;
254                 compatible = "fsl,mpc8548-pcie";
255                 device_type = "pci";
256                 #interrupt-cells = <1>;
257                 #size-cells = <2>;
258                 #address-cells = <3>;
259                 reg = <0xffe08000 0x1000>;
260                 bus-range = <0 255>;
261                 ranges = <0x2000000 0x0 0x80000000 0x80000000 0x0 0x20000000
262                           0x1000000 0x0 0x0 0xffc00000 0x0 0x10000>;
263                 clock-frequency = <33333333>;
264                 interrupt-parent = <&mpic>;
265                 interrupts = <24 2>;
266                 interrupt-map-mask = <0xff00 0x0 0x0 0x7>;
267                 interrupt-map = <
268                         /* IDSEL 0x11 func 0 - PCI slot 1 */
269                         0x8800 0x0 0x0 0x1 &mpic 0x2 0x1
270                         0x8800 0x0 0x0 0x2 &mpic 0x3 0x1
271                         0x8800 0x0 0x0 0x3 &mpic 0x4 0x1
272                         0x8800 0x0 0x0 0x4 &mpic 0x1 0x1
273
274                         /* IDSEL 0x11 func 1 - PCI slot 1 */
275                         0x8900 0x0 0x0 0x1 &mpic 0x2 0x1
276                         0x8900 0x0 0x0 0x2 &mpic 0x3 0x1
277                         0x8900 0x0 0x0 0x3 &mpic 0x4 0x1
278                         0x8900 0x0 0x0 0x4 &mpic 0x1 0x1
279
280                         /* IDSEL 0x11 func 2 - PCI slot 1 */
281                         0x8a00 0x0 0x0 0x1 &mpic 0x2 0x1
282                         0x8a00 0x0 0x0 0x2 &mpic 0x3 0x1
283                         0x8a00 0x0 0x0 0x3 &mpic 0x4 0x1
284                         0x8a00 0x0 0x0 0x4 &mpic 0x1 0x1
285
286                         /* IDSEL 0x11 func 3 - PCI slot 1 */
287                         0x8b00 0x0 0x0 0x1 &mpic 0x2 0x1
288                         0x8b00 0x0 0x0 0x2 &mpic 0x3 0x1
289                         0x8b00 0x0 0x0 0x3 &mpic 0x4 0x1
290                         0x8b00 0x0 0x0 0x4 &mpic 0x1 0x1
291
292                         /* IDSEL 0x11 func 4 - PCI slot 1 */
293                         0x8c00 0x0 0x0 0x1 &mpic 0x2 0x1
294                         0x8c00 0x0 0x0 0x2 &mpic 0x3 0x1
295                         0x8c00 0x0 0x0 0x3 &mpic 0x4 0x1
296                         0x8c00 0x0 0x0 0x4 &mpic 0x1 0x1
297
298                         /* IDSEL 0x11 func 5 - PCI slot 1 */
299                         0x8d00 0x0 0x0 0x1 &mpic 0x2 0x1
300                         0x8d00 0x0 0x0 0x2 &mpic 0x3 0x1
301                         0x8d00 0x0 0x0 0x3 &mpic 0x4 0x1
302                         0x8d00 0x0 0x0 0x4 &mpic 0x1 0x1
303
304                         /* IDSEL 0x11 func 6 - PCI slot 1 */
305                         0x8e00 0x0 0x0 0x1 &mpic 0x2 0x1
306                         0x8e00 0x0 0x0 0x2 &mpic 0x3 0x1
307                         0x8e00 0x0 0x0 0x3 &mpic 0x4 0x1
308                         0x8e00 0x0 0x0 0x4 &mpic 0x1 0x1
309
310                         /* IDSEL 0x11 func 7 - PCI slot 1 */
311                         0x8f00 0x0 0x0 0x1 &mpic 0x2 0x1
312                         0x8f00 0x0 0x0 0x2 &mpic 0x3 0x1
313                         0x8f00 0x0 0x0 0x3 &mpic 0x4 0x1
314                         0x8f00 0x0 0x0 0x4 &mpic 0x1 0x1
315
316                         /* IDSEL 0x12 func 0 - PCI slot 2 */
317                         0x9000 0x0 0x0 0x1 &mpic 0x3 0x1
318                         0x9000 0x0 0x0 0x2 &mpic 0x4 0x1
319                         0x9000 0x0 0x0 0x3 &mpic 0x1 0x1
320                         0x9000 0x0 0x0 0x4 &mpic 0x2 0x1
321
322                         /* IDSEL 0x12 func 1 - PCI slot 2 */
323                         0x9100 0x0 0x0 0x1 &mpic 0x3 0x1
324                         0x9100 0x0 0x0 0x2 &mpic 0x4 0x1
325                         0x9100 0x0 0x0 0x3 &mpic 0x1 0x1
326                         0x9100 0x0 0x0 0x4 &mpic 0x2 0x1
327
328                         /* IDSEL 0x12 func 2 - PCI slot 2 */
329                         0x9200 0x0 0x0 0x1 &mpic 0x3 0x1
330                         0x9200 0x0 0x0 0x2 &mpic 0x4 0x1
331                         0x9200 0x0 0x0 0x3 &mpic 0x1 0x1
332                         0x9200 0x0 0x0 0x4 &mpic 0x2 0x1
333
334                         /* IDSEL 0x12 func 3 - PCI slot 2 */
335                         0x9300 0x0 0x0 0x1 &mpic 0x3 0x1
336                         0x9300 0x0 0x0 0x2 &mpic 0x4 0x1
337                         0x9300 0x0 0x0 0x3 &mpic 0x1 0x1
338                         0x9300 0x0 0x0 0x4 &mpic 0x2 0x1
339
340                         /* IDSEL 0x12 func 4 - PCI slot 2 */
341                         0x9400 0x0 0x0 0x1 &mpic 0x3 0x1
342                         0x9400 0x0 0x0 0x2 &mpic 0x4 0x1
343                         0x9400 0x0 0x0 0x3 &mpic 0x1 0x1
344                         0x9400 0x0 0x0 0x4 &mpic 0x2 0x1
345
346                         /* IDSEL 0x12 func 5 - PCI slot 2 */
347                         0x9500 0x0 0x0 0x1 &mpic 0x3 0x1
348                         0x9500 0x0 0x0 0x2 &mpic 0x4 0x1
349                         0x9500 0x0 0x0 0x3 &mpic 0x1 0x1
350                         0x9500 0x0 0x0 0x4 &mpic 0x2 0x1
351
352                         /* IDSEL 0x12 func 6 - PCI slot 2 */
353                         0x9600 0x0 0x0 0x1 &mpic 0x3 0x1
354                         0x9600 0x0 0x0 0x2 &mpic 0x4 0x1
355                         0x9600 0x0 0x0 0x3 &mpic 0x1 0x1
356                         0x9600 0x0 0x0 0x4 &mpic 0x2 0x1
357
358                         /* IDSEL 0x12 func 7 - PCI slot 2 */
359                         0x9700 0x0 0x0 0x1 &mpic 0x3 0x1
360                         0x9700 0x0 0x0 0x2 &mpic 0x4 0x1
361                         0x9700 0x0 0x0 0x3 &mpic 0x1 0x1
362                         0x9700 0x0 0x0 0x4 &mpic 0x2 0x1
363
364                         // IDSEL 0x1c  USB
365                         0xe000 0x0 0x0 0x1 &i8259 0xc 0x2
366                         0xe100 0x0 0x0 0x2 &i8259 0x9 0x2
367                         0xe200 0x0 0x0 0x3 &i8259 0xa 0x2
368                         0xe300 0x0 0x0 0x4 &i8259 0xb 0x2
369
370                         // IDSEL 0x1d  Audio
371                         0xe800 0x0 0x0 0x1 &i8259 0x6 0x2
372
373                         // IDSEL 0x1e Legacy
374                         0xf000 0x0 0x0 0x1 &i8259 0x7 0x2
375                         0xf100 0x0 0x0 0x1 &i8259 0x7 0x2
376
377                         // IDSEL 0x1f IDE/SATA
378                         0xf800 0x0 0x0 0x1 &i8259 0xe 0x2
379                         0xf900 0x0 0x0 0x1 &i8259 0x5 0x2
380
381                         >;
382
383                 pcie@0 {
384                         reg = <0x0 0x0 0x0 0x0 0x0>;
385                         #size-cells = <2>;
386                         #address-cells = <3>;
387                         device_type = "pci";
388                         ranges = <0x2000000 0x0 0x80000000
389                                   0x2000000 0x0 0x80000000
390                                   0x0 0x20000000
391
392                                   0x1000000 0x0 0x0
393                                   0x1000000 0x0 0x0
394                                   0x0 0x100000>;
395                         uli1575@0 {
396                                 reg = <0x0 0x0 0x0 0x0 0x0>;
397                                 #size-cells = <2>;
398                                 #address-cells = <3>;
399                                 ranges = <0x2000000 0x0 0x80000000
400                                           0x2000000 0x0 0x80000000
401                                           0x0 0x20000000
402
403                                           0x1000000 0x0 0x0
404                                           0x1000000 0x0 0x0
405                                           0x0 0x100000>;
406                                 isa@1e {
407                                         device_type = "isa";
408                                         #interrupt-cells = <2>;
409                                         #size-cells = <1>;
410                                         #address-cells = <2>;
411                                         reg = <0xf000 0x0 0x0 0x0 0x0>;
412                                         ranges = <0x1 0x0 0x1000000 0x0 0x0
413                                                   0x1000>;
414                                         interrupt-parent = <&i8259>;
415
416                                         i8259: interrupt-controller@20 {
417                                                 reg = <0x1 0x20 0x2
418                                                        0x1 0xa0 0x2
419                                                        0x1 0x4d0 0x2>;
420                                                 interrupt-controller;
421                                                 device_type = "interrupt-controller";
422                                                 #address-cells = <0>;
423                                                 #interrupt-cells = <2>;
424                                                 compatible = "chrp,iic";
425                                                 interrupts = <9 2>;
426                                                 interrupt-parent = <&mpic>;
427                                         };
428
429                                         i8042@60 {
430                                                 #size-cells = <0>;
431                                                 #address-cells = <1>;
432                                                 reg = <0x1 0x60 0x1 0x1 0x64 0x1>;
433                                                 interrupts = <1 3 12 3>;
434                                                 interrupt-parent =
435                                                         <&i8259>;
436
437                                                 keyboard@0 {
438                                                         reg = <0x0>;
439                                                         compatible = "pnpPNP,303";
440                                                 };
441
442                                                 mouse@1 {
443                                                         reg = <0x1>;
444                                                         compatible = "pnpPNP,f03";
445                                                 };
446                                         };
447
448                                         rtc@70 {
449                                                 compatible = "pnpPNP,b00";
450                                                 reg = <0x1 0x70 0x2>;
451                                         };
452
453                                         gpio@400 {
454                                                 reg = <0x1 0x400 0x80>;
455                                         };
456                                 };
457                         };
458                 };
459
460         };
461
462         pci1: pcie@ffe09000 {
463                 cell-index = <1>;
464                 compatible = "fsl,mpc8548-pcie";
465                 device_type = "pci";
466                 #interrupt-cells = <1>;
467                 #size-cells = <2>;
468                 #address-cells = <3>;
469                 reg = <0xffe09000 0x1000>;
470                 bus-range = <0 255>;
471                 ranges = <0x2000000 0x0 0xa0000000 0xa0000000 0x0 0x20000000
472                           0x1000000 0x0 0x0 0xffc10000 0x0 0x10000>;
473                 clock-frequency = <33333333>;
474                 interrupt-parent = <&mpic>;
475                 interrupts = <26 2>;
476                 interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
477                 interrupt-map = <
478                         /* IDSEL 0x0 */
479                         0000 0x0 0x0 0x1 &mpic 0x4 0x1
480                         0000 0x0 0x0 0x2 &mpic 0x5 0x1
481                         0000 0x0 0x0 0x3 &mpic 0x6 0x1
482                         0000 0x0 0x0 0x4 &mpic 0x7 0x1
483                         >;
484                 pcie@0 {
485                         reg = <0x0 0x0 0x0 0x0 0x0>;
486                         #size-cells = <2>;
487                         #address-cells = <3>;
488                         device_type = "pci";
489                         ranges = <0x2000000 0x0 0xa0000000
490                                   0x2000000 0x0 0xa0000000
491                                   0x0 0x20000000
492
493                                   0x1000000 0x0 0x0
494                                   0x1000000 0x0 0x0
495                                   0x0 0x100000>;
496                 };
497         };
498
499         pci2: pcie@ffe0a000 {
500                 cell-index = <2>;
501                 compatible = "fsl,mpc8548-pcie";
502                 device_type = "pci";
503                 #interrupt-cells = <1>;
504                 #size-cells = <2>;
505                 #address-cells = <3>;
506                 reg = <0xffe0a000 0x1000>;
507                 bus-range = <0 255>;
508                 ranges = <0x2000000 0x0 0xc0000000 0xc0000000 0x0 0x20000000
509                           0x1000000 0x0 0x0 0xffc20000 0x0 0x10000>;
510                 clock-frequency = <33333333>;
511                 interrupt-parent = <&mpic>;
512                 interrupts = <27 2>;
513                 interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
514                 interrupt-map = <
515                         /* IDSEL 0x0 */
516                         0000 0x0 0x0 0x1 &mpic 0x0 0x1
517                         0000 0x0 0x0 0x2 &mpic 0x1 0x1
518                         0000 0x0 0x0 0x3 &mpic 0x2 0x1
519                         0000 0x0 0x0 0x4 &mpic 0x3 0x1
520                         >;
521                 pcie@0 {
522                         reg = <0x0 0x0 0x0 0x0 0x0>;
523                         #size-cells = <2>;
524                         #address-cells = <3>;
525                         device_type = "pci";
526                         ranges = <0x2000000 0x0 0xc0000000
527                                   0x2000000 0x0 0xc0000000
528                                   0x0 0x20000000
529
530                                   0x1000000 0x0 0x0
531                                   0x1000000 0x0 0x0
532                                   0x0 0x100000>;
533                 };
534         };
535 };