Merge git://git.linux-nfs.org/pub/linux/nfs-2.6
[linux-2.6] / arch / powerpc / boot / dts / mpc8641_hpcn.dts
1 /*
2  * MPC8641 HPCN Device Tree Source
3  *
4  * Copyright 2006 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
13 / {
14         model = "MPC8641HPCN";
15         compatible = "mpc86xx";
16         #address-cells = <1>;
17         #size-cells = <1>;
18
19         cpus {
20                 #address-cells = <1>;
21                 #size-cells = <0>;
22
23                 PowerPC,8641@0 {
24                         device_type = "cpu";
25                         reg = <0>;
26                         d-cache-line-size = <20>;       // 32 bytes
27                         i-cache-line-size = <20>;       // 32 bytes
28                         d-cache-size = <8000>;          // L1, 32K
29                         i-cache-size = <8000>;          // L1, 32K
30                         timebase-frequency = <0>;       // 33 MHz, from uboot
31                         bus-frequency = <0>;            // From uboot
32                         clock-frequency = <0>;          // From uboot
33                 };
34                 PowerPC,8641@1 {
35                         device_type = "cpu";
36                         reg = <1>;
37                         d-cache-line-size = <20>;       // 32 bytes
38                         i-cache-line-size = <20>;       // 32 bytes
39                         d-cache-size = <8000>;          // L1, 32K
40                         i-cache-size = <8000>;          // L1, 32K
41                         timebase-frequency = <0>;       // 33 MHz, from uboot
42                         bus-frequency = <0>;            // From uboot
43                         clock-frequency = <0>;          // From uboot
44                 };
45         };
46
47         memory {
48                 device_type = "memory";
49                 reg = <00000000 40000000>;      // 1G at 0x0
50         };
51
52         soc8641@f8000000 {
53                 #address-cells = <1>;
54                 #size-cells = <1>;
55                 device_type = "soc";
56                 ranges = <00000000 f8000000 00100000>;
57                 reg = <f8000000 00001000>;      // CCSRBAR
58                 bus-frequency = <0>;
59
60                 i2c@3000 {
61                         device_type = "i2c";
62                         compatible = "fsl-i2c";
63                         reg = <3000 100>;
64                         interrupts = <2b 2>;
65                         interrupt-parent = <&mpic>;
66                         dfsrr;
67                 };
68
69                 i2c@3100 {
70                         device_type = "i2c";
71                         compatible = "fsl-i2c";
72                         reg = <3100 100>;
73                         interrupts = <2b 2>;
74                         interrupt-parent = <&mpic>;
75                         dfsrr;
76                 };
77
78                 mdio@24520 {
79                         #address-cells = <1>;
80                         #size-cells = <0>;
81                         device_type = "mdio";
82                         compatible = "gianfar";
83                         reg = <24520 20>;
84                         phy0: ethernet-phy@0 {
85                                 interrupt-parent = <&mpic>;
86                                 interrupts = <a 1>;
87                                 reg = <0>;
88                                 device_type = "ethernet-phy";
89                         };
90                         phy1: ethernet-phy@1 {
91                                 interrupt-parent = <&mpic>;
92                                 interrupts = <a 1>;
93                                 reg = <1>;
94                                 device_type = "ethernet-phy";
95                         };
96                         phy2: ethernet-phy@2 {
97                                 interrupt-parent = <&mpic>;
98                                 interrupts = <a 1>;
99                                 reg = <2>;
100                                 device_type = "ethernet-phy";
101                         };
102                         phy3: ethernet-phy@3 {
103                                 interrupt-parent = <&mpic>;
104                                 interrupts = <a 1>;
105                                 reg = <3>;
106                                 device_type = "ethernet-phy";
107                         };
108                 };
109
110                 ethernet@24000 {
111                         #address-cells = <1>;
112                         #size-cells = <0>;
113                         device_type = "network";
114                         model = "TSEC";
115                         compatible = "gianfar";
116                         reg = <24000 1000>;
117                         /*
118                          * mac-address is deprecated and will be removed
119                          * in 2.6.25.  Only recent versions of
120                          * U-Boot support local-mac-address, however.
121                          */
122                         mac-address = [ 00 00 00 00 00 00 ];
123                         local-mac-address = [ 00 00 00 00 00 00 ];
124                         interrupts = <1d 2 1e 2 22 2>;
125                         interrupt-parent = <&mpic>;
126                         phy-handle = <&phy0>;
127                         phy-connection-type = "rgmii-id";
128                 };
129
130                 ethernet@25000 {
131                         #address-cells = <1>;
132                         #size-cells = <0>;
133                         device_type = "network";
134                         model = "TSEC";
135                         compatible = "gianfar";
136                         reg = <25000 1000>;
137                         /*
138                          * mac-address is deprecated and will be removed
139                          * in 2.6.25.  Only recent versions of
140                          * U-Boot support local-mac-address, however.
141                          */
142                         mac-address = [ 00 00 00 00 00 00 ];
143                         local-mac-address = [ 00 00 00 00 00 00 ];
144                         interrupts = <23 2 24 2 28 2>;
145                         interrupt-parent = <&mpic>;
146                         phy-handle = <&phy1>;
147                         phy-connection-type = "rgmii-id";
148                 };
149                 
150                 ethernet@26000 {
151                         #address-cells = <1>;
152                         #size-cells = <0>;
153                         device_type = "network";
154                         model = "TSEC";
155                         compatible = "gianfar";
156                         reg = <26000 1000>;
157                         /*
158                          * mac-address is deprecated and will be removed
159                          * in 2.6.25.  Only recent versions of
160                          * U-Boot support local-mac-address, however.
161                          */
162                         mac-address = [ 00 00 00 00 00 00 ];
163                         local-mac-address = [ 00 00 00 00 00 00 ];
164                         interrupts = <1F 2 20 2 21 2>;
165                         interrupt-parent = <&mpic>;
166                         phy-handle = <&phy2>;
167                         phy-connection-type = "rgmii-id";
168                 };
169
170                 ethernet@27000 {
171                         #address-cells = <1>;
172                         #size-cells = <0>;
173                         device_type = "network";
174                         model = "TSEC";
175                         compatible = "gianfar";
176                         reg = <27000 1000>;
177                         /*
178                          * mac-address is deprecated and will be removed
179                          * in 2.6.25.  Only recent versions of
180                          * U-Boot support local-mac-address, however.
181                          */
182                         mac-address = [ 00 00 00 00 00 00 ];
183                         local-mac-address = [ 00 00 00 00 00 00 ];
184                         interrupts = <25 2 26 2 27 2>;
185                         interrupt-parent = <&mpic>;
186                         phy-handle = <&phy3>;
187                         phy-connection-type = "rgmii-id";
188                 };
189                 serial@4500 {
190                         device_type = "serial";
191                         compatible = "ns16550";
192                         reg = <4500 100>;
193                         clock-frequency = <0>;
194                         interrupts = <2a 2>;
195                         interrupt-parent = <&mpic>;
196                 };
197
198                 serial@4600 {
199                         device_type = "serial";
200                         compatible = "ns16550";
201                         reg = <4600 100>;
202                         clock-frequency = <0>;
203                         interrupts = <1c 2>;
204                         interrupt-parent = <&mpic>;
205                 };
206
207                 mpic: pic@40000 {
208                         clock-frequency = <0>;
209                         interrupt-controller;
210                         #address-cells = <0>;
211                         #interrupt-cells = <2>;
212                         reg = <40000 40000>;
213                         compatible = "chrp,open-pic";
214                         device_type = "open-pic";
215                         big-endian;
216                 };
217
218                 global-utilities@e0000 {
219                         compatible = "fsl,mpc8641-guts";
220                         reg = <e0000 1000>;
221                         fsl,has-rstcr;
222                 };
223         };
224
225         pcie@f8008000 {
226                 compatible = "fsl,mpc8641-pcie";
227                 device_type = "pci";
228                 #interrupt-cells = <1>;
229                 #size-cells = <2>;
230                 #address-cells = <3>;
231                 reg = <f8008000 1000>;
232                 bus-range = <0 ff>;
233                 ranges = <02000000 0 80000000 80000000 0 20000000
234                           01000000 0 00000000 e2000000 0 00100000>;
235                 clock-frequency = <1fca055>;
236                 interrupt-parent = <&mpic>;
237                 interrupts = <18 2>;
238                 interrupt-map-mask = <ff00 0 0 7>;
239                 interrupt-map = <
240                         /* IDSEL 0x11 func 0 - PCI slot 1 */
241                         8800 0 0 1 &mpic 2 1
242                         8800 0 0 2 &mpic 3 1
243                         8800 0 0 3 &mpic 4 1
244                         8800 0 0 4 &mpic 1 1
245
246                         /* IDSEL 0x11 func 1 - PCI slot 1 */
247                         8900 0 0 1 &mpic 2 1
248                         8900 0 0 2 &mpic 3 1
249                         8900 0 0 3 &mpic 4 1
250                         8900 0 0 4 &mpic 1 1
251
252                         /* IDSEL 0x11 func 2 - PCI slot 1 */
253                         8a00 0 0 1 &mpic 2 1
254                         8a00 0 0 2 &mpic 3 1
255                         8a00 0 0 3 &mpic 4 1
256                         8a00 0 0 4 &mpic 1 1
257
258                         /* IDSEL 0x11 func 3 - PCI slot 1 */
259                         8b00 0 0 1 &mpic 2 1
260                         8b00 0 0 2 &mpic 3 1
261                         8b00 0 0 3 &mpic 4 1
262                         8b00 0 0 4 &mpic 1 1
263
264                         /* IDSEL 0x11 func 4 - PCI slot 1 */
265                         8c00 0 0 1 &mpic 2 1
266                         8c00 0 0 2 &mpic 3 1
267                         8c00 0 0 3 &mpic 4 1
268                         8c00 0 0 4 &mpic 1 1
269
270                         /* IDSEL 0x11 func 5 - PCI slot 1 */
271                         8d00 0 0 1 &mpic 2 1
272                         8d00 0 0 2 &mpic 3 1
273                         8d00 0 0 3 &mpic 4 1
274                         8d00 0 0 4 &mpic 1 1
275
276                         /* IDSEL 0x11 func 6 - PCI slot 1 */
277                         8e00 0 0 1 &mpic 2 1
278                         8e00 0 0 2 &mpic 3 1
279                         8e00 0 0 3 &mpic 4 1
280                         8e00 0 0 4 &mpic 1 1
281
282                         /* IDSEL 0x11 func 7 - PCI slot 1 */
283                         8f00 0 0 1 &mpic 2 1
284                         8f00 0 0 2 &mpic 3 1
285                         8f00 0 0 3 &mpic 4 1
286                         8f00 0 0 4 &mpic 1 1
287
288                         /* IDSEL 0x12 func 0 - PCI slot 2 */
289                         9000 0 0 1 &mpic 3 1
290                         9000 0 0 2 &mpic 4 1
291                         9000 0 0 3 &mpic 1 1
292                         9000 0 0 4 &mpic 2 1
293
294                         /* IDSEL 0x12 func 1 - PCI slot 2 */
295                         9100 0 0 1 &mpic 3 1
296                         9100 0 0 2 &mpic 4 1
297                         9100 0 0 3 &mpic 1 1
298                         9100 0 0 4 &mpic 2 1
299
300                         /* IDSEL 0x12 func 2 - PCI slot 2 */
301                         9200 0 0 1 &mpic 3 1
302                         9200 0 0 2 &mpic 4 1
303                         9200 0 0 3 &mpic 1 1
304                         9200 0 0 4 &mpic 2 1
305
306                         /* IDSEL 0x12 func 3 - PCI slot 2 */
307                         9300 0 0 1 &mpic 3 1
308                         9300 0 0 2 &mpic 4 1
309                         9300 0 0 3 &mpic 1 1
310                         9300 0 0 4 &mpic 2 1
311
312                         /* IDSEL 0x12 func 4 - PCI slot 2 */
313                         9400 0 0 1 &mpic 3 1
314                         9400 0 0 2 &mpic 4 1
315                         9400 0 0 3 &mpic 1 1
316                         9400 0 0 4 &mpic 2 1
317
318                         /* IDSEL 0x12 func 5 - PCI slot 2 */
319                         9500 0 0 1 &mpic 3 1
320                         9500 0 0 2 &mpic 4 1
321                         9500 0 0 3 &mpic 1 1
322                         9500 0 0 4 &mpic 2 1
323
324                         /* IDSEL 0x12 func 6 - PCI slot 2 */
325                         9600 0 0 1 &mpic 3 1
326                         9600 0 0 2 &mpic 4 1
327                         9600 0 0 3 &mpic 1 1
328                         9600 0 0 4 &mpic 2 1
329
330                         /* IDSEL 0x12 func 7 - PCI slot 2 */
331                         9700 0 0 1 &mpic 3 1
332                         9700 0 0 2 &mpic 4 1
333                         9700 0 0 3 &mpic 1 1
334                         9700 0 0 4 &mpic 2 1
335
336                         // IDSEL 0x1c  USB
337                         e000 0 0 1 &i8259 c 2
338                         e100 0 0 1 &i8259 9 2
339                         e200 0 0 1 &i8259 a 2
340                         e300 0 0 1 &i8259 b 2
341
342                         // IDSEL 0x1d  Audio
343                         e800 0 0 1 &i8259 6 2
344
345                         // IDSEL 0x1e Legacy
346                         f000 0 0 1 &i8259 7 2
347                         f100 0 0 1 &i8259 7 2
348
349                         // IDSEL 0x1f IDE/SATA
350                         f800 0 0 1 &i8259 e 2
351                         f900 0 0 1 &i8259 5 2
352                         >;
353
354                 pcie@0 {
355                         reg = <0 0 0 0 0>;
356                         #size-cells = <2>;
357                         #address-cells = <3>;
358                         device_type = "pci";
359                         ranges = <02000000 0 80000000
360                                   02000000 0 80000000
361                                   0 20000000
362
363                                   01000000 0 00000000
364                                   01000000 0 00000000
365                                   0 00100000>;
366                         uli1575@0 {
367                                 reg = <0 0 0 0 0>;
368                                 #size-cells = <2>;
369                                 #address-cells = <3>;
370                                 ranges = <02000000 0 80000000
371                                           02000000 0 80000000
372                                           0 20000000
373                                           01000000 0 00000000
374                                           01000000 0 00000000
375                                           0 00100000>;
376                                 isa@1e {
377                                         device_type = "isa";
378                                         #interrupt-cells = <2>;
379                                         #size-cells = <1>;
380                                         #address-cells = <2>;
381                                         reg = <f000 0 0 0 0>;
382                                         ranges = <1 0 01000000 0 0
383                                                   00001000>;
384                                         interrupt-parent = <&i8259>;
385
386                                         i8259: interrupt-controller@20 {
387                                                 reg = <1 20 2
388                                                        1 a0 2
389                                                        1 4d0 2>;
390                                                 interrupt-controller;
391                                                 device_type = "interrupt-controller";
392                                                 #address-cells = <0>;
393                                                 #interrupt-cells = <2>;
394                                                 compatible = "chrp,iic";
395                                                 interrupts = <9 2>;
396                                                 interrupt-parent = <&mpic>;
397                                         };
398
399                                         i8042@60 {
400                                                 #size-cells = <0>;
401                                                 #address-cells = <1>;
402                                                 reg = <1 60 1 1 64 1>;
403                                                 interrupts = <1 3 c 3>;
404                                                 interrupt-parent =
405                                                         <&i8259>;
406
407                                                 keyboard@0 {
408                                                         reg = <0>;
409                                                         compatible = "pnpPNP,303";
410                                                 };
411
412                                                 mouse@1 {
413                                                         reg = <1>;
414                                                         compatible = "pnpPNP,f03";
415                                                 };
416                                         };
417
418                                         rtc@70 {
419                                                 compatible =
420                                                         "pnpPNP,b00";
421                                                 reg = <1 70 2>;
422                                         };
423
424                                         gpio@400 {
425                                                 reg = <1 400 80>;
426                                         };
427                                 };
428                         };
429                 };
430
431         };
432
433         pcie@f8009000 {
434                 compatible = "fsl,mpc8641-pcie";
435                 device_type = "pci";
436                 #interrupt-cells = <1>;
437                 #size-cells = <2>;
438                 #address-cells = <3>;
439                 reg = <f8009000 1000>;
440                 bus-range = <0 ff>;
441                 ranges = <02000000 0 a0000000 a0000000 0 20000000
442                           01000000 0 00000000 e3000000 0 00100000>;
443                 clock-frequency = <1fca055>;
444                 interrupt-parent = <&mpic>;
445                 interrupts = <19 2>;
446                 interrupt-map-mask = <f800 0 0 7>;
447                 interrupt-map = <
448                         /* IDSEL 0x0 */
449                         0000 0 0 1 &mpic 4 1
450                         0000 0 0 2 &mpic 5 1
451                         0000 0 0 3 &mpic 6 1
452                         0000 0 0 4 &mpic 7 1
453                         >;
454                 pcie@0 {
455                         reg = <0 0 0 0 0>;
456                         #size-cells = <2>;
457                         #address-cells = <3>;
458                         device_type = "pci";
459                         ranges = <02000000 0 a0000000
460                                   02000000 0 a0000000
461                                   0 20000000
462
463                                   01000000 0 00000000
464                                   01000000 0 00000000
465                                   0 00100000>;
466                 };
467         };
468 };