Merge branch 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mfashe...
[linux-2.6] / arch / powerpc / boot / dts / lite5200b.dts
1 /*
2  * Lite5200B board Device Tree Source
3  *
4  * Copyright 2006 Secret Lab Technologies Ltd.
5  * Grant Likely <grant.likely@secretlab.ca>
6  *
7  * This program is free software; you can redistribute  it and/or modify it
8  * under  the terms of  the GNU General  Public License as published by the
9  * Free Software Foundation;  either version 2 of the  License, or (at your
10  * option) any later version.
11  */
12
13 / {
14         model = "Lite5200b";
15         compatible = "lite5200b\0lite52xx\0mpc5200b\0mpc52xx";
16         #address-cells = <1>;
17         #size-cells = <1>;
18
19         cpus {
20                 #cpus = <1>;
21                 #address-cells = <1>;
22                 #size-cells = <0>;
23
24                 PowerPC,5200@0 {
25                         device_type = "cpu";
26                         reg = <0>;
27                         d-cache-line-size = <20>;
28                         i-cache-line-size = <20>;
29                         d-cache-size = <4000>;          // L1, 16K
30                         i-cache-size = <4000>;          // L1, 16K
31                         timebase-frequency = <0>;       // from bootloader
32                         bus-frequency = <0>;            // from bootloader
33                         clock-frequency = <0>;          // from bootloader
34                         32-bit;
35                 };
36         };
37
38         memory {
39                 device_type = "memory";
40                 reg = <00000000 10000000>;      // 256MB
41         };
42
43         soc5200@f0000000 {
44                 #interrupt-cells = <3>;
45                 device_type = "soc";
46                 ranges = <0 f0000000 f0010000>;
47                 reg = <f0000000 00010000>;
48                 bus-frequency = <0>;            // from bootloader
49
50                 cdm@200 {
51                         compatible = "mpc5200b-cdm\0mpc52xx-cdm";
52                         reg = <200 38>;
53                 };
54
55                 pic@500 {
56                         // 5200 interrupts are encoded into two levels;
57                         linux,phandle = <500>;
58                         interrupt-controller;
59                         #interrupt-cells = <3>;
60                         device_type = "interrupt-controller";
61                         compatible = "mpc5200b-pic\0mpc52xx-pic";
62                         reg = <500 80>;
63                         built-in;
64                 };
65
66                 gpt@600 {       // General Purpose Timer
67                         compatible = "mpc5200b-gpt\0mpc52xx-gpt";
68                         device_type = "gpt";
69                         reg = <600 10>;
70                         interrupts = <1 9 0>;
71                         interrupt-parent = <500>;
72                 };
73
74                 gpt@610 {       // General Purpose Timer
75                         compatible = "mpc5200b-gpt\0mpc52xx-gpt";
76                         device_type = "gpt";
77                         reg = <610 10>;
78                         interrupts = <1 a 0>;
79                         interrupt-parent = <500>;
80                 };
81
82                 gpt@620 {       // General Purpose Timer
83                         compatible = "mpc5200b-gpt\0mpc52xx-gpt";
84                         device_type = "gpt";
85                         reg = <620 10>;
86                         interrupts = <1 b 0>;
87                         interrupt-parent = <500>;
88                 };
89
90                 gpt@630 {       // General Purpose Timer
91                         compatible = "mpc5200b-gpt\0mpc52xx-gpt";
92                         device_type = "gpt";
93                         reg = <630 10>;
94                         interrupts = <1 c 0>;
95                         interrupt-parent = <500>;
96                 };
97
98                 gpt@640 {       // General Purpose Timer
99                         compatible = "mpc5200b-gpt\0mpc52xx-gpt";
100                         device_type = "gpt";
101                         reg = <640 10>;
102                         interrupts = <1 d 0>;
103                         interrupt-parent = <500>;
104                 };
105
106                 gpt@650 {       // General Purpose Timer
107                         compatible = "mpc5200b-gpt\0mpc52xx-gpt";
108                         device_type = "gpt";
109                         reg = <650 10>;
110                         interrupts = <1 e 0>;
111                         interrupt-parent = <500>;
112                 };
113
114                 gpt@660 {       // General Purpose Timer
115                         compatible = "mpc5200b-gpt\0mpc52xx-gpt";
116                         device_type = "gpt";
117                         reg = <660 10>;
118                         interrupts = <1 f 0>;
119                         interrupt-parent = <500>;
120                 };
121
122                 gpt@670 {       // General Purpose Timer
123                         compatible = "mpc5200b-gpt\0mpc52xx-gpt";
124                         device_type = "gpt";
125                         reg = <670 10>;
126                         interrupts = <1 10 0>;
127                         interrupt-parent = <500>;
128                 };
129
130                 rtc@800 {       // Real time clock
131                         compatible = "mpc5200b-rtc\0mpc52xx-rtc";
132                         device_type = "rtc";
133                         reg = <800 100>;
134                         interrupts = <1 5 0 1 6 0>;
135                         interrupt-parent = <500>;
136                 };
137
138                 mscan@900 {
139                         device_type = "mscan";
140                         compatible = "mpc5200b-mscan\0mpc52xx-mscan";
141                         interrupts = <2 11 0>;
142                         interrupt-parent = <500>;
143                         reg = <900 80>;
144                 };
145
146                 mscan@980 {
147                         device_type = "mscan";
148                         compatible = "mpc5200b-mscan\0mpc52xx-mscan";
149                         interrupts = <1 12 0>;
150                         interrupt-parent = <500>;
151                         reg = <980 80>;
152                 };
153
154                 gpio@b00 {
155                         compatible = "mpc5200b-gpio\0mpc52xx-gpio";
156                         reg = <b00 40>;
157                         interrupts = <1 7 0>;
158                         interrupt-parent = <500>;
159                 };
160
161                 gpio-wkup@b00 {
162                         compatible = "mpc5200b-gpio-wkup\0mpc52xx-gpio-wkup";
163                         reg = <c00 40>;
164                         interrupts = <1 8 0 0 3 0>;
165                         interrupt-parent = <500>;
166                 };
167
168                 pci@0d00 {
169                         #interrupt-cells = <1>;
170                         #size-cells = <2>;
171                         #address-cells = <3>;
172                         device_type = "pci";
173                         compatible = "mpc5200b-pci\0mpc52xx-pci";
174                         reg = <d00 100>;
175                         interrupt-map-mask = <f800 0 0 7>;
176                         interrupt-map = <c000 0 0 1 500 0 0 3 // 1st slot
177                                          c000 0 0 2 500 1 1 3
178                                          c000 0 0 3 500 1 2 3
179                                          c000 0 0 4 500 1 3 3
180
181                                          c800 0 0 1 500 1 1 3 // 2nd slot
182                                          c800 0 0 2 500 1 2 3
183                                          c800 0 0 3 500 1 3 3
184                                          c800 0 0 4 500 0 0 3>;
185                         clock-frequency = <0>; // From boot loader
186                         interrupts = <2 8 0 2 9 0 2 a 0>;
187                         interrupt-parent = <500>;
188                         bus-range = <0 0>;
189                         ranges = <42000000 0 80000000 80000000 0 20000000
190                                   02000000 0 a0000000 a0000000 0 10000000
191                                   01000000 0 00000000 b0000000 0 01000000>;
192                 };
193
194                 spi@f00 {
195                         device_type = "spi";
196                         compatible = "mpc5200b-spi\0mpc52xx-spi";
197                         reg = <f00 20>;
198                         interrupts = <2 d 0 2 e 0>;
199                         interrupt-parent = <500>;
200                 };
201
202                 usb@1000 {
203                         device_type = "usb-ohci-be";
204                         compatible = "mpc5200b-ohci\0mpc52xx-ohci\0ohci-be";
205                         reg = <1000 ff>;
206                         interrupts = <2 6 0>;
207                         interrupt-parent = <500>;
208                 };
209
210                 bestcomm@1200 {
211                         device_type = "dma-controller";
212                         compatible = "mpc5200b-bestcomm\0mpc52xx-bestcomm";
213                         reg = <1200 80>;
214                         interrupts = <3 0 0  3 1 0  3 2 0  3 3 0
215                                       3 4 0  3 5 0  3 6 0  3 7 0
216                                       3 8 0  3 9 0  3 a 0  3 b 0
217                                       3 c 0  3 d 0  3 e 0  3 f 0>;
218                         interrupt-parent = <500>;
219                 };
220
221                 xlb@1f00 {
222                         compatible = "mpc5200b-xlb\0mpc52xx-xlb";
223                         reg = <1f00 100>;
224                 };
225
226                 serial@2000 {           // PSC1
227                         device_type = "serial";
228                         compatible = "mpc5200b-psc-uart\0mpc52xx-psc-uart";
229                         port-number = <0>;  // Logical port assignment
230                         reg = <2000 100>;
231                         interrupts = <2 1 0>;
232                         interrupt-parent = <500>;
233                 };
234
235                 // PSC2 in spi mode example
236                 spi@2200 {              // PSC2
237                         device_type = "spi";
238                         compatible = "mpc5200b-psc-spi\0mpc52xx-psc-spi";
239                         reg = <2200 100>;
240                         interrupts = <2 2 0>;
241                         interrupt-parent = <500>;
242                 };
243
244                 // PSC3 in CODEC mode example
245                 i2s@2400 {              // PSC3
246                         device_type = "i2s";
247                         compatible = "mpc5200b-psc-i2s\0mpc52xx-psc-i2s";
248                         reg = <2400 100>;
249                         interrupts = <2 3 0>;
250                         interrupt-parent = <500>;
251                 };
252
253                 // PSC4 unconfigured
254                 //serial@2600 {         // PSC4
255                 //      device_type = "serial";
256                 //      compatible = "mpc5200b-psc-uart\0mpc52xx-psc-uart";
257                 //      reg = <2600 100>;
258                 //      interrupts = <2 b 0>;
259                 //      interrupt-parent = <500>;
260                 //};
261
262                 // PSC5 unconfigured
263                 //serial@2800 {         // PSC5
264                 //      device_type = "serial";
265                 //      compatible = "mpc5200b-psc-uart\0mpc52xx-psc-uart";
266                 //      reg = <2800 100>;
267                 //      interrupts = <2 c 0>;
268                 //      interrupt-parent = <500>;
269                 //};
270
271                 // PSC6 in AC97 mode example
272                 ac97@2c00 {             // PSC6
273                         device_type = "ac97";
274                         compatible = "mpc5200b-psc-ac97\0mpc52xx-psc-ac97";
275                         reg = <2c00 100>;
276                         interrupts = <2 4 0>;
277                         interrupt-parent = <500>;
278                 };
279
280                 ethernet@3000 {
281                         device_type = "network";
282                         compatible = "mpc5200b-fec\0mpc52xx-fec";
283                         reg = <3000 800>;
284                         mac-address = [ 02 03 04 05 06 07 ]; // Bad!
285                         interrupts = <2 5 0>;
286                         interrupt-parent = <500>;
287                 };
288
289                 ata@3a00 {
290                         device_type = "ata";
291                         compatible = "mpc5200b-ata\0mpc52xx-ata";
292                         reg = <3a00 100>;
293                         interrupts = <2 7 0>;
294                         interrupt-parent = <500>;
295                 };
296
297                 i2c@3d00 {
298                         device_type = "i2c";
299                         compatible = "mpc5200b-i2c\0mpc52xx-i2c";
300                         reg = <3d00 40>;
301                         interrupts = <2 f 0>;
302                         interrupt-parent = <500>;
303                 };
304
305                 i2c@3d40 {
306                         device_type = "i2c";
307                         compatible = "mpc5200b-i2c\0mpc52xx-i2c";
308                         reg = <3d40 40>;
309                         interrupts = <2 10 0>;
310                         interrupt-parent = <500>;
311                 };
312                 sram@8000 {
313                         device_type = "sram";
314                         compatible = "mpc5200b-sram\0mpc52xx-sram\0sram";
315                         reg = <8000 4000>;
316                 };
317         };
318 };