13910cd8cSValentine Barshak/*
23910cd8cSValentine Barshak * Device Tree Source for AMCC Rainier
33910cd8cSValentine Barshak *
43910cd8cSValentine Barshak * Based on Sequoia code
53910cd8cSValentine Barshak * Copyright (c) 2007 MontaVista Software, Inc.
63910cd8cSValentine Barshak *
73910cd8cSValentine Barshak * FIXME: Draft only!
83910cd8cSValentine Barshak *
93910cd8cSValentine Barshak * This file is licensed under the terms of the GNU General Public
103910cd8cSValentine Barshak * License version 2.  This program is licensed "as is" without
113910cd8cSValentine Barshak * any warranty of any kind, whether express or implied.
123910cd8cSValentine Barshak *
133910cd8cSValentine Barshak */
143910cd8cSValentine Barshak
1571f34979SDavid Gibson/dts-v1/;
1671f34979SDavid Gibson
173910cd8cSValentine Barshak/ {
183910cd8cSValentine Barshak	#address-cells = <2>;
193910cd8cSValentine Barshak	#size-cells = <1>;
203910cd8cSValentine Barshak	model = "amcc,rainier";
213910cd8cSValentine Barshak	compatible = "amcc,rainier";
2271f34979SDavid Gibson	dcr-parent = <&{/cpus/cpu@0}>;
233910cd8cSValentine Barshak
248aaed98cSStefan Roese	aliases {
258aaed98cSStefan Roese		ethernet0 = &EMAC0;
268aaed98cSStefan Roese		ethernet1 = &EMAC1;
278aaed98cSStefan Roese		serial0 = &UART0;
288aaed98cSStefan Roese		serial1 = &UART1;
298aaed98cSStefan Roese		serial2 = &UART2;
308aaed98cSStefan Roese		serial3 = &UART3;
318aaed98cSStefan Roese	};
328aaed98cSStefan Roese
333910cd8cSValentine Barshak	cpus {
343910cd8cSValentine Barshak		#address-cells = <1>;
353910cd8cSValentine Barshak		#size-cells = <0>;
363910cd8cSValentine Barshak
3772fda114SJosh Boyer		cpu@0 {
383910cd8cSValentine Barshak			device_type = "cpu";
3972fda114SJosh Boyer			model = "PowerPC,440GRx";
4071f34979SDavid Gibson			reg = <0x00000000>;
413910cd8cSValentine Barshak			clock-frequency = <0>; /* Filled in by zImage */
423910cd8cSValentine Barshak			timebase-frequency = <0>; /* Filled in by zImage */
4371f34979SDavid Gibson			i-cache-line-size = <32>;
4471f34979SDavid Gibson			d-cache-line-size = <32>;
4571f34979SDavid Gibson			i-cache-size = <32768>;
4671f34979SDavid Gibson			d-cache-size = <32768>;
473910cd8cSValentine Barshak			dcr-controller;
483910cd8cSValentine Barshak			dcr-access-method = "native";
493910cd8cSValentine Barshak		};
503910cd8cSValentine Barshak	};
513910cd8cSValentine Barshak
523910cd8cSValentine Barshak	memory {
533910cd8cSValentine Barshak		device_type = "memory";
5471f34979SDavid Gibson		reg = <0x00000000 0x00000000 0x00000000>; /* Filled in by zImage */
553910cd8cSValentine Barshak	};
563910cd8cSValentine Barshak
573910cd8cSValentine Barshak	UIC0: interrupt-controller0 {
583910cd8cSValentine Barshak		compatible = "ibm,uic-440grx","ibm,uic";
593910cd8cSValentine Barshak		interrupt-controller;
603910cd8cSValentine Barshak		cell-index = <0>;
6171f34979SDavid Gibson		dcr-reg = <0x0c0 0x009>;
623910cd8cSValentine Barshak		#address-cells = <0>;
633910cd8cSValentine Barshak		#size-cells = <0>;
643910cd8cSValentine Barshak		#interrupt-cells = <2>;
653910cd8cSValentine Barshak	};
663910cd8cSValentine Barshak
673910cd8cSValentine Barshak	UIC1: interrupt-controller1 {
683910cd8cSValentine Barshak		compatible = "ibm,uic-440grx","ibm,uic";
693910cd8cSValentine Barshak		interrupt-controller;
703910cd8cSValentine Barshak		cell-index = <1>;
7171f34979SDavid Gibson		dcr-reg = <0x0d0 0x009>;
723910cd8cSValentine Barshak		#address-cells = <0>;
733910cd8cSValentine Barshak		#size-cells = <0>;
743910cd8cSValentine Barshak		#interrupt-cells = <2>;
7571f34979SDavid Gibson		interrupts = <0x1e 0x4 0x1f 0x4>; /* cascade */
763910cd8cSValentine Barshak		interrupt-parent = <&UIC0>;
773910cd8cSValentine Barshak	};
783910cd8cSValentine Barshak
793910cd8cSValentine Barshak	UIC2: interrupt-controller2 {
803910cd8cSValentine Barshak		compatible = "ibm,uic-440grx","ibm,uic";
813910cd8cSValentine Barshak		interrupt-controller;
823910cd8cSValentine Barshak		cell-index = <2>;
8371f34979SDavid Gibson		dcr-reg = <0x0e0 0x009>;
843910cd8cSValentine Barshak		#address-cells = <0>;
853910cd8cSValentine Barshak		#size-cells = <0>;
863910cd8cSValentine Barshak		#interrupt-cells = <2>;
8771f34979SDavid Gibson		interrupts = <0x1c 0x4 0x1d 0x4>; /* cascade */
883910cd8cSValentine Barshak		interrupt-parent = <&UIC0>;
893910cd8cSValentine Barshak	};
903910cd8cSValentine Barshak
913910cd8cSValentine Barshak	SDR0: sdr {
923910cd8cSValentine Barshak		compatible = "ibm,sdr-440grx", "ibm,sdr-440ep";
9371f34979SDavid Gibson		dcr-reg = <0x00e 0x002>;
943910cd8cSValentine Barshak	};
953910cd8cSValentine Barshak
963910cd8cSValentine Barshak	CPR0: cpr {
973910cd8cSValentine Barshak		compatible = "ibm,cpr-440grx", "ibm,cpr-440ep";
9871f34979SDavid Gibson		dcr-reg = <0x00c 0x002>;
993910cd8cSValentine Barshak	};
1003910cd8cSValentine Barshak
1013910cd8cSValentine Barshak	plb {
1023910cd8cSValentine Barshak		compatible = "ibm,plb-440grx", "ibm,plb4";
1033910cd8cSValentine Barshak		#address-cells = <2>;
1043910cd8cSValentine Barshak		#size-cells = <1>;
1053910cd8cSValentine Barshak		ranges;
1063910cd8cSValentine Barshak		clock-frequency = <0>; /* Filled in by zImage */
1073910cd8cSValentine Barshak
1083910cd8cSValentine Barshak		SDRAM0: sdram {
1093910cd8cSValentine Barshak			compatible = "ibm,sdram-440grx", "ibm,sdram-44x-ddr2denali";
11071f34979SDavid Gibson			dcr-reg = <0x010 0x002>;
1113910cd8cSValentine Barshak		};
1123910cd8cSValentine Barshak
1133910cd8cSValentine Barshak		DMA0: dma {
1143910cd8cSValentine Barshak			compatible = "ibm,dma-440grx", "ibm,dma-4xx";
11571f34979SDavid Gibson			dcr-reg = <0x100 0x027>;
1163910cd8cSValentine Barshak		};
1173910cd8cSValentine Barshak
1183910cd8cSValentine Barshak		MAL0: mcmal {
1193910cd8cSValentine Barshak			compatible = "ibm,mcmal-440grx", "ibm,mcmal2";
12071f34979SDavid Gibson			dcr-reg = <0x180 0x062>;
1213910cd8cSValentine Barshak			num-tx-chans = <2>;
1223910cd8cSValentine Barshak			num-rx-chans = <2>;
1233910cd8cSValentine Barshak			interrupt-parent = <&MAL0>;
12471f34979SDavid Gibson			interrupts = <0x0 0x1 0x2 0x3 0x4>;
1253910cd8cSValentine Barshak			#interrupt-cells = <1>;
1263910cd8cSValentine Barshak			#address-cells = <0>;
1273910cd8cSValentine Barshak			#size-cells = <0>;
12871f34979SDavid Gibson			interrupt-map = </*TXEOB*/ 0x0 &UIC0 0xa 0x4
12971f34979SDavid Gibson					/*RXEOB*/ 0x1 &UIC0 0xb 0x4
13071f34979SDavid Gibson					/*SERR*/  0x2 &UIC1 0x0 0x4
13171f34979SDavid Gibson					/*TXDE*/  0x3 &UIC1 0x1 0x4
13271f34979SDavid Gibson					/*RXDE*/  0x4 &UIC1 0x2 0x4>;
13371f34979SDavid Gibson			interrupt-map-mask = <0xffffffff>;
1343910cd8cSValentine Barshak		};
1353910cd8cSValentine Barshak
1363910cd8cSValentine Barshak		POB0: opb {
1373910cd8cSValentine Barshak		  	compatible = "ibm,opb-440grx", "ibm,opb";
1383910cd8cSValentine Barshak			#address-cells = <1>;
1393910cd8cSValentine Barshak			#size-cells = <1>;
14071f34979SDavid Gibson		  	ranges = <0x00000000 0x00000001 0x00000000 0x80000000
14171f34979SDavid Gibson			          0x80000000 0x00000001 0x80000000 0x80000000>;
1423910cd8cSValentine Barshak		  	interrupt-parent = <&UIC1>;
14371f34979SDavid Gibson		  	interrupts = <0x7 0x4>;
1443910cd8cSValentine Barshak		  	clock-frequency = <0>; /* Filled in by zImage */
1453910cd8cSValentine Barshak
1463910cd8cSValentine Barshak			EBC0: ebc {
1473910cd8cSValentine Barshak				compatible = "ibm,ebc-440grx", "ibm,ebc";
14871f34979SDavid Gibson				dcr-reg = <0x012 0x002>;
1493910cd8cSValentine Barshak				#address-cells = <2>;
1503910cd8cSValentine Barshak				#size-cells = <1>;
1513910cd8cSValentine Barshak				clock-frequency = <0>; /* Filled in by zImage */
15271f34979SDavid Gibson				interrupts = <0x5 0x1>;
1533910cd8cSValentine Barshak				interrupt-parent = <&UIC1>;
1543910cd8cSValentine Barshak
1553910cd8cSValentine Barshak				nor_flash@0,0 {
1563910cd8cSValentine Barshak					compatible = "amd,s29gl256n", "cfi-flash";
1573910cd8cSValentine Barshak					bank-width = <2>;
15871f34979SDavid Gibson					reg = <0x00000000 0x00000000 0x04000000>;
1593910cd8cSValentine Barshak					#address-cells = <1>;
1603910cd8cSValentine Barshak					#size-cells = <1>;
1613910cd8cSValentine Barshak					partition@0 {
1623910cd8cSValentine Barshak						label = "Kernel";
16371f34979SDavid Gibson						reg = <0x00000000 0x00180000>;
1643910cd8cSValentine Barshak					};
1653910cd8cSValentine Barshak					partition@180000 {
1663910cd8cSValentine Barshak						label = "ramdisk";
16771f34979SDavid Gibson						reg = <0x00180000 0x00200000>;
1683910cd8cSValentine Barshak					};
1693910cd8cSValentine Barshak					partition@380000 {
1703910cd8cSValentine Barshak						label = "file system";
17171f34979SDavid Gibson						reg = <0x00380000 0x03aa0000>;
1723910cd8cSValentine Barshak					};
1733910cd8cSValentine Barshak					partition@3e20000 {
1743910cd8cSValentine Barshak						label = "kozio";
17571f34979SDavid Gibson						reg = <0x03e20000 0x00140000>;
1763910cd8cSValentine Barshak					};
1773910cd8cSValentine Barshak					partition@3f60000 {
1783910cd8cSValentine Barshak						label = "env";
17971f34979SDavid Gibson						reg = <0x03f60000 0x00040000>;
1803910cd8cSValentine Barshak					};
1813910cd8cSValentine Barshak					partition@3fa0000 {
1823910cd8cSValentine Barshak						label = "u-boot";
18371f34979SDavid Gibson						reg = <0x03fa0000 0x00060000>;
1843910cd8cSValentine Barshak					};
1853910cd8cSValentine Barshak				};
1863910cd8cSValentine Barshak
1873910cd8cSValentine Barshak			};
1883910cd8cSValentine Barshak
1893910cd8cSValentine Barshak			UART0: serial@ef600300 {
1903910cd8cSValentine Barshak		   		device_type = "serial";
1913910cd8cSValentine Barshak		   		compatible = "ns16550";
19271f34979SDavid Gibson		   		reg = <0xef600300 0x00000008>;
19371f34979SDavid Gibson		   		virtual-reg = <0xef600300>;
1943910cd8cSValentine Barshak		   		clock-frequency = <0>; /* Filled in by zImage */
19571f34979SDavid Gibson		   		current-speed = <115200>;
1963910cd8cSValentine Barshak		   		interrupt-parent = <&UIC0>;
19771f34979SDavid Gibson		   		interrupts = <0x0 0x4>;
1983910cd8cSValentine Barshak	   		};
1993910cd8cSValentine Barshak
2003910cd8cSValentine Barshak			UART1: serial@ef600400 {
2013910cd8cSValentine Barshak		   		device_type = "serial";
2023910cd8cSValentine Barshak		   		compatible = "ns16550";
20371f34979SDavid Gibson		   		reg = <0xef600400 0x00000008>;
20471f34979SDavid Gibson		   		virtual-reg = <0xef600400>;
2053910cd8cSValentine Barshak		   		clock-frequency = <0>;
2063910cd8cSValentine Barshak		   		current-speed = <0>;
2073910cd8cSValentine Barshak		   		interrupt-parent = <&UIC0>;
20871f34979SDavid Gibson		   		interrupts = <0x1 0x4>;
2093910cd8cSValentine Barshak	   		};
2103910cd8cSValentine Barshak
2113910cd8cSValentine Barshak			UART2: serial@ef600500 {
2123910cd8cSValentine Barshak		   		device_type = "serial";
2133910cd8cSValentine Barshak		   		compatible = "ns16550";
21471f34979SDavid Gibson		   		reg = <0xef600500 0x00000008>;
21571f34979SDavid Gibson		   		virtual-reg = <0xef600500>;
2163910cd8cSValentine Barshak		   		clock-frequency = <0>;
2173910cd8cSValentine Barshak		   		current-speed = <0>;
2183910cd8cSValentine Barshak		   		interrupt-parent = <&UIC1>;
21971f34979SDavid Gibson		   		interrupts = <0x3 0x4>;
2203910cd8cSValentine Barshak	   		};
2213910cd8cSValentine Barshak
2223910cd8cSValentine Barshak			UART3: serial@ef600600 {
2233910cd8cSValentine Barshak		   		device_type = "serial";
2243910cd8cSValentine Barshak		   		compatible = "ns16550";
22571f34979SDavid Gibson		   		reg = <0xef600600 0x00000008>;
22671f34979SDavid Gibson		   		virtual-reg = <0xef600600>;
2273910cd8cSValentine Barshak		   		clock-frequency = <0>;
2283910cd8cSValentine Barshak		   		current-speed = <0>;
2293910cd8cSValentine Barshak		   		interrupt-parent = <&UIC1>;
23071f34979SDavid Gibson		   		interrupts = <0x4 0x4>;
2313910cd8cSValentine Barshak	   		};
2323910cd8cSValentine Barshak
2333910cd8cSValentine Barshak			IIC0: i2c@ef600700 {
2343910cd8cSValentine Barshak				compatible = "ibm,iic-440grx", "ibm,iic";
23571f34979SDavid Gibson				reg = <0xef600700 0x00000014>;
2363910cd8cSValentine Barshak				interrupt-parent = <&UIC0>;
23771f34979SDavid Gibson				interrupts = <0x2 0x4>;
2383910cd8cSValentine Barshak			};
2393910cd8cSValentine Barshak
2403910cd8cSValentine Barshak			IIC1: i2c@ef600800 {
2413910cd8cSValentine Barshak				compatible = "ibm,iic-440grx", "ibm,iic";
24271f34979SDavid Gibson				reg = <0xef600800 0x00000014>;
2433910cd8cSValentine Barshak				interrupt-parent = <&UIC0>;
24471f34979SDavid Gibson				interrupts = <0x7 0x4>;
2453910cd8cSValentine Barshak			};
2463910cd8cSValentine Barshak
2473910cd8cSValentine Barshak			ZMII0: emac-zmii@ef600d00 {
2483910cd8cSValentine Barshak				compatible = "ibm,zmii-440grx", "ibm,zmii";
24971f34979SDavid Gibson				reg = <0xef600d00 0x0000000c>;
2503910cd8cSValentine Barshak			};
2513910cd8cSValentine Barshak
2523910cd8cSValentine Barshak			RGMII0: emac-rgmii@ef601000 {
2533910cd8cSValentine Barshak				compatible = "ibm,rgmii-440grx", "ibm,rgmii";
25471f34979SDavid Gibson				reg = <0xef601000 0x00000008>;
25558c50192SValentine Barshak				has-mdio;
2563910cd8cSValentine Barshak			};
2573910cd8cSValentine Barshak
2583910cd8cSValentine Barshak			EMAC0: ethernet@ef600e00 {
2593910cd8cSValentine Barshak				device_type = "network";
2603910cd8cSValentine Barshak				compatible = "ibm,emac-440grx", "ibm,emac-440epx", "ibm,emac4";
2613910cd8cSValentine Barshak				interrupt-parent = <&EMAC0>;
26271f34979SDavid Gibson				interrupts = <0x0 0x1>;
2633910cd8cSValentine Barshak				#interrupt-cells = <1>;
2643910cd8cSValentine Barshak				#address-cells = <0>;
2653910cd8cSValentine Barshak				#size-cells = <0>;
26671f34979SDavid Gibson				interrupt-map = </*Status*/ 0x0 &UIC0 0x18 0x4
26771f34979SDavid Gibson						/*Wake*/  0x1 &UIC1 0x1d 0x4>;
26805781ccdSGrant Erickson				reg = <0xef600e00 0x00000074>;
2693910cd8cSValentine Barshak				local-mac-address = [000000000000];
2703910cd8cSValentine Barshak				mal-device = <&MAL0>;
2713910cd8cSValentine Barshak				mal-tx-channel = <0>;
2723910cd8cSValentine Barshak				mal-rx-channel = <0>;
2733910cd8cSValentine Barshak				cell-index = <0>;
27471f34979SDavid Gibson				max-frame-size = <9000>;
27571f34979SDavid Gibson				rx-fifo-size = <4096>;
27671f34979SDavid Gibson				tx-fifo-size = <2048>;
2773910cd8cSValentine Barshak				phy-mode = "rgmii";
27871f34979SDavid Gibson				phy-map = <0x00000000>;
2793910cd8cSValentine Barshak				zmii-device = <&ZMII0>;
2803910cd8cSValentine Barshak				zmii-channel = <0>;
2813910cd8cSValentine Barshak				rgmii-device = <&RGMII0>;
2823910cd8cSValentine Barshak				rgmii-channel = <0>;
28358c50192SValentine Barshak				has-inverted-stacr-oc;
28458c50192SValentine Barshak				has-new-stacr-staopc;
2853910cd8cSValentine Barshak			};
2863910cd8cSValentine Barshak
2873910cd8cSValentine Barshak			EMAC1: ethernet@ef600f00 {
2883910cd8cSValentine Barshak				device_type = "network";
2893910cd8cSValentine Barshak				compatible = "ibm,emac-440grx", "ibm,emac-440epx", "ibm,emac4";
2903910cd8cSValentine Barshak				interrupt-parent = <&EMAC1>;
29171f34979SDavid Gibson				interrupts = <0x0 0x1>;
2923910cd8cSValentine Barshak				#interrupt-cells = <1>;
2933910cd8cSValentine Barshak				#address-cells = <0>;
2943910cd8cSValentine Barshak				#size-cells = <0>;
29571f34979SDavid Gibson				interrupt-map = </*Status*/ 0x0 &UIC0 0x19 0x4
29671f34979SDavid Gibson						/*Wake*/  0x1 &UIC1 0x1f 0x4>;
29705781ccdSGrant Erickson				reg = <0xef600f00 0x00000074>;
2983910cd8cSValentine Barshak				local-mac-address = [000000000000];
2993910cd8cSValentine Barshak				mal-device = <&MAL0>;
3003910cd8cSValentine Barshak				mal-tx-channel = <1>;
3013910cd8cSValentine Barshak				mal-rx-channel = <1>;
3023910cd8cSValentine Barshak				cell-index = <1>;
30371f34979SDavid Gibson				max-frame-size = <9000>;
30471f34979SDavid Gibson				rx-fifo-size = <4096>;
30571f34979SDavid Gibson				tx-fifo-size = <2048>;
3063910cd8cSValentine Barshak				phy-mode = "rgmii";
30771f34979SDavid Gibson				phy-map = <0x00000000>;
3083910cd8cSValentine Barshak				zmii-device = <&ZMII0>;
3093910cd8cSValentine Barshak				zmii-channel = <1>;
3103910cd8cSValentine Barshak				rgmii-device = <&RGMII0>;
3113910cd8cSValentine Barshak				rgmii-channel = <1>;
31258c50192SValentine Barshak				has-inverted-stacr-oc;
31358c50192SValentine Barshak				has-new-stacr-staopc;
3143910cd8cSValentine Barshak			};
3153910cd8cSValentine Barshak		};
3160b2e9751SValentine Barshak
3170b2e9751SValentine Barshak		PCI0: pci@1ec000000 {
3180b2e9751SValentine Barshak			device_type = "pci";
3190b2e9751SValentine Barshak			#interrupt-cells = <1>;
3200b2e9751SValentine Barshak			#size-cells = <2>;
3210b2e9751SValentine Barshak			#address-cells = <3>;
3220b2e9751SValentine Barshak			compatible = "ibm,plb440grx-pci", "ibm,plb-pci";
3230b2e9751SValentine Barshak			primary;
32471f34979SDavid Gibson			reg = <0x00000001 0xeec00000 0x00000008	/* Config space access */
32571f34979SDavid Gibson			       0x00000001 0xeed00000 0x00000004	/* IACK */
32671f34979SDavid Gibson			       0x00000001 0xeed00000 0x00000004	/* Special cycle */
32771f34979SDavid Gibson			       0x00000001 0xef400000 0x00000040>;	/* Internal registers */
3280b2e9751SValentine Barshak
3290b2e9751SValentine Barshak			/* Outbound ranges, one memory and one IO,
3300b2e9751SValentine Barshak			 * later cannot be changed. Chip supports a second
3310b2e9751SValentine Barshak			 * IO range but we don't use it for now
3320b2e9751SValentine Barshak			 */
3336f031101SJosh Boyer			ranges = <0x02000000 0x0 0x80000000 0x1 0x80000000 0x0 0x40000000
3346f031101SJosh Boyer				0x01000000 0x0 0x00000000 0x1 0xe8000000 0x0 0x00010000
3356f031101SJosh Boyer				0x01000000 0x0 0x00000000 0x1 0xe8800000 0x0 0x03800000>;
3360b2e9751SValentine Barshak
3370b2e9751SValentine Barshak			/* Inbound 2GB range starting at 0 */
33871f34979SDavid Gibson			dma-ranges = <0x42000000 0x0 0x0 0x0 0x0 0x0 0x80000000>;
3390b2e9751SValentine Barshak
3400b2e9751SValentine Barshak			/* All PCI interrupts are routed to IRQ 67 */
34171f34979SDavid Gibson			interrupt-map-mask = <0x0 0x0 0x0 0x0>;
34271f34979SDavid Gibson			interrupt-map = < 0x0 0x0 0x0 0x0 &UIC2 0x3 0x8 >;
3430b2e9751SValentine Barshak		};
3443910cd8cSValentine Barshak	};
3453910cd8cSValentine Barshak
3463910cd8cSValentine Barshak	chosen {
34778e5dfeaSRob Herring		stdout-path = "/plb/opb/serial@ef600300";
3483910cd8cSValentine Barshak		bootargs = "console=ttyS0,115200";
3493910cd8cSValentine Barshak	};
3503910cd8cSValentine Barshak};
351