/*
 * Device Tree Source for MPC885 ADS running U-Boot
 *
 * 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@ff000100 {
		compatible = "fsl,mpc885-localbus", "fsl,pq1-localbus",
		             "simple-bus";
		#address-cells = <2>;
		#size-cells = <1>;
		reg = <0xff000100 0x40>;

		ranges = <
			0 0 0xfe000000 0x01000000
		>;

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

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

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

		// Temporary until get_immrbase() is fixed.
		reg = <0xff000000 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;
	};
};
