1c6d4d657SGrant Likely/*
2c6d4d657SGrant Likely * Lite5200 board Device Tree Source
3c6d4d657SGrant Likely *
405cbbc69SGrant Likely * Copyright 2006-2007 Secret Lab Technologies Ltd.
5c6d4d657SGrant Likely * Grant Likely <grant.likely@secretlab.ca>
6c6d4d657SGrant Likely *
7c6d4d657SGrant Likely * This program is free software; you can redistribute  it and/or modify it
8c6d4d657SGrant Likely * under  the terms of  the GNU General  Public License as published by the
9c6d4d657SGrant Likely * Free Software Foundation;  either version 2 of the  License, or (at your
10c6d4d657SGrant Likely * option) any later version.
11c6d4d657SGrant Likely */
12c6d4d657SGrant Likely
13121361f7SGrant Likely/*
14121361f7SGrant Likely * WARNING: Do not depend on this tree layout remaining static just yet.
15121361f7SGrant Likely * The MPC5200 device tree conventions are still in flux
16121361f7SGrant Likely * Keep an eye on the linuxppc-dev mailing list for more details
17121361f7SGrant Likely */
18121361f7SGrant Likely
19c6d4d657SGrant Likely/ {
2005cbbc69SGrant Likely	model = "fsl,lite5200";
2105cbbc69SGrant Likely	// revision = "1.0";
2205cbbc69SGrant Likely	compatible = "fsl,lite5200\0generic-mpc5200";
23c6d4d657SGrant Likely	#address-cells = <1>;
24c6d4d657SGrant Likely	#size-cells = <1>;
25c6d4d657SGrant Likely
26c6d4d657SGrant Likely	cpus {
27c6d4d657SGrant Likely		#address-cells = <1>;
28c6d4d657SGrant Likely		#size-cells = <0>;
29c6d4d657SGrant Likely
30c6d4d657SGrant Likely		PowerPC,5200@0 {
31c6d4d657SGrant Likely			device_type = "cpu";
32c6d4d657SGrant Likely			reg = <0>;
33c6d4d657SGrant Likely			d-cache-line-size = <20>;
34c6d4d657SGrant Likely			i-cache-line-size = <20>;
35c6d4d657SGrant Likely			d-cache-size = <4000>;		// L1, 16K
36c6d4d657SGrant Likely			i-cache-size = <4000>;		// L1, 16K
37c6d4d657SGrant Likely			timebase-frequency = <0>;	// from bootloader
38c6d4d657SGrant Likely			bus-frequency = <0>;		// from bootloader
39c6d4d657SGrant Likely			clock-frequency = <0>;		// from bootloader
40c6d4d657SGrant Likely		};
41c6d4d657SGrant Likely	};
42c6d4d657SGrant Likely
43c6d4d657SGrant Likely	memory {
44c6d4d657SGrant Likely		device_type = "memory";
45c6d4d657SGrant Likely		reg = <00000000 04000000>;	// 64MB
46c6d4d657SGrant Likely	};
47c6d4d657SGrant Likely
48c6d4d657SGrant Likely	soc5200@f0000000 {
4905cbbc69SGrant Likely		model = "fsl,mpc5200";
500d0f4bc7SDomen Puncer		compatible = "mpc5200";
515c1992f8SKumar Gala		revision = "";			// from bootloader
52c6d4d657SGrant Likely		device_type = "soc";
53f0c8ac80SKumar Gala		ranges = <0 f0000000 0000c000>;
54f0c8ac80SKumar Gala		reg = <f0000000 00000100>;
55c6d4d657SGrant Likely		bus-frequency = <0>;		// from bootloader
5605cbbc69SGrant Likely		system-frequency = <0>;		// from bootloader
57c6d4d657SGrant Likely
58c6d4d657SGrant Likely		cdm@200 {
5905cbbc69SGrant Likely			compatible = "mpc5200-cdm";
60c6d4d657SGrant Likely			reg = <200 38>;
61c6d4d657SGrant Likely		};
62c6d4d657SGrant Likely
635c1992f8SKumar Gala		mpc5200_pic: pic@500 {
64c6d4d657SGrant Likely			// 5200 interrupts are encoded into two levels;
65c6d4d657SGrant Likely			interrupt-controller;
66c6d4d657SGrant Likely			#interrupt-cells = <3>;
67c6d4d657SGrant Likely			device_type = "interrupt-controller";
68f2fb9eb3SDomen Puncer			compatible = "mpc5200-pic";
69c6d4d657SGrant Likely			reg = <500 80>;
70c6d4d657SGrant Likely		};
71c6d4d657SGrant Likely
72c6d4d657SGrant Likely		gpt@600 {	// General Purpose Timer
7305cbbc69SGrant Likely			compatible = "mpc5200-gpt";
74c6d4d657SGrant Likely			device_type = "gpt";
7505cbbc69SGrant Likely			cell-index = <0>;
76c6d4d657SGrant Likely			reg = <600 10>;
77c6d4d657SGrant Likely			interrupts = <1 9 0>;
785c1992f8SKumar Gala			interrupt-parent = <&mpc5200_pic>;
7905cbbc69SGrant Likely			has-wdt;
80c6d4d657SGrant Likely		};
81c6d4d657SGrant Likely
82c6d4d657SGrant Likely		gpt@610 {	// General Purpose Timer
8305cbbc69SGrant Likely			compatible = "mpc5200-gpt";
84c6d4d657SGrant Likely			device_type = "gpt";
8505cbbc69SGrant Likely			cell-index = <1>;
86c6d4d657SGrant Likely			reg = <610 10>;
87c6d4d657SGrant Likely			interrupts = <1 a 0>;
885c1992f8SKumar Gala			interrupt-parent = <&mpc5200_pic>;
89c6d4d657SGrant Likely		};
90c6d4d657SGrant Likely
91c6d4d657SGrant Likely		gpt@620 {	// General Purpose Timer
9205cbbc69SGrant Likely			compatible = "mpc5200-gpt";
93c6d4d657SGrant Likely			device_type = "gpt";
9405cbbc69SGrant Likely			cell-index = <2>;
95c6d4d657SGrant Likely			reg = <620 10>;
96c6d4d657SGrant Likely			interrupts = <1 b 0>;
975c1992f8SKumar Gala			interrupt-parent = <&mpc5200_pic>;
98c6d4d657SGrant Likely		};
99c6d4d657SGrant Likely
100c6d4d657SGrant Likely		gpt@630 {	// General Purpose Timer
10105cbbc69SGrant Likely			compatible = "mpc5200-gpt";
102c6d4d657SGrant Likely			device_type = "gpt";
10305cbbc69SGrant Likely			cell-index = <3>;
104c6d4d657SGrant Likely			reg = <630 10>;
105c6d4d657SGrant Likely			interrupts = <1 c 0>;
1065c1992f8SKumar Gala			interrupt-parent = <&mpc5200_pic>;
107c6d4d657SGrant Likely		};
108c6d4d657SGrant Likely
109c6d4d657SGrant Likely		gpt@640 {	// General Purpose Timer
11005cbbc69SGrant Likely			compatible = "mpc5200-gpt";
111c6d4d657SGrant Likely			device_type = "gpt";
11205cbbc69SGrant Likely			cell-index = <4>;
113c6d4d657SGrant Likely			reg = <640 10>;
114c6d4d657SGrant Likely			interrupts = <1 d 0>;
1155c1992f8SKumar Gala			interrupt-parent = <&mpc5200_pic>;
116c6d4d657SGrant Likely		};
117c6d4d657SGrant Likely
118c6d4d657SGrant Likely		gpt@650 {	// General Purpose Timer
11905cbbc69SGrant Likely			compatible = "mpc5200-gpt";
120c6d4d657SGrant Likely			device_type = "gpt";
12105cbbc69SGrant Likely			cell-index = <5>;
122c6d4d657SGrant Likely			reg = <650 10>;
123c6d4d657SGrant Likely			interrupts = <1 e 0>;
1245c1992f8SKumar Gala			interrupt-parent = <&mpc5200_pic>;
125c6d4d657SGrant Likely		};
126c6d4d657SGrant Likely
127c6d4d657SGrant Likely		gpt@660 {	// General Purpose Timer
12805cbbc69SGrant Likely			compatible = "mpc5200-gpt";
129c6d4d657SGrant Likely			device_type = "gpt";
13005cbbc69SGrant Likely			cell-index = <6>;
131c6d4d657SGrant Likely			reg = <660 10>;
132c6d4d657SGrant Likely			interrupts = <1 f 0>;
1335c1992f8SKumar Gala			interrupt-parent = <&mpc5200_pic>;
134c6d4d657SGrant Likely		};
135c6d4d657SGrant Likely
136c6d4d657SGrant Likely		gpt@670 {	// General Purpose Timer
13705cbbc69SGrant Likely			compatible = "mpc5200-gpt";
138c6d4d657SGrant Likely			device_type = "gpt";
13905cbbc69SGrant Likely			cell-index = <7>;
140c6d4d657SGrant Likely			reg = <670 10>;
141c6d4d657SGrant Likely			interrupts = <1 10 0>;
1425c1992f8SKumar Gala			interrupt-parent = <&mpc5200_pic>;
143c6d4d657SGrant Likely		};
144c6d4d657SGrant Likely
145c6d4d657SGrant Likely		rtc@800 {	// Real time clock
14605cbbc69SGrant Likely			compatible = "mpc5200-rtc";
147c6d4d657SGrant Likely			device_type = "rtc";
148c6d4d657SGrant Likely			reg = <800 100>;
149c6d4d657SGrant Likely			interrupts = <1 5 0 1 6 0>;
1505c1992f8SKumar Gala			interrupt-parent = <&mpc5200_pic>;
151c6d4d657SGrant Likely		};
152c6d4d657SGrant Likely
153c6d4d657SGrant Likely		mscan@900 {
154c6d4d657SGrant Likely			device_type = "mscan";
15505cbbc69SGrant Likely			compatible = "mpc5200-mscan";
15605cbbc69SGrant Likely			cell-index = <0>;
157c6d4d657SGrant Likely			interrupts = <2 11 0>;
1585c1992f8SKumar Gala			interrupt-parent = <&mpc5200_pic>;
159c6d4d657SGrant Likely			reg = <900 80>;
160c6d4d657SGrant Likely		};
161c6d4d657SGrant Likely
162c6d4d657SGrant Likely		mscan@980 {
163c6d4d657SGrant Likely			device_type = "mscan";
16405cbbc69SGrant Likely			compatible = "mpc5200-mscan";
16505cbbc69SGrant Likely			cell-index = <1>;
1660d0f4bc7SDomen Puncer			interrupts = <2 12 0>;
1675c1992f8SKumar Gala			interrupt-parent = <&mpc5200_pic>;
168c6d4d657SGrant Likely			reg = <980 80>;
169c6d4d657SGrant Likely		};
170c6d4d657SGrant Likely
171c6d4d657SGrant Likely		gpio@b00 {
17205cbbc69SGrant Likely			compatible = "mpc5200-gpio";
173c6d4d657SGrant Likely			reg = <b00 40>;
174c6d4d657SGrant Likely			interrupts = <1 7 0>;
1755c1992f8SKumar Gala			interrupt-parent = <&mpc5200_pic>;
176c6d4d657SGrant Likely		};
177c6d4d657SGrant Likely
1780d0f4bc7SDomen Puncer		gpio-wkup@c00 {
17905cbbc69SGrant Likely			compatible = "mpc5200-gpio-wkup";
180c6d4d657SGrant Likely			reg = <c00 40>;
181c6d4d657SGrant Likely			interrupts = <1 8 0 0 3 0>;
1825c1992f8SKumar Gala			interrupt-parent = <&mpc5200_pic>;
183c6d4d657SGrant Likely		};
184c6d4d657SGrant Likely
185c6d4d657SGrant Likely		spi@f00 {
186c6d4d657SGrant Likely			device_type = "spi";
18705cbbc69SGrant Likely			compatible = "mpc5200-spi";
188c6d4d657SGrant Likely			reg = <f00 20>;
189c6d4d657SGrant Likely			interrupts = <2 d 0 2 e 0>;
1905c1992f8SKumar Gala			interrupt-parent = <&mpc5200_pic>;
191c6d4d657SGrant Likely		};
192c6d4d657SGrant Likely
193c6d4d657SGrant Likely		usb@1000 {
194c6d4d657SGrant Likely			device_type = "usb-ohci-be";
19505cbbc69SGrant Likely			compatible = "mpc5200-ohci\0ohci-be";
196c6d4d657SGrant Likely			reg = <1000 ff>;
197c6d4d657SGrant Likely			interrupts = <2 6 0>;
1985c1992f8SKumar Gala			interrupt-parent = <&mpc5200_pic>;
199c6d4d657SGrant Likely		};
200c6d4d657SGrant Likely
201c6d4d657SGrant Likely		bestcomm@1200 {
202c6d4d657SGrant Likely			device_type = "dma-controller";
20305cbbc69SGrant Likely			compatible = "mpc5200-bestcomm";
204c6d4d657SGrant Likely			reg = <1200 80>;
205c6d4d657SGrant Likely			interrupts = <3 0 0  3 1 0  3 2 0  3 3 0
206c6d4d657SGrant Likely			              3 4 0  3 5 0  3 6 0  3 7 0
207c6d4d657SGrant Likely			              3 8 0  3 9 0  3 a 0  3 b 0
208c6d4d657SGrant Likely			              3 c 0  3 d 0  3 e 0  3 f 0>;
2095c1992f8SKumar Gala			interrupt-parent = <&mpc5200_pic>;
210c6d4d657SGrant Likely		};
211c6d4d657SGrant Likely
212c6d4d657SGrant Likely		xlb@1f00 {
21305cbbc69SGrant Likely			compatible = "mpc5200-xlb";
214c6d4d657SGrant Likely			reg = <1f00 100>;
215c6d4d657SGrant Likely		};
216c6d4d657SGrant Likely
217c6d4d657SGrant Likely		serial@2000 {		// PSC1
218c6d4d657SGrant Likely			device_type = "serial";
21905cbbc69SGrant Likely			compatible = "mpc5200-psc-uart";
220c6d4d657SGrant Likely			port-number = <0>;  // Logical port assignment
22105cbbc69SGrant Likely			cell-index = <0>;
222c6d4d657SGrant Likely			reg = <2000 100>;
223c6d4d657SGrant Likely			interrupts = <2 1 0>;
2245c1992f8SKumar Gala			interrupt-parent = <&mpc5200_pic>;
225c6d4d657SGrant Likely		};
226c6d4d657SGrant Likely
22705cbbc69SGrant Likely		// PSC2 in ac97 mode example
22805cbbc69SGrant Likely		//ac97@2200 {		// PSC2
22905cbbc69SGrant Likely		//	device_type = "sound";
23005cbbc69SGrant Likely		//	compatible = "mpc5200-psc-ac97";
23105cbbc69SGrant Likely		//	cell-index = <1>;
23205cbbc69SGrant Likely		//	reg = <2200 100>;
23305cbbc69SGrant Likely		//	interrupts = <2 2 0>;
2345c1992f8SKumar Gala		//	interrupt-parent = <&mpc5200_pic>;
23505cbbc69SGrant Likely		//};
236c6d4d657SGrant Likely
237c6d4d657SGrant Likely		// PSC3 in CODEC mode example
23805cbbc69SGrant Likely		//i2s@2400 {		// PSC3
23905cbbc69SGrant Likely		//	device_type = "sound";
24005cbbc69SGrant Likely		//	compatible = "mpc5200-psc-i2s";
24105cbbc69SGrant Likely		//	cell-index = <2>;
24205cbbc69SGrant Likely		//	reg = <2400 100>;
24305cbbc69SGrant Likely		//	interrupts = <2 3 0>;
2445c1992f8SKumar Gala		//	interrupt-parent = <&mpc5200_pic>;
24505cbbc69SGrant Likely		//};
246c6d4d657SGrant Likely
24705cbbc69SGrant Likely		// PSC4 in uart mode example
248c6d4d657SGrant Likely		//serial@2600 {		// PSC4
249c6d4d657SGrant Likely		//	device_type = "serial";
25005cbbc69SGrant Likely		//	compatible = "mpc5200-psc-uart";
25105cbbc69SGrant Likely		//	cell-index = <3>;
252c6d4d657SGrant Likely		//	reg = <2600 100>;
253c6d4d657SGrant Likely		//	interrupts = <2 b 0>;
2545c1992f8SKumar Gala		//	interrupt-parent = <&mpc5200_pic>;
255c6d4d657SGrant Likely		//};
256c6d4d657SGrant Likely
25705cbbc69SGrant Likely		// PSC5 in uart mode example
258c6d4d657SGrant Likely		//serial@2800 {		// PSC5
259c6d4d657SGrant Likely		//	device_type = "serial";
26005cbbc69SGrant Likely		//	compatible = "mpc5200-psc-uart";
26105cbbc69SGrant Likely		//	cell-index = <4>;
262c6d4d657SGrant Likely		//	reg = <2800 100>;
263c6d4d657SGrant Likely		//	interrupts = <2 c 0>;
2645c1992f8SKumar Gala		//	interrupt-parent = <&mpc5200_pic>;
265c6d4d657SGrant Likely		//};
266c6d4d657SGrant Likely
26705cbbc69SGrant Likely		// PSC6 in spi mode example
26805cbbc69SGrant Likely		//spi@2c00 {		// PSC6
26905cbbc69SGrant Likely		//	device_type = "spi";
27005cbbc69SGrant Likely		//	compatible = "mpc5200-psc-spi";
27105cbbc69SGrant Likely		//	cell-index = <5>;
27205cbbc69SGrant Likely		//	reg = <2c00 100>;
27305cbbc69SGrant Likely		//	interrupts = <2 4 0>;
2745c1992f8SKumar Gala		//	interrupt-parent = <&mpc5200_pic>;
27505cbbc69SGrant Likely		//};
276c6d4d657SGrant Likely
277c6d4d657SGrant Likely		ethernet@3000 {
278c6d4d657SGrant Likely			device_type = "network";
27905cbbc69SGrant Likely			compatible = "mpc5200-fec";
280c6d4d657SGrant Likely			reg = <3000 800>;
281c6d4d657SGrant Likely			mac-address = [ 02 03 04 05 06 07 ]; // Bad!
282c6d4d657SGrant Likely			interrupts = <2 5 0>;
2835c1992f8SKumar Gala			interrupt-parent = <&mpc5200_pic>;
284c6d4d657SGrant Likely		};
285c6d4d657SGrant Likely
286c6d4d657SGrant Likely		ata@3a00 {
287c6d4d657SGrant Likely			device_type = "ata";
28805cbbc69SGrant Likely			compatible = "mpc5200-ata";
289c6d4d657SGrant Likely			reg = <3a00 100>;
290c6d4d657SGrant Likely			interrupts = <2 7 0>;
2915c1992f8SKumar Gala			interrupt-parent = <&mpc5200_pic>;
292c6d4d657SGrant Likely		};
293c6d4d657SGrant Likely
294c6d4d657SGrant Likely		i2c@3d00 {
295c6d4d657SGrant Likely			device_type = "i2c";
2965cae84c9SDomen Puncer			compatible = "mpc5200-i2c\0fsl-i2c";
29705cbbc69SGrant Likely			cell-index = <0>;
298c6d4d657SGrant Likely			reg = <3d00 40>;
299c6d4d657SGrant Likely			interrupts = <2 f 0>;
3005c1992f8SKumar Gala			interrupt-parent = <&mpc5200_pic>;
3015cae84c9SDomen Puncer			fsl5200-clocking;
302c6d4d657SGrant Likely		};
303c6d4d657SGrant Likely
304c6d4d657SGrant Likely		i2c@3d40 {
305c6d4d657SGrant Likely			device_type = "i2c";
3065cae84c9SDomen Puncer			compatible = "mpc5200-i2c\0fsl-i2c";
30705cbbc69SGrant Likely			cell-index = <1>;
308c6d4d657SGrant Likely			reg = <3d40 40>;
309c6d4d657SGrant Likely			interrupts = <2 10 0>;
3105c1992f8SKumar Gala			interrupt-parent = <&mpc5200_pic>;
3115cae84c9SDomen Puncer			fsl5200-clocking;
312c6d4d657SGrant Likely		};
313c6d4d657SGrant Likely		sram@8000 {
314c6d4d657SGrant Likely			device_type = "sram";
31505cbbc69SGrant Likely			compatible = "mpc5200-sram\0sram";
316c6d4d657SGrant Likely			reg = <8000 4000>;
317c6d4d657SGrant Likely		};
318c6d4d657SGrant Likely	};
3191b3c5cdaSKumar Gala
3201b3c5cdaSKumar Gala	pci@f0000d00 {
3211b3c5cdaSKumar Gala		#interrupt-cells = <1>;
3221b3c5cdaSKumar Gala		#size-cells = <2>;
3231b3c5cdaSKumar Gala		#address-cells = <3>;
3241b3c5cdaSKumar Gala		device_type = "pci";
3251b3c5cdaSKumar Gala		compatible = "mpc5200-pci";
3261b3c5cdaSKumar Gala		reg = <f0000d00 100>;
3271b3c5cdaSKumar Gala		interrupt-map-mask = <f800 0 0 7>;
3281b3c5cdaSKumar Gala		interrupt-map = <c000 0 0 1 &mpc5200_pic 0 0 3
3291b3c5cdaSKumar Gala				 c000 0 0 2 &mpc5200_pic 0 0 3
3301b3c5cdaSKumar Gala				 c000 0 0 3 &mpc5200_pic 0 0 3
3311b3c5cdaSKumar Gala				 c000 0 0 4 &mpc5200_pic 0 0 3>;
3321b3c5cdaSKumar Gala		clock-frequency = <0>; // From boot loader
3331b3c5cdaSKumar Gala		interrupts = <2 8 0 2 9 0 2 a 0>;
3341b3c5cdaSKumar Gala		interrupt-parent = <&mpc5200_pic>;
3351b3c5cdaSKumar Gala		bus-range = <0 0>;
3361b3c5cdaSKumar Gala		ranges = <42000000 0 80000000 80000000 0 20000000
3371b3c5cdaSKumar Gala			  02000000 0 a0000000 a0000000 0 10000000
3381b3c5cdaSKumar Gala			  01000000 0 00000000 b0000000 0 01000000>;
3391b3c5cdaSKumar Gala	};
340c6d4d657SGrant Likely};
341