1/*
2 * MPC885 ADS Device Tree Source
3 *
4 * Copyright 2006 MontaVista Software, Inc.
5 * Copyright 2007,2008 Freescale Semiconductor, Inc.
6 *
7 * This program is free software; you can redistribute  it and/or modify it
8 * under  the terms of  the GNU General  Public License as published by the
9 * Free Software Foundation;  either version 2 of the  License, or (at your
10 * option) any later version.
11 */
12
13/dts-v1/;
14
15/ {
16	model = "MPC885ADS";
17	compatible = "fsl,mpc885ads";
18	#address-cells = <1>;
19	#size-cells = <1>;
20
21	cpus {
22		#address-cells = <1>;
23		#size-cells = <0>;
24
25		PowerPC,885@0 {
26			device_type = "cpu";
27			reg = <0x0>;
28			d-cache-line-size = <16>;
29			i-cache-line-size = <16>;
30			d-cache-size = <8192>;
31			i-cache-size = <8192>;
32			timebase-frequency = <0>;
33			bus-frequency = <0>;
34			clock-frequency = <0>;
35			interrupts = <15 2>;	// decrementer interrupt
36			interrupt-parent = <&PIC>;
37		};
38	};
39
40	memory {
41		device_type = "memory";
42		reg = <0x0 0x0>;
43	};
44
45	localbus@ff000100 {
46		compatible = "fsl,mpc885-localbus", "fsl,pq1-localbus";
47		#address-cells = <2>;
48		#size-cells = <1>;
49		reg = <0xff000100 0x40>;
50
51		ranges = <
52			0x0 0x0 0xfe000000 0x800000
53			0x1 0x0 0xff080000 0x8000
54			0x5 0x0 0xff0a0000 0x8000
55		>;
56
57		flash@0,0 {
58			compatible = "jedec-flash";
59			reg = <0x0 0x0 0x800000>;
60			bank-width = <4>;
61			device-width = <1>;
62		};
63
64		board-control@1,0 {
65			reg = <0x1 0x0 0x20 0x5 0x300 0x4>;
66			compatible = "fsl,mpc885ads-bcsr";
67		};
68	};
69
70	soc@ff000000 {
71		compatible = "fsl,mpc885", "fsl,pq1-soc";
72		#address-cells = <1>;
73		#size-cells = <1>;
74		device_type = "soc";
75		ranges = <0x0 0xff000000 0x28000>;
76		bus-frequency = <0>;
77
78		// Temporary -- will go away once kernel uses ranges for get_immrbase().
79		reg = <0xff000000 0x4000>;
80
81		mdio@e00 {
82			compatible = "fsl,mpc885-fec-mdio", "fsl,pq1-fec-mdio";
83			reg = <0xe00 0x188>;
84			#address-cells = <1>;
85			#size-cells = <0>;
86
87			PHY0: ethernet-phy@0 {
88				reg = <0x0>;
89			};
90
91			PHY1: ethernet-phy@1 {
92				reg = <0x1>;
93			};
94
95			PHY2: ethernet-phy@2 {
96				reg = <0x2>;
97			};
98		};
99
100		ethernet@e00 {
101			device_type = "network";
102			compatible = "fsl,mpc885-fec-enet",
103			             "fsl,pq1-fec-enet";
104			reg = <0xe00 0x188>;
105			local-mac-address = [ 00 00 00 00 00 00 ];
106			interrupts = <3 1>;
107			interrupt-parent = <&PIC>;
108			phy-handle = <&PHY0>;
109			linux,network-index = <0>;
110		};
111
112		ethernet@1e00 {
113			device_type = "network";
114			compatible = "fsl,mpc885-fec-enet",
115			             "fsl,pq1-fec-enet";
116			reg = <0x1e00 0x188>;
117			local-mac-address = [ 00 00 00 00 00 00 ];
118			interrupts = <7 1>;
119			interrupt-parent = <&PIC>;
120			phy-handle = <&PHY1>;
121			linux,network-index = <1>;
122		};
123
124		PIC: interrupt-controller@0 {
125			interrupt-controller;
126			#interrupt-cells = <2>;
127			reg = <0x0 0x24>;
128			compatible = "fsl,mpc885-pic", "fsl,pq1-pic";
129		};
130
131		pcmcia@80 {
132			#address-cells = <3>;
133			#interrupt-cells = <1>;
134			#size-cells = <2>;
135			compatible = "fsl,pq-pcmcia";
136			device_type = "pcmcia";
137			reg = <0x80 0x80>;
138			interrupt-parent = <&PIC>;
139			interrupts = <13 1>;
140		};
141
142		cpm@9c0 {
143			#address-cells = <1>;
144			#size-cells = <1>;
145			compatible = "fsl,mpc885-cpm", "fsl,cpm1";
146			command-proc = <0x9c0>;
147			interrupts = <0>;	// cpm error interrupt
148			interrupt-parent = <&CPM_PIC>;
149			reg = <0x9c0 0x40>;
150			ranges;
151
152			muram@2000 {
153				#address-cells = <1>;
154				#size-cells = <1>;
155				ranges = <0x0 0x2000 0x2000>;
156
157				data@0 {
158					compatible = "fsl,cpm-muram-data";
159					reg = <0x0 0x1c00>;
160				};
161			};
162
163			brg@9f0 {
164				compatible = "fsl,mpc885-brg",
165				             "fsl,cpm1-brg",
166				             "fsl,cpm-brg";
167				clock-frequency = <0>;
168				reg = <0x9f0 0x10>;
169			};
170
171			CPM_PIC: interrupt-controller@930 {
172				interrupt-controller;
173				#interrupt-cells = <1>;
174				interrupts = <5 2 0 2>;
175				interrupt-parent = <&PIC>;
176				reg = <0x930 0x20>;
177				compatible = "fsl,mpc885-cpm-pic",
178				             "fsl,cpm1-pic";
179			};
180
181			serial@a80 {
182				device_type = "serial";
183				compatible = "fsl,mpc885-smc-uart",
184				             "fsl,cpm1-smc-uart";
185				reg = <0xa80 0x10 0x3e80 0x40>;
186				interrupts = <4>;
187				interrupt-parent = <&CPM_PIC>;
188				fsl,cpm-brg = <1>;
189				fsl,cpm-command = <0x90>;
190			};
191
192			serial@a90 {
193				device_type = "serial";
194				compatible = "fsl,mpc885-smc-uart",
195				             "fsl,cpm1-smc-uart";
196				reg = <0xa90 0x10 0x3f80 0x40>;
197				interrupts = <3>;
198				interrupt-parent = <&CPM_PIC>;
199				fsl,cpm-brg = <2>;
200				fsl,cpm-command = <0xd0>;
201			};
202
203			ethernet@a40 {
204				device_type = "network";
205				compatible = "fsl,mpc885-scc-enet",
206				             "fsl,cpm1-scc-enet";
207				reg = <0xa40 0x18 0x3e00 0x100>;
208				local-mac-address = [ 00 00 00 00 00 00 ];
209				interrupts = <28>;
210				interrupt-parent = <&CPM_PIC>;
211				phy-handle = <&PHY2>;
212				fsl,cpm-command = <0x80>;
213				linux,network-index = <2>;
214			};
215
216			i2c@860 {
217				compatible = "fsl,mpc885-i2c",
218					     "fsl,cpm1-i2c";
219				reg = <0x860 0x20 0x3c80 0x30>;
220				interrupts = <16>;
221				interrupt-parent = <&CPM_PIC>;
222				fsl,cpm-command = <0x10>;
223				#address-cells = <1>;
224				#size-cells = <0>;
225			};
226		};
227
228		crypto@20000 {
229			compatible = "fsl,sec1.2", "fsl,sec1.0";
230			reg = <0x20000 0x8000>;
231			interrupts = <1 1>;
232			interrupt-parent = <&PIC>;
233			fsl,num-channels = <1>;
234			fsl,channel-fifo-len = <24>;
235			fsl,exec-units-mask = <0x4c>;
236			fsl,descriptor-types-mask = <0x05000154>;
237		};
238	};
239
240	chosen {
241		stdout-path = "/soc/cpm/serial@a80";
242	};
243};
244