Training courses

Kernel and Embedded Linux

Bootlin training courses

Embedded Linux, kernel,
Yocto Project, Buildroot, real-time,
graphics, boot time, debugging...

Bootlin logo

Elixir Cross Referencer

/*
 * 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 {
			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@c0001000 {
		device_type = "pci";
		compatible = "tsi109-pci", "tsi108-pci";
		#interrupt-cells = <1>;
		#size-cells = <2>;
		#address-cells = <3>;
		reg = <0xc0001000 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 {
		stdout-path = "/tsi109@c0000000/serial@7808";
	};
};