/*
 * MPC7448HPC2 (Taiga) board Device Tree Source
 *
 * Copyright 2006, 2008 Freescale Semiconductor Inc.
 * 2006 Roy Zang <Roy Zang at freescale.com>.
 *
 * 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 = "mpc7448hpc2";
	compatible = "mpc74xx";
	#address-cells = <1>;
	#size-cells = <1>;

	aliases {
		ethernet0 = &enet0;
		ethernet1 = &enet1;

		serial0 = &serial0;
		serial1 = &serial1;

		pci0 = &pci0;
	};

	cpus {
		#address-cells = <1>;
		#size-cells =<0>;
				
		PowerPC,7448@0 {
			device_type = "cpu";
			reg = <0x0>;
			d-cache-line-size = <32>;	// 32 bytes
			i-cache-line-size = <32>;	// 32 bytes
			d-cache-size = <0x8000>;		// L1, 32K bytes
			i-cache-size = <0x8000>;		// L1, 32K bytes
			timebase-frequency = <0>;	// 33 MHz, from uboot
			clock-frequency = <0>;		// From U-Boot
			bus-frequency = <0>;		// From U-Boot
		};
	};

	memory {
		device_type = "memory";
		reg = <0x0 0x20000000	// DDR2   512M at 0
		       >;
	};

  	tsi108@c0000000 {
		#address-cells = <1>;
		#size-cells = <1>;
		device_type = "tsi-bridge";
		ranges = <0x0 0xc0000000 0x10000>;
		reg = <0xc0000000 0x10000>;
		bus-frequency = <0>;

		i2c@7000 {
			interrupt-parent = <&mpic>;
			interrupts = <14 0>;
			reg = <0x7000 0x400>;
			device_type = "i2c";
			compatible  = "tsi108-i2c";
		};

		MDIO: mdio@6000 {
			device_type = "mdio";
			compatible = "tsi108-mdio";
			reg = <0x6000 0x50>;
			#address-cells = <1>;
			#size-cells = <0>;

			phy8: ethernet-phy@8 {
				interrupt-parent = <&mpic>;
				interrupts = <2 1>;
				reg = <0x8>;
			};

			phy9: ethernet-phy@9 {
				interrupt-parent = <&mpic>;
				interrupts = <2 1>;
				reg = <0x9>;
			};

		};

		enet0: ethernet@6200 {
			linux,network-index = <0>;
			#size-cells = <0>;
			device_type = "network";
			compatible = "tsi108-ethernet";
			reg = <0x6000 0x200>;
			address = [ 00 06 D2 00 00 01 ];
			interrupts = <16 2>;
			interrupt-parent = <&mpic>;
			mdio-handle = <&MDIO>;
			phy-handle = <&phy8>;
		};

		enet1: ethernet@6600 {
			linux,network-index = <1>;
			#address-cells = <1>;
			#size-cells = <0>;
			device_type = "network";
			compatible = "tsi108-ethernet";
			reg = <0x6400 0x200>;
			address = [ 00 06 D2 00 00 02 ];
			interrupts = <17 2>;
			interrupt-parent = <&mpic>;
			mdio-handle = <&MDIO>;
			phy-handle = <&phy9>;
		};

		serial0: serial@7808 {
			device_type = "serial";
			compatible = "ns16550";
			reg = <0x7808 0x200>;
			clock-frequency = <1064000000>;
			interrupts = <12 0>;
			interrupt-parent = <&mpic>;
		};

		serial1: serial@7c08 {
			device_type = "serial";
			compatible = "ns16550";
			reg = <0x7c08 0x200>;
			clock-frequency = <1064000000>;
			interrupts = <13 0>;
			interrupt-parent = <&mpic>;
		};

	  	mpic: pic@7400 {
			interrupt-controller;
			#address-cells = <0>;
			#interrupt-cells = <2>;
			reg = <0x7400 0x400>;
			compatible = "chrp,open-pic";
			device_type = "open-pic";
		};
		pci0: pci@1000 {
			compatible = "tsi108-pci";
			device_type = "pci";
			#interrupt-cells = <1>;
			#size-cells = <2>;
			#address-cells = <3>;
			reg = <0x1000 0x1000>;
			bus-range = <0 0>;
			ranges = <0x2000000 0x0 0xe0000000 0xe0000000 0x0 0x1a000000	
				  0x1000000 0x0 0x0 0xfa000000 0x0 0x10000>;
			clock-frequency = <133333332>;
			interrupt-parent = <&mpic>;
			interrupts = <23 2>;
			interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
			interrupt-map = <

				/* IDSEL 0x11 */
				0x800 0x0 0x0 0x1 &RT0 0x24 0x0
				0x800 0x0 0x0 0x2 &RT0 0x25 0x0
				0x800 0x0 0x0 0x3 &RT0 0x26 0x0
				0x800 0x0 0x0 0x4 &RT0 0x27 0x0

				/* IDSEL 0x12 */
				0x1000 0x0 0x0 0x1 &RT0 0x25 0x0
				0x1000 0x0 0x0 0x2 &RT0 0x26 0x0
				0x1000 0x0 0x0 0x3 &RT0 0x27 0x0
				0x1000 0x0 0x0 0x4 &RT0 0x24 0x0

				/* IDSEL 0x13 */
				0x1800 0x0 0x0 0x1 &RT0 0x26 0x0
				0x1800 0x0 0x0 0x2 &RT0 0x27 0x0
				0x1800 0x0 0x0 0x3 &RT0 0x24 0x0
				0x1800 0x0 0x0 0x4 &RT0 0x25 0x0

				/* IDSEL 0x14 */
				0x2000 0x0 0x0 0x1 &RT0 0x27 0x0
				0x2000 0x0 0x0 0x2 &RT0 0x24 0x0
				0x2000 0x0 0x0 0x3 &RT0 0x25 0x0
				0x2000 0x0 0x0 0x4 &RT0 0x26 0x0
				>;

			RT0: router@1180 {
				clock-frequency = <0>;
				interrupt-controller;
				device_type = "pic-router";
				#address-cells = <0>;
				#interrupt-cells = <2>;
				big-endian;
				interrupts = <23 2>;
				interrupt-parent = <&mpic>;
			};
		};
	};
};
