blob: 3b295e8df53f10e5e2f6591b57e9871d21631588 [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
David Gibson71f34972008-05-15 16:46:39 +100015/dts-v1/;
16
Valentine Barshakd60ff952007-08-29 17:39:42 +040017/ {
18 #address-cells = <2>;
19 #size-cells = <1>;
20 model = "amcc,sequoia";
21 compatible = "amcc,sequoia";
David Gibson71f34972008-05-15 16:46:39 +100022 dcr-parent = <&{/cpus/cpu@0}>;
Valentine Barshakd60ff952007-08-29 17:39:42 +040023
Stefan Roese8aaed982007-12-15 18:55:16 +110024 aliases {
25 ethernet0 = &EMAC0;
26 ethernet1 = &EMAC1;
27 serial0 = &UART0;
28 serial1 = &UART1;
29 serial2 = &UART2;
30 serial3 = &UART3;
31 };
32
Valentine Barshakd60ff952007-08-29 17:39:42 +040033 cpus {
34 #address-cells = <1>;
35 #size-cells = <0>;
36
Josh Boyer72fda112007-12-06 13:20:05 -060037 cpu@0 {
Valentine Barshakd60ff952007-08-29 17:39:42 +040038 device_type = "cpu";
Josh Boyer72fda112007-12-06 13:20:05 -060039 model = "PowerPC,440EPx";
David Gibson71f34972008-05-15 16:46:39 +100040 reg = <0x00000000>;
Valentine Barshakd60ff952007-08-29 17:39:42 +040041 clock-frequency = <0>; /* Filled in by zImage */
42 timebase-frequency = <0>; /* Filled in by zImage */
David Gibson71f34972008-05-15 16:46:39 +100043 i-cache-line-size = <32>;
44 d-cache-line-size = <32>;
45 i-cache-size = <32768>;
46 d-cache-size = <32768>;
Valentine Barshakd60ff952007-08-29 17:39:42 +040047 dcr-controller;
48 dcr-access-method = "native";
49 };
50 };
51
52 memory {
53 device_type = "memory";
David Gibson71f34972008-05-15 16:46:39 +100054 reg = <0x00000000 0x00000000 0x00000000>; /* Filled in by zImage */
Valentine Barshakd60ff952007-08-29 17:39:42 +040055 };
56
57 UIC0: interrupt-controller0 {
58 compatible = "ibm,uic-440epx","ibm,uic";
59 interrupt-controller;
60 cell-index = <0>;
David Gibson71f34972008-05-15 16:46:39 +100061 dcr-reg = <0x0c0 0x009>;
Valentine Barshakd60ff952007-08-29 17:39:42 +040062 #address-cells = <0>;
63 #size-cells = <0>;
64 #interrupt-cells = <2>;
65 };
66
67 UIC1: interrupt-controller1 {
68 compatible = "ibm,uic-440epx","ibm,uic";
69 interrupt-controller;
70 cell-index = <1>;
David Gibson71f34972008-05-15 16:46:39 +100071 dcr-reg = <0x0d0 0x009>;
Valentine Barshakd60ff952007-08-29 17:39:42 +040072 #address-cells = <0>;
73 #size-cells = <0>;
74 #interrupt-cells = <2>;
David Gibson71f34972008-05-15 16:46:39 +100075 interrupts = <0x1e 0x4 0x1f 0x4>; /* cascade */
Valentine Barshakd60ff952007-08-29 17:39:42 +040076 interrupt-parent = <&UIC0>;
77 };
78
79 UIC2: interrupt-controller2 {
80 compatible = "ibm,uic-440epx","ibm,uic";
81 interrupt-controller;
82 cell-index = <2>;
David Gibson71f34972008-05-15 16:46:39 +100083 dcr-reg = <0x0e0 0x009>;
Valentine Barshakd60ff952007-08-29 17:39:42 +040084 #address-cells = <0>;
85 #size-cells = <0>;
86 #interrupt-cells = <2>;
David Gibson71f34972008-05-15 16:46:39 +100087 interrupts = <0x1c 0x4 0x1d 0x4>; /* cascade */
Valentine Barshakd60ff952007-08-29 17:39:42 +040088 interrupt-parent = <&UIC0>;
89 };
90
91 SDR0: sdr {
92 compatible = "ibm,sdr-440epx", "ibm,sdr-440ep";
David Gibson71f34972008-05-15 16:46:39 +100093 dcr-reg = <0x00e 0x002>;
Valentine Barshakd60ff952007-08-29 17:39:42 +040094 };
95
96 CPR0: cpr {
97 compatible = "ibm,cpr-440epx", "ibm,cpr-440ep";
David Gibson71f34972008-05-15 16:46:39 +100098 dcr-reg = <0x00c 0x002>;
Valentine Barshakd60ff952007-08-29 17:39:42 +040099 };
100
101 plb {
102 compatible = "ibm,plb-440epx", "ibm,plb4";
103 #address-cells = <2>;
104 #size-cells = <1>;
105 ranges;
106 clock-frequency = <0>; /* Filled in by zImage */
107
108 SDRAM0: sdram {
Valentine Barshakd60ff952007-08-29 17:39:42 +0400109 compatible = "ibm,sdram-440epx", "ibm,sdram-44x-ddr2denali";
David Gibson71f34972008-05-15 16:46:39 +1000110 dcr-reg = <0x010 0x002>;
Valentine Barshakd60ff952007-08-29 17:39:42 +0400111 };
112
113 DMA0: dma {
114 compatible = "ibm,dma-440epx", "ibm,dma-4xx";
David Gibson71f34972008-05-15 16:46:39 +1000115 dcr-reg = <0x100 0x027>;
Valentine Barshakd60ff952007-08-29 17:39:42 +0400116 };
117
118 MAL0: mcmal {
119 compatible = "ibm,mcmal-440epx", "ibm,mcmal2";
David Gibson71f34972008-05-15 16:46:39 +1000120 dcr-reg = <0x180 0x062>;
Valentine Barshakbd0076c2007-09-19 03:29:13 +1000121 num-tx-chans = <2>;
122 num-rx-chans = <2>;
Valentine Barshakd60ff952007-08-29 17:39:42 +0400123 interrupt-parent = <&MAL0>;
David Gibson71f34972008-05-15 16:46:39 +1000124 interrupts = <0x0 0x1 0x2 0x3 0x4>;
Valentine Barshakd60ff952007-08-29 17:39:42 +0400125 #interrupt-cells = <1>;
126 #address-cells = <0>;
127 #size-cells = <0>;
David Gibson71f34972008-05-15 16:46:39 +1000128 interrupt-map = </*TXEOB*/ 0x0 &UIC0 0xa 0x4
129 /*RXEOB*/ 0x1 &UIC0 0xb 0x4
130 /*SERR*/ 0x2 &UIC1 0x0 0x4
131 /*TXDE*/ 0x3 &UIC1 0x1 0x4
132 /*RXDE*/ 0x4 &UIC1 0x2 0x4>;
133 interrupt-map-mask = <0xffffffff>;
Valentine Barshakd60ff952007-08-29 17:39:42 +0400134 };
135
Valentine Barshakf82f5a22007-10-09 00:26:58 +1000136 USB1: usb@e0000400 {
137 compatible = "ohci-be";
David Gibson71f34972008-05-15 16:46:39 +1000138 reg = <0x00000000 0xe0000400 0x00000060>;
Valentine Barshakf82f5a22007-10-09 00:26:58 +1000139 interrupt-parent = <&UIC0>;
David Gibson71f34972008-05-15 16:46:39 +1000140 interrupts = <0x15 0x8>;
Valentine Barshakf82f5a22007-10-09 00:26:58 +1000141 };
142
Valentine Barshak3c0c6cb2007-09-25 05:29:52 +1000143 USB0: ehci@e0000300 {
144 compatible = "ibm,usb-ehci-440epx", "usb-ehci";
145 interrupt-parent = <&UIC0>;
David Gibson71f34972008-05-15 16:46:39 +1000146 interrupts = <0x1a 0x4>;
147 reg = <0x00000000 0xe0000300 0x00000090 0x00000000 0xe0000390 0x00000070>;
Valentine Barshak3c0c6cb2007-09-25 05:29:52 +1000148 big-endian;
149 };
150
Valentine Barshakd60ff952007-08-29 17:39:42 +0400151 POB0: opb {
152 compatible = "ibm,opb-440epx", "ibm,opb";
153 #address-cells = <1>;
154 #size-cells = <1>;
David Gibson71f34972008-05-15 16:46:39 +1000155 ranges = <0x00000000 0x00000001 0x00000000 0x80000000
156 0x80000000 0x00000001 0x80000000 0x80000000>;
Valentine Barshakd60ff952007-08-29 17:39:42 +0400157 interrupt-parent = <&UIC1>;
David Gibson71f34972008-05-15 16:46:39 +1000158 interrupts = <0x7 0x4>;
Valentine Barshakd60ff952007-08-29 17:39:42 +0400159 clock-frequency = <0>; /* Filled in by zImage */
160
161 EBC0: ebc {
162 compatible = "ibm,ebc-440epx", "ibm,ebc";
David Gibson71f34972008-05-15 16:46:39 +1000163 dcr-reg = <0x012 0x002>;
Valentine Barshakd60ff952007-08-29 17:39:42 +0400164 #address-cells = <2>;
165 #size-cells = <1>;
166 clock-frequency = <0>; /* Filled in by zImage */
David Gibson71f34972008-05-15 16:46:39 +1000167 interrupts = <0x5 0x1>;
Valentine Barshakd60ff952007-08-29 17:39:42 +0400168 interrupt-parent = <&UIC1>;
169
170 nor_flash@0,0 {
Josh Boyer504ca432007-09-15 04:54:14 +1000171 compatible = "amd,s29gl256n", "cfi-flash";
Valentine Barshakd60ff952007-08-29 17:39:42 +0400172 bank-width = <2>;
David Gibson71f34972008-05-15 16:46:39 +1000173 reg = <0x00000000 0x00000000 0x04000000>;
Josh Boyer504ca432007-09-15 04:54:14 +1000174 #address-cells = <1>;
175 #size-cells = <1>;
176 partition@0 {
177 label = "Kernel";
David Gibson71f34972008-05-15 16:46:39 +1000178 reg = <0x00000000 0x00180000>;
Josh Boyer504ca432007-09-15 04:54:14 +1000179 };
180 partition@180000 {
181 label = "ramdisk";
David Gibson71f34972008-05-15 16:46:39 +1000182 reg = <0x00180000 0x00200000>;
Josh Boyer504ca432007-09-15 04:54:14 +1000183 };
184 partition@380000 {
185 label = "file system";
David Gibson71f34972008-05-15 16:46:39 +1000186 reg = <0x00380000 0x03aa0000>;
Josh Boyer504ca432007-09-15 04:54:14 +1000187 };
188 partition@3e20000 {
189 label = "kozio";
David Gibson71f34972008-05-15 16:46:39 +1000190 reg = <0x03e20000 0x00140000>;
Josh Boyer504ca432007-09-15 04:54:14 +1000191 };
192 partition@3f60000 {
193 label = "env";
David Gibson71f34972008-05-15 16:46:39 +1000194 reg = <0x03f60000 0x00040000>;
Josh Boyer504ca432007-09-15 04:54:14 +1000195 };
196 partition@3fa0000 {
197 label = "u-boot";
David Gibson71f34972008-05-15 16:46:39 +1000198 reg = <0x03fa0000 0x00060000>;
Josh Boyer504ca432007-09-15 04:54:14 +1000199 };
Valentine Barshakd60ff952007-08-29 17:39:42 +0400200 };
201
202 };
203
204 UART0: serial@ef600300 {
205 device_type = "serial";
206 compatible = "ns16550";
David Gibson71f34972008-05-15 16:46:39 +1000207 reg = <0xef600300 0x00000008>;
208 virtual-reg = <0xef600300>;
Valentine Barshakd60ff952007-08-29 17:39:42 +0400209 clock-frequency = <0>; /* Filled in by zImage */
David Gibson71f34972008-05-15 16:46:39 +1000210 current-speed = <115200>;
Valentine Barshakd60ff952007-08-29 17:39:42 +0400211 interrupt-parent = <&UIC0>;
David Gibson71f34972008-05-15 16:46:39 +1000212 interrupts = <0x0 0x4>;
Valentine Barshakd60ff952007-08-29 17:39:42 +0400213 };
214
215 UART1: serial@ef600400 {
216 device_type = "serial";
217 compatible = "ns16550";
David Gibson71f34972008-05-15 16:46:39 +1000218 reg = <0xef600400 0x00000008>;
219 virtual-reg = <0xef600400>;
Valentine Barshakd60ff952007-08-29 17:39:42 +0400220 clock-frequency = <0>;
221 current-speed = <0>;
222 interrupt-parent = <&UIC0>;
David Gibson71f34972008-05-15 16:46:39 +1000223 interrupts = <0x1 0x4>;
Valentine Barshakd60ff952007-08-29 17:39:42 +0400224 };
225
226 UART2: serial@ef600500 {
227 device_type = "serial";
228 compatible = "ns16550";
David Gibson71f34972008-05-15 16:46:39 +1000229 reg = <0xef600500 0x00000008>;
230 virtual-reg = <0xef600500>;
Valentine Barshakd60ff952007-08-29 17:39:42 +0400231 clock-frequency = <0>;
232 current-speed = <0>;
233 interrupt-parent = <&UIC1>;
David Gibson71f34972008-05-15 16:46:39 +1000234 interrupts = <0x3 0x4>;
Valentine Barshakd60ff952007-08-29 17:39:42 +0400235 };
236
237 UART3: serial@ef600600 {
238 device_type = "serial";
239 compatible = "ns16550";
David Gibson71f34972008-05-15 16:46:39 +1000240 reg = <0xef600600 0x00000008>;
241 virtual-reg = <0xef600600>;
Valentine Barshakd60ff952007-08-29 17:39:42 +0400242 clock-frequency = <0>;
243 current-speed = <0>;
244 interrupt-parent = <&UIC1>;
David Gibson71f34972008-05-15 16:46:39 +1000245 interrupts = <0x4 0x4>;
Valentine Barshakd60ff952007-08-29 17:39:42 +0400246 };
247
248 IIC0: i2c@ef600700 {
Matthias Fuchs423da262008-09-07 21:57:21 +0000249 #address-cells = <1>;
250 #size-cells = <0>;
Valentine Barshakd60ff952007-08-29 17:39:42 +0400251 compatible = "ibm,iic-440epx", "ibm,iic";
David Gibson71f34972008-05-15 16:46:39 +1000252 reg = <0xef600700 0x00000014>;
Valentine Barshakd60ff952007-08-29 17:39:42 +0400253 interrupt-parent = <&UIC0>;
David Gibson71f34972008-05-15 16:46:39 +1000254 interrupts = <0x2 0x4>;
Matthias Fuchs423da262008-09-07 21:57:21 +0000255
256 hwmon@48 {
257 compatible = "adi,ad7414";
258 reg = <0x48>;
259 };
Valentine Barshakd60ff952007-08-29 17:39:42 +0400260 };
261
262 IIC1: i2c@ef600800 {
Matthias Fuchs423da262008-09-07 21:57:21 +0000263 #address-cells = <1>;
264 #size-cells = <0>;
Valentine Barshakd60ff952007-08-29 17:39:42 +0400265 compatible = "ibm,iic-440epx", "ibm,iic";
David Gibson71f34972008-05-15 16:46:39 +1000266 reg = <0xef600800 0x00000014>;
Valentine Barshakd60ff952007-08-29 17:39:42 +0400267 interrupt-parent = <&UIC0>;
David Gibson71f34972008-05-15 16:46:39 +1000268 interrupts = <0x7 0x4>;
Valentine Barshakd60ff952007-08-29 17:39:42 +0400269 };
270
271 ZMII0: emac-zmii@ef600d00 {
Valentine Barshakd60ff952007-08-29 17:39:42 +0400272 compatible = "ibm,zmii-440epx", "ibm,zmii";
David Gibson71f34972008-05-15 16:46:39 +1000273 reg = <0xef600d00 0x0000000c>;
Valentine Barshakd60ff952007-08-29 17:39:42 +0400274 };
275
Valentine Barshak1f69dcf2007-10-02 00:12:09 +1000276 RGMII0: emac-rgmii@ef601000 {
Valentine Barshak1f69dcf2007-10-02 00:12:09 +1000277 compatible = "ibm,rgmii-440epx", "ibm,rgmii";
David Gibson71f34972008-05-15 16:46:39 +1000278 reg = <0xef601000 0x00000008>;
Benjamin Herrenschmidt1f578772007-12-05 11:14:28 +1100279 has-mdio;
Valentine Barshak1f69dcf2007-10-02 00:12:09 +1000280 };
281
Valentine Barshakd60ff952007-08-29 17:39:42 +0400282 EMAC0: ethernet@ef600e00 {
Valentine Barshakd60ff952007-08-29 17:39:42 +0400283 device_type = "network";
284 compatible = "ibm,emac-440epx", "ibm,emac4";
285 interrupt-parent = <&EMAC0>;
David Gibson71f34972008-05-15 16:46:39 +1000286 interrupts = <0x0 0x1>;
Valentine Barshakd60ff952007-08-29 17:39:42 +0400287 #interrupt-cells = <1>;
288 #address-cells = <0>;
289 #size-cells = <0>;
David Gibson71f34972008-05-15 16:46:39 +1000290 interrupt-map = </*Status*/ 0x0 &UIC0 0x18 0x4
291 /*Wake*/ 0x1 &UIC1 0x1d 0x4>;
Grant Erickson05781cc2008-07-08 08:03:11 +1000292 reg = <0xef600e00 0x00000074>;
Valentine Barshakd60ff952007-08-29 17:39:42 +0400293 local-mac-address = [000000000000];
294 mal-device = <&MAL0>;
Valentine Barshakbd0076c2007-09-19 03:29:13 +1000295 mal-tx-channel = <0>;
Valentine Barshakd60ff952007-08-29 17:39:42 +0400296 mal-rx-channel = <0>;
297 cell-index = <0>;
David Gibson71f34972008-05-15 16:46:39 +1000298 max-frame-size = <9000>;
299 rx-fifo-size = <4096>;
300 tx-fifo-size = <2048>;
Valentine Barshak1f69dcf2007-10-02 00:12:09 +1000301 phy-mode = "rgmii";
David Gibson71f34972008-05-15 16:46:39 +1000302 phy-map = <0x00000000>;
Valentine Barshakd60ff952007-08-29 17:39:42 +0400303 zmii-device = <&ZMII0>;
304 zmii-channel = <0>;
Valentine Barshak1f69dcf2007-10-02 00:12:09 +1000305 rgmii-device = <&RGMII0>;
306 rgmii-channel = <0>;
Benjamin Herrenschmidtbff713b2007-12-05 11:14:29 +1100307 has-inverted-stacr-oc;
308 has-new-stacr-staopc;
Valentine Barshakd60ff952007-08-29 17:39:42 +0400309 };
310
311 EMAC1: ethernet@ef600f00 {
Valentine Barshakd60ff952007-08-29 17:39:42 +0400312 device_type = "network";
313 compatible = "ibm,emac-440epx", "ibm,emac4";
314 interrupt-parent = <&EMAC1>;
David Gibson71f34972008-05-15 16:46:39 +1000315 interrupts = <0x0 0x1>;
Valentine Barshakd60ff952007-08-29 17:39:42 +0400316 #interrupt-cells = <1>;
317 #address-cells = <0>;
318 #size-cells = <0>;
David Gibson71f34972008-05-15 16:46:39 +1000319 interrupt-map = </*Status*/ 0x0 &UIC0 0x19 0x4
320 /*Wake*/ 0x1 &UIC1 0x1f 0x4>;
Grant Erickson05781cc2008-07-08 08:03:11 +1000321 reg = <0xef600f00 0x00000074>;
Valentine Barshakd60ff952007-08-29 17:39:42 +0400322 local-mac-address = [000000000000];
323 mal-device = <&MAL0>;
Valentine Barshakbd0076c2007-09-19 03:29:13 +1000324 mal-tx-channel = <1>;
Valentine Barshakd60ff952007-08-29 17:39:42 +0400325 mal-rx-channel = <1>;
326 cell-index = <1>;
David Gibson71f34972008-05-15 16:46:39 +1000327 max-frame-size = <9000>;
328 rx-fifo-size = <4096>;
329 tx-fifo-size = <2048>;
Valentine Barshak1f69dcf2007-10-02 00:12:09 +1000330 phy-mode = "rgmii";
David Gibson71f34972008-05-15 16:46:39 +1000331 phy-map = <0x00000000>;
Valentine Barshakd60ff952007-08-29 17:39:42 +0400332 zmii-device = <&ZMII0>;
333 zmii-channel = <1>;
Valentine Barshak1f69dcf2007-10-02 00:12:09 +1000334 rgmii-device = <&RGMII0>;
335 rgmii-channel = <1>;
Benjamin Herrenschmidtbff713b2007-12-05 11:14:29 +1100336 has-inverted-stacr-oc;
337 has-new-stacr-staopc;
Valentine Barshakd60ff952007-08-29 17:39:42 +0400338 };
339 };
Valentine Barshak2a134482007-12-22 03:26:01 +1100340
341 PCI0: pci@1ec000000 {
342 device_type = "pci";
343 #interrupt-cells = <1>;
344 #size-cells = <2>;
345 #address-cells = <3>;
346 compatible = "ibm,plb440epx-pci", "ibm,plb-pci";
347 primary;
David Gibson71f34972008-05-15 16:46:39 +1000348 reg = <0x00000001 0xeec00000 0x00000008 /* Config space access */
349 0x00000001 0xeed00000 0x00000004 /* IACK */
350 0x00000001 0xeed00000 0x00000004 /* Special cycle */
351 0x00000001 0xef400000 0x00000040>; /* Internal registers */
Valentine Barshak2a134482007-12-22 03:26:01 +1100352
353 /* Outbound ranges, one memory and one IO,
354 * later cannot be changed. Chip supports a second
355 * IO range but we don't use it for now
Christian Ehrhardt78be7642008-05-06 12:37:15 -0500356 * From the 440EPx user manual:
357 * PCI 1 Memory 1 8000 0000 1 BFFF FFFF 1GB
358 * I/O 1 E800 0000 1 E800 FFFF 64KB
359 * I/O 1 E880 0000 1 EBFF FFFF 56MB
Valentine Barshak2a134482007-12-22 03:26:01 +1100360 */
David Gibson71f34972008-05-15 16:46:39 +1000361 ranges = <0x02000000 0x00000000 0x80000000 0x00000001 0x80000000 0x00000000 0x40000000
362 0x01000000 0x00000000 0x00000000 0x00000001 0xe8000000 0x00000000 0x00010000
363 0x01000000 0x00000000 0x00000000 0x00000001 0xe8800000 0x00000000 0x03800000>;
Valentine Barshak2a134482007-12-22 03:26:01 +1100364
365 /* Inbound 2GB range starting at 0 */
David Gibson71f34972008-05-15 16:46:39 +1000366 dma-ranges = <0x42000000 0x0 0x0 0x0 0x0 0x0 0x80000000>;
Valentine Barshak2a134482007-12-22 03:26:01 +1100367
368 /* All PCI interrupts are routed to IRQ 67 */
David Gibson71f34972008-05-15 16:46:39 +1000369 interrupt-map-mask = <0x0 0x0 0x0 0x0>;
370 interrupt-map = < 0x0 0x0 0x0 0x0 &UIC2 0x3 0x8 >;
Valentine Barshak2a134482007-12-22 03:26:01 +1100371 };
Valentine Barshakd60ff952007-08-29 17:39:42 +0400372 };
373
374 chosen {
375 linux,stdout-path = "/plb/opb/serial@ef600300";
376 bootargs = "console=ttyS0,115200";
377 };
378};