Merge branch 'gpio/merge' of git://git.secretlab.ca/git/linux-2.6
[linux-2.6/x86.git] / arch / powerpc / boot / dts / xpedite5301.dts
blobdb7faf5ebb39c36bf23cad9138cac4aaa5c07dc5
1 /*
2  * Copyright (C) 2008 Extreme Engineering Solutions, Inc.
3  * Based on MPC8572DS device tree from Freescale Semiconductor, Inc.
4  *
5  * XPedite5301 PMC/XMC module based on MPC8572E
6  *
7  * This is free software; you can redistribute it and/or modify
8  * it under the terms of the GNU General Public License version 2 as
9  * published by the Free Software Foundation.
10  */
12 /dts-v1/;
13 / {
14         model = "xes,xpedite5301";
15         compatible = "xes,xpedite5301", "xes,MPC8572";
16         #address-cells = <2>;
17         #size-cells = <2>;
18         form-factor = "PMC/XMC";
19         boot-bank = <0x0>;      /* 0: Primary flash, 1: Secondary flash */
21         aliases {
22                 ethernet0 = &enet0;
23                 ethernet1 = &enet1;
24                 serial0 = &serial0;
25                 serial1 = &serial1;
26                 pci1 = &pci1;
27                 pci2 = &pci2;
28         };
30         cpus {
31                 #address-cells = <1>;
32                 #size-cells = <0>;
34                 PowerPC,8572@0 {
35                         device_type = "cpu";
36                         reg = <0x0>;
37                         d-cache-line-size = <32>;       // 32 bytes
38                         i-cache-line-size = <32>;       // 32 bytes
39                         d-cache-size = <0x8000>;                // L1, 32K
40                         i-cache-size = <0x8000>;                // L1, 32K
41                         timebase-frequency = <0>;
42                         bus-frequency = <0>;
43                         clock-frequency = <0>;
44                         next-level-cache = <&L2>;
45                 };
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                         next-level-cache = <&L2>;
58                 };
59         };
61         memory {
62                 device_type = "memory";
63                 reg = <0x0 0x0 0x0 0x0>;        // Filled in by U-Boot
64         };
66         localbus@ef005000 {
67                 #address-cells = <2>;
68                 #size-cells = <1>;
69                 compatible = "fsl,mpc8572-elbc", "fsl,elbc", "simple-bus";
70                 reg = <0 0xef005000 0 0x1000>;
71                 interrupts = <19 2>;
72                 interrupt-parent = <&mpic>;
73                 /* Local bus region mappings */
74                 ranges = <0 0 0 0xf8000000 0x8000000 /* CS0: Boot flash */
75                           1 0 0 0xf0000000 0x8000000 /* CS1: Alternate flash */
76                           2 0 0 0xef800000 0x40000   /* CS2: NAND CE1 */
77                           3 0 0 0xef840000 0x40000>; /* CS3: NAND CE2 */
79                 nor-boot@0,0 {
80                         compatible = "amd,s29gl01gp", "cfi-flash";
81                         bank-width = <2>;
82                         reg = <0 0 0x8000000>; /* 128MB */
83                         #address-cells = <1>;
84                         #size-cells = <1>;
85                         partition@0 {
86                                 label = "Primary user space";
87                                 reg = <0x00000000 0x6f00000>; /* 111 MB */
88                         };
89                         partition@6f00000 {
90                                 label = "Primary kernel";
91                                 reg = <0x6f00000 0x1000000>; /* 16 MB */
92                         };
93                         partition@7f00000 {
94                                 label = "Primary DTB";
95                                 reg = <0x7f00000 0x40000>; /* 256 KB */
96                         };
97                         partition@7f40000 {
98                                 label = "Primary U-Boot environment";
99                                 reg = <0x7f40000 0x40000>; /* 256 KB */
100                         };
101                         partition@7f80000 {
102                                 label = "Primary U-Boot";
103                                 reg = <0x7f80000 0x80000>; /* 512 KB */
104                                 read-only;
105                         };
106                 };
108                 nor-alternate@1,0 {
109                         compatible = "amd,s29gl01gp", "cfi-flash";
110                         bank-width = <2>;
111                         //reg = <0xf0000000 0x08000000>; /* 128MB */
112                         reg = <1 0 0x8000000>; /* 128MB */
113                         #address-cells = <1>;
114                         #size-cells = <1>;
115                         partition@0 {
116                                 label = "Secondary user space";
117                                 reg = <0x00000000 0x6f00000>; /* 111 MB */
118                         };
119                         partition@6f00000 {
120                                 label = "Secondary kernel";
121                                 reg = <0x6f00000 0x1000000>; /* 16 MB */
122                         };
123                         partition@7f00000 {
124                                 label = "Secondary DTB";
125                                 reg = <0x7f00000 0x40000>; /* 256 KB */
126                         };
127                         partition@7f40000 {
128                                 label = "Secondary U-Boot environment";
129                                 reg = <0x7f40000 0x40000>; /* 256 KB */
130                         };
131                         partition@7f80000 {
132                                 label = "Secondary U-Boot";
133                                 reg = <0x7f80000 0x80000>; /* 512 KB */
134                                 read-only;
135                         };
136                 };
138                 nand@2,0 {
139                         #address-cells = <1>;
140                         #size-cells = <1>;
141                         /*
142                          * Actual part could be ST Micro NAND08GW3B2A (1 GB),
143                          * Micron MT29F8G08DAA (2x 512 MB), or Micron
144                          * MT29F16G08FAA (2x 1 GB), depending on the build
145                          * configuration
146                          */
147                         compatible = "fsl,mpc8572-fcm-nand",
148                                      "fsl,elbc-fcm-nand";
149                         reg = <2 0 0x40000>;
150                         /* U-Boot should fix this up if chip size > 1 GB */
151                         partition@0 {
152                                 label = "NAND Filesystem";
153                                 reg = <0 0x40000000>;
154                         };
155                 };
157         };
159         soc8572@ef000000 {
160                 #address-cells = <1>;
161                 #size-cells = <1>;
162                 device_type = "soc";
163                 compatible = "fsl,mpc8572-immr", "simple-bus";
164                 ranges = <0x0 0 0xef000000 0x100000>;
165                 bus-frequency = <0>;            // Filled out by uboot.
167                 ecm-law@0 {
168                         compatible = "fsl,ecm-law";
169                         reg = <0x0 0x1000>;
170                         fsl,num-laws = <12>;
171                 };
173                 ecm@1000 {
174                         compatible = "fsl,mpc8572-ecm", "fsl,ecm";
175                         reg = <0x1000 0x1000>;
176                         interrupts = <17 2>;
177                         interrupt-parent = <&mpic>;
178                 };
180                 memory-controller@2000 {
181                         compatible = "fsl,mpc8572-memory-controller";
182                         reg = <0x2000 0x1000>;
183                         interrupt-parent = <&mpic>;
184                         interrupts = <18 2>;
185                 };
187                 memory-controller@6000 {
188                         compatible = "fsl,mpc8572-memory-controller";
189                         reg = <0x6000 0x1000>;
190                         interrupt-parent = <&mpic>;
191                         interrupts = <18 2>;
192                 };
194                 L2: l2-cache-controller@20000 {
195                         compatible = "fsl,mpc8572-l2-cache-controller";
196                         reg = <0x20000 0x1000>;
197                         cache-line-size = <32>; // 32 bytes
198                         cache-size = <0x100000>; // L2, 1M
199                         interrupt-parent = <&mpic>;
200                         interrupts = <16 2>;
201                 };
203                 i2c@3000 {
204                         #address-cells = <1>;
205                         #size-cells = <0>;
206                         cell-index = <0>;
207                         compatible = "fsl-i2c";
208                         reg = <0x3000 0x100>;
209                         interrupts = <43 2>;
210                         interrupt-parent = <&mpic>;
211                         dfsrr;
213                         temp-sensor@48 {
214                                 compatible = "dallas,ds1631", "dallas,ds1621";
215                                 reg = <0x48>;
216                         };
218                         temp-sensor@4c {
219                                 compatible = "adi,adt7461";
220                                 reg = <0x4c>;
221                         };
223                         cpu-supervisor@51 {
224                                 compatible = "dallas,ds4510";
225                                 reg = <0x51>;
226                         };
228                         eeprom@54 {
229                                 compatible = "atmel,at24c128b";
230                                 reg = <0x54>;
231                         };
233                         rtc@68 {
234                                 compatible = "stm,m41t00",
235                                              "dallas,ds1338";
236                                 reg = <0x68>;
237                         };
239                         pcie-switch@70 {
240                                 compatible = "plx,pex8518";
241                                 reg = <0x70>;
242                         };
244                         gpio1: gpio@18 {
245                                 compatible = "nxp,pca9557";
246                                 reg = <0x18>;
247                                 #gpio-cells = <2>;
248                                 gpio-controller;
249                                 polarity = <0x00>;
250                         };
252                         gpio2: gpio@1c {
253                                 compatible = "nxp,pca9557";
254                                 reg = <0x1c>;
255                                 #gpio-cells = <2>;
256                                 gpio-controller;
257                                 polarity = <0x00>;
258                         };
260                         gpio3: gpio@1e {
261                                 compatible = "nxp,pca9557";
262                                 reg = <0x1e>;
263                                 #gpio-cells = <2>;
264                                 gpio-controller;
265                                 polarity = <0x00>;
266                         };
268                         gpio4: gpio@1f {
269                                 compatible = "nxp,pca9557";
270                                 reg = <0x1f>;
271                                 #gpio-cells = <2>;
272                                 gpio-controller;
273                                 polarity = <0x00>;
274                         };
275                 };
277                 i2c@3100 {
278                         #address-cells = <1>;
279                         #size-cells = <0>;
280                         cell-index = <1>;
281                         compatible = "fsl-i2c";
282                         reg = <0x3100 0x100>;
283                         interrupts = <43 2>;
284                         interrupt-parent = <&mpic>;
285                         dfsrr;
286                 };
288                 dma@c300 {
289                         #address-cells = <1>;
290                         #size-cells = <1>;
291                         compatible = "fsl,mpc8572-dma", "fsl,eloplus-dma";
292                         reg = <0xc300 0x4>;
293                         ranges = <0x0 0xc100 0x200>;
294                         cell-index = <1>;
295                         dma-channel@0 {
296                                 compatible = "fsl,mpc8572-dma-channel",
297                                                 "fsl,eloplus-dma-channel";
298                                 reg = <0x0 0x80>;
299                                 cell-index = <0>;
300                                 interrupt-parent = <&mpic>;
301                                 interrupts = <76 2>;
302                         };
303                         dma-channel@80 {
304                                 compatible = "fsl,mpc8572-dma-channel",
305                                                 "fsl,eloplus-dma-channel";
306                                 reg = <0x80 0x80>;
307                                 cell-index = <1>;
308                                 interrupt-parent = <&mpic>;
309                                 interrupts = <77 2>;
310                         };
311                         dma-channel@100 {
312                                 compatible = "fsl,mpc8572-dma-channel",
313                                                 "fsl,eloplus-dma-channel";
314                                 reg = <0x100 0x80>;
315                                 cell-index = <2>;
316                                 interrupt-parent = <&mpic>;
317                                 interrupts = <78 2>;
318                         };
319                         dma-channel@180 {
320                                 compatible = "fsl,mpc8572-dma-channel",
321                                                 "fsl,eloplus-dma-channel";
322                                 reg = <0x180 0x80>;
323                                 cell-index = <3>;
324                                 interrupt-parent = <&mpic>;
325                                 interrupts = <79 2>;
326                         };
327                 };
329                 dma@21300 {
330                         #address-cells = <1>;
331                         #size-cells = <1>;
332                         compatible = "fsl,mpc8572-dma", "fsl,eloplus-dma";
333                         reg = <0x21300 0x4>;
334                         ranges = <0x0 0x21100 0x200>;
335                         cell-index = <0>;
336                         dma-channel@0 {
337                                 compatible = "fsl,mpc8572-dma-channel",
338                                                 "fsl,eloplus-dma-channel";
339                                 reg = <0x0 0x80>;
340                                 cell-index = <0>;
341                                 interrupt-parent = <&mpic>;
342                                 interrupts = <20 2>;
343                         };
344                         dma-channel@80 {
345                                 compatible = "fsl,mpc8572-dma-channel",
346                                                 "fsl,eloplus-dma-channel";
347                                 reg = <0x80 0x80>;
348                                 cell-index = <1>;
349                                 interrupt-parent = <&mpic>;
350                                 interrupts = <21 2>;
351                         };
352                         dma-channel@100 {
353                                 compatible = "fsl,mpc8572-dma-channel",
354                                                 "fsl,eloplus-dma-channel";
355                                 reg = <0x100 0x80>;
356                                 cell-index = <2>;
357                                 interrupt-parent = <&mpic>;
358                                 interrupts = <22 2>;
359                         };
360                         dma-channel@180 {
361                                 compatible = "fsl,mpc8572-dma-channel",
362                                                 "fsl,eloplus-dma-channel";
363                                 reg = <0x180 0x80>;
364                                 cell-index = <3>;
365                                 interrupt-parent = <&mpic>;
366                                 interrupts = <23 2>;
367                         };
368                 };
370                 /* eTSEC 1 */
371                 enet0: ethernet@24000 {
372                         #address-cells = <1>;
373                         #size-cells = <1>;
374                         cell-index = <0>;
375                         device_type = "network";
376                         model = "eTSEC";
377                         compatible = "gianfar";
378                         reg = <0x24000 0x1000>;
379                         ranges = <0x0 0x24000 0x1000>;
380                         local-mac-address = [ 00 00 00 00 00 00 ];
381                         interrupts = <29 2 30 2 34 2>;
382                         interrupt-parent = <&mpic>;
383                         tbi-handle = <&tbi0>;
384                         phy-handle = <&phy0>;
385                         phy-connection-type = "sgmii";
387                         mdio@520 {
388                                 #address-cells = <1>;
389                                 #size-cells = <0>;
390                                 compatible = "fsl,gianfar-mdio";
391                                 reg = <0x520 0x20>;
393                                 phy0: ethernet-phy@1 {
394                                         interrupt-parent = <&mpic>;
395                                         interrupts = <8 1>;
396                                         reg = <0x1>;
397                                 };
398                                 phy1: ethernet-phy@2 {
399                                         interrupt-parent = <&mpic>;
400                                         interrupts = <8 1>;
401                                         reg = <0x2>;
402                                 };
403                                 tbi0: tbi-phy@11 {
404                                         reg = <0x11>;
405                                         device_type = "tbi-phy";
406                                 };
407                         };
408                 };
410                 /* eTSEC 2 */
411                 enet1: ethernet@25000 {
412                         #address-cells = <1>;
413                         #size-cells = <1>;
414                         cell-index = <1>;
415                         device_type = "network";
416                         model = "eTSEC";
417                         compatible = "gianfar";
418                         reg = <0x25000 0x1000>;
419                         ranges = <0x0 0x25000 0x1000>;
420                         local-mac-address = [ 00 00 00 00 00 00 ];
421                         interrupts = <35 2 36 2 40 2>;
422                         interrupt-parent = <&mpic>;
423                         tbi-handle = <&tbi1>;
424                         phy-handle = <&phy1>;
425                         phy-connection-type = "sgmii";
427                         mdio@520 {
428                                 #address-cells = <1>;
429                                 #size-cells = <0>;
430                                 compatible = "fsl,gianfar-tbi";
431                                 reg = <0x520 0x20>;
433                                 tbi1: tbi-phy@11 {
434                                         reg = <0x11>;
435                                         device_type = "tbi-phy";
436                                 };
437                         };
438                 };
440                 /* UART0 */
441                 serial0: serial@4500 {
442                         cell-index = <0>;
443                         device_type = "serial";
444                         compatible = "ns16550";
445                         reg = <0x4500 0x100>;
446                         clock-frequency = <0>;
447                         interrupts = <42 2>;
448                         interrupt-parent = <&mpic>;
449                 };
451                 /* UART1 */
452                 serial1: serial@4600 {
453                         cell-index = <1>;
454                         device_type = "serial";
455                         compatible = "ns16550";
456                         reg = <0x4600 0x100>;
457                         clock-frequency = <0>;
458                         interrupts = <42 2>;
459                         interrupt-parent = <&mpic>;
460                 };
462                 global-utilities@e0000 {        //global utilities block
463                         compatible = "fsl,mpc8572-guts";
464                         reg = <0xe0000 0x1000>;
465                         fsl,has-rstcr;
466                 };
468                 msi@41600 {
469                         compatible = "fsl,mpc8572-msi", "fsl,mpic-msi";
470                         reg = <0x41600 0x80>;
471                         msi-available-ranges = <0 0x100>;
472                         interrupts = <
473                                 0xe0 0
474                                 0xe1 0
475                                 0xe2 0
476                                 0xe3 0
477                                 0xe4 0
478                                 0xe5 0
479                                 0xe6 0
480                                 0xe7 0>;
481                         interrupt-parent = <&mpic>;
482                 };
484                 crypto@30000 {
485                         compatible = "fsl,sec3.0", "fsl,sec2.4", "fsl,sec2.2",
486                                      "fsl,sec2.1", "fsl,sec2.0";
487                         reg = <0x30000 0x10000>;
488                         interrupts = <45 2 58 2>;
489                         interrupt-parent = <&mpic>;
490                         fsl,num-channels = <4>;
491                         fsl,channel-fifo-len = <24>;
492                         fsl,exec-units-mask = <0x9fe>;
493                         fsl,descriptor-types-mask = <0x3ab0ebf>;
494                 };
496                 mpic: pic@40000 {
497                         interrupt-controller;
498                         #address-cells = <0>;
499                         #interrupt-cells = <2>;
500                         reg = <0x40000 0x40000>;
501                         compatible = "chrp,open-pic";
502                         device_type = "open-pic";
503                 };
505                 gpio0: gpio@f000 {
506                         compatible = "fsl,mpc8572-gpio";
507                         reg = <0xf000 0x1000>;
508                         interrupts = <47 2>;
509                         interrupt-parent = <&mpic>;
510                         #gpio-cells = <2>;
511                         gpio-controller;
512                 };
514                 gpio-leds {
515                         compatible = "gpio-leds";
517                         heartbeat {
518                                 label = "Heartbeat";
519                                 gpios = <&gpio0 4 1>;
520                                 linux,default-trigger = "heartbeat";
521                         };
523                         yellow {
524                                 label = "Yellow";
525                                 gpios = <&gpio0 5 1>;
526                         };
528                         red {
529                                 label = "Red";
530                                 gpios = <&gpio0 6 1>;
531                         };
533                         green {
534                                 label = "Green";
535                                 gpios = <&gpio0 7 1>;
536                         };
537                 };
539                 /* PME (pattern-matcher) */
540                 pme@10000 {
541                         compatible = "fsl,mpc8572-pme", "pme8572";
542                         reg = <0x10000 0x5000>;
543                         interrupts = <57 2 64 2 65 2 66 2 67 2>;
544                         interrupt-parent = <&mpic>;
545                 };
547                 tlu@2f000 {
548                         compatible = "fsl,mpc8572-tlu", "fsl_tlu";
549                         reg = <0x2f000 0x1000>;
550                         interupts = <61 2 >;
551                         interrupt-parent = <&mpic>;
552                 };
554                 tlu@15000 {
555                         compatible = "fsl,mpc8572-tlu", "fsl_tlu";
556                         reg = <0x15000 0x1000>;
557                         interupts = <75 2>;
558                         interrupt-parent = <&mpic>;
559                 };
560         };
562         /*
563          * PCI Express controller 3 @ ef008000 is not used.
564          * This would have been pci0 on other mpc85xx platforms.
565          */
567         /* PCI Express controller 2, wired to XMC P15 connector */
568         pci1: pcie@ef009000 {
569                 compatible = "fsl,mpc8548-pcie";
570                 device_type = "pci";
571                 #interrupt-cells = <1>;
572                 #size-cells = <2>;
573                 #address-cells = <3>;
574                 reg = <0 0xef009000 0 0x1000>;
575                 bus-range = <0 255>;
576                 ranges = <0x2000000 0x0 0xc0000000 0 0xc0000000 0x0 0x10000000
577                           0x1000000 0x0 0x00000000 0 0xe8800000 0x0 0x00010000>;
578                 clock-frequency = <33333333>;
579                 interrupt-parent = <&mpic>;
580                 interrupts = <25 2>;
581                 interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
582                 interrupt-map = <
583                         /* IDSEL 0x0 */
584                         0x0 0x0 0x0 0x1 &mpic 0x4 0x1
585                         0x0 0x0 0x0 0x2 &mpic 0x5 0x1
586                         0x0 0x0 0x0 0x3 &mpic 0x6 0x1
587                         0x0 0x0 0x0 0x4 &mpic 0x7 0x1
588                         >;
589                 pcie@0 {
590                         reg = <0x00000000 0x00000000 0x00000000 0x00000000 0x00000000>;
591                         #size-cells = <2>;
592                         #address-cells = <3>;
593                         device_type = "pci";
594                         ranges = <0x2000000 0x0 0xc0000000
595                                   0x2000000 0x0 0xc0000000
596                                   0x0 0x10000000
598                                   0x1000000 0x0 0x0
599                                   0x1000000 0x0 0x0
600                                   0x0 0x100000>;
601                 };
602         };
604         /* PCI Express controller 1, wired to PEX8112 for PMC interface */
605         pci2: pcie@ef00a000 {
606                 compatible = "fsl,mpc8548-pcie";
607                 device_type = "pci";
608                 #interrupt-cells = <1>;
609                 #size-cells = <2>;
610                 #address-cells = <3>;
611                 reg = <0 0xef00a000 0 0x1000>;
612                 bus-range = <0 255>;
613                 ranges = <0x2000000 0x0 0x80000000 0 0x80000000 0x0 0x40000000
614                           0x1000000 0x0 0x00000000 0 0xe8000000 0x0 0x10000>;
615                 clock-frequency = <33333333>;
616                 interrupt-parent = <&mpic>;
617                 interrupts = <26 2>;
618                 interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
619                 interrupt-map = <
620                         /* IDSEL 0x0 */
621                         0x0 0x0 0x0 0x1 &mpic 0x0 0x1
622                         0x0 0x0 0x0 0x2 &mpic 0x1 0x1
623                         0x0 0x0 0x0 0x3 &mpic 0x2 0x1
624                         0x0 0x0 0x0 0x4 &mpic 0x3 0x1
625                         >;
626                 pcie@0 {
627                         reg = <0x0 0x0 0x0 0x0 0x0>;
628                         #size-cells = <2>;
629                         #address-cells = <3>;
630                         device_type = "pci";
631                         ranges = <0x2000000 0x0 0x80000000
632                                   0x2000000 0x0 0x80000000
633                                   0x0 0x40000000
635                                   0x1000000 0x0 0x0
636                                   0x1000000 0x0 0x0
637                                   0x0 0x100000>;
638                 };
639         };