Merge branch 'linus' into tracing/sysprof
[linux-2.6] / 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                                 device_type = "network";
129                                 compatible = "ibm,emac-405gp", "ibm,emac";
130                                 interrupt-parent = <&UIC0>;
131                                 interrupts = <
132                                         f 4 /* Ethernet */
133                                         9 4 /* Ethernet Wake Up */>;
134                                 local-mac-address = [000000000000]; /* Filled in by zImage */
135                                 reg = <ef600800 70>;
136                                 mal-device = <&MAL>;
137                                 mal-tx-channel = <0>;
138                                 mal-rx-channel = <0>;
139                                 cell-index = <0>;
140                                 max-frame-size = <5dc>;
141                                 rx-fifo-size = <1000>;
142                                 tx-fifo-size = <800>;
143                                 phy-mode = "rmii";
144                                 phy-map = <00000001>;
145                         };
146
147                 };
148
149                 EBC0: ebc {
150                         compatible = "ibm,ebc-405gp", "ibm,ebc";
151                         dcr-reg = <012 2>;
152                         #address-cells = <2>;
153                         #size-cells = <1>;
154                         /* The ranges property is supplied by the bootwrapper
155                          * and is based on the firmware's configuration of the
156                          * EBC bridge
157                          */
158                         clock-frequency = <0>; /* Filled in by zImage */
159
160                         sram@0,0 {
161                                 reg = <0 0 80000>;
162                         };
163
164                         flash@0,80000 {
165                                 compatible = "jedec-flash";
166                                 bank-width = <1>;
167                                 reg = <0 80000 80000>;
168                                 #address-cells = <1>;
169                                 #size-cells = <1>;
170                                 partition@0 {
171                                         label = "OpenBIOS";
172                                         reg = <0 80000>;
173                                         read-only;
174                                 };
175                         };
176
177                         nvram@1,0 {
178                                 /* NVRAM and RTC */
179                                 compatible = "ds1743-nvram";
180                                 #bytes = <2000>;
181                                 reg = <1 0 2000>;
182                         };
183
184                         keyboard@2,0 {
185                                 compatible = "intel,82C42PC";
186                                 reg = <2 0 2>;
187                         };
188
189                         ir@3,0 {
190                                 compatible = "ti,TIR2000PAG";
191                                 reg = <3 0 10>;
192                         };
193
194                         fpga@7,0 {
195                                 compatible = "Walnut-FPGA";
196                                 reg = <7 0 10>;
197                                 virtual-reg = <f0300005>;
198                         };
199                 };
200
201                 PCI0: pci@ec000000 {
202                         device_type = "pci";
203                         #interrupt-cells = <1>;
204                         #size-cells = <2>;
205                         #address-cells = <3>;
206                         compatible = "ibm,plb405gp-pci", "ibm,plb-pci";
207                         primary;
208                         reg = <eec00000 8       /* Config space access */
209                                eed80000 4       /* IACK */
210                                eed80000 4       /* Special cycle */
211                                ef480000 40>;    /* Internal registers */
212
213                         /* Outbound ranges, one memory and one IO,
214                          * later cannot be changed. Chip supports a second
215                          * IO range but we don't use it for now
216                          */
217                         ranges = <02000000 0 80000000 80000000 0 20000000
218                                   01000000 0 00000000 e8000000 0 00010000>;
219
220                         /* Inbound 2GB range starting at 0 */
221                         dma-ranges = <42000000 0 0 0 0 80000000>;
222
223                         /* Walnut has all 4 IRQ pins tied together per slot */
224                         interrupt-map-mask = <f800 0 0 0>;
225                         interrupt-map = <
226                                 /* IDSEL 1 */
227                                 0800 0 0 0 &UIC0 1c 8
228
229                                 /* IDSEL 2 */
230                                 1000 0 0 0 &UIC0 1d 8
231
232                                 /* IDSEL 3 */
233                                 1800 0 0 0 &UIC0 1e 8
234
235                                 /* IDSEL 4 */
236                                 2000 0 0 0 &UIC0 1f 8
237                         >;
238                 };
239         };
240
241         chosen {
242                 linux,stdout-path = "/plb/opb/serial@ef600300";
243         };
244 };