Pull throttle into release branch
[linux-2.6] / 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 = <20>;
35                         d-cache-line-size = <20>;
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 property is supplied by zImage
139                                 // based on firmware's configuration of the
140                                 // EBC bridge
141                                 interrupts = <5 4>;
142                                 interrupt-parent = <&UIC1>;
143
144                                 small-flash@0,80000 {
145                                         device_type = "rom";
146                                         compatible = "direct-mapped";
147                                         probe-type = "JEDEC";
148                                         bank-width = <1>;
149                                         partitions = <0 80000>;
150                                         partition-names = "OpenBIOS";
151                                         reg = <0 80000 80000>;
152                                 };
153
154                                 ds1743@1,0 {
155                                         /* NVRAM & RTC */
156                                         compatible = "ds1743";
157                                         reg = <1 0 2000>;
158                                 };
159
160                                 large-flash@2,0 {
161                                         device_type = "rom";
162                                         compatible = "direct-mapped";
163                                         probe-type = "JEDEC";
164                                         bank-width = <1>;
165                                         partitions = <0 380000
166                                                       380000 80000>;
167                                         partition-names = "fs", "firmware";
168                                         reg = <2 0 400000>;
169                                 };
170
171                                 ir@3,0 {
172                                         reg = <3 0 10>;
173                                 };
174
175                                 fpga@7,0 {
176                                         compatible = "Ebony-FPGA";
177                                         reg = <7 0 10>;
178                                 };
179                         };
180
181                         UART0: serial@40000200 {
182                                 device_type = "serial";
183                                 compatible = "ns16550";
184                                 reg = <40000200 8>;
185                                 virtual-reg = <e0000200>;
186                                 clock-frequency = <A8C000>;
187                                 current-speed = <2580>;
188                                 interrupt-parent = <&UIC0>;
189                                 interrupts = <0 4>;
190                         };
191
192                         UART1: serial@40000300 {
193                                 device_type = "serial";
194                                 compatible = "ns16550";
195                                 reg = <40000300 8>;
196                                 virtual-reg = <e0000300>;
197                                 clock-frequency = <A8C000>;
198                                 current-speed = <2580>;
199                                 interrupt-parent = <&UIC0>;
200                                 interrupts = <1 4>;
201                         };
202
203                         IIC0: i2c@40000400 {
204                                 /* FIXME */
205                                 device_type = "i2c";
206                                 compatible = "ibm,iic-440gp", "ibm,iic";
207                                 reg = <40000400 14>;
208                                 interrupt-parent = <&UIC0>;
209                                 interrupts = <2 4>;
210                         };
211                         IIC1: i2c@40000500 {
212                                 /* FIXME */
213                                 device_type = "i2c";
214                                 compatible = "ibm,iic-440gp", "ibm,iic";
215                                 reg = <40000500 14>;
216                                 interrupt-parent = <&UIC0>;
217                                 interrupts = <3 4>;
218                         };
219
220                         GPIO0: gpio@40000700 {
221                                 /* FIXME */
222                                 compatible = "ibm,gpio-440gp";
223                                 reg = <40000700 20>;
224                         };
225
226                         ZMII0: emac-zmii@40000780 {
227                                 compatible = "ibm,zmii-440gp", "ibm,zmii";
228                                 reg = <40000780 c>;
229                         };
230
231                         EMAC0: ethernet@40000800 {
232                                 linux,network-index = <0>;
233                                 device_type = "network";
234                                 compatible = "ibm,emac-440gp", "ibm,emac";
235                                 interrupt-parent = <&UIC1>;
236                                 interrupts = <1c 4 1d 4>;
237                                 reg = <40000800 70>;
238                                 local-mac-address = [000000000000]; // Filled in by zImage
239                                 mal-device = <&MAL0>;
240                                 mal-tx-channel = <0 1>;
241                                 mal-rx-channel = <0>;
242                                 cell-index = <0>;
243                                 max-frame-size = <5dc>;
244                                 rx-fifo-size = <1000>;
245                                 tx-fifo-size = <800>;
246                                 phy-mode = "rmii";
247                                 phy-map = <00000001>;
248                                 zmii-device = <&ZMII0>;
249                                 zmii-channel = <0>;
250                         };
251                         EMAC1: ethernet@40000900 {
252                                 linux,network-index = <1>;
253                                 device_type = "network";
254                                 compatible = "ibm,emac-440gp", "ibm,emac";
255                                 interrupt-parent = <&UIC1>;
256                                 interrupts = <1e 4 1f 4>;
257                                 reg = <40000900 70>;
258                                 local-mac-address = [000000000000]; // Filled in by zImage
259                                 mal-device = <&MAL0>;
260                                 mal-tx-channel = <2 3>;
261                                 mal-rx-channel = <1>;
262                                 cell-index = <1>;
263                                 max-frame-size = <5dc>;
264                                 rx-fifo-size = <1000>;
265                                 tx-fifo-size = <800>;
266                                 phy-mode = "rmii";
267                                 phy-map = <00000001>;
268                                 zmii-device = <&ZMII0>;
269                                 zmii-channel = <1>;
270                         };
271
272
273                         GPT0: gpt@40000a00 {
274                                 /* FIXME */
275                                 reg = <40000a00 d4>;
276                                 interrupt-parent = <&UIC0>;
277                                 interrupts = <12 4 13 4 14 4 15 4 16 4>;
278                         };
279
280                 };
281
282                 PCIX0: pci@1234 {
283                         device_type = "pci";
284                         /* FIXME */
285                         reg = <2 0ec00000 8
286                                2 0ec80000 f0
287                                2 0ec80100 fc>;
288                 };
289         };
290
291         chosen {
292                 linux,stdout-path = "/plb/opb/serial@40000200";
293         };
294 };