powerpc/86xx: Add new LAW & MCM device tree nodes for all 86xx systems
[sfrench/cifs-2.6.git] / 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 /dts-v1/;
13
14 / {
15         model = "MPC8641HPCN";
16         compatible = "fsl,mpc8641hpcn";
17         #address-cells = <1>;
18         #size-cells = <1>;
19
20         aliases {
21                 ethernet0 = &enet0;
22                 ethernet1 = &enet1;
23                 ethernet2 = &enet2;
24                 ethernet3 = &enet3;
25                 serial0 = &serial0;
26                 serial1 = &serial1;
27                 pci0 = &pci0;
28                 pci1 = &pci1;
29 /*
30  * Only one of Rapid IO or PCI can be present due to HW limitations and
31  * due to the fact that the 2 now share address space in the new memory
32  * map.  The most likely case is that we have PCI, so comment out the
33  * rapidio node.  Leave it here for reference.
34  */
35                 /* rapidio0 = &rapidio0; */
36         };
37
38         cpus {
39                 #address-cells = <1>;
40                 #size-cells = <0>;
41
42                 PowerPC,8641@0 {
43                         device_type = "cpu";
44                         reg = <0>;
45                         d-cache-line-size = <32>;
46                         i-cache-line-size = <32>;
47                         d-cache-size = <32768>;         // L1
48                         i-cache-size = <32768>;         // L1
49                         timebase-frequency = <0>;       // From uboot
50                         bus-frequency = <0>;            // From uboot
51                         clock-frequency = <0>;          // From uboot
52                 };
53                 PowerPC,8641@1 {
54                         device_type = "cpu";
55                         reg = <1>;
56                         d-cache-line-size = <32>;
57                         i-cache-line-size = <32>;
58                         d-cache-size = <32768>;
59                         i-cache-size = <32768>;
60                         timebase-frequency = <0>;       // From uboot
61                         bus-frequency = <0>;            // From uboot
62                         clock-frequency = <0>;          // From uboot
63                 };
64         };
65
66         memory {
67                 device_type = "memory";
68                 reg = <0x00000000 0x40000000>;  // 1G at 0x0
69         };
70
71         localbus@ffe05000 {
72                 #address-cells = <2>;
73                 #size-cells = <1>;
74                 compatible = "fsl,mpc8641-localbus", "simple-bus";
75                 reg = <0xffe05000 0x1000>;
76                 interrupts = <19 2>;
77                 interrupt-parent = <&mpic>;
78
79                 ranges = <0 0 0xef800000 0x00800000
80                           2 0 0xffdf8000 0x00008000
81                           3 0 0xffdf0000 0x00008000>;
82
83                 flash@0,0 {
84                         compatible = "cfi-flash";
85                         reg = <0 0 0x00800000>;
86                         bank-width = <2>;
87                         device-width = <2>;
88                         #address-cells = <1>;
89                         #size-cells = <1>;
90                         partition@0 {
91                                 label = "kernel";
92                                 reg = <0x00000000 0x00300000>;
93                         };
94                         partition@300000 {
95                                 label = "firmware b";
96                                 reg = <0x00300000 0x00100000>;
97                                 read-only;
98                         };
99                         partition@400000 {
100                                 label = "fs";
101                                 reg = <0x00400000 0x00300000>;
102                         };
103                         partition@700000 {
104                                 label = "firmware a";
105                                 reg = <0x00700000 0x00100000>;
106                                 read-only;
107                         };
108                 };
109         };
110
111         soc8641@ffe00000 {
112                 #address-cells = <1>;
113                 #size-cells = <1>;
114                 device_type = "soc";
115                 compatible = "simple-bus";
116                 ranges = <0x00000000 0xffe00000 0x00100000>;
117                 reg = <0xffe00000 0x00001000>;  // CCSRBAR
118                 bus-frequency = <0>;
119
120                 mcm-law@0 {
121                         compatible = "fsl,mcm-law";
122                         reg = <0x0 0x1000>;
123                         fsl,num-laws = <10>;
124                 };
125
126                 mcm@1000 {
127                         compatible = "fsl,mpc8641-mcm", "fsl,mcm";
128                         reg = <0x1000 0x1000>;
129                         interrupts = <17 2>;
130                         interrupt-parent = <&mpic>;
131                 };
132
133                 i2c@3000 {
134                         #address-cells = <1>;
135                         #size-cells = <0>;
136                         cell-index = <0>;
137                         compatible = "fsl-i2c";
138                         reg = <0x3000 0x100>;
139                         interrupts = <43 2>;
140                         interrupt-parent = <&mpic>;
141                         dfsrr;
142                 };
143
144                 i2c@3100 {
145                         #address-cells = <1>;
146                         #size-cells = <0>;
147                         cell-index = <1>;
148                         compatible = "fsl-i2c";
149                         reg = <0x3100 0x100>;
150                         interrupts = <43 2>;
151                         interrupt-parent = <&mpic>;
152                         dfsrr;
153                 };
154
155                 dma@21300 {
156                         #address-cells = <1>;
157                         #size-cells = <1>;
158                         compatible = "fsl,mpc8641-dma", "fsl,eloplus-dma";
159                         reg = <0x21300 0x4>;
160                         ranges = <0x0 0x21100 0x200>;
161                         cell-index = <0>;
162                         dma-channel@0 {
163                                 compatible = "fsl,mpc8641-dma-channel",
164                                                 "fsl,eloplus-dma-channel";
165                                 reg = <0x0 0x80>;
166                                 cell-index = <0>;
167                                 interrupt-parent = <&mpic>;
168                                 interrupts = <20 2>;
169                         };
170                         dma-channel@80 {
171                                 compatible = "fsl,mpc8641-dma-channel",
172                                                 "fsl,eloplus-dma-channel";
173                                 reg = <0x80 0x80>;
174                                 cell-index = <1>;
175                                 interrupt-parent = <&mpic>;
176                                 interrupts = <21 2>;
177                         };
178                         dma-channel@100 {
179                                 compatible = "fsl,mpc8641-dma-channel",
180                                                 "fsl,eloplus-dma-channel";
181                                 reg = <0x100 0x80>;
182                                 cell-index = <2>;
183                                 interrupt-parent = <&mpic>;
184                                 interrupts = <22 2>;
185                         };
186                         dma-channel@180 {
187                                 compatible = "fsl,mpc8641-dma-channel",
188                                                 "fsl,eloplus-dma-channel";
189                                 reg = <0x180 0x80>;
190                                 cell-index = <3>;
191                                 interrupt-parent = <&mpic>;
192                                 interrupts = <23 2>;
193                         };
194                 };
195
196                 enet0: ethernet@24000 {
197                         #address-cells = <1>;
198                         #size-cells = <1>;
199                         cell-index = <0>;
200                         device_type = "network";
201                         model = "TSEC";
202                         compatible = "gianfar";
203                         reg = <0x24000 0x1000>;
204                         ranges = <0x0 0x24000 0x1000>;
205                         local-mac-address = [ 00 00 00 00 00 00 ];
206                         interrupts = <29 2 30  2 34 2>;
207                         interrupt-parent = <&mpic>;
208                         tbi-handle = <&tbi0>;
209                         phy-handle = <&phy0>;
210                         phy-connection-type = "rgmii-id";
211
212                         mdio@520 {
213                                 #address-cells = <1>;
214                                 #size-cells = <0>;
215                                 compatible = "fsl,gianfar-mdio";
216                                 reg = <0x520 0x20>;
217
218                                 phy0: ethernet-phy@0 {
219                                         interrupt-parent = <&mpic>;
220                                         interrupts = <10 1>;
221                                         reg = <0>;
222                                         device_type = "ethernet-phy";
223                                 };
224                                 phy1: ethernet-phy@1 {
225                                         interrupt-parent = <&mpic>;
226                                         interrupts = <10 1>;
227                                         reg = <1>;
228                                         device_type = "ethernet-phy";
229                                 };
230                                 phy2: ethernet-phy@2 {
231                                         interrupt-parent = <&mpic>;
232                                         interrupts = <10 1>;
233                                         reg = <2>;
234                                         device_type = "ethernet-phy";
235                                 };
236                                 phy3: ethernet-phy@3 {
237                                         interrupt-parent = <&mpic>;
238                                         interrupts = <10 1>;
239                                         reg = <3>;
240                                         device_type = "ethernet-phy";
241                                 };
242                                 tbi0: tbi-phy@11 {
243                                         reg = <0x11>;
244                                         device_type = "tbi-phy";
245                                 };
246                         };
247                 };
248
249                 enet1: ethernet@25000 {
250                         #address-cells = <1>;
251                         #size-cells = <1>;
252                         cell-index = <1>;
253                         device_type = "network";
254                         model = "TSEC";
255                         compatible = "gianfar";
256                         reg = <0x25000 0x1000>;
257                         ranges = <0x0 0x25000 0x1000>;
258                         local-mac-address = [ 00 00 00 00 00 00 ];
259                         interrupts = <35 2 36 2 40 2>;
260                         interrupt-parent = <&mpic>;
261                         tbi-handle = <&tbi1>;
262                         phy-handle = <&phy1>;
263                         phy-connection-type = "rgmii-id";
264
265                         mdio@520 {
266                                 #address-cells = <1>;
267                                 #size-cells = <0>;
268                                 compatible = "fsl,gianfar-tbi";
269                                 reg = <0x520 0x20>;
270
271                                 tbi1: tbi-phy@11 {
272                                         reg = <0x11>;
273                                         device_type = "tbi-phy";
274                                 };
275                         };
276                 };
277                 
278                 enet2: ethernet@26000 {
279                         #address-cells = <1>;
280                         #size-cells = <1>;
281                         cell-index = <2>;
282                         device_type = "network";
283                         model = "TSEC";
284                         compatible = "gianfar";
285                         reg = <0x26000 0x1000>;
286                         ranges = <0x0 0x26000 0x1000>;
287                         local-mac-address = [ 00 00 00 00 00 00 ];
288                         interrupts = <31 2 32 2 33 2>;
289                         interrupt-parent = <&mpic>;
290                         tbi-handle = <&tbi2>;
291                         phy-handle = <&phy2>;
292                         phy-connection-type = "rgmii-id";
293
294                         mdio@520 {
295                                 #address-cells = <1>;
296                                 #size-cells = <0>;
297                                 compatible = "fsl,gianfar-tbi";
298                                 reg = <0x520 0x20>;
299
300                                 tbi2: tbi-phy@11 {
301                                         reg = <0x11>;
302                                         device_type = "tbi-phy";
303                                 };
304                         };
305                 };
306
307                 enet3: ethernet@27000 {
308                         #address-cells = <1>;
309                         #size-cells = <1>;
310                         cell-index = <3>;
311                         device_type = "network";
312                         model = "TSEC";
313                         compatible = "gianfar";
314                         reg = <0x27000 0x1000>;
315                         ranges = <0x0 0x27000 0x1000>;
316                         local-mac-address = [ 00 00 00 00 00 00 ];
317                         interrupts = <37 2 38 2 39 2>;
318                         interrupt-parent = <&mpic>;
319                         tbi-handle = <&tbi3>;
320                         phy-handle = <&phy3>;
321                         phy-connection-type = "rgmii-id";
322
323                         mdio@520 {
324                                 #address-cells = <1>;
325                                 #size-cells = <0>;
326                                 compatible = "fsl,gianfar-tbi";
327                                 reg = <0x520 0x20>;
328
329                                 tbi3: tbi-phy@11 {
330                                         reg = <0x11>;
331                                         device_type = "tbi-phy";
332                                 };
333                         };
334                 };
335
336                 serial0: serial@4500 {
337                         cell-index = <0>;
338                         device_type = "serial";
339                         compatible = "ns16550";
340                         reg = <0x4500 0x100>;
341                         clock-frequency = <0>;
342                         interrupts = <42 2>;
343                         interrupt-parent = <&mpic>;
344                 };
345
346                 serial1: serial@4600 {
347                         cell-index = <1>;
348                         device_type = "serial";
349                         compatible = "ns16550";
350                         reg = <0x4600 0x100>;
351                         clock-frequency = <0>;
352                         interrupts = <28 2>;
353                         interrupt-parent = <&mpic>;
354                 };
355
356                 mpic: pic@40000 {
357                         interrupt-controller;
358                         #address-cells = <0>;
359                         #interrupt-cells = <2>;
360                         reg = <0x40000 0x40000>;
361                         compatible = "chrp,open-pic";
362                         device_type = "open-pic";
363                 };
364
365                 global-utilities@e0000 {
366                         compatible = "fsl,mpc8641-guts";
367                         reg = <0xe0000 0x1000>;
368                         fsl,has-rstcr;
369                 };
370         };
371
372         pci0: pcie@ffe08000 {
373                 compatible = "fsl,mpc8641-pcie";
374                 device_type = "pci";
375                 #interrupt-cells = <1>;
376                 #size-cells = <2>;
377                 #address-cells = <3>;
378                 reg = <0xffe08000 0x1000>;
379                 bus-range = <0x0 0xff>;
380                 ranges = <0x02000000 0x0 0x80000000 0x80000000 0x0 0x20000000
381                           0x01000000 0x0 0x00000000 0xffc00000 0x0 0x00010000>;
382                 clock-frequency = <33333333>;
383                 interrupt-parent = <&mpic>;
384                 interrupts = <24 2>;
385                 interrupt-map-mask = <0xff00 0 0 7>;
386                 interrupt-map = <
387                         /* IDSEL 0x11 func 0 - PCI slot 1 */
388                         0x8800 0 0 1 &mpic 2 1
389                         0x8800 0 0 2 &mpic 3 1
390                         0x8800 0 0 3 &mpic 4 1
391                         0x8800 0 0 4 &mpic 1 1
392
393                         /* IDSEL 0x11 func 1 - PCI slot 1 */
394                         0x8900 0 0 1 &mpic 2 1
395                         0x8900 0 0 2 &mpic 3 1
396                         0x8900 0 0 3 &mpic 4 1
397                         0x8900 0 0 4 &mpic 1 1
398
399                         /* IDSEL 0x11 func 2 - PCI slot 1 */
400                         0x8a00 0 0 1 &mpic 2 1
401                         0x8a00 0 0 2 &mpic 3 1
402                         0x8a00 0 0 3 &mpic 4 1
403                         0x8a00 0 0 4 &mpic 1 1
404
405                         /* IDSEL 0x11 func 3 - PCI slot 1 */
406                         0x8b00 0 0 1 &mpic 2 1
407                         0x8b00 0 0 2 &mpic 3 1
408                         0x8b00 0 0 3 &mpic 4 1
409                         0x8b00 0 0 4 &mpic 1 1
410
411                         /* IDSEL 0x11 func 4 - PCI slot 1 */
412                         0x8c00 0 0 1 &mpic 2 1
413                         0x8c00 0 0 2 &mpic 3 1
414                         0x8c00 0 0 3 &mpic 4 1
415                         0x8c00 0 0 4 &mpic 1 1
416
417                         /* IDSEL 0x11 func 5 - PCI slot 1 */
418                         0x8d00 0 0 1 &mpic 2 1
419                         0x8d00 0 0 2 &mpic 3 1
420                         0x8d00 0 0 3 &mpic 4 1
421                         0x8d00 0 0 4 &mpic 1 1
422
423                         /* IDSEL 0x11 func 6 - PCI slot 1 */
424                         0x8e00 0 0 1 &mpic 2 1
425                         0x8e00 0 0 2 &mpic 3 1
426                         0x8e00 0 0 3 &mpic 4 1
427                         0x8e00 0 0 4 &mpic 1 1
428
429                         /* IDSEL 0x11 func 7 - PCI slot 1 */
430                         0x8f00 0 0 1 &mpic 2 1
431                         0x8f00 0 0 2 &mpic 3 1
432                         0x8f00 0 0 3 &mpic 4 1
433                         0x8f00 0 0 4 &mpic 1 1
434
435                         /* IDSEL 0x12 func 0 - PCI slot 2 */
436                         0x9000 0 0 1 &mpic 3 1
437                         0x9000 0 0 2 &mpic 4 1
438                         0x9000 0 0 3 &mpic 1 1
439                         0x9000 0 0 4 &mpic 2 1
440
441                         /* IDSEL 0x12 func 1 - PCI slot 2 */
442                         0x9100 0 0 1 &mpic 3 1
443                         0x9100 0 0 2 &mpic 4 1
444                         0x9100 0 0 3 &mpic 1 1
445                         0x9100 0 0 4 &mpic 2 1
446
447                         /* IDSEL 0x12 func 2 - PCI slot 2 */
448                         0x9200 0 0 1 &mpic 3 1
449                         0x9200 0 0 2 &mpic 4 1
450                         0x9200 0 0 3 &mpic 1 1
451                         0x9200 0 0 4 &mpic 2 1
452
453                         /* IDSEL 0x12 func 3 - PCI slot 2 */
454                         0x9300 0 0 1 &mpic 3 1
455                         0x9300 0 0 2 &mpic 4 1
456                         0x9300 0 0 3 &mpic 1 1
457                         0x9300 0 0 4 &mpic 2 1
458
459                         /* IDSEL 0x12 func 4 - PCI slot 2 */
460                         0x9400 0 0 1 &mpic 3 1
461                         0x9400 0 0 2 &mpic 4 1
462                         0x9400 0 0 3 &mpic 1 1
463                         0x9400 0 0 4 &mpic 2 1
464
465                         /* IDSEL 0x12 func 5 - PCI slot 2 */
466                         0x9500 0 0 1 &mpic 3 1
467                         0x9500 0 0 2 &mpic 4 1
468                         0x9500 0 0 3 &mpic 1 1
469                         0x9500 0 0 4 &mpic 2 1
470
471                         /* IDSEL 0x12 func 6 - PCI slot 2 */
472                         0x9600 0 0 1 &mpic 3 1
473                         0x9600 0 0 2 &mpic 4 1
474                         0x9600 0 0 3 &mpic 1 1
475                         0x9600 0 0 4 &mpic 2 1
476
477                         /* IDSEL 0x12 func 7 - PCI slot 2 */
478                         0x9700 0 0 1 &mpic 3 1
479                         0x9700 0 0 2 &mpic 4 1
480                         0x9700 0 0 3 &mpic 1 1
481                         0x9700 0 0 4 &mpic 2 1
482
483                         // IDSEL 0x1c  USB
484                         0xe000 0 0 1 &i8259 12 2
485                         0xe100 0 0 2 &i8259 9 2
486                         0xe200 0 0 3 &i8259 10 2
487                         0xe300 0 0 4 &i8259 11 2
488
489                         // IDSEL 0x1d  Audio
490                         0xe800 0 0 1 &i8259 6 2
491
492                         // IDSEL 0x1e Legacy
493                         0xf000 0 0 1 &i8259 7 2
494                         0xf100 0 0 1 &i8259 7 2
495
496                         // IDSEL 0x1f IDE/SATA
497                         0xf800 0 0 1 &i8259 14 2
498                         0xf900 0 0 1 &i8259 5 2
499                         >;
500
501                 pcie@0 {
502                         reg = <0 0 0 0 0>;
503                         #size-cells = <2>;
504                         #address-cells = <3>;
505                         device_type = "pci";
506                         ranges = <0x02000000 0x0 0x80000000
507                                   0x02000000 0x0 0x80000000
508                                   0x0 0x20000000
509
510                                   0x01000000 0x0 0x00000000
511                                   0x01000000 0x0 0x00000000
512                                   0x0 0x00010000>;
513                         uli1575@0 {
514                                 reg = <0 0 0 0 0>;
515                                 #size-cells = <2>;
516                                 #address-cells = <3>;
517                                 ranges = <0x02000000 0x0 0x80000000
518                                           0x02000000 0x0 0x80000000
519                                           0x0 0x20000000
520                                           0x01000000 0x0 0x00000000
521                                           0x01000000 0x0 0x00000000
522                                           0x0 0x00010000>;
523                                 isa@1e {
524                                         device_type = "isa";
525                                         #interrupt-cells = <2>;
526                                         #size-cells = <1>;
527                                         #address-cells = <2>;
528                                         reg = <0xf000 0 0 0 0>;
529                                         ranges = <1 0 0x01000000 0 0
530                                                   0x00001000>;
531                                         interrupt-parent = <&i8259>;
532
533                                         i8259: interrupt-controller@20 {
534                                                 reg = <1 0x20 2
535                                                        1 0xa0 2
536                                                        1 0x4d0 2>;
537                                                 interrupt-controller;
538                                                 device_type = "interrupt-controller";
539                                                 #address-cells = <0>;
540                                                 #interrupt-cells = <2>;
541                                                 compatible = "chrp,iic";
542                                                 interrupts = <9 2>;
543                                                 interrupt-parent = <&mpic>;
544                                         };
545
546                                         i8042@60 {
547                                                 #size-cells = <0>;
548                                                 #address-cells = <1>;
549                                                 reg = <1 0x60 1 1 0x64 1>;
550                                                 interrupts = <1 3 12 3>;
551                                                 interrupt-parent =
552                                                         <&i8259>;
553
554                                                 keyboard@0 {
555                                                         reg = <0>;
556                                                         compatible = "pnpPNP,303";
557                                                 };
558
559                                                 mouse@1 {
560                                                         reg = <1>;
561                                                         compatible = "pnpPNP,f03";
562                                                 };
563                                         };
564
565                                         rtc@70 {
566                                                 compatible =
567                                                         "pnpPNP,b00";
568                                                 reg = <1 0x70 2>;
569                                         };
570
571                                         gpio@400 {
572                                                 reg = <1 0x400 0x80>;
573                                         };
574                                 };
575                         };
576                 };
577
578         };
579
580         pci1: pcie@ffe09000 {
581                 compatible = "fsl,mpc8641-pcie";
582                 device_type = "pci";
583                 #interrupt-cells = <1>;
584                 #size-cells = <2>;
585                 #address-cells = <3>;
586                 reg = <0xffe09000 0x1000>;
587                 bus-range = <0 0xff>;
588                 ranges = <0x02000000 0x0 0xa0000000 0xa0000000 0x0 0x20000000
589                           0x01000000 0x0 0x00000000 0xffc10000 0x0 0x00010000>;
590                 clock-frequency = <33333333>;
591                 interrupt-parent = <&mpic>;
592                 interrupts = <25 2>;
593                 interrupt-map-mask = <0xf800 0 0 7>;
594                 interrupt-map = <
595                         /* IDSEL 0x0 */
596                         0x0000 0 0 1 &mpic 4 1
597                         0x0000 0 0 2 &mpic 5 1
598                         0x0000 0 0 3 &mpic 6 1
599                         0x0000 0 0 4 &mpic 7 1
600                         >;
601                 pcie@0 {
602                         reg = <0 0 0 0 0>;
603                         #size-cells = <2>;
604                         #address-cells = <3>;
605                         device_type = "pci";
606                         ranges = <0x02000000 0x0 0xa0000000
607                                   0x02000000 0x0 0xa0000000
608                                   0x0 0x20000000
609
610                                   0x01000000 0x0 0x00000000
611                                   0x01000000 0x0 0x00000000
612                                   0x0 0x00010000>;
613                 };
614         };
615 /*
616         rapidio0: rapidio@ffec0000 {
617                 #address-cells = <2>;
618                 #size-cells = <2>;
619                 compatible = "fsl,rapidio-delta";
620                 reg = <0xffec0000 0x20000>;
621                 ranges = <0 0 0x80000000 0 0x20000000>;
622                 interrupt-parent = <&mpic>;
623                 // err_irq bell_outb_irq bell_inb_irq
624                 //      msg1_tx_irq msg1_rx_irq msg2_tx_irq msg2_rx_irq
625                 interrupts = <48 2 49 2 50 2 53 2 54 2 55 2 56 2>;
626         };
627 */
628
629 };