18bd3b709SMarian Balakowicz/*
28bd3b709SMarian Balakowicz * CM5200 board Device Tree Source
38bd3b709SMarian Balakowicz *
48bd3b709SMarian Balakowicz * Copyright (C) 2007 Semihalf
58bd3b709SMarian Balakowicz * Marian Balakowicz <m8@semihalf.com>
68bd3b709SMarian Balakowicz *
78bd3b709SMarian Balakowicz * This program is free software; you can redistribute  it and/or modify it
88bd3b709SMarian Balakowicz * under  the terms of  the GNU General  Public License as published by the
98bd3b709SMarian Balakowicz * Free Software Foundation;  either version 2 of the  License, or (at your
108bd3b709SMarian Balakowicz * option) any later version.
118bd3b709SMarian Balakowicz */
128bd3b709SMarian Balakowicz
138bd3b709SMarian Balakowicz/*
148bd3b709SMarian Balakowicz * WARNING: Do not depend on this tree layout remaining static just yet.
158bd3b709SMarian Balakowicz * The MPC5200 device tree conventions are still in flux
168bd3b709SMarian Balakowicz * Keep an eye on the linuxppc-dev mailing list for more details
178bd3b709SMarian Balakowicz */
188bd3b709SMarian Balakowicz
198bd3b709SMarian Balakowicz/ {
208bd3b709SMarian Balakowicz	model = "schindler,cm5200";
218bd3b709SMarian Balakowicz	compatible = "schindler,cm5200";
228bd3b709SMarian Balakowicz	#address-cells = <1>;
238bd3b709SMarian Balakowicz	#size-cells = <1>;
248bd3b709SMarian Balakowicz
258bd3b709SMarian Balakowicz	cpus {
268bd3b709SMarian Balakowicz		#address-cells = <1>;
278bd3b709SMarian Balakowicz		#size-cells = <0>;
288bd3b709SMarian Balakowicz
298bd3b709SMarian Balakowicz		PowerPC,5200@0 {
308bd3b709SMarian Balakowicz			device_type = "cpu";
318bd3b709SMarian Balakowicz			reg = <0>;
328bd3b709SMarian Balakowicz			d-cache-line-size = <20>;
338bd3b709SMarian Balakowicz			i-cache-line-size = <20>;
348bd3b709SMarian Balakowicz			d-cache-size = <4000>;		// L1, 16K
358bd3b709SMarian Balakowicz			i-cache-size = <4000>;		// L1, 16K
368bd3b709SMarian Balakowicz			timebase-frequency = <0>;	// from bootloader
378bd3b709SMarian Balakowicz			bus-frequency = <0>;		// from bootloader
388bd3b709SMarian Balakowicz			clock-frequency = <0>;		// from bootloader
398bd3b709SMarian Balakowicz		};
408bd3b709SMarian Balakowicz	};
418bd3b709SMarian Balakowicz
428bd3b709SMarian Balakowicz	memory {
438bd3b709SMarian Balakowicz		device_type = "memory";
448bd3b709SMarian Balakowicz		reg = <00000000 04000000>;	// 64MB
458bd3b709SMarian Balakowicz	};
468bd3b709SMarian Balakowicz
478bd3b709SMarian Balakowicz	soc5200@f0000000 {
4858a5be39SPaul Gortmaker		#address-cells = <1>;
4958a5be39SPaul Gortmaker		#size-cells = <1>;
5024ce6bc4SGrant Likely		compatible = "fsl,mpc5200b-immr";
518bd3b709SMarian Balakowicz		ranges = <0 f0000000 0000c000>;
528bd3b709SMarian Balakowicz		reg = <f0000000 00000100>;
538bd3b709SMarian Balakowicz		bus-frequency = <0>;		// from bootloader
548bd3b709SMarian Balakowicz		system-frequency = <0>;		// from bootloader
558bd3b709SMarian Balakowicz
568bd3b709SMarian Balakowicz		cdm@200 {
5724ce6bc4SGrant Likely			compatible = "fsl,mpc5200b-cdm","fsl,mpc5200-cdm";
588bd3b709SMarian Balakowicz			reg = <200 38>;
598bd3b709SMarian Balakowicz		};
608bd3b709SMarian Balakowicz
618bd3b709SMarian Balakowicz		mpc5200_pic: pic@500 {
628bd3b709SMarian Balakowicz			// 5200 interrupts are encoded into two levels;
638bd3b709SMarian Balakowicz			interrupt-controller;
648bd3b709SMarian Balakowicz			#interrupt-cells = <3>;
6524ce6bc4SGrant Likely			compatible = "fsl,mpc5200b-pic","fsl,mpc5200-pic";
668bd3b709SMarian Balakowicz			reg = <500 80>;
678bd3b709SMarian Balakowicz		};
688bd3b709SMarian Balakowicz
6924ce6bc4SGrant Likely		timer@600 {	// General Purpose Timer
708bd3b709SMarian Balakowicz			compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt";
718bd3b709SMarian Balakowicz			reg = <600 10>;
728bd3b709SMarian Balakowicz			interrupts = <1 9 0>;
738bd3b709SMarian Balakowicz			interrupt-parent = <&mpc5200_pic>;
748bd3b709SMarian Balakowicz			fsl,has-wdt;
758bd3b709SMarian Balakowicz		};
768bd3b709SMarian Balakowicz
7724ce6bc4SGrant Likely		timer@610 {	// General Purpose Timer
788bd3b709SMarian Balakowicz			compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt";
798bd3b709SMarian Balakowicz			reg = <610 10>;
808bd3b709SMarian Balakowicz			interrupts = <1 a 0>;
818bd3b709SMarian Balakowicz			interrupt-parent = <&mpc5200_pic>;
828bd3b709SMarian Balakowicz		};
838bd3b709SMarian Balakowicz
8424ce6bc4SGrant Likely		timer@620 {	// General Purpose Timer
858bd3b709SMarian Balakowicz			compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt";
868bd3b709SMarian Balakowicz			reg = <620 10>;
878bd3b709SMarian Balakowicz			interrupts = <1 b 0>;
888bd3b709SMarian Balakowicz			interrupt-parent = <&mpc5200_pic>;
898bd3b709SMarian Balakowicz		};
908bd3b709SMarian Balakowicz
9124ce6bc4SGrant Likely		timer@630 {	// General Purpose Timer
928bd3b709SMarian Balakowicz			compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt";
938bd3b709SMarian Balakowicz			reg = <630 10>;
948bd3b709SMarian Balakowicz			interrupts = <1 c 0>;
958bd3b709SMarian Balakowicz			interrupt-parent = <&mpc5200_pic>;
968bd3b709SMarian Balakowicz		};
978bd3b709SMarian Balakowicz
9824ce6bc4SGrant Likely		timer@640 {	// General Purpose Timer
998bd3b709SMarian Balakowicz			compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt";
1008bd3b709SMarian Balakowicz			reg = <640 10>;
1018bd3b709SMarian Balakowicz			interrupts = <1 d 0>;
1028bd3b709SMarian Balakowicz			interrupt-parent = <&mpc5200_pic>;
1038bd3b709SMarian Balakowicz		};
1048bd3b709SMarian Balakowicz
10524ce6bc4SGrant Likely		timer@650 {	// General Purpose Timer
1068bd3b709SMarian Balakowicz			compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt";
1078bd3b709SMarian Balakowicz			reg = <650 10>;
1088bd3b709SMarian Balakowicz			interrupts = <1 e 0>;
1098bd3b709SMarian Balakowicz			interrupt-parent = <&mpc5200_pic>;
1108bd3b709SMarian Balakowicz		};
1118bd3b709SMarian Balakowicz
11224ce6bc4SGrant Likely		timer@660 {	// General Purpose Timer
1138bd3b709SMarian Balakowicz			compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt";
1148bd3b709SMarian Balakowicz			reg = <660 10>;
1158bd3b709SMarian Balakowicz			interrupts = <1 f 0>;
1168bd3b709SMarian Balakowicz			interrupt-parent = <&mpc5200_pic>;
1178bd3b709SMarian Balakowicz		};
1188bd3b709SMarian Balakowicz
11924ce6bc4SGrant Likely		timer@670 {	// General Purpose Timer
1208bd3b709SMarian Balakowicz			compatible = "fsl,mpc5200b-gpt","fsl,mpc5200-gpt";
1218bd3b709SMarian Balakowicz			reg = <670 10>;
1228bd3b709SMarian Balakowicz			interrupts = <1 10 0>;
1238bd3b709SMarian Balakowicz			interrupt-parent = <&mpc5200_pic>;
1248bd3b709SMarian Balakowicz		};
1258bd3b709SMarian Balakowicz
1268bd3b709SMarian Balakowicz		rtc@800 {	// Real time clock
12724ce6bc4SGrant Likely			compatible = "fsl,mpc5200b-rtc","fsl,mpc5200-rtc";
1288bd3b709SMarian Balakowicz			reg = <800 100>;
1298bd3b709SMarian Balakowicz			interrupts = <1 5 0 1 6 0>;
1308bd3b709SMarian Balakowicz			interrupt-parent = <&mpc5200_pic>;
1318bd3b709SMarian Balakowicz		};
1328bd3b709SMarian Balakowicz
1338bd3b709SMarian Balakowicz		gpio@b00 {
13424ce6bc4SGrant Likely			compatible = "fsl,mpc5200b-gpio","fsl,mpc5200-gpio";
1358bd3b709SMarian Balakowicz			reg = <b00 40>;
1368bd3b709SMarian Balakowicz			interrupts = <1 7 0>;
1378bd3b709SMarian Balakowicz			interrupt-parent = <&mpc5200_pic>;
1388bd3b709SMarian Balakowicz		};
1398bd3b709SMarian Balakowicz
14024ce6bc4SGrant Likely		gpio@c00 {
14124ce6bc4SGrant Likely			compatible = "fsl,mpc5200b-gpio-wkup","fsl,mpc5200-gpio-wkup";
1428bd3b709SMarian Balakowicz			reg = <c00 40>;
1438bd3b709SMarian Balakowicz			interrupts = <1 8 0 0 3 0>;
1448bd3b709SMarian Balakowicz			interrupt-parent = <&mpc5200_pic>;
1458bd3b709SMarian Balakowicz		};
1468bd3b709SMarian Balakowicz
1478bd3b709SMarian Balakowicz		spi@f00 {
14824ce6bc4SGrant Likely			compatible = "fsl,mpc5200b-spi","fsl,mpc5200-spi";
1498bd3b709SMarian Balakowicz			reg = <f00 20>;
1508bd3b709SMarian Balakowicz			interrupts = <2 d 0 2 e 0>;
1518bd3b709SMarian Balakowicz			interrupt-parent = <&mpc5200_pic>;
1528bd3b709SMarian Balakowicz		};
1538bd3b709SMarian Balakowicz
1548bd3b709SMarian Balakowicz		usb@1000 {
15524ce6bc4SGrant Likely			compatible = "fsl,mpc5200b-ohci","fsl,mpc5200-ohci","ohci-be";
1568bd3b709SMarian Balakowicz			reg = <1000 ff>;
1578bd3b709SMarian Balakowicz			interrupts = <2 6 0>;
1588bd3b709SMarian Balakowicz			interrupt-parent = <&mpc5200_pic>;
1598bd3b709SMarian Balakowicz		};
1608bd3b709SMarian Balakowicz
1618bd3b709SMarian Balakowicz		dma-controller@1200 {
16224ce6bc4SGrant Likely			compatible = "fsl,mpc5200b-bestcomm","fsl,mpc5200-bestcomm";
1638bd3b709SMarian Balakowicz			reg = <1200 80>;
1648bd3b709SMarian Balakowicz			interrupts = <3 0 0  3 1 0  3 2 0  3 3 0
1658bd3b709SMarian Balakowicz			              3 4 0  3 5 0  3 6 0  3 7 0
1668bd3b709SMarian Balakowicz			              3 8 0  3 9 0  3 a 0  3 b 0
1678bd3b709SMarian Balakowicz			              3 c 0  3 d 0  3 e 0  3 f 0>;
1688bd3b709SMarian Balakowicz			interrupt-parent = <&mpc5200_pic>;
1698bd3b709SMarian Balakowicz		};
1708bd3b709SMarian Balakowicz
1718bd3b709SMarian Balakowicz		xlb@1f00 {
17224ce6bc4SGrant Likely			compatible = "fsl,mpc5200b-xlb","fsl,mpc5200-xlb";
1738bd3b709SMarian Balakowicz			reg = <1f00 100>;
1748bd3b709SMarian Balakowicz		};
1758bd3b709SMarian Balakowicz
1768bd3b709SMarian Balakowicz		serial@2000 {		// PSC1
1778bd3b709SMarian Balakowicz			device_type = "serial";
17824ce6bc4SGrant Likely			compatible = "fsl,mpc5200b-psc-uart","fsl,mpc5200-psc-uart";
1798bd3b709SMarian Balakowicz			port-number = <0>;  // Logical port assignment
1808bd3b709SMarian Balakowicz			reg = <2000 100>;
1818bd3b709SMarian Balakowicz			interrupts = <2 1 0>;
1828bd3b709SMarian Balakowicz			interrupt-parent = <&mpc5200_pic>;
1838bd3b709SMarian Balakowicz		};
1848bd3b709SMarian Balakowicz
1858bd3b709SMarian Balakowicz		serial@2200 {		// PSC2
1868bd3b709SMarian Balakowicz			device_type = "serial";
18724ce6bc4SGrant Likely			compatible = "fsl,mpc5200-psc-uart";
1888bd3b709SMarian Balakowicz			port-number = <1>;  // Logical port assignment
1898bd3b709SMarian Balakowicz			reg = <2200 100>;
1908bd3b709SMarian Balakowicz			interrupts = <2 2 0>;
1918bd3b709SMarian Balakowicz			interrupt-parent = <&mpc5200_pic>;
1928bd3b709SMarian Balakowicz		};
1938bd3b709SMarian Balakowicz
1948bd3b709SMarian Balakowicz		serial@2400 {		// PSC3
1958bd3b709SMarian Balakowicz			device_type = "serial";
19624ce6bc4SGrant Likely			compatible = "fsl,mpc5200-psc-uart";
1978bd3b709SMarian Balakowicz			port-number = <2>;  // Logical port assignment
1988bd3b709SMarian Balakowicz			reg = <2400 100>;
1998bd3b709SMarian Balakowicz			interrupts = <2 3 0>;
2008bd3b709SMarian Balakowicz			interrupt-parent = <&mpc5200_pic>;
2018bd3b709SMarian Balakowicz		};
2028bd3b709SMarian Balakowicz
2038bd3b709SMarian Balakowicz		serial@2c00 {		// PSC6
2048bd3b709SMarian Balakowicz			device_type = "serial";
20524ce6bc4SGrant Likely			compatible = "fsl,mpc5200b-psc-uart","fsl,mpc5200-psc-uart";
2068bd3b709SMarian Balakowicz			port-number = <5>;  // Logical port assignment
2078bd3b709SMarian Balakowicz			reg = <2c00 100>;
2088bd3b709SMarian Balakowicz			interrupts = <2 4 0>;
2098bd3b709SMarian Balakowicz			interrupt-parent = <&mpc5200_pic>;
2108bd3b709SMarian Balakowicz		};
2118bd3b709SMarian Balakowicz
2128bd3b709SMarian Balakowicz		ethernet@3000 {
2138bd3b709SMarian Balakowicz			device_type = "network";
21424ce6bc4SGrant Likely			compatible = "fsl,mpc5200b-fec","fsl,mpc5200-fec";
215115e1adcSBartlomiej Sieka			reg = <3000 400>;
21624ce6bc4SGrant Likely			local-mac-address = [ 00 00 00 00 00 00 ];
2178bd3b709SMarian Balakowicz			interrupts = <2 5 0>;
2188bd3b709SMarian Balakowicz			interrupt-parent = <&mpc5200_pic>;
219115e1adcSBartlomiej Sieka			phy-handle = <&phy0>;
220115e1adcSBartlomiej Sieka		};
221115e1adcSBartlomiej Sieka
222115e1adcSBartlomiej Sieka		mdio@3000 {
223115e1adcSBartlomiej Sieka			#address-cells = <1>;
224115e1adcSBartlomiej Sieka			#size-cells = <0>;
225115e1adcSBartlomiej Sieka			compatible = "fsl,mpc5200b-mdio","fsl,mpc5200-mdio";
226115e1adcSBartlomiej Sieka			reg = <3000 400>;       // fec range, since we need to setup fec interrupts
227115e1adcSBartlomiej Sieka			interrupts = <2 5 0>;   // these are for "mii command finished", not link changes & co.
228115e1adcSBartlomiej Sieka			interrupt-parent = <&mpc5200_pic>;
229115e1adcSBartlomiej Sieka
230115e1adcSBartlomiej Sieka			phy0: ethernet-phy@0 {
231115e1adcSBartlomiej Sieka				device_type = "ethernet-phy";
232115e1adcSBartlomiej Sieka				reg = <0>;
233115e1adcSBartlomiej Sieka			};
2348bd3b709SMarian Balakowicz		};
2358bd3b709SMarian Balakowicz
2368bd3b709SMarian Balakowicz		i2c@3d40 {
237115e1adcSBartlomiej Sieka			#address-cells = <1>;
238115e1adcSBartlomiej Sieka			#size-cells = <0>;
23924ce6bc4SGrant Likely			compatible = "fsl,mpc5200b-i2c","fsl,mpc5200-i2c","fsl-i2c";
2408bd3b709SMarian Balakowicz			reg = <3d40 40>;
2418bd3b709SMarian Balakowicz			interrupts = <2 10 0>;
2428bd3b709SMarian Balakowicz			interrupt-parent = <&mpc5200_pic>;
2438bd3b709SMarian Balakowicz			fsl5200-clocking;
2448bd3b709SMarian Balakowicz		};
2458bd3b709SMarian Balakowicz
2468bd3b709SMarian Balakowicz		sram@8000 {
24724ce6bc4SGrant Likely			compatible = "fsl,mpc5200b-sram","fsl,mpc5200-sram";
2488bd3b709SMarian Balakowicz			reg = <8000 4000>;
2498bd3b709SMarian Balakowicz		};
2508bd3b709SMarian Balakowicz	};
251115e1adcSBartlomiej Sieka
252115e1adcSBartlomiej Sieka	lpb {
253115e1adcSBartlomiej Sieka		model = "fsl,lpb";
254115e1adcSBartlomiej Sieka		compatible = "fsl,lpb";
255115e1adcSBartlomiej Sieka		#address-cells = <2>;
256115e1adcSBartlomiej Sieka		#size-cells = <1>;
257115e1adcSBartlomiej Sieka		ranges = <0 0 fc000000 2000000>;
258115e1adcSBartlomiej Sieka
259115e1adcSBartlomiej Sieka		// 16-bit flash device at LocalPlus Bus CS0
260115e1adcSBartlomiej Sieka		flash@0,0 {
261115e1adcSBartlomiej Sieka			compatible = "cfi-flash";
262115e1adcSBartlomiej Sieka			reg = <0 0 2000000>;
263115e1adcSBartlomiej Sieka			bank-width = <2>;
264115e1adcSBartlomiej Sieka			device-width = <2>;
265115e1adcSBartlomiej Sieka			#size-cells = <1>;
266115e1adcSBartlomiej Sieka			#address-cells = <1>;
267115e1adcSBartlomiej Sieka		};
268115e1adcSBartlomiej Sieka	};
2698bd3b709SMarian Balakowicz};
270