[SCSI] Merge up to linux-2.6 head
[pandora-kernel.git] / arch / powerpc / boot / dts / ebony.dts
1 /*
2  * Device Tree Source for IBM Ebony
3  *
4  * Copyright (c) 2006, 2007 IBM Corp.
5  * Josh Boyer <jwboyer@linux.vnet.ibm.com>, David Gibson <dwg@au1.ibm.com>
6  *
7  * FIXME: Draft only!
8  *
9  * This file is licensed under the terms of the GNU General Public
10  * License version 2.  This program is licensed "as is" without
11  * any warranty of any kind, whether express or implied.
12  *
13  * To build:
14  *   dtc -I dts -O asm -o ebony.S -b 0 ebony.dts
15  *   dtc -I dts -O dtb -o ebony.dtb -b 0 ebony.dts
16  */
17
18 / {
19         #address-cells = <2>;
20         #size-cells = <1>;
21         model = "ibm,ebony";
22         compatible = "ibm,ebony";
23         dcr-parent = <&/cpus/PowerPC,440GP@0>;
24
25         cpus {
26                 #address-cells = <1>;
27                 #size-cells = <0>;
28
29                 PowerPC,440GP@0 {
30                         device_type = "cpu";
31                         reg = <0>;
32                         clock-frequency = <0>; // Filled in by zImage
33                         timebase-frequency = <0>; // Filled in by zImage
34                         i-cache-line-size = <32>;
35                         d-cache-line-size = <32>;
36                         i-cache-size = <8000>; /* 32 kB */
37                         d-cache-size = <8000>; /* 32 kB */
38                         dcr-controller;
39                         dcr-access-method = "native";
40                 };
41         };
42
43         memory {
44                 device_type = "memory";
45                 reg = <0 0 0>; // Filled in by zImage
46         };
47
48         UIC0: interrupt-controller0 {
49                 compatible = "ibm,uic-440gp", "ibm,uic";
50                 interrupt-controller;
51                 cell-index = <0>;
52                 dcr-reg = <0c0 009>;
53                 #address-cells = <0>;
54                 #size-cells = <0>;
55                 #interrupt-cells = <2>;
56
57         };
58
59         UIC1: interrupt-controller1 {
60                 compatible = "ibm,uic-440gp", "ibm,uic";
61                 interrupt-controller;
62                 cell-index = <1>;
63                 dcr-reg = <0d0 009>;
64                 #address-cells = <0>;
65                 #size-cells = <0>;
66                 #interrupt-cells = <2>;
67                 interrupts = <1e 4 1f 4>; /* cascade */
68                 interrupt-parent = <&UIC0>;
69         };
70
71         CPC0: cpc {
72                 compatible = "ibm,cpc-440gp";
73                 dcr-reg = <0b0 003 0e0 010>;
74                 // FIXME: anything else?
75         };
76
77         plb {
78                 compatible = "ibm,plb-440gp", "ibm,plb4";
79                 #address-cells = <2>;
80                 #size-cells = <1>;
81                 ranges;
82                 clock-frequency = <0>; // Filled in by zImage
83
84                 SDRAM0: memory-controller {
85                         compatible = "ibm,sdram-440gp";
86                         dcr-reg = <010 2>;
87                         // FIXME: anything else?
88                 };
89
90                 SRAM0: sram {
91                         compatible = "ibm,sram-440gp";
92                         dcr-reg = <020 8 00a 1>;
93                 };
94
95                 DMA0: dma {
96                         // FIXME: ???
97                         compatible = "ibm,dma-440gp";
98                         dcr-reg = <100 027>;
99                 };
100
101                 MAL0: mcmal {
102                         compatible = "ibm,mcmal-440gp", "ibm,mcmal";
103                         dcr-reg = <180 62>;
104                         num-tx-chans = <4>;
105                         num-rx-chans = <4>;
106                         interrupt-parent = <&MAL0>;
107                         interrupts = <0 1 2 3 4>;
108                         #interrupt-cells = <1>;
109                         #address-cells = <0>;
110                         #size-cells = <0>;
111                         interrupt-map = </*TXEOB*/ 0 &UIC0 a 4
112                                          /*RXEOB*/ 1 &UIC0 b 4
113                                          /*SERR*/  2 &UIC1 0 4
114                                          /*TXDE*/  3 &UIC1 1 4
115                                          /*RXDE*/  4 &UIC1 2 4>;
116                         interrupt-map-mask = <ffffffff>;
117                 };
118
119                 POB0: opb {
120                         compatible = "ibm,opb-440gp", "ibm,opb";
121                         #address-cells = <1>;
122                         #size-cells = <1>;
123                         /* Wish there was a nicer way of specifying a full 32-bit
124                            range */
125                         ranges = <00000000 1 00000000 80000000
126                                   80000000 1 80000000 80000000>;
127                         dcr-reg = <090 00b>;
128                         interrupt-parent = <&UIC1>;
129                         interrupts = <7 4>;
130                         clock-frequency = <0>; // Filled in by zImage
131
132                         EBC0: ebc {
133                                 compatible = "ibm,ebc-440gp", "ibm,ebc";
134                                 dcr-reg = <012 2>;
135                                 #address-cells = <2>;
136                                 #size-cells = <1>;
137                                 clock-frequency = <0>; // Filled in by zImage
138                                 ranges = <0 00000000 fff00000 100000
139                                           1 00000000 48000000 100000
140                                           2 00000000 ff800000 400000
141                                           3 00000000 48200000 100000
142                                           7 00000000 48300000 100000>;
143                                 interrupts = <5 4>;
144                                 interrupt-parent = <&UIC1>;
145
146                                 small-flash@0,80000 {
147                                         device_type = "rom";
148                                         compatible = "direct-mapped";
149                                         probe-type = "JEDEC";
150                                         bank-width = <1>;
151                                         partitions = <0 80000>;
152                                         partition-names = "OpenBIOS";
153                                         reg = <0 80000 80000>;
154                                 };
155
156                                 ds1743@1,0 {
157                                         /* NVRAM & RTC */
158                                         compatible = "ds1743";
159                                         reg = <1 0 2000>;
160                                 };
161
162                                 large-flash@2,0 {
163                                         device_type = "rom";
164                                         compatible = "direct-mapped";
165                                         probe-type = "JEDEC";
166                                         bank-width = <1>;
167                                         partitions = <0 380000
168                                                       380000 80000>;
169                                         partition-names = "fs", "firmware";
170                                         reg = <2 0 400000>;
171                                 };
172
173                                 ir@3,0 {
174                                         reg = <3 0 10>;
175                                 };
176
177                                 fpga@7,0 {
178                                         compatible = "Ebony-FPGA";
179                                         reg = <7 0 10>;
180                                 };
181                         };
182
183                         UART0: serial@40000200 {
184                                 device_type = "serial";
185                                 compatible = "ns16550";
186                                 reg = <40000200 8>;
187                                 virtual-reg = <e0000200>;
188                                 clock-frequency = <A8C000>;
189                                 current-speed = <2580>;
190                                 interrupt-parent = <&UIC0>;
191                                 interrupts = <0 4>;
192                         };
193
194                         UART1: serial@40000300 {
195                                 device_type = "serial";
196                                 compatible = "ns16550";
197                                 reg = <40000300 8>;
198                                 virtual-reg = <e0000300>;
199                                 clock-frequency = <A8C000>;
200                                 current-speed = <2580>;
201                                 interrupt-parent = <&UIC0>;
202                                 interrupts = <1 4>;
203                         };
204
205                         IIC0: i2c@40000400 {
206                                 /* FIXME */
207                                 device_type = "i2c";
208                                 compatible = "ibm,iic-440gp", "ibm,iic";
209                                 reg = <40000400 14>;
210                                 interrupt-parent = <&UIC0>;
211                                 interrupts = <2 4>;
212                         };
213                         IIC1: i2c@40000500 {
214                                 /* FIXME */
215                                 device_type = "i2c";
216                                 compatible = "ibm,iic-440gp", "ibm,iic";
217                                 reg = <40000500 14>;
218                                 interrupt-parent = <&UIC0>;
219                                 interrupts = <3 4>;
220                         };
221
222                         GPIO0: gpio@40000700 {
223                                 /* FIXME */
224                                 compatible = "ibm,gpio-440gp";
225                                 reg = <40000700 20>;
226                         };
227
228                         ZMII0: emac-zmii@40000780 {
229                                 compatible = "ibm,zmii-440gp", "ibm,zmii";
230                                 reg = <40000780 c>;
231                         };
232
233                         EMAC0: ethernet@40000800 {
234                                 linux,network-index = <0>;
235                                 device_type = "network";
236                                 compatible = "ibm,emac-440gp", "ibm,emac";
237                                 interrupt-parent = <&UIC1>;
238                                 interrupts = <1c 4 1d 4>;
239                                 reg = <40000800 70>;
240                                 local-mac-address = [000000000000]; // Filled in by zImage
241                                 mal-device = <&MAL0>;
242                                 mal-tx-channel = <0 1>;
243                                 mal-rx-channel = <0>;
244                                 cell-index = <0>;
245                                 max-frame-size = <5dc>;
246                                 rx-fifo-size = <1000>;
247                                 tx-fifo-size = <800>;
248                                 phy-mode = "rmii";
249                                 phy-map = <00000001>;
250                                 zmii-device = <&ZMII0>;
251                                 zmii-channel = <0>;
252                         };
253                         EMAC1: ethernet@40000900 {
254                                 linux,network-index = <1>;
255                                 device_type = "network";
256                                 compatible = "ibm,emac-440gp", "ibm,emac";
257                                 interrupt-parent = <&UIC1>;
258                                 interrupts = <1e 4 1f 4>;
259                                 reg = <40000900 70>;
260                                 local-mac-address = [000000000000]; // Filled in by zImage
261                                 mal-device = <&MAL0>;
262                                 mal-tx-channel = <2 3>;
263                                 mal-rx-channel = <1>;
264                                 cell-index = <1>;
265                                 max-frame-size = <5dc>;
266                                 rx-fifo-size = <1000>;
267                                 tx-fifo-size = <800>;
268                                 phy-mode = "rmii";
269                                 phy-map = <00000001>;
270                                 zmii-device = <&ZMII0>;
271                                 zmii-channel = <1>;
272                         };
273
274
275                         GPT0: gpt@40000a00 {
276                                 /* FIXME */
277                                 reg = <40000a00 d4>;
278                                 interrupt-parent = <&UIC0>;
279                                 interrupts = <12 4 13 4 14 4 15 4 16 4>;
280                         };
281
282                 };
283
284                 PCIX0: pci@1234 {
285                         device_type = "pci";
286                         /* FIXME */
287                         reg = <2 0ec00000 8
288                                2 0ec80000 f0
289                                2 0ec80100 fc>;
290                 };
291         };
292
293         chosen {
294                 linux,stdout-path = "/plb/opb/serial@40000200";
295         };
296 };