/*
 * Device Tree Source for IBM Holly (PPC 750CL with TSI controller)
 * Copyright 2007, IBM Corporation
 *
 * Stephen Winiecki <stevewin@us.ibm.com>
 * Josh Boyer <jwboyer@linux.vnet.ibm.com>
 *
 * This file is licensed under the terms of the GNU General Public
 * License version 2.  This program is licensed "as is" without
 * any warranty of any kind, whether express or implied.
 */

/dts-v1/;

/ {
	model = "41K7339";
	compatible = "ibm,holly";
	#address-cells = <1>;
	#size-cells = <1>;

	cpus {
		#address-cells = <1>;
		#size-cells =<0>;
		PowerPC,750CL@0 {
			device_type = "cpu";
			reg = <0x00000000>;
			d-cache-line-size = <32>;
			i-cache-line-size = <32>;
			d-cache-size = <32768>;
			i-cache-size = <32768>;
			d-cache-sets = <128>;
			i-cache-sets = <128>;
			timebase-frequency = <50000000>;
			clock-frequency = <600000000>;
			bus-frequency = <200000000>;
		};
	};

	memory@0 {
		device_type = "memory";
		reg = <0x00000000 0x20000000>;
	};

  	tsi109@c0000000 {
		device_type = "tsi-bridge";
		compatible = "tsi109-bridge", "tsi108-bridge";
		#address-cells = <1>;
		#size-cells = <1>;
		ranges = <0x00000000 0xc0000000 0x00010000>;
		reg = <0xc0000000 0x00010000>;

		i2c@7000 {
			device_type = "i2c";
			compatible  = "tsi109-i2c", "tsi108-i2c";
			interrupt-parent = <&MPIC>;
			interrupts = <0xe 0x2>;
			reg = <0x00007000 0x00000400>;
		};

		MDIO: mdio@6000 {
			device_type = "mdio";
			compatible = "tsi109-mdio", "tsi108-mdio";
			reg = <0x00006000 0x00000050>;
			#address-cells = <1>;
			#size-cells = <0>;

			PHY1: ethernet-phy@1 {
				compatible = "bcm5461a";
				reg = <0x00000001>;
				txc-rxc-delay-disable;
			};

			PHY2: ethernet-phy@2 {
				compatible = "bcm5461a";
				reg = <0x00000002>;
				txc-rxc-delay-disable;
			};
		};

		ethernet@6200 {
			device_type = "network";
			compatible = "tsi109-ethernet", "tsi108-ethernet";
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0x00006000 0x00000200>;
			local-mac-address = [ 00 00 00 00 00 00 ];
			interrupt-parent = <&MPIC>;
			interrupts = <0x10 0x2>;
			mdio-handle = <&MDIO>;
			phy-handle = <&PHY1>;
		};

		ethernet@6600 {
			device_type = "network";
			compatible = "tsi109-ethernet", "tsi108-ethernet";
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0x00006400 0x00000200>;
			local-mac-address = [ 00 00 00 00 00 00 ];
			interrupt-parent = <&MPIC>;
			interrupts = <0x11 0x2>;
			mdio-handle = <&MDIO>;
			phy-handle = <&PHY2>;
		};

		serial@7808 {
			device_type = "serial";
			compatible = "ns16550";
			reg = <0x00007808 0x00000200>;
			virtual-reg = <0xc0007808>;
			clock-frequency = <1067212800>;
			current-speed = <115200>;
			interrupt-parent = <&MPIC>;
			interrupts = <0xc 0x2>;
		};

		serial@7c08 {
			device_type = "serial";
			compatible = "ns16550";
			reg = <0x00007c08 0x00000200>;
			virtual-reg = <0xc0007c08>;
			clock-frequency = <1067212800>;
			current-speed = <115200>;
			interrupt-parent = <&MPIC>;
			interrupts = <0xd 0x2>;
		};

	  	MPIC: pic@7400 {
			device_type = "open-pic";
			compatible = "chrp,open-pic";
			interrupt-controller;
			#interrupt-cells = <2>;
			reg = <0x00007400 0x00000400>;
			big-endian;
		};

		pci@1000 {
			device_type = "pci";
			compatible = "tsi109-pci", "tsi108-pci";
			#interrupt-cells = <1>;
			#size-cells = <2>;
			#address-cells = <3>;
			reg = <0x00001000 0x00001000>;
			bus-range = <0x0 0x0>;
			/*----------------------------------------------------+
			| PCI memory range.
			| 01 denotes I/O space
			| 02 denotes 32-bit memory space
			+----------------------------------------------------*/
			ranges = <0x02000000 0x00000000 0x40000000 0x40000000 0x00000000 0x10000000
				  0x01000000 0x00000000 0x00000000 0x7e000000 0x00000000 0x00010000>;
			clock-frequency = <133333332>;
			interrupt-parent = <&MPIC>;
			interrupts = <0x17 0x2>;
			interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
			/*----------------------------------------------------+
			| The INTA, INTB, INTC, INTD are shared.
			+----------------------------------------------------*/
			interrupt-map = <
				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

				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

				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

				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 {
 				device_type = "pic-router";
 				interrupt-controller;
 				big-endian;
 				clock-frequency = <0>;
 				#address-cells = <0>;
 				#interrupt-cells = <2>;
 				interrupts = <0x17 0x2>;
				interrupt-parent = <&MPIC>;
			};
		};
	};

	chosen {
		linux,stdout-path = "/tsi109@c0000000/serial@7808";
	};
};
