blob: b8184e653bb653cfc175442f6e7b595645d6ac4d [file] [log] [blame]
Valentine Barshakd60ff952007-08-29 17:39:42 +04001/*
2 * Device Tree Source for AMCC Sequoia
3 *
4 * Based on Bamboo code by Josh Boyer <jwboyer@linux.vnet.ibm.com>
5 * Copyright (c) 2006, 2007 IBM Corp.
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 */
14
15/ {
16 #address-cells = <2>;
17 #size-cells = <1>;
18 model = "amcc,sequoia";
19 compatible = "amcc,sequoia";
Josh Boyer72fda112007-12-06 13:20:05 -060020 dcr-parent = <&/cpus/cpu@0>;
Valentine Barshakd60ff952007-08-29 17:39:42 +040021
22 cpus {
23 #address-cells = <1>;
24 #size-cells = <0>;
25
Josh Boyer72fda112007-12-06 13:20:05 -060026 cpu@0 {
Valentine Barshakd60ff952007-08-29 17:39:42 +040027 device_type = "cpu";
Josh Boyer72fda112007-12-06 13:20:05 -060028 model = "PowerPC,440EPx";
Valentine Barshakd60ff952007-08-29 17:39:42 +040029 reg = <0>;
30 clock-frequency = <0>; /* Filled in by zImage */
31 timebase-frequency = <0>; /* Filled in by zImage */
32 i-cache-line-size = <20>;
33 d-cache-line-size = <20>;
34 i-cache-size = <8000>;
35 d-cache-size = <8000>;
36 dcr-controller;
37 dcr-access-method = "native";
38 };
39 };
40
41 memory {
42 device_type = "memory";
43 reg = <0 0 0>; /* Filled in by zImage */
44 };
45
46 UIC0: interrupt-controller0 {
47 compatible = "ibm,uic-440epx","ibm,uic";
48 interrupt-controller;
49 cell-index = <0>;
50 dcr-reg = <0c0 009>;
51 #address-cells = <0>;
52 #size-cells = <0>;
53 #interrupt-cells = <2>;
54 };
55
56 UIC1: interrupt-controller1 {
57 compatible = "ibm,uic-440epx","ibm,uic";
58 interrupt-controller;
59 cell-index = <1>;
60 dcr-reg = <0d0 009>;
61 #address-cells = <0>;
62 #size-cells = <0>;
63 #interrupt-cells = <2>;
64 interrupts = <1e 4 1f 4>; /* cascade */
65 interrupt-parent = <&UIC0>;
66 };
67
68 UIC2: interrupt-controller2 {
69 compatible = "ibm,uic-440epx","ibm,uic";
70 interrupt-controller;
71 cell-index = <2>;
72 dcr-reg = <0e0 009>;
73 #address-cells = <0>;
74 #size-cells = <0>;
75 #interrupt-cells = <2>;
76 interrupts = <1c 4 1d 4>; /* cascade */
77 interrupt-parent = <&UIC0>;
78 };
79
80 SDR0: sdr {
81 compatible = "ibm,sdr-440epx", "ibm,sdr-440ep";
82 dcr-reg = <00e 002>;
83 };
84
85 CPR0: cpr {
86 compatible = "ibm,cpr-440epx", "ibm,cpr-440ep";
87 dcr-reg = <00c 002>;
88 };
89
90 plb {
91 compatible = "ibm,plb-440epx", "ibm,plb4";
92 #address-cells = <2>;
93 #size-cells = <1>;
94 ranges;
95 clock-frequency = <0>; /* Filled in by zImage */
96
97 SDRAM0: sdram {
Valentine Barshakd60ff952007-08-29 17:39:42 +040098 compatible = "ibm,sdram-440epx", "ibm,sdram-44x-ddr2denali";
99 dcr-reg = <010 2>;
100 };
101
102 DMA0: dma {
103 compatible = "ibm,dma-440epx", "ibm,dma-4xx";
104 dcr-reg = <100 027>;
105 };
106
107 MAL0: mcmal {
108 compatible = "ibm,mcmal-440epx", "ibm,mcmal2";
109 dcr-reg = <180 62>;
Valentine Barshakbd0076c2007-09-19 03:29:13 +1000110 num-tx-chans = <2>;
111 num-rx-chans = <2>;
Valentine Barshakd60ff952007-08-29 17:39:42 +0400112 interrupt-parent = <&MAL0>;
113 interrupts = <0 1 2 3 4>;
114 #interrupt-cells = <1>;
115 #address-cells = <0>;
116 #size-cells = <0>;
117 interrupt-map = </*TXEOB*/ 0 &UIC0 a 4
118 /*RXEOB*/ 1 &UIC0 b 4
119 /*SERR*/ 2 &UIC1 0 4
120 /*TXDE*/ 3 &UIC1 1 4
121 /*RXDE*/ 4 &UIC1 2 4>;
122 interrupt-map-mask = <ffffffff>;
123 };
124
Valentine Barshakf82f5a22007-10-09 00:26:58 +1000125 USB1: usb@e0000400 {
126 compatible = "ohci-be";
127 reg = <0 e0000400 60>;
128 interrupt-parent = <&UIC0>;
129 interrupts = <15 8>;
130 };
131
Valentine Barshakd60ff952007-08-29 17:39:42 +0400132 POB0: opb {
133 compatible = "ibm,opb-440epx", "ibm,opb";
134 #address-cells = <1>;
135 #size-cells = <1>;
136 ranges = <00000000 1 00000000 80000000
137 80000000 1 80000000 80000000>;
138 interrupt-parent = <&UIC1>;
139 interrupts = <7 4>;
140 clock-frequency = <0>; /* Filled in by zImage */
141
142 EBC0: ebc {
143 compatible = "ibm,ebc-440epx", "ibm,ebc";
144 dcr-reg = <012 2>;
145 #address-cells = <2>;
146 #size-cells = <1>;
147 clock-frequency = <0>; /* Filled in by zImage */
148 interrupts = <5 1>;
149 interrupt-parent = <&UIC1>;
150
151 nor_flash@0,0 {
Josh Boyer504ca432007-09-15 04:54:14 +1000152 compatible = "amd,s29gl256n", "cfi-flash";
Valentine Barshakd60ff952007-08-29 17:39:42 +0400153 bank-width = <2>;
Valentine Barshakd60ff952007-08-29 17:39:42 +0400154 reg = <0 000000 4000000>;
Josh Boyer504ca432007-09-15 04:54:14 +1000155 #address-cells = <1>;
156 #size-cells = <1>;
157 partition@0 {
158 label = "Kernel";
159 reg = <0 180000>;
160 };
161 partition@180000 {
162 label = "ramdisk";
163 reg = <180000 200000>;
164 };
165 partition@380000 {
166 label = "file system";
167 reg = <380000 3aa0000>;
168 };
169 partition@3e20000 {
170 label = "kozio";
171 reg = <3e20000 140000>;
172 };
173 partition@3f60000 {
174 label = "env";
175 reg = <3f60000 40000>;
176 };
177 partition@3fa0000 {
178 label = "u-boot";
179 reg = <3fa0000 60000>;
180 };
Valentine Barshakd60ff952007-08-29 17:39:42 +0400181 };
182
183 };
184
185 UART0: serial@ef600300 {
186 device_type = "serial";
187 compatible = "ns16550";
188 reg = <ef600300 8>;
189 virtual-reg = <ef600300>;
190 clock-frequency = <0>; /* Filled in by zImage */
191 current-speed = <1c200>;
192 interrupt-parent = <&UIC0>;
193 interrupts = <0 4>;
194 };
195
196 UART1: serial@ef600400 {
197 device_type = "serial";
198 compatible = "ns16550";
199 reg = <ef600400 8>;
200 virtual-reg = <ef600400>;
201 clock-frequency = <0>;
202 current-speed = <0>;
203 interrupt-parent = <&UIC0>;
204 interrupts = <1 4>;
205 };
206
207 UART2: serial@ef600500 {
208 device_type = "serial";
209 compatible = "ns16550";
210 reg = <ef600500 8>;
211 virtual-reg = <ef600500>;
212 clock-frequency = <0>;
213 current-speed = <0>;
214 interrupt-parent = <&UIC1>;
215 interrupts = <3 4>;
216 };
217
218 UART3: serial@ef600600 {
219 device_type = "serial";
220 compatible = "ns16550";
221 reg = <ef600600 8>;
222 virtual-reg = <ef600600>;
223 clock-frequency = <0>;
224 current-speed = <0>;
225 interrupt-parent = <&UIC1>;
226 interrupts = <4 4>;
227 };
228
229 IIC0: i2c@ef600700 {
230 device_type = "i2c";
231 compatible = "ibm,iic-440epx", "ibm,iic";
232 reg = <ef600700 14>;
233 interrupt-parent = <&UIC0>;
234 interrupts = <2 4>;
235 };
236
237 IIC1: i2c@ef600800 {
238 device_type = "i2c";
239 compatible = "ibm,iic-440epx", "ibm,iic";
240 reg = <ef600800 14>;
241 interrupt-parent = <&UIC0>;
242 interrupts = <7 4>;
243 };
244
245 ZMII0: emac-zmii@ef600d00 {
246 device_type = "zmii-interface";
247 compatible = "ibm,zmii-440epx", "ibm,zmii";
248 reg = <ef600d00 c>;
249 };
250
Valentine Barshak1f69dcf2007-10-02 00:12:09 +1000251 RGMII0: emac-rgmii@ef601000 {
252 device_type = "rgmii-interface";
253 compatible = "ibm,rgmii-440epx", "ibm,rgmii";
254 reg = <ef601000 8>;
Benjamin Herrenschmidt1f578772007-12-05 11:14:28 +1100255 has-mdio;
Valentine Barshak1f69dcf2007-10-02 00:12:09 +1000256 };
257
Valentine Barshakd60ff952007-08-29 17:39:42 +0400258 EMAC0: ethernet@ef600e00 {
259 linux,network-index = <0>;
260 device_type = "network";
261 compatible = "ibm,emac-440epx", "ibm,emac4";
262 interrupt-parent = <&EMAC0>;
263 interrupts = <0 1>;
264 #interrupt-cells = <1>;
265 #address-cells = <0>;
266 #size-cells = <0>;
267 interrupt-map = </*Status*/ 0 &UIC0 18 4
268 /*Wake*/ 1 &UIC1 1d 4>;
269 reg = <ef600e00 70>;
270 local-mac-address = [000000000000];
271 mal-device = <&MAL0>;
Valentine Barshakbd0076c2007-09-19 03:29:13 +1000272 mal-tx-channel = <0>;
Valentine Barshakd60ff952007-08-29 17:39:42 +0400273 mal-rx-channel = <0>;
274 cell-index = <0>;
275 max-frame-size = <5dc>;
276 rx-fifo-size = <1000>;
277 tx-fifo-size = <800>;
Valentine Barshak1f69dcf2007-10-02 00:12:09 +1000278 phy-mode = "rgmii";
Valentine Barshakd60ff952007-08-29 17:39:42 +0400279 phy-map = <00000000>;
280 zmii-device = <&ZMII0>;
281 zmii-channel = <0>;
Valentine Barshak1f69dcf2007-10-02 00:12:09 +1000282 rgmii-device = <&RGMII0>;
283 rgmii-channel = <0>;
Benjamin Herrenschmidtbff713b2007-12-05 11:14:29 +1100284 has-inverted-stacr-oc;
285 has-new-stacr-staopc;
Valentine Barshakd60ff952007-08-29 17:39:42 +0400286 };
287
288 EMAC1: ethernet@ef600f00 {
289 linux,network-index = <1>;
290 device_type = "network";
291 compatible = "ibm,emac-440epx", "ibm,emac4";
292 interrupt-parent = <&EMAC1>;
293 interrupts = <0 1>;
294 #interrupt-cells = <1>;
295 #address-cells = <0>;
296 #size-cells = <0>;
297 interrupt-map = </*Status*/ 0 &UIC0 19 4
298 /*Wake*/ 1 &UIC1 1f 4>;
299 reg = <ef600f00 70>;
300 local-mac-address = [000000000000];
301 mal-device = <&MAL0>;
Valentine Barshakbd0076c2007-09-19 03:29:13 +1000302 mal-tx-channel = <1>;
Valentine Barshakd60ff952007-08-29 17:39:42 +0400303 mal-rx-channel = <1>;
304 cell-index = <1>;
305 max-frame-size = <5dc>;
306 rx-fifo-size = <1000>;
307 tx-fifo-size = <800>;
Valentine Barshak1f69dcf2007-10-02 00:12:09 +1000308 phy-mode = "rgmii";
Valentine Barshakd60ff952007-08-29 17:39:42 +0400309 phy-map = <00000000>;
310 zmii-device = <&ZMII0>;
311 zmii-channel = <1>;
Valentine Barshak1f69dcf2007-10-02 00:12:09 +1000312 rgmii-device = <&RGMII0>;
313 rgmii-channel = <1>;
Benjamin Herrenschmidtbff713b2007-12-05 11:14:29 +1100314 has-inverted-stacr-oc;
315 has-new-stacr-staopc;
Valentine Barshakd60ff952007-08-29 17:39:42 +0400316 };
317 };
Valentine Barshak2a134482007-12-22 03:26:01 +1100318
319 PCI0: pci@1ec000000 {
320 device_type = "pci";
321 #interrupt-cells = <1>;
322 #size-cells = <2>;
323 #address-cells = <3>;
324 compatible = "ibm,plb440epx-pci", "ibm,plb-pci";
325 primary;
326 reg = <1 eec00000 8 /* Config space access */
327 1 eed00000 4 /* IACK */
328 1 eed00000 4 /* Special cycle */
329 1 ef400000 40>; /* Internal registers */
330
331 /* Outbound ranges, one memory and one IO,
332 * later cannot be changed. Chip supports a second
333 * IO range but we don't use it for now
334 */
335 ranges = <02000000 0 80000000 1 80000000 0 10000000
336 01000000 0 00000000 1 e8000000 0 00100000>;
337
338 /* Inbound 2GB range starting at 0 */
339 dma-ranges = <42000000 0 0 0 0 0 80000000>;
340
341 /* All PCI interrupts are routed to IRQ 67 */
342 interrupt-map-mask = <0000 0 0 0>;
343 interrupt-map = < 0000 0 0 0 &UIC2 3 8 >;
344 };
Valentine Barshakd60ff952007-08-29 17:39:42 +0400345 };
346
347 chosen {
348 linux,stdout-path = "/plb/opb/serial@ef600300";
349 bootargs = "console=ttyS0,115200";
350 };
351};