Merge branches 'release', 'asus', 'sony-laptop' and 'thinkpad' into release
[pandora-kernel.git] / arch / powerpc / boot / dts / walnut.dts
1 /*
2  * Device Tree Source for IBM Walnut
3  *
4  * Copyright 2007 IBM Corp.
5  * Josh Boyer <jwboyer@linux.vnet.ibm.com>
6  *
7  * This file is licensed under the terms of the GNU General Public
8  * License version 2.  This program is licensed "as is" without
9  * any warranty of any kind, whether express or implied.
10  */
11
12 / {
13         #address-cells = <1>;
14         #size-cells = <1>;
15         model = "ibm,walnut";
16         compatible = "ibm,walnut";
17         dcr-parent = <&/cpus/cpu@0>;
18
19         aliases {
20                 ethernet0 = &EMAC;
21                 serial0 = &UART0;
22                 serial1 = &UART1;
23         };
24
25         cpus {
26                 #address-cells = <1>;
27                 #size-cells = <0>;
28
29                 cpu@0 {
30                         device_type = "cpu";
31                         model = "PowerPC,405GP";
32                         reg = <0>;
33                         clock-frequency = <bebc200>; /* Filled in by zImage */
34                         timebase-frequency = <0>; /* Filled in by zImage */
35                         i-cache-line-size = <20>;
36                         d-cache-line-size = <20>;
37                         i-cache-size = <4000>;
38                         d-cache-size = <4000>;
39                         dcr-controller;
40                         dcr-access-method = "native";
41                 };
42         };
43
44         memory {
45                 device_type = "memory";
46                 reg = <0 0>; /* Filled in by zImage */
47         };
48
49         UIC0: interrupt-controller {
50                 compatible = "ibm,uic";
51                 interrupt-controller;
52                 cell-index = <0>;
53                 dcr-reg = <0c0 9>;
54                 #address-cells = <0>;
55                 #size-cells = <0>;
56                 #interrupt-cells = <2>;
57         };
58
59         plb {
60                 compatible = "ibm,plb3";
61                 #address-cells = <1>;
62                 #size-cells = <1>;
63                 ranges;
64                 clock-frequency = <0>; /* Filled in by zImage */
65
66                 SDRAM0: memory-controller {
67                         compatible = "ibm,sdram-405gp";
68                         dcr-reg = <010 2>;
69                 };
70
71                 MAL: mcmal {
72                         compatible = "ibm,mcmal-405gp", "ibm,mcmal";
73                         dcr-reg = <180 62>;
74                         num-tx-chans = <1>;
75                         num-rx-chans = <1>;
76                         interrupt-parent = <&UIC0>;
77                         interrupts = <
78                                 b 4 /* TXEOB */
79                                 c 4 /* RXEOB */
80                                 a 4 /* SERR */
81                                 d 4 /* TXDE */
82                                 e 4 /* RXDE */>;
83                 };
84
85                 POB0: opb {
86                         compatible = "ibm,opb-405gp", "ibm,opb";
87                         #address-cells = <1>;
88                         #size-cells = <1>;
89                         ranges = <ef600000 ef600000 a00000>;
90                         dcr-reg = <0a0 5>;
91                         clock-frequency = <0>; /* Filled in by zImage */
92
93                         UART0: serial@ef600300 {
94                                 device_type = "serial";
95                                 compatible = "ns16550";
96                                 reg = <ef600300 8>;
97                                 virtual-reg = <ef600300>;
98                                 clock-frequency = <0>; /* Filled in by zImage */
99                                 current-speed = <2580>;
100                                 interrupt-parent = <&UIC0>;
101                                 interrupts = <0 4>;
102                         };
103
104                         UART1: serial@ef600400 {
105                                 device_type = "serial";
106                                 compatible = "ns16550";
107                                 reg = <ef600400 8>;
108                                 virtual-reg = <ef600400>;
109                                 clock-frequency = <0>; /* Filled in by zImage */
110                                 current-speed = <2580>;
111                                 interrupt-parent = <&UIC0>;
112                                 interrupts = <1 4>;
113                         };
114
115                         IIC: i2c@ef600500 {
116                                 compatible = "ibm,iic-405gp", "ibm,iic";
117                                 reg = <ef600500 11>;
118                                 interrupt-parent = <&UIC0>;
119                                 interrupts = <2 4>;
120                         };
121
122                         GPIO: gpio@ef600700 {
123                                 compatible = "ibm,gpio-405gp";
124                                 reg = <ef600700 20>;
125                         };
126
127                         EMAC: ethernet@ef600800 {
128                                 linux,network-index = <0>;
129                                 device_type = "network";
130                                 compatible = "ibm,emac-405gp", "ibm,emac";
131                                 interrupt-parent = <&UIC0>;
132                                 interrupts = <
133                                         f 4 /* Ethernet */
134                                         9 4 /* Ethernet Wake Up */>;
135                                 local-mac-address = [000000000000]; /* Filled in by zImage */
136                                 reg = <ef600800 70>;
137                                 mal-device = <&MAL>;
138                                 mal-tx-channel = <0>;
139                                 mal-rx-channel = <0>;
140                                 cell-index = <0>;
141                                 max-frame-size = <5dc>;
142                                 rx-fifo-size = <1000>;
143                                 tx-fifo-size = <800>;
144                                 phy-mode = "rmii";
145                                 phy-map = <00000001>;
146                         };
147
148                 };
149
150                 EBC0: ebc {
151                         compatible = "ibm,ebc-405gp", "ibm,ebc";
152                         dcr-reg = <012 2>;
153                         #address-cells = <2>;
154                         #size-cells = <1>;
155                         /* The ranges property is supplied by the bootwrapper
156                          * and is based on the firmware's configuration of the
157                          * EBC bridge
158                          */
159                         clock-frequency = <0>; /* Filled in by zImage */
160
161                         sram@0,0 {
162                                 reg = <0 0 80000>;
163                         };
164
165                         flash@0,80000 {
166                                 compatible = "jedec-flash";
167                                 bank-width = <1>;
168                                 reg = <0 80000 80000>;
169                                 #address-cells = <1>;
170                                 #size-cells = <1>;
171                                 partition@0 {
172                                         label = "OpenBIOS";
173                                         reg = <0 80000>;
174                                         read-only;
175                                 };
176                         };
177
178                         nvram@1,0 {
179                                 /* NVRAM and RTC */
180                                 compatible = "ds1743-nvram";
181                                 #bytes = <2000>;
182                                 reg = <1 0 2000>;
183                         };
184
185                         keyboard@2,0 {
186                                 compatible = "intel,82C42PC";
187                                 reg = <2 0 2>;
188                         };
189
190                         ir@3,0 {
191                                 compatible = "ti,TIR2000PAG";
192                                 reg = <3 0 10>;
193                         };
194
195                         fpga@7,0 {
196                                 compatible = "Walnut-FPGA";
197                                 reg = <7 0 10>;
198                                 virtual-reg = <f0300005>;
199                         };
200                 };
201
202                 PCI0: pci@ec000000 {
203                         device_type = "pci";
204                         #interrupt-cells = <1>;
205                         #size-cells = <2>;
206                         #address-cells = <3>;
207                         compatible = "ibm,plb405gp-pci", "ibm,plb-pci";
208                         primary;
209                         reg = <eec00000 8       /* Config space access */
210                                eed80000 4       /* IACK */
211                                eed80000 4       /* Special cycle */
212                                ef480000 40>;    /* Internal registers */
213
214                         /* Outbound ranges, one memory and one IO,
215                          * later cannot be changed. Chip supports a second
216                          * IO range but we don't use it for now
217                          */
218                         ranges = <02000000 0 80000000 80000000 0 20000000
219                                   01000000 0 00000000 e8000000 0 00010000>;
220
221                         /* Inbound 2GB range starting at 0 */
222                         dma-ranges = <42000000 0 0 0 0 80000000>;
223
224                         /* Walnut has all 4 IRQ pins tied together per slot */
225                         interrupt-map-mask = <f800 0 0 0>;
226                         interrupt-map = <
227                                 /* IDSEL 1 */
228                                 0800 0 0 0 &UIC0 1c 8
229
230                                 /* IDSEL 2 */
231                                 1000 0 0 0 &UIC0 1d 8
232
233                                 /* IDSEL 3 */
234                                 1800 0 0 0 &UIC0 1e 8
235
236                                 /* IDSEL 4 */
237                                 2000 0 0 0 &UIC0 1f 8
238                         >;
239                 };
240         };
241
242         chosen {
243                 linux,stdout-path = "/plb/opb/serial@ef600300";
244         };
245 };