blob: cb26b007980bafa9fe35eba6feb869d41c36110c [file] [log] [blame]
Mark A. Greer3f456cc2007-05-12 10:57:58 +10001/* Device Tree Source for Motorola PrPMC2800
2 *
3 * Author: Mark A. Greer <mgreer@mvista.com>
4 *
5 * 2007 (c) MontaVista, Software, Inc. This file is licensed under
6 * the terms of the GNU General Public License version 2. This program
7 * is licensed "as is" without any warranty of any kind, whether express
8 * or implied.
9 *
10 * Property values that are labeled as "Default" will be updated by bootwrapper
11 * if it can determine the exact PrPMC type.
Mark A. Greer3f456cc2007-05-12 10:57:58 +100012 */
13
Mark A. Greerd528be52008-04-08 08:07:08 +100014/dts-v1/;
15
Mark A. Greer3f456cc2007-05-12 10:57:58 +100016/ {
17 #address-cells = <1>;
18 #size-cells = <1>;
19 model = "PrPMC280/PrPMC2800"; /* Default */
20 compatible = "motorola,PrPMC2800";
21 coherency-off;
22
23 cpus {
24 #address-cells = <1>;
25 #size-cells = <0>;
26
27 PowerPC,7447 {
28 device_type = "cpu";
29 reg = <0>;
Dale Farnsworthfb9d93d2008-04-08 08:08:06 +100030 clock-frequency = <733333333>; /* Default */
Mark A. Greerd528be52008-04-08 08:07:08 +100031 bus-frequency = <133333333>;
32 timebase-frequency = <33333333>;
33 i-cache-line-size = <32>;
34 d-cache-line-size = <32>;
35 i-cache-size = <32768>;
36 d-cache-size = <32768>;
Mark A. Greer3f456cc2007-05-12 10:57:58 +100037 };
38 };
39
40 memory {
41 device_type = "memory";
Mark A. Greerd528be52008-04-08 08:07:08 +100042 reg = <0x0 0x20000000>; /* Default (512MB) */
Mark A. Greer3f456cc2007-05-12 10:57:58 +100043 };
44
45 mv64x60@f1000000 { /* Marvell Discovery */
46 #address-cells = <1>;
47 #size-cells = <1>;
Mark A. Greer3f456cc2007-05-12 10:57:58 +100048 model = "mv64360"; /* Default */
Mark A. Greera1810b42008-04-08 08:09:03 +100049 compatible = "marvell,mv64360";
Mark A. Greerd528be52008-04-08 08:07:08 +100050 clock-frequency = <133333333>;
51 reg = <0xf1000000 0x10000>;
52 virtual-reg = <0xf1000000>;
53 ranges = <0x88000000 0x88000000 0x1000000 /* PCI 0 I/O Space */
54 0x80000000 0x80000000 0x8000000 /* PCI 0 MEM Space */
55 0xa0000000 0xa0000000 0x4000000 /* User FLASH */
56 0x00000000 0xf1000000 0x0010000 /* Bridge's regs */
57 0xf2000000 0xf2000000 0x0040000>;/* Integrated SRAM */
Mark A. Greer3f456cc2007-05-12 10:57:58 +100058
59 flash@a0000000 {
60 device_type = "rom";
61 compatible = "direct-mapped";
Mark A. Greerd528be52008-04-08 08:07:08 +100062 reg = <0xa0000000 0x4000000>; /* Default (64MB) */
Mark A. Greer3f456cc2007-05-12 10:57:58 +100063 probe-type = "CFI";
64 bank-width = <4>;
Mark A. Greerd528be52008-04-08 08:07:08 +100065 partitions = <0x00000000 0x00100000 /* RO */
66 0x00100000 0x00040001 /* RW */
67 0x00140000 0x00400000 /* RO */
68 0x00540000 0x039c0000 /* RO */
69 0x03f00000 0x00100000>; /* RO */
Mark A. Greer3f456cc2007-05-12 10:57:58 +100070 partition-names = "FW Image A", "FW Config Data", "Kernel Image", "Filesystem", "FW Image B";
71 };
72
73 mdio {
74 #address-cells = <1>;
75 #size-cells = <0>;
76 device_type = "mdio";
Mark A. Greera1810b42008-04-08 08:09:03 +100077 compatible = "marvell,mv64360-mdio";
Mark A. Greerd528be52008-04-08 08:07:08 +100078 PHY0: ethernet-phy@1 {
Mark A. Greer3f456cc2007-05-12 10:57:58 +100079 device_type = "ethernet-phy";
80 compatible = "broadcom,bcm5421";
Mark A. Greerd528be52008-04-08 08:07:08 +100081 interrupts = <76>; /* GPP 12 */
82 interrupt-parent = <&PIC>;
Mark A. Greer3f456cc2007-05-12 10:57:58 +100083 reg = <1>;
84 };
Mark A. Greerd528be52008-04-08 08:07:08 +100085 PHY1: ethernet-phy@3 {
Mark A. Greer3f456cc2007-05-12 10:57:58 +100086 device_type = "ethernet-phy";
87 compatible = "broadcom,bcm5421";
Mark A. Greerd528be52008-04-08 08:07:08 +100088 interrupts = <76>; /* GPP 12 */
89 interrupt-parent = <&PIC>;
Mark A. Greer3f456cc2007-05-12 10:57:58 +100090 reg = <3>;
91 };
92 };
93
94 ethernet@2000 {
Mark A. Greerd528be52008-04-08 08:07:08 +100095 reg = <0x2000 0x2000>;
Mark A. Greer3f456cc2007-05-12 10:57:58 +100096 eth0 {
97 device_type = "network";
Mark A. Greera1810b42008-04-08 08:09:03 +100098 compatible = "marvell,mv64360-eth";
Mark A. Greer3f456cc2007-05-12 10:57:58 +100099 block-index = <0>;
Mark A. Greerd528be52008-04-08 08:07:08 +1000100 interrupts = <32>;
101 interrupt-parent = <&PIC>;
102 phy = <&PHY0>;
Mark A. Greer3f456cc2007-05-12 10:57:58 +1000103 local-mac-address = [ 00 00 00 00 00 00 ];
104 };
105 eth1 {
106 device_type = "network";
Mark A. Greera1810b42008-04-08 08:09:03 +1000107 compatible = "marvell,mv64360-eth";
Mark A. Greer3f456cc2007-05-12 10:57:58 +1000108 block-index = <1>;
Mark A. Greerd528be52008-04-08 08:07:08 +1000109 interrupts = <33>;
110 interrupt-parent = <&PIC>;
111 phy = <&PHY1>;
Mark A. Greer3f456cc2007-05-12 10:57:58 +1000112 local-mac-address = [ 00 00 00 00 00 00 ];
113 };
114 };
115
Mark A. Greerd528be52008-04-08 08:07:08 +1000116 SDMA0: sdma@4000 {
Mark A. Greer3f456cc2007-05-12 10:57:58 +1000117 device_type = "dma";
Mark A. Greera1810b42008-04-08 08:09:03 +1000118 compatible = "marvell,mv64360-sdma";
Mark A. Greerd528be52008-04-08 08:07:08 +1000119 reg = <0x4000 0xc18>;
120 virtual-reg = <0xf1004000>;
Mark A. Greer3f456cc2007-05-12 10:57:58 +1000121 interrupt-base = <0>;
Mark A. Greerd528be52008-04-08 08:07:08 +1000122 interrupts = <36>;
123 interrupt-parent = <&PIC>;
Mark A. Greer3f456cc2007-05-12 10:57:58 +1000124 };
125
Mark A. Greerd528be52008-04-08 08:07:08 +1000126 SDMA1: sdma@6000 {
Mark A. Greer3f456cc2007-05-12 10:57:58 +1000127 device_type = "dma";
Mark A. Greera1810b42008-04-08 08:09:03 +1000128 compatible = "marvell,mv64360-sdma";
Mark A. Greerd528be52008-04-08 08:07:08 +1000129 reg = <0x6000 0xc18>;
130 virtual-reg = <0xf1006000>;
Mark A. Greer3f456cc2007-05-12 10:57:58 +1000131 interrupt-base = <0>;
Mark A. Greerd528be52008-04-08 08:07:08 +1000132 interrupts = <38>;
133 interrupt-parent = <&PIC>;
Mark A. Greer3f456cc2007-05-12 10:57:58 +1000134 };
135
Mark A. Greerd528be52008-04-08 08:07:08 +1000136 BRG0: brg@b200 {
Mark A. Greera1810b42008-04-08 08:09:03 +1000137 compatible = "marvell,mv64360-brg";
Mark A. Greerd528be52008-04-08 08:07:08 +1000138 reg = <0xb200 0x8>;
Mark A. Greer3f456cc2007-05-12 10:57:58 +1000139 clock-src = <8>;
Dale Farnsworthfb9d93d2008-04-08 08:08:06 +1000140 clock-frequency = <133333333>;
Mark A. Greerd528be52008-04-08 08:07:08 +1000141 current-speed = <9600>;
Mark A. Greer3f456cc2007-05-12 10:57:58 +1000142 bcr = <0>;
143 };
144
Mark A. Greerd528be52008-04-08 08:07:08 +1000145 BRG1: brg@b208 {
Mark A. Greera1810b42008-04-08 08:09:03 +1000146 compatible = "marvell,mv64360-brg";
Mark A. Greerd528be52008-04-08 08:07:08 +1000147 reg = <0xb208 0x8>;
Mark A. Greer3f456cc2007-05-12 10:57:58 +1000148 clock-src = <8>;
Dale Farnsworthfb9d93d2008-04-08 08:08:06 +1000149 clock-frequency = <133333333>;
Mark A. Greerd528be52008-04-08 08:07:08 +1000150 current-speed = <9600>;
Mark A. Greer3f456cc2007-05-12 10:57:58 +1000151 bcr = <0>;
152 };
153
Mark A. Greerd528be52008-04-08 08:07:08 +1000154 CUNIT: cunit@f200 {
155 reg = <0xf200 0x200>;
Mark A. Greer3f456cc2007-05-12 10:57:58 +1000156 };
157
Mark A. Greerd528be52008-04-08 08:07:08 +1000158 MPSCROUTING: mpscrouting@b400 {
159 reg = <0xb400 0xc>;
Mark A. Greer3f456cc2007-05-12 10:57:58 +1000160 };
161
Mark A. Greerd528be52008-04-08 08:07:08 +1000162 MPSCINTR: mpscintr@b800 {
163 reg = <0xb800 0x100>;
164 virtual-reg = <0xf100b800>;
Mark A. Greer3f456cc2007-05-12 10:57:58 +1000165 };
166
Mark A. Greerd528be52008-04-08 08:07:08 +1000167 MPSC0: mpsc@8000 {
Mark A. Greer3f456cc2007-05-12 10:57:58 +1000168 device_type = "serial";
Mark A. Greera1810b42008-04-08 08:09:03 +1000169 compatible = "marvell,mv64360-mpsc";
Mark A. Greerd528be52008-04-08 08:07:08 +1000170 reg = <0x8000 0x38>;
171 virtual-reg = <0xf1008000>;
172 sdma = <&SDMA0>;
173 brg = <&BRG0>;
174 cunit = <&CUNIT>;
175 mpscrouting = <&MPSCROUTING>;
176 mpscintr = <&MPSCINTR>;
Mark A. Greer3f456cc2007-05-12 10:57:58 +1000177 block-index = <0>;
Mark A. Greerd528be52008-04-08 08:07:08 +1000178 max_idle = <40>;
Mark A. Greer3f456cc2007-05-12 10:57:58 +1000179 chr_1 = <0>;
180 chr_2 = <0>;
181 chr_10 = <3>;
182 mpcr = <0>;
Mark A. Greerd528be52008-04-08 08:07:08 +1000183 interrupts = <40>;
184 interrupt-parent = <&PIC>;
Mark A. Greer3f456cc2007-05-12 10:57:58 +1000185 };
186
Mark A. Greerd528be52008-04-08 08:07:08 +1000187 MPSC1: mpsc@9000 {
Mark A. Greer3f456cc2007-05-12 10:57:58 +1000188 device_type = "serial";
Mark A. Greera1810b42008-04-08 08:09:03 +1000189 compatible = "marvell,mv64360-mpsc";
Mark A. Greerd528be52008-04-08 08:07:08 +1000190 reg = <0x9000 0x38>;
191 virtual-reg = <0xf1009000>;
192 sdma = <&SDMA1>;
193 brg = <&BRG1>;
194 cunit = <&CUNIT>;
195 mpscrouting = <&MPSCROUTING>;
196 mpscintr = <&MPSCINTR>;
Mark A. Greer3f456cc2007-05-12 10:57:58 +1000197 block-index = <1>;
Mark A. Greerd528be52008-04-08 08:07:08 +1000198 max_idle = <40>;
Mark A. Greer3f456cc2007-05-12 10:57:58 +1000199 chr_1 = <0>;
200 chr_2 = <0>;
201 chr_10 = <3>;
202 mpcr = <0>;
Mark A. Greerd528be52008-04-08 08:07:08 +1000203 interrupts = <42>;
204 interrupt-parent = <&PIC>;
Mark A. Greer3f456cc2007-05-12 10:57:58 +1000205 };
206
Dale Farnsworth7e07a152007-07-24 11:12:24 -0700207 wdt@b410 { /* watchdog timer */
Mark A. Greera1810b42008-04-08 08:09:03 +1000208 compatible = "marvell,mv64360-wdt";
Mark A. Greerd528be52008-04-08 08:07:08 +1000209 reg = <0xb410 0x8>;
210 timeout = <10>; /* wdt timeout in seconds */
Dale Farnsworth7e07a152007-07-24 11:12:24 -0700211 };
212
Mark A. Greer3f456cc2007-05-12 10:57:58 +1000213 i2c@c000 {
214 device_type = "i2c";
Mark A. Greera1810b42008-04-08 08:09:03 +1000215 compatible = "marvell,mv64360-i2c";
Mark A. Greerd528be52008-04-08 08:07:08 +1000216 reg = <0xc000 0x20>;
217 virtual-reg = <0xf100c000>;
Mark A. Greer3f456cc2007-05-12 10:57:58 +1000218 freq_m = <8>;
219 freq_n = <3>;
Mark A. Greerd528be52008-04-08 08:07:08 +1000220 timeout = <1000>; /* 1000 = 1 second */
Mark A. Greer3f456cc2007-05-12 10:57:58 +1000221 retries = <1>;
Mark A. Greerd528be52008-04-08 08:07:08 +1000222 interrupts = <37>;
223 interrupt-parent = <&PIC>;
Mark A. Greer3f456cc2007-05-12 10:57:58 +1000224 };
225
Mark A. Greerd528be52008-04-08 08:07:08 +1000226 PIC: pic {
Mark A. Greer3f456cc2007-05-12 10:57:58 +1000227 #interrupt-cells = <1>;
228 #address-cells = <0>;
Mark A. Greera1810b42008-04-08 08:09:03 +1000229 compatible = "marvell,mv64360-pic";
Mark A. Greerd528be52008-04-08 08:07:08 +1000230 reg = <0x0 0x88>;
Mark A. Greer3f456cc2007-05-12 10:57:58 +1000231 interrupt-controller;
232 };
233
234 mpp@f000 {
Mark A. Greera1810b42008-04-08 08:09:03 +1000235 compatible = "marvell,mv64360-mpp";
Mark A. Greerd528be52008-04-08 08:07:08 +1000236 reg = <0xf000 0x10>;
Mark A. Greer3f456cc2007-05-12 10:57:58 +1000237 };
238
239 gpp@f100 {
Mark A. Greera1810b42008-04-08 08:09:03 +1000240 compatible = "marvell,mv64360-gpp";
Mark A. Greerd528be52008-04-08 08:07:08 +1000241 reg = <0xf100 0x20>;
Mark A. Greer3f456cc2007-05-12 10:57:58 +1000242 };
243
244 pci@80000000 {
245 #address-cells = <3>;
246 #size-cells = <2>;
247 #interrupt-cells = <1>;
248 device_type = "pci";
Mark A. Greera1810b42008-04-08 08:09:03 +1000249 compatible = "marvell,mv64360-pci";
Mark A. Greerd528be52008-04-08 08:07:08 +1000250 reg = <0xcf8 0x8>;
251 ranges = <0x01000000 0x0 0x0
252 0x88000000 0x0 0x01000000
253 0x02000000 0x0 0x80000000
254 0x80000000 0x0 0x08000000>;
255 bus-range = <0 255>;
256 clock-frequency = <66000000>;
257 interrupt-pci-iack = <0xc34>;
258 interrupt-parent = <&PIC>;
259 interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
Mark A. Greer3f456cc2007-05-12 10:57:58 +1000260 interrupt-map = <
261 /* IDSEL 0x0a */
Mark A. Greerd528be52008-04-08 08:07:08 +1000262 0x5000 0 0 1 &PIC 80
263 0x5000 0 0 2 &PIC 81
264 0x5000 0 0 3 &PIC 91
265 0x5000 0 0 4 &PIC 93
Mark A. Greer3f456cc2007-05-12 10:57:58 +1000266
267 /* IDSEL 0x0b */
Mark A. Greerd528be52008-04-08 08:07:08 +1000268 0x5800 0 0 1 &PIC 91
269 0x5800 0 0 2 &PIC 93
270 0x5800 0 0 3 &PIC 80
271 0x5800 0 0 4 &PIC 81
Mark A. Greer3f456cc2007-05-12 10:57:58 +1000272
273 /* IDSEL 0x0c */
Mark A. Greerd528be52008-04-08 08:07:08 +1000274 0x6000 0 0 1 &PIC 91
275 0x6000 0 0 2 &PIC 93
276 0x6000 0 0 3 &PIC 80
277 0x6000 0 0 4 &PIC 81
Mark A. Greer3f456cc2007-05-12 10:57:58 +1000278
279 /* IDSEL 0x0d */
Mark A. Greerd528be52008-04-08 08:07:08 +1000280 0x6800 0 0 1 &PIC 93
281 0x6800 0 0 2 &PIC 80
282 0x6800 0 0 3 &PIC 81
283 0x6800 0 0 4 &PIC 91
Mark A. Greer3f456cc2007-05-12 10:57:58 +1000284 >;
285 };
286
287 cpu-error@0070 {
Mark A. Greera1810b42008-04-08 08:09:03 +1000288 compatible = "marvell,mv64360-cpu-error";
Mark A. Greerd528be52008-04-08 08:07:08 +1000289 reg = <0x70 0x10 0x128 0x28>;
290 interrupts = <3>;
291 interrupt-parent = <&PIC>;
Mark A. Greer3f456cc2007-05-12 10:57:58 +1000292 };
293
294 sram-ctrl@0380 {
Mark A. Greera1810b42008-04-08 08:09:03 +1000295 compatible = "marvell,mv64360-sram-ctrl";
Mark A. Greerd528be52008-04-08 08:07:08 +1000296 reg = <0x380 0x80>;
297 interrupts = <13>;
298 interrupt-parent = <&PIC>;
Mark A. Greer3f456cc2007-05-12 10:57:58 +1000299 };
300
301 pci-error@1d40 {
Mark A. Greera1810b42008-04-08 08:09:03 +1000302 compatible = "marvell,mv64360-pci-error";
Mark A. Greerd528be52008-04-08 08:07:08 +1000303 reg = <0x1d40 0x40 0xc28 0x4>;
304 interrupts = <12>;
305 interrupt-parent = <&PIC>;
Mark A. Greer3f456cc2007-05-12 10:57:58 +1000306 };
307
308 mem-ctrl@1400 {
Mark A. Greera1810b42008-04-08 08:09:03 +1000309 compatible = "marvell,mv64360-mem-ctrl";
Mark A. Greerd528be52008-04-08 08:07:08 +1000310 reg = <0x1400 0x60>;
311 interrupts = <17>;
312 interrupt-parent = <&PIC>;
Mark A. Greer3f456cc2007-05-12 10:57:58 +1000313 };
314 };
315
316 chosen {
Mark A. Greerbb807e62007-06-07 10:42:28 +1000317 bootargs = "ip=on";
Mark A. Greerd528be52008-04-08 08:07:08 +1000318 linux,stdout-path = &MPSC0;
Mark A. Greer3f456cc2007-05-12 10:57:58 +1000319 };
320};