Merge branch 'master' of /pub/scm/linux/kernel/git/torvalds/linux-2.6
[linux-2.6] / arch / powerpc / boot / dts / yosemite.dts
1 /*
2  * Device Tree Source for AMCC Yosemite
3  *
4  * Copyright 2008 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 = <2>;
14         #size-cells = <1>;
15         model = "amcc,yosemite";
16         compatible = "amcc,yosemite","amcc,bamboo";
17         dcr-parent = <&/cpus/cpu@0>;
18
19         aliases {
20                 ethernet0 = &EMAC0;
21                 ethernet1 = &EMAC1;
22                 serial0 = &UART0;
23                 serial1 = &UART1;
24                 serial2 = &UART2;
25                 serial3 = &UART3;
26         };
27
28         cpus {
29                 #address-cells = <1>;
30                 #size-cells = <0>;
31
32                 cpu@0 {
33                         device_type = "cpu";
34                         model = "PowerPC,440EP";
35                         reg = <0>;
36                         clock-frequency = <0>; /* Filled in by zImage */
37                         timebase-frequency = <0>; /* Filled in by zImage */
38                         i-cache-line-size = <20>;
39                         d-cache-line-size = <20>;
40                         i-cache-size = <8000>;
41                         d-cache-size = <8000>;
42                         dcr-controller;
43                         dcr-access-method = "native";
44                 };
45         };
46
47         memory {
48                 device_type = "memory";
49                 reg = <0 0 0>; /* Filled in by zImage */
50         };
51
52         UIC0: interrupt-controller0 {
53                 compatible = "ibm,uic-440ep","ibm,uic";
54                 interrupt-controller;
55                 cell-index = <0>;
56                 dcr-reg = <0c0 009>;
57                 #address-cells = <0>;
58                 #size-cells = <0>;
59                 #interrupt-cells = <2>;
60         };
61
62         UIC1: interrupt-controller1 {
63                 compatible = "ibm,uic-440ep","ibm,uic";
64                 interrupt-controller;
65                 cell-index = <1>;
66                 dcr-reg = <0d0 009>;
67                 #address-cells = <0>;
68                 #size-cells = <0>;
69                 #interrupt-cells = <2>;
70                 interrupts = <1e 4 1f 4>; /* cascade */
71                 interrupt-parent = <&UIC0>;
72         };
73
74         SDR0: sdr {
75                 compatible = "ibm,sdr-440ep";
76                 dcr-reg = <00e 002>;
77         };
78
79         CPR0: cpr {
80                 compatible = "ibm,cpr-440ep";
81                 dcr-reg = <00c 002>;
82         };
83
84         plb {
85                 compatible = "ibm,plb-440ep", "ibm,plb-440gp", "ibm,plb4";
86                 #address-cells = <2>;
87                 #size-cells = <1>;
88                 ranges;
89                 clock-frequency = <0>; /* Filled in by zImage */
90
91                 SDRAM0: sdram {
92                         compatible = "ibm,sdram-440ep", "ibm,sdram-405gp";
93                         dcr-reg = <010 2>;
94                 };
95
96                 DMA0: dma {
97                         compatible = "ibm,dma-440ep", "ibm,dma-440gp";
98                         dcr-reg = <100 027>;
99                 };
100
101                 MAL0: mcmal {
102                         compatible = "ibm,mcmal-440ep", "ibm,mcmal-440gp", "ibm,mcmal";
103                         dcr-reg = <180 62>;
104                         num-tx-chans = <4>;
105                         num-rx-chans = <2>;
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                 };
117
118                 POB0: opb {
119                         compatible = "ibm,opb-440ep", "ibm,opb-440gp", "ibm,opb";
120                         #address-cells = <1>;
121                         #size-cells = <1>;
122                         /* Bamboo is oddball in the 44x world and doesn't use the ERPN
123                          * bits.
124                          */
125                         ranges = <00000000 0 00000000 80000000
126                                   80000000 0 80000000 80000000>;
127                         interrupt-parent = <&UIC1>;
128                         interrupts = <7 4>;
129                         clock-frequency = <0>; /* Filled in by zImage */
130
131                         EBC0: ebc {
132                                 compatible = "ibm,ebc-440ep", "ibm,ebc-440gp", "ibm,ebc";
133                                 dcr-reg = <012 2>;
134                                 #address-cells = <2>;
135                                 #size-cells = <1>;
136                                 clock-frequency = <0>; /* Filled in by zImage */
137                                 interrupts = <5 1>;
138                                 interrupt-parent = <&UIC1>;
139                         };
140
141                         UART0: serial@ef600300 {
142                                 device_type = "serial";
143                                 compatible = "ns16550";
144                                 reg = <ef600300 8>;
145                                 virtual-reg = <ef600300>;
146                                 clock-frequency = <0>; /* Filled in by zImage */
147                                 current-speed = <1c200>;
148                                 interrupt-parent = <&UIC0>;
149                                 interrupts = <0 4>;
150                         };
151
152                         UART1: serial@ef600400 {
153                                 device_type = "serial";
154                                 compatible = "ns16550";
155                                 reg = <ef600400 8>;
156                                 virtual-reg = <ef600400>;
157                                 clock-frequency = <0>;
158                                 current-speed = <0>;
159                                 interrupt-parent = <&UIC0>;
160                                 interrupts = <1 4>;
161                         };
162
163                         UART2: serial@ef600500 {
164                                 device_type = "serial";
165                                 compatible = "ns16550";
166                                 reg = <ef600500 8>;
167                                 virtual-reg = <ef600500>;
168                                 clock-frequency = <0>;
169                                 current-speed = <0>;
170                                 interrupt-parent = <&UIC0>;
171                                 interrupts = <3 4>;
172                                 status = "disabled";
173                         };
174
175                         UART3: serial@ef600600 {
176                                 device_type = "serial";
177                                 compatible = "ns16550";
178                                 reg = <ef600600 8>;
179                                 virtual-reg = <ef600600>;
180                                 clock-frequency = <0>;
181                                 current-speed = <0>;
182                                 interrupt-parent = <&UIC0>;
183                                 interrupts = <4 4>;
184                                 status = "disabled";
185                         };
186
187                         IIC0: i2c@ef600700 {
188                                 compatible = "ibm,iic-440ep", "ibm,iic-440gp", "ibm,iic";
189                                 reg = <ef600700 14>;
190                                 interrupt-parent = <&UIC0>;
191                                 interrupts = <2 4>;
192                         };
193
194                         IIC1: i2c@ef600800 {
195                                 compatible = "ibm,iic-440ep", "ibm,iic-440gp", "ibm,iic";
196                                 reg = <ef600800 14>;
197                                 interrupt-parent = <&UIC0>;
198                                 interrupts = <7 4>;
199                         };
200
201                         spi@ef600900 {
202                                 compatible = "amcc,spi-440ep";
203                                 reg = <ef600900 6>;
204                                 interrupts = <8 4>;
205                                 interrupt-parent = <&UIC0>;
206                         };
207
208                         ZMII0: emac-zmii@ef600d00 {
209                                 compatible = "ibm,zmii-440ep", "ibm,zmii-440gp", "ibm,zmii";
210                                 reg = <ef600d00 c>;
211                         };
212
213                         EMAC0: ethernet@ef600e00 {
214                                 device_type = "network";
215                                 compatible = "ibm,emac-440ep", "ibm,emac-440gp", "ibm,emac";
216                                 interrupt-parent = <&UIC1>;
217                                 interrupts = <1c 4 1d 4>;
218                                 reg = <ef600e00 70>;
219                                 local-mac-address = [000000000000];
220                                 mal-device = <&MAL0>;
221                                 mal-tx-channel = <0 1>;
222                                 mal-rx-channel = <0>;
223                                 cell-index = <0>;
224                                 max-frame-size = <5dc>;
225                                 rx-fifo-size = <1000>;
226                                 tx-fifo-size = <800>;
227                                 phy-mode = "rmii";
228                                 phy-map = <00000000>;
229                                 zmii-device = <&ZMII0>;
230                                 zmii-channel = <0>;
231                         };
232
233                         EMAC1: ethernet@ef600f00 {
234                                 device_type = "network";
235                                 compatible = "ibm,emac-440ep", "ibm,emac-440gp", "ibm,emac";
236                                 interrupt-parent = <&UIC1>;
237                                 interrupts = <1e 4 1f 4>;
238                                 reg = <ef600f00 70>;
239                                 local-mac-address = [000000000000];
240                                 mal-device = <&MAL0>;
241                                 mal-tx-channel = <2 3>;
242                                 mal-rx-channel = <1>;
243                                 cell-index = <1>;
244                                 max-frame-size = <5dc>;
245                                 rx-fifo-size = <1000>;
246                                 tx-fifo-size = <800>;
247                                 phy-mode = "rmii";
248                                 phy-map = <00000000>;
249                                 zmii-device = <&ZMII0>;
250                                 zmii-channel = <1>;
251                         };
252
253                         usb@ef601000 {
254                                 compatible = "ohci-be";
255                                 reg = <ef601000 80>;
256                                 interrupts = <8 4 9 4>;
257                                 interrupt-parent = < &UIC1 >;
258                         };
259                 };
260
261                 PCI0: pci@ec000000 {
262                         device_type = "pci";
263                         #interrupt-cells = <1>;
264                         #size-cells = <2>;
265                         #address-cells = <3>;
266                         compatible = "ibm,plb440ep-pci", "ibm,plb-pci";
267                         primary;
268                         reg = <0 eec00000 8     /* Config space access */
269                                0 eed00000 4     /* IACK */
270                                0 eed00000 4     /* Special cycle */
271                                0 ef400000 40>;  /* Internal registers */
272
273                         /* Outbound ranges, one memory and one IO,
274                          * later cannot be changed. Chip supports a second
275                          * IO range but we don't use it for now
276                          */
277                         ranges = <02000000 0 a0000000 0 a0000000 0 20000000
278                                   01000000 0 00000000 0 e8000000 0 00010000>;
279
280                         /* Inbound 2GB range starting at 0 */
281                         dma-ranges = <42000000 0 0 0 0 0 80000000>;
282
283                         /* Bamboo has all 4 IRQ pins tied together per slot */
284                         interrupt-map-mask = <f800 0 0 0>;
285                         interrupt-map = <
286                                 /* IDSEL 1 */
287                                 0800 0 0 0 &UIC0 1c 8
288
289                                 /* IDSEL 2 */
290                                 1000 0 0 0 &UIC0 1b 8
291
292                                 /* IDSEL 3 */
293                                 1800 0 0 0 &UIC0 1a 8
294
295                                 /* IDSEL 4 */
296                                 2000 0 0 0 &UIC0 19 8
297                         >;
298                 };
299         };
300
301         chosen {
302                 linux,stdout-path = "/plb/opb/serial@ef600300";
303         };
304 };