1/*
2 * Device Tree for the Embedded Planet EP8248E board running PlanetCore.
3 *
4 * Copyright 2007 Freescale Semiconductor Inc.
5 *
6 * This program is free software; you can redistribute  it and/or modify it
7 * under  the terms of  the GNU General  Public License as published by the
8 * Free Software Foundation;  either version 2 of the  License, or (at your
9 * option) any later version.
10 */
11
12/dts-v1/;
13/ {
14	model = "EP8248E";
15	compatible = "fsl,ep8248e";
16	#address-cells = <1>;
17	#size-cells = <1>;
18
19	aliases {
20		planetcore-SMC1 = &smc1;
21		planetcore-SCC1 = &scc1;
22		ethernet0 = &eth0;
23		ethernet1 = &eth1;
24		serial0 = &smc1;
25		serial1 = &scc1;
26	};
27
28	cpus {
29		#address-cells = <1>;
30		#size-cells = <0>;
31
32		PowerPC,8248@0 {
33			device_type = "cpu";
34			reg = <0>;
35			d-cache-line-size = <32>;
36			i-cache-line-size = <32>;
37			d-cache-size = <16384>;
38			i-cache-size = <16384>;
39			timebase-frequency = <0>;
40			clock-frequency = <0>;
41		};
42	};
43
44	localbus@f0010100 {
45		compatible = "fsl,mpc8248-localbus",
46		             "fsl,pq2-localbus",
47		             "simple-bus";
48		#address-cells = <2>;
49		#size-cells = <1>;
50		reg = <0xf0010100 0x40>;
51
52		ranges = <0 0 0xfc000000 0x04000000
53		          1 0 0xfa000000 0x00008000>;
54
55		flash@0,3800000 {
56			compatible = "cfi-flash";
57			reg = <0 0x3800000 0x800000>;
58			bank-width = <4>;
59			device-width = <2>;
60		};
61
62		bcsr@1,0 {
63			#address-cells = <2>;
64			#size-cells = <1>;
65			reg = <1 0 0x10>;
66			compatible = "fsl,ep8248e-bcsr";
67			ranges;
68
69			mdio {
70				device_type = "mdio";
71				compatible = "fsl,ep8248e-mdio-bitbang";
72				#address-cells = <1>;
73				#size-cells = <0>;
74				reg = <1 8 1>;
75
76				PHY0: ethernet-phy@0 {
77					interrupt-parent = <&PIC>;
78					reg = <0>;
79					device_type = "ethernet-phy";
80				};
81
82				PHY1: ethernet-phy@1 {
83					interrupt-parent = <&PIC>;
84					reg = <1>;
85					device_type = "ethernet-phy";
86				};
87			};
88		};
89	};
90
91	memory {
92		device_type = "memory";
93		reg = <0 0>;
94	};
95
96	soc@f0000000 {
97		#address-cells = <1>;
98		#size-cells = <1>;
99		compatible = "fsl,mpc8248-immr", "fsl,pq2-soc", "simple-bus";
100		ranges = <0x00000000 0xf0000000 0x00053000>;
101
102		// Temporary until code stops depending on it.
103		device_type = "soc";
104
105		// Temporary -- will go away once kernel uses ranges for get_immrbase().
106		reg = <0xf0000000 0x00053000>;
107
108		cpm@119c0 {
109			#address-cells = <1>;
110			#size-cells = <1>;
111			#interrupt-cells = <2>;
112			compatible = "fsl,mpc8248-cpm", "fsl,cpm2",
113			             "simple-bus";
114			reg = <0x119c0 0x30>;
115			ranges;
116
117			muram {
118				#address-cells = <1>;
119				#size-cells = <1>;
120				ranges = <0 0 0x10000>;
121
122				data@0 {
123					compatible = "fsl,cpm-muram-data";
124					reg = <0 0x1100 0x1140
125					       0xec0 0x9800 0x800>;
126				};
127			};
128
129			brg@119f0 {
130				compatible = "fsl,mpc8248-brg",
131				             "fsl,cpm2-brg",
132				             "fsl,cpm-brg";
133				reg = <0x119f0 0x10 0x115f0 0x10>;
134			};
135
136			/* Monitor port/SMC1 */
137			smc1: serial@11a80 {
138				device_type = "serial";
139				compatible = "fsl,mpc8248-smc-uart",
140				             "fsl,cpm2-smc-uart";
141				reg = <0x11a80 0x20 0x1100 0x40>;
142				interrupts = <4 8>;
143				interrupt-parent = <&PIC>;
144				fsl,cpm-brg = <7>;
145				fsl,cpm-command = <0x1d000000>;
146				linux,planetcore-label = "SMC1";
147			};
148
149			/* "Serial" port/SCC1 */
150			scc1: serial@11a00 {
151				device_type = "serial";
152				compatible = "fsl,mpc8248-scc-uart",
153				             "fsl,cpm2-scc-uart";
154				reg = <0x11a00 0x20 0x8000 0x100>;
155				interrupts = <40 8>;
156				interrupt-parent = <&PIC>;
157				fsl,cpm-brg = <1>;
158				fsl,cpm-command = <0x00800000>;
159				linux,planetcore-label = "SCC1";
160			};
161
162			eth0: ethernet@11300 {
163				device_type = "network";
164				compatible = "fsl,mpc8248-fcc-enet",
165				             "fsl,cpm2-fcc-enet";
166				reg = <0x11300 0x20 0x8400 0x100 0x11390 1>;
167				local-mac-address = [ 00 00 00 00 00 00 ];
168				interrupts = <32 8>;
169				interrupt-parent = <&PIC>;
170				phy-handle = <&PHY0>;
171				linux,network-index = <0>;
172				fsl,cpm-command = <0x12000300>;
173			};
174
175			eth1: ethernet@11320 {
176				device_type = "network";
177				compatible = "fsl,mpc8248-fcc-enet",
178				             "fsl,cpm2-fcc-enet";
179				reg = <0x11320 0x20 0x8500 0x100 0x113b0 1>;
180				local-mac-address = [ 00 00 00 00 00 00 ];
181				interrupts = <33 8>;
182				interrupt-parent = <&PIC>;
183				phy-handle = <&PHY1>;
184				linux,network-index = <1>;
185				fsl,cpm-command = <0x16200300>;
186			};
187
188			usb@11b60 {
189				#address-cells = <1>;
190				#size-cells = <0>;
191				compatible = "fsl,mpc8248-usb",
192				             "fsl,cpm2-usb";
193				reg = <0x11b60 0x18 0x8b00 0x100>;
194				interrupt-parent = <&PIC>;
195				interrupts = <11 8>;
196				fsl,cpm-command = <0x2e600000>;
197			};
198		};
199
200		PIC: interrupt-controller@10c00 {
201			#interrupt-cells = <2>;
202			interrupt-controller;
203			reg = <0x10c00 0x80>;
204			compatible = "fsl,mpc8248-pic", "fsl,pq2-pic";
205		};
206	};
207};
208