tqm5200.dts 4.4 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184
/*
 * TQM5200 board Device Tree Source
 *
 * Copyright (C) 2007 Semihalf
 * Marian Balakowicz <m8@semihalf.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.
 */

/*
 * WARNING: Do not depend on this tree layout remaining static just yet.
 * The MPC5200 device tree conventions are still in flux
 * Keep an eye on the linuxppc-dev mailing list for more details
 */

/ {
	model = "tqc,tqm5200";
	compatible = "tqc,tqm5200";
	#address-cells = <1>;
	#size-cells = <1>;

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

		PowerPC,5200@0 {
			device_type = "cpu";
			reg = <0>;
			d-cache-line-size = <20>;
			i-cache-line-size = <20>;
			d-cache-size = <4000>;		// L1, 16K
			i-cache-size = <4000>;		// L1, 16K
			timebase-frequency = <0>;	// from bootloader
			bus-frequency = <0>;		// from bootloader
			clock-frequency = <0>;		// from bootloader
		};
	};

	memory {
		device_type = "memory";
		reg = <00000000 04000000>;	// 64MB
	};

	soc5200@f0000000 {
		model = "fsl,mpc5200";
		compatible = "fsl,mpc5200";
		revision = "";			// from bootloader
		device_type = "soc";
		ranges = <0 f0000000 0000c000>;
		reg = <f0000000 00000100>;
		bus-frequency = <0>;		// from bootloader
		system-frequency = <0>;		// from bootloader

		cdm@200 {
			compatible = "mpc5200-cdm";
			reg = <200 38>;
		};

		mpc5200_pic: pic@500 {
			// 5200 interrupts are encoded into two levels;
			interrupt-controller;
			#interrupt-cells = <3>;
			compatible = "mpc5200-pic";
			reg = <500 80>;
		};

		gpt@600 {	// General Purpose Timer
			compatible = "fsl,mpc5200-gpt";
			reg = <600 10>;
			interrupts = <1 9 0>;
			interrupt-parent = <&mpc5200_pic>;
			fsl,has-wdt;
		};

		gpio@b00 {
			compatible = "mpc5200-gpio";
			reg = <b00 40>;
			interrupts = <1 7 0>;
			interrupt-parent = <&mpc5200_pic>;
		};

		usb@1000 {
			compatible = "mpc5200-ohci","ohci-be";
			reg = <1000 ff>;
			interrupts = <2 6 0>;
			interrupt-parent = <&mpc5200_pic>;
		};

		dma-controller@1200 {
			compatible = "mpc5200-bestcomm";
			reg = <1200 80>;
			interrupts = <3 0 0  3 1 0  3 2 0  3 3 0
			              3 4 0  3 5 0  3 6 0  3 7 0
			              3 8 0  3 9 0  3 a 0  3 b 0
			              3 c 0  3 d 0  3 e 0  3 f 0>;
			interrupt-parent = <&mpc5200_pic>;
		};

		xlb@1f00 {
			compatible = "mpc5200-xlb";
			reg = <1f00 100>;
		};

		serial@2000 {		// PSC1
			device_type = "serial";
			compatible = "mpc5200-psc-uart";
			port-number = <0>;  // Logical port assignment
			reg = <2000 100>;
			interrupts = <2 1 0>;
			interrupt-parent = <&mpc5200_pic>;
		};

		serial@2200 {		// PSC2
			device_type = "serial";
			compatible = "mpc5200-psc-uart";
			port-number = <1>;  // Logical port assignment
			reg = <2200 100>;
			interrupts = <2 2 0>;
			interrupt-parent = <&mpc5200_pic>;
		};

		serial@2400 {		// PSC3
			device_type = "serial";
			compatible = "mpc5200-psc-uart";
			port-number = <2>;  // Logical port assignment
			reg = <2400 100>;
			interrupts = <2 3 0>;
			interrupt-parent = <&mpc5200_pic>;
		};

		ethernet@3000 {
			device_type = "network";
			compatible = "mpc5200-fec";
			reg = <3000 800>;
			local-mac-address = [ 00 00 00 00 00 00 ]; /* Filled in by U-Boot */
			interrupts = <2 5 0>;
			interrupt-parent = <&mpc5200_pic>;
		};

		ata@3a00 {
			compatible = "mpc5200-ata";
			reg = <3a00 100>;
			interrupts = <2 7 0>;
			interrupt-parent = <&mpc5200_pic>;
		};

		i2c@3d40 {
			compatible = "mpc5200-i2c","fsl-i2c";
			reg = <3d40 40>;
			interrupts = <2 10 0>;
			interrupt-parent = <&mpc5200_pic>;
			fsl5200-clocking;
		};

		sram@8000 {
			compatible = "mpc5200-sram";
			reg = <8000 4000>;
		};
	};

	pci@f0000d00 {
		#interrupt-cells = <1>;
		#size-cells = <2>;
		#address-cells = <3>;
		device_type = "pci";
		compatible = "fsl,mpc5200-pci";
		reg = <f0000d00 100>;
		interrupt-map-mask = <f800 0 0 7>;
		interrupt-map = <c000 0 0 1 &mpc5200_pic 0 0 3
				 c000 0 0 2 &mpc5200_pic 0 0 3
				 c000 0 0 3 &mpc5200_pic 0 0 3
				 c000 0 0 4 &mpc5200_pic 0 0 3>;
		clock-frequency = <0>; // From boot loader
		interrupts = <2 8 0 2 9 0 2 a 0>;
		interrupt-parent = <&mpc5200_pic>;
		bus-range = <0 0>;
		ranges = <42000000 0 80000000 80000000 0 10000000
			  02000000 0 90000000 90000000 0 10000000
			  01000000 0 00000000 a0000000 0 01000000>;
	};
};