Merge branch 'pxa-tosa' into pxa
[pandora-kernel.git] / arch / powerpc / boot / dts / mpc8610_hpcd.dts
1 /*
2  * MPC8610 HPCD Device Tree Source
3  *
4  * Copyright 2007-2008 Freescale Semiconductor Inc.
5  *
6  * This program is free software; you can redistribute  it and/or modify it
7  * under the terms of the GNU General Public License Version 2 as published
8  * by the Free Software Foundation.
9  */
10
11 /dts-v1/;
12
13 / {
14         model = "MPC8610HPCD";
15         compatible = "fsl,MPC8610HPCD";
16         #address-cells = <1>;
17         #size-cells = <1>;
18
19         aliases {
20                 serial0 = &serial0;
21                 serial1 = &serial1;
22                 pci0 = &pci0;
23                 pci1 = &pci1;
24                 pci2 = &pci2;
25         };
26
27         cpus {
28                 #address-cells = <1>;
29                 #size-cells = <0>;
30
31                 PowerPC,8610@0 {
32                         device_type = "cpu";
33                         reg = <0>;
34                         d-cache-line-size = <32>;
35                         i-cache-line-size = <32>;
36                         d-cache-size = <32768>;         // L1
37                         i-cache-size = <32768>;         // L1
38                         timebase-frequency = <0>;       // From uboot
39                         bus-frequency = <0>;            // From uboot
40                         clock-frequency = <0>;          // From uboot
41                 };
42         };
43
44         memory {
45                 device_type = "memory";
46                 reg = <0x00000000 0x20000000>;  // 512M at 0x0
47         };
48
49         localbus@e0005000 {
50                 #address-cells = <2>;
51                 #size-cells = <1>;
52                 compatible = "fsl,mpc8610-elbc", "fsl,elbc", "simple-bus";
53                 reg = <0xe0005000 0x1000>;
54                 interrupts = <19 2>;
55                 interrupt-parent = <&mpic>;
56                 ranges = <0 0 0xf8000000 0x08000000
57                           1 0 0xf0000000 0x08000000
58                           2 0 0xe8400000 0x00008000
59                           4 0 0xe8440000 0x00008000
60                           5 0 0xe8480000 0x00008000
61                           6 0 0xe84c0000 0x00008000
62                           3 0 0xe8000000 0x00000020>;
63
64                 flash@0,0 {
65                         compatible = "cfi-flash";
66                         reg = <0 0 0x8000000>;
67                         bank-width = <2>;
68                         device-width = <1>;
69                 };
70
71                 flash@1,0 {
72                         compatible = "cfi-flash";
73                         reg = <1 0 0x8000000>;
74                         bank-width = <2>;
75                         device-width = <1>;
76                 };
77
78                 flash@2,0 {
79                         compatible = "fsl,mpc8610-fcm-nand",
80                                      "fsl,elbc-fcm-nand";
81                         reg = <2 0 0x8000>;
82                 };
83
84                 flash@4,0 {
85                         compatible = "fsl,mpc8610-fcm-nand",
86                                      "fsl,elbc-fcm-nand";
87                         reg = <4 0 0x8000>;
88                 };
89
90                 flash@5,0 {
91                         compatible = "fsl,mpc8610-fcm-nand",
92                                      "fsl,elbc-fcm-nand";
93                         reg = <5 0 0x8000>;
94                 };
95
96                 flash@6,0 {
97                         compatible = "fsl,mpc8610-fcm-nand",
98                                      "fsl,elbc-fcm-nand";
99                         reg = <6 0 0x8000>;
100                 };
101
102                 board-control@3,0 {
103                         compatible = "fsl,fpga-pixis";
104                         reg = <3 0 0x20>;
105                 };
106         };
107
108         soc@e0000000 {
109                 #address-cells = <1>;
110                 #size-cells = <1>;
111                 #interrupt-cells = <2>;
112                 device_type = "soc";
113                 compatible = "fsl,mpc8610-immr", "simple-bus";
114                 ranges = <0x0 0xe0000000 0x00100000>;
115                 reg = <0xe0000000 0x1000>;
116                 bus-frequency = <0>;
117
118                 i2c@3000 {
119                         #address-cells = <1>;
120                         #size-cells = <0>;
121                         cell-index = <0>;
122                         compatible = "fsl-i2c";
123                         reg = <0x3000 0x100>;
124                         interrupts = <43 2>;
125                         interrupt-parent = <&mpic>;
126                         dfsrr;
127
128                         cs4270:codec@4f {
129                                 compatible = "cirrus,cs4270";
130                                 reg = <0x4f>;
131                                 /* MCLK source is a stand-alone oscillator */
132                                 clock-frequency = <12288000>;
133                         };
134                 };
135
136                 i2c@3100 {
137                         #address-cells = <1>;
138                         #size-cells = <0>;
139                         cell-index = <1>;
140                         compatible = "fsl-i2c";
141                         reg = <0x3100 0x100>;
142                         interrupts = <43 2>;
143                         interrupt-parent = <&mpic>;
144                         dfsrr;
145                 };
146
147                 serial0: serial@4500 {
148                         cell-index = <0>;
149                         device_type = "serial";
150                         compatible = "ns16550";
151                         reg = <0x4500 0x100>;
152                         clock-frequency = <0>;
153                         interrupts = <42 2>;
154                         interrupt-parent = <&mpic>;
155                 };
156
157                 serial1: serial@4600 {
158                         cell-index = <1>;
159                         device_type = "serial";
160                         compatible = "ns16550";
161                         reg = <0x4600 0x100>;
162                         clock-frequency = <0>;
163                         interrupts = <42 2>;
164                         interrupt-parent = <&mpic>;
165                 };
166
167                 display@2c000 {
168                         compatible = "fsl,diu";
169                         reg = <0x2c000 100>;
170                         interrupts = <72 2>;
171                         interrupt-parent = <&mpic>;
172                 };
173
174                 mpic: interrupt-controller@40000 {
175                         clock-frequency = <0>;
176                         interrupt-controller;
177                         #address-cells = <0>;
178                         #interrupt-cells = <2>;
179                         reg = <0x40000 0x40000>;
180                         compatible = "chrp,open-pic";
181                         device_type = "open-pic";
182                         big-endian;
183                 };
184
185                 global-utilities@e0000 {
186                         compatible = "fsl,mpc8610-guts";
187                         reg = <0xe0000 0x1000>;
188                         fsl,has-rstcr;
189                 };
190
191                 i2s@16000 {
192                         compatible = "fsl,mpc8610-ssi";
193                         cell-index = <0>;
194                         reg = <0x16000 0x100>;
195                         interrupt-parent = <&mpic>;
196                         interrupts = <62 2>;
197                         fsl,mode = "i2s-slave";
198                         codec-handle = <&cs4270>;
199                 };
200
201                 ssi@16100 {
202                         compatible = "fsl,mpc8610-ssi";
203                         cell-index = <1>;
204                         reg = <0x16100 0x100>;
205                         interrupt-parent = <&mpic>;
206                         interrupts = <63 2>;
207                 };
208
209                 dma@21300 {
210                         #address-cells = <1>;
211                         #size-cells = <1>;
212                         compatible = "fsl,mpc8610-dma", "fsl,eloplus-dma";
213                         cell-index = <0>;
214                         reg = <0x21300 0x4>; /* DMA general status register */
215                         ranges = <0x0 0x21100 0x200>;
216
217                         dma-channel@0 {
218                                 compatible = "fsl,mpc8610-dma-channel",
219                                         "fsl,eloplus-dma-channel";
220                                 cell-index = <0>;
221                                 reg = <0x0 0x80>;
222                                 interrupt-parent = <&mpic>;
223                                 interrupts = <20 2>;
224                         };
225                         dma-channel@1 {
226                                 compatible = "fsl,mpc8610-dma-channel",
227                                         "fsl,eloplus-dma-channel";
228                                 cell-index = <1>;
229                                 reg = <0x80 0x80>;
230                                 interrupt-parent = <&mpic>;
231                                 interrupts = <21 2>;
232                         };
233                         dma-channel@2 {
234                                 compatible = "fsl,mpc8610-dma-channel",
235                                         "fsl,eloplus-dma-channel";
236                                 cell-index = <2>;
237                                 reg = <0x100 0x80>;
238                                 interrupt-parent = <&mpic>;
239                                 interrupts = <22 2>;
240                         };
241                         dma-channel@3 {
242                                 compatible = "fsl,mpc8610-dma-channel",
243                                         "fsl,eloplus-dma-channel";
244                                 cell-index = <3>;
245                                 reg = <0x180 0x80>;
246                                 interrupt-parent = <&mpic>;
247                                 interrupts = <23 2>;
248                         };
249                 };
250
251                 dma@c300 {
252                         #address-cells = <1>;
253                         #size-cells = <1>;
254                         compatible = "fsl,mpc8610-dma", "fsl,eloplus-dma";
255                         cell-index = <1>;
256                         reg = <0xc300 0x4>; /* DMA general status register */
257                         ranges = <0x0 0xc100 0x200>;
258
259                         dma-channel@0 {
260                                 compatible = "fsl,mpc8610-dma-channel",
261                                         "fsl,eloplus-dma-channel";
262                                 cell-index = <0>;
263                                 reg = <0x0 0x80>;
264                                 interrupt-parent = <&mpic>;
265                                 interrupts = <60 2>;
266                         };
267                         dma-channel@1 {
268                                 compatible = "fsl,mpc8610-dma-channel",
269                                         "fsl,eloplus-dma-channel";
270                                 cell-index = <1>;
271                                 reg = <0x80 0x80>;
272                                 interrupt-parent = <&mpic>;
273                                 interrupts = <61 2>;
274                         };
275                         dma-channel@2 {
276                                 compatible = "fsl,mpc8610-dma-channel",
277                                         "fsl,eloplus-dma-channel";
278                                 cell-index = <2>;
279                                 reg = <0x100 0x80>;
280                                 interrupt-parent = <&mpic>;
281                                 interrupts = <62 2>;
282                         };
283                         dma-channel@3 {
284                                 compatible = "fsl,mpc8610-dma-channel",
285                                         "fsl,eloplus-dma-channel";
286                                 cell-index = <3>;
287                                 reg = <0x180 0x80>;
288                                 interrupt-parent = <&mpic>;
289                                 interrupts = <63 2>;
290                         };
291                 };
292
293         };
294
295         pci0: pci@e0008000 {
296                 cell-index = <0>;
297                 compatible = "fsl,mpc8610-pci";
298                 device_type = "pci";
299                 #interrupt-cells = <1>;
300                 #size-cells = <2>;
301                 #address-cells = <3>;
302                 reg = <0xe0008000 0x1000>;
303                 bus-range = <0 0>;
304                 ranges = <0x02000000 0x0 0x80000000 0x80000000 0x0 0x10000000
305                           0x01000000 0x0 0x00000000 0xe1000000 0x0 0x00100000>;
306                 clock-frequency = <33333333>;
307                 interrupt-parent = <&mpic>;
308                 interrupts = <24 2>;
309                 interrupt-map-mask = <0xf800 0 0 7>;
310                 interrupt-map = <
311                         /* IDSEL 0x11 */
312                         0x8800 0 0 1 &mpic 4 1
313                         0x8800 0 0 2 &mpic 5 1
314                         0x8800 0 0 3 &mpic 6 1
315                         0x8800 0 0 4 &mpic 7 1
316
317                         /* IDSEL 0x12 */
318                         0x9000 0 0 1 &mpic 5 1
319                         0x9000 0 0 2 &mpic 6 1
320                         0x9000 0 0 3 &mpic 7 1
321                         0x9000 0 0 4 &mpic 4 1
322                         >;
323         };
324
325         pci1: pcie@e000a000 {
326                 cell-index = <1>;
327                 compatible = "fsl,mpc8641-pcie";
328                 device_type = "pci";
329                 #interrupt-cells = <1>;
330                 #size-cells = <2>;
331                 #address-cells = <3>;
332                 reg = <0xe000a000 0x1000>;
333                 bus-range = <1 3>;
334                 ranges = <0x02000000 0x0 0xa0000000 0xa0000000 0x0 0x10000000
335                           0x01000000 0x0 0x00000000 0xe3000000 0x0 0x00100000>;
336                 clock-frequency = <33333333>;
337                 interrupt-parent = <&mpic>;
338                 interrupts = <26 2>;
339                 interrupt-map-mask = <0xf800 0 0 7>;
340
341                 interrupt-map = <
342                         /* IDSEL 0x1b */
343                         0xd800 0 0 1 &mpic 2 1
344
345                         /* IDSEL 0x1c*/
346                         0xe000 0 0 1 &mpic 1 1
347                         0xe000 0 0 2 &mpic 1 1
348                         0xe000 0 0 3 &mpic 1 1
349                         0xe000 0 0 4 &mpic 1 1
350
351                         /* IDSEL 0x1f */
352                         0xf800 0 0 1 &mpic 3 0
353                         0xf800 0 0 2 &mpic 0 1
354                 >;
355
356                 pcie@0 {
357                         reg = <0 0 0 0 0>;
358                         #size-cells = <2>;
359                         #address-cells = <3>;
360                         device_type = "pci";
361                         ranges = <0x02000000 0x0 0xa0000000
362                                   0x02000000 0x0 0xa0000000
363                                   0x0 0x10000000
364                                   0x01000000 0x0 0x00000000
365                                   0x01000000 0x0 0x00000000
366                                   0x0 0x00100000>;
367                         uli1575@0 {
368                                 reg = <0 0 0 0 0>;
369                                 #size-cells = <2>;
370                                 #address-cells = <3>;
371                                 ranges = <0x02000000 0x0 0xa0000000
372                                           0x02000000 0x0 0xa0000000
373                                           0x0 0x10000000
374                                           0x01000000 0x0 0x00000000
375                                           0x01000000 0x0 0x00000000
376                                           0x0 0x00100000>;
377                         };
378                 };
379         };
380
381         pci2: pcie@e0009000 {
382                 #address-cells = <3>;
383                 #size-cells = <2>;
384                 #interrupt-cells = <1>;
385                 device_type = "pci";
386                 compatible = "fsl,mpc8641-pcie";
387                 reg = <0xe0009000 0x00001000>;
388                 ranges = <0x02000000 0 0x90000000 0x90000000 0 0x10000000
389                           0x01000000 0 0x00000000 0xe2000000 0 0x00100000>;
390                 bus-range = <0 255>;
391                 interrupt-map-mask = <0xf800 0 0 7>;
392                 interrupt-map = <0x0000 0 0 1 &mpic 4 1
393                                  0x0000 0 0 2 &mpic 5 1
394                                  0x0000 0 0 3 &mpic 6 1
395                                  0x0000 0 0 4 &mpic 7 1>;
396                 interrupt-parent = <&mpic>;
397                 interrupts = <25 2>;
398                 clock-frequency = <33333333>;
399         };
400 };