/*
 * Device Tree Source for MPC885 ADS running RedBoot
 *
 * Copyright 2006 MontaVista Software, Inc.
 * Copyright 2007 Freescale Semiconductor, Inc.
 *
 * This program is free software; you can redistribute  it and/or modify it
 * under  the terms of  the GNU General  Public License as published by the
 * Free Software Foundation;  either version 2 of the  License, or (at your
 * option) any later version.
 */

/dts-v1/;
/ {
	model = "Analogue & Micro Adder MPC875";
	compatible = "analogue-and-micro,adder875";
	#address-cells = <1>;
	#size-cells = <1>;

	aliases {
		console = &console;
		ethernet0 = &eth0;
		ethernet1 = &eth1;
	};

	cpus {
		#address-cells = <1>;
		#size-cells = <0>;

		PowerPC,875@0 {
			device_type = "cpu";
			reg = <0>;
			d-cache-line-size = <16>;
			i-cache-line-size = <16>;
			d-cache-size = <8192>;
			i-cache-size = <8192>;
			timebase-frequency = <0>;
			bus-frequency = <0>;
			clock-frequency = <0>;
			interrupts = <15 2>;	// decrementer interrupt
			interrupt-parent = <&PIC>;
		};
	};

	memory {
		device_type = "memory";
		reg = <0 0x01000000>;
	};

	localbus@fa200100 {
		compatible = "fsl,mpc885-localbus", "fsl,pq1-localbus",
		             "simple-bus";
		#address-cells = <2>;
		#size-cells = <1>;
		reg = <0xfa200100 0x40>;

		ranges = <
			0 0 0xfe000000 0x00800000
			2 0 0xfa100000 0x00008000
		>;

		flash@0,0 {
			compatible = "cfi-flash";
			reg = <0 0 0x800000>;
			bank-width = <2>;
			device-width = <2>;
		};
	};

	soc@fa200000 {
		compatible = "fsl,mpc875-immr", "fsl,pq1-soc", "simple-bus";
		#address-cells = <1>;
		#size-cells = <1>;
		ranges = <0 0xfa200000 0x00004000>;

		// Temporary until code stops depending on it.
		device_type = "soc";

		// Temporary until get_immrbase() is fixed.
		reg = <0xfa200000 0x4000>;

		mdio@e00 {
			compatible = "fsl,mpc875-fec-mdio", "fsl,pq1-fec-mdio";
			reg = <0xe00 0x188>;
			#address-cells = <1>;
			#size-cells = <0>;

			PHY0: ethernet-phy@0 {
				reg = <0>;
				device_type = "ethernet-phy";
			};

			PHY1: ethernet-phy@1 {
				reg = <1>;
				device_type = "ethernet-phy";
			};
		};

		eth0: ethernet@e00 {
			device_type = "network";
			compatible = "fsl,mpc875-fec-enet",
			             "fsl,pq1-fec-enet";
			reg = <0xe00 0x188>;
			local-mac-address = [ 00 00 00 00 00 00 ];
			interrupts = <3 1>;
			interrupt-parent = <&PIC>;
			phy-handle = <&PHY0>;
			linux,network-index = <0>;
		};

		eth1: ethernet@1e00 {
			device_type = "network";
			compatible = "fsl,mpc875-fec-enet",
			             "fsl,pq1-fec-enet";
			reg = <0x1e00 0x188>;
			local-mac-address = [ 00 00 00 00 00 00 ];
			interrupts = <7 1>;
			interrupt-parent = <&PIC>;
			phy-handle = <&PHY1>;
			linux,network-index = <1>;
		};

		PIC: interrupt-controller@0 {
			interrupt-controller;
			#interrupt-cells = <2>;
			reg = <0 0x24>;
			compatible = "fsl,mpc875-pic", "fsl,pq1-pic";
		};

		cpm@9c0 {
			#address-cells = <1>;
			#size-cells = <1>;
			compatible = "fsl,mpc875-cpm", "fsl,cpm1", "simple-bus";
			interrupts = <0>;	// cpm error interrupt
			interrupt-parent = <&CPM_PIC>;
			reg = <0x9c0 0x40>;
			ranges;

			muram {
				#address-cells = <1>;
				#size-cells = <1>;
				ranges = <0 0x2000 0x2000>;

				data@0 {
					compatible = "fsl,cpm-muram-data";
					reg = <0 0x1c00>;
				};
			};

			brg@9f0 {
				compatible = "fsl,mpc875-brg",
				             "fsl,cpm1-brg",
				             "fsl,cpm-brg";
				clock-frequency = <50000000>;
				reg = <0x9f0 0x10>;
			};

			CPM_PIC: interrupt-controller@930 {
				interrupt-controller;
				#interrupt-cells = <1>;
				interrupts = <5 2 0 2>;
				interrupt-parent = <&PIC>;
				reg = <0x930 0x20>;
				compatible = "fsl,mpc875-cpm-pic",
				             "fsl,cpm1-pic";
			};

			console: serial@a80 {
				device_type = "serial";
				compatible = "fsl,mpc875-smc-uart",
				             "fsl,cpm1-smc-uart";
				reg = <0xa80 0x10 0x3e80 0x40>;
				interrupts = <4>;
				interrupt-parent = <&CPM_PIC>;
				fsl,cpm-brg = <1>;
				fsl,cpm-command = <0x0090>;
				current-speed = <115200>;
			};
		};
	};

	chosen {
		linux,stdout-path = &console;
	};
};
