Pull thermal 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 = <32>;
35                         d-cache-line-size = <32>;
36                         i-cache-size = <0>;
37                         d-cache-size = <0>;
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                 device_type = "ibm,uic";
50                 compatible = "ibm,uic-440gp", "ibm,uic";
51                 interrupt-controller;
52                 cell-index = <0>;
53                 dcr-reg = <0c0 009>;
54                 #address-cells = <0>;
55                 #size-cells = <0>;
56                 #interrupt-cells = <2>;
57
58         };
59
60         UIC1: interrupt-controller1 {
61                 device_type = "ibm,uic";
62                 compatible = "ibm,uic-440gp", "ibm,uic";
63                 interrupt-controller;
64                 cell-index = <1>;
65                 dcr-reg = <0d0 009>;
66                 #address-cells = <0>;
67                 #size-cells = <0>;
68                 #interrupt-cells = <2>;
69                 interrupts = <1e 4 1f 4>; /* cascade */
70                 interrupt-parent = <&UIC0>;
71         };
72
73         CPC0: cpc {
74                 device_type = "ibm,cpc";
75                 compatible = "ibm,cpc-440gp";
76                 dcr-reg = <0b0 003 0e0 010>;
77                 // FIXME: anything else?
78         };
79
80         plb {
81                 device_type = "ibm,plb";
82                 compatible = "ibm,plb-440gp", "ibm,plb4";
83                 #address-cells = <2>;
84                 #size-cells = <1>;
85                 ranges;
86                 clock-frequency = <0>; // Filled in by zImage
87
88                 SDRAM0: sdram {
89                         device_type = "memory-controller";
90                         compatible = "ibm,sdram-440gp", "ibm,sdram";
91                         dcr-reg = <010 2>;
92                         // FIXME: anything else?
93                 };
94
95                 DMA0: dma {
96                         // FIXME: ???
97                         device_type = "ibm,dma-4xx";
98                         compatible = "ibm,dma-440gp", "ibm,dma-4xx";
99                         dcr-reg = <100 027>;
100                 };
101
102                 MAL0: mcmal {
103                         device_type = "mcmal-dma";
104                         compatible = "ibm,mcmal-440gp", "ibm,mcmal";
105                         dcr-reg = <180 62>;
106                         num-tx-chans = <4>;
107                         num-rx-chans = <4>;
108                         interrupt-parent = <&MAL0>;
109                         interrupts = <0 1 2 3 4>;
110                         #interrupt-cells = <1>;
111                         #address-cells = <0>;
112                         #size-cells = <0>;
113                         interrupt-map = </*TXEOB*/ 0 &UIC0 a 4
114                                          /*RXEOB*/ 1 &UIC0 b 4
115                                          /*SERR*/  2 &UIC1 0 4
116                                          /*TXDE*/  3 &UIC1 1 4
117                                          /*RXDE*/  4 &UIC1 2 4>;
118                         interrupt-map-mask = <ffffffff>;
119                 };
120
121                 POB0: opb {
122                         device_type = "ibm,opb";
123                         compatible = "ibm,opb-440gp", "ibm,opb";
124                         #address-cells = <1>;
125                         #size-cells = <1>;
126                         /* Wish there was a nicer way of specifying a full 32-bit
127                            range */
128                         ranges = <00000000 1 00000000 80000000
129                                   80000000 1 80000000 80000000>;
130                         dcr-reg = <090 00b>;
131                         interrupt-parent = <&UIC1>;
132                         interrupts = <7 4>;
133                         clock-frequency = <0>; // Filled in by zImage
134
135                         EBC0: ebc {
136                                 device_type = "ibm,ebc";
137                                 compatible = "ibm,ebc-440gp";
138                                 dcr-reg = <012 2>;
139                                 #address-cells = <2>;
140                                 #size-cells = <1>;
141                                 clock-frequency = <0>; // Filled in by zImage
142                                 ranges = <0 00000000 fff00000 100000
143                                           1 00000000 48000000 100000
144                                           2 00000000 ff800000 400000
145                                           3 00000000 48200000 100000
146                                           7 00000000 48300000 100000>;
147                                 interrupts = <5 4>;
148                                 interrupt-parent = <&UIC1>;
149
150                                 small-flash@0,0 {
151                                         device_type = "rom";
152                                         compatible = "direct-mapped";
153                                         probe-type = "JEDEC";
154                                         bank-width = <1>;
155                                         partitions = <0 80000>;
156                                         partition-names = "OpenBIOS";
157                                         reg = <0 80000 80000>;
158                                 };
159
160                                 ds1743@1,0 {
161                                         /* NVRAM & RTC */
162                                         device_type = "nvram";
163                                         compatible = "ds1743";
164                                         reg = <1 0 2000>;
165                                 };
166
167                                 large-flash@2,0 {
168                                         device_type = "rom";
169                                         compatible = "direct-mapped";
170                                         probe-type = "JEDEC";
171                                         bank-width = <1>;
172                                         partitions = <0 380000
173                                                       280000 80000>;
174                                         partition-names = "fs", "firmware";
175                                         reg = <2 0 400000>;
176                                 };
177
178                                 ir@3,0 {
179                                         reg = <3 0 10>;
180                                 };
181
182                                 fpga@7,0 {
183                                         compatible = "Ebony-FPGA";
184                                         reg = <7 0 10>;
185                                 };
186                         };
187
188                         UART0: serial@40000200 {
189                                 device_type = "serial";
190                                 compatible = "ns16550";
191                                 reg = <40000200 8>;
192                                 virtual-reg = <e0000200>;
193                                 clock-frequency = <A8C000>;
194                                 current-speed = <2580>;
195                                 interrupt-parent = <&UIC0>;
196                                 interrupts = <0 4>;
197                         };
198
199                         UART1: serial@40000300 {
200                                 device_type = "serial";
201                                 compatible = "ns16550";
202                                 reg = <40000300 8>;
203                                 virtual-reg = <e0000300>;
204                                 clock-frequency = <A8C000>;
205                                 current-speed = <2580>;
206                                 interrupt-parent = <&UIC0>;
207                                 interrupts = <1 4>;
208                         };
209
210                         IIC0: i2c@40000400 {
211                                 /* FIXME */
212                                 device_type = "i2c";
213                                 compatible = "ibm,iic-440gp", "ibm,iic";
214                                 reg = <40000400 14>;
215                                 interrupt-parent = <&UIC0>;
216                                 interrupts = <2 4>;
217                         };
218                         IIC1: i2c@40000500 {
219                                 /* FIXME */
220                                 device_type = "i2c";
221                                 compatible = "ibm,iic-440gp", "ibm,iic";
222                                 reg = <40000500 14>;
223                                 interrupt-parent = <&UIC0>;
224                                 interrupts = <3 4>;
225                         };
226
227                         GPIO0: gpio@40000700 {
228                                 /* FIXME */
229                                 device_type = "gpio";
230                                 compatible = "ibm,gpio-440gp";
231                                 reg = <40000700 20>;
232                         };
233
234                         ZMII0: emac-zmii@40000780 {
235                                 device_type = "emac-zmii";
236                                 compatible = "ibm,zmii-440gp", "ibm,zmii";
237                                 reg = <40000780 c>;
238                         };
239
240                         EMAC0: ethernet@40000800 {
241                                 linux,network-index = <0>;
242                                 device_type = "network";
243                                 compatible = "ibm,emac-440gp", "ibm,emac";
244                                 interrupt-parent = <&UIC1>;
245                                 interrupts = <1c 4 1d 4>;
246                                 reg = <40000800 70>;
247                                 local-mac-address = [000000000000]; // Filled in by zImage
248                                 mal-device = <&MAL0>;
249                                 mal-tx-channel = <0 1>;
250                                 mal-rx-channel = <0>;
251                                 cell-index = <0>;
252                                 max-frame-size = <5dc>;
253                                 rx-fifo-size = <1000>;
254                                 tx-fifo-size = <800>;
255                                 phy-mode = "rmii";
256                                 phy-map = <00000001>;
257                                 zmii-device = <&ZMII0>;
258                                 zmii-channel = <0>;
259                         };
260                         EMAC1: ethernet@40000900 {
261                                 linux,network-index = <1>;
262                                 device_type = "network";
263                                 compatible = "ibm,emac-440gp", "ibm,emac";
264                                 interrupt-parent = <&UIC1>;
265                                 interrupts = <1e 4 1f 4>;
266                                 reg = <40000900 70>;
267                                 local-mac-address = [000000000000]; // Filled in by zImage
268                                 mal-device = <&MAL0>;
269                                 mal-tx-channel = <2 3>;
270                                 mal-rx-channel = <1>;
271                                 cell-index = <1>;
272                                 max-frame-size = <5dc>;
273                                 rx-fifo-size = <1000>;
274                                 tx-fifo-size = <800>;
275                                 phy-mode = "rmii";
276                                 phy-map = <00000001>;
277                                 zmii-device = <&ZMII0>;
278                                 zmii-channel = <1>;
279                         };
280
281
282                         GPT0: gpt@40000a00 {
283                                 /* FIXME */
284                                 reg = <40000a00 d4>;
285                                 interrupt-parent = <&UIC0>;
286                                 interrupts = <12 4 13 4 14 4 15 4 16 4>;
287                         };
288
289                 };
290
291                 PCIX0: pci@1234 {
292                         device_type = "pci";
293                         /* FIXME */
294                         reg = <2 0ec00000 8
295                                2 0ec80000 f0
296                                2 0ec80100 fc>;
297                 };
298         };
299
300         chosen {
301                 linux,stdout-path = "/plb/opb/serial@40000200";
302 //              linux,initrd-start = <0>; /* FIXME */
303 //              linux,initrd-end = <0>;
304 //              bootargs = "";
305         };
306 };
307