tqm5200.dts 5.0 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
/*
 * 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.
 */

/ {
	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 {
42 43
		#address-cells = <1>;
		#size-cells = <1>;
44
		compatible = "fsl,mpc5200-immr";
45 46 47 48 49 50
		ranges = <0 f0000000 0000c000>;
		reg = <f0000000 00000100>;
		bus-frequency = <0>;		// from bootloader
		system-frequency = <0>;		// from bootloader

		cdm@200 {
51
			compatible = "fsl,mpc5200-cdm";
52 53 54
			reg = <200 38>;
		};

55
		mpc5200_pic: interrupt-controller@500 {
56 57 58
			// 5200 interrupts are encoded into two levels;
			interrupt-controller;
			#interrupt-cells = <3>;
59
			compatible = "fsl,mpc5200-pic";
60 61 62
			reg = <500 80>;
		};

63
		timer@600 {	// General Purpose Timer
64 65 66 67 68 69 70 71
			compatible = "fsl,mpc5200-gpt";
			reg = <600 10>;
			interrupts = <1 9 0>;
			interrupt-parent = <&mpc5200_pic>;
			fsl,has-wdt;
		};

		gpio@b00 {
72
			compatible = "fsl,mpc5200-gpio";
73 74 75 76 77 78
			reg = <b00 40>;
			interrupts = <1 7 0>;
			interrupt-parent = <&mpc5200_pic>;
		};

		usb@1000 {
79
			compatible = "fsl,mpc5200-ohci","ohci-be";
80 81 82 83 84 85
			reg = <1000 ff>;
			interrupts = <2 6 0>;
			interrupt-parent = <&mpc5200_pic>;
		};

		dma-controller@1200 {
86
			compatible = "fsl,mpc5200-bestcomm";
87 88 89 90 91 92 93 94 95
			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 {
96
			compatible = "fsl,mpc5200-xlb";
97 98 99 100 101
			reg = <1f00 100>;
		};

		serial@2000 {		// PSC1
			device_type = "serial";
102
			compatible = "fsl,mpc5200-psc-uart";
103 104 105 106 107 108 109 110
			port-number = <0>;  // Logical port assignment
			reg = <2000 100>;
			interrupts = <2 1 0>;
			interrupt-parent = <&mpc5200_pic>;
		};

		serial@2200 {		// PSC2
			device_type = "serial";
111
			compatible = "fsl,mpc5200-psc-uart";
112 113 114 115 116 117 118 119
			port-number = <1>;  // Logical port assignment
			reg = <2200 100>;
			interrupts = <2 2 0>;
			interrupt-parent = <&mpc5200_pic>;
		};

		serial@2400 {		// PSC3
			device_type = "serial";
120
			compatible = "fsl,mpc5200-psc-uart";
121 122 123 124 125 126 127 128
			port-number = <2>;  // Logical port assignment
			reg = <2400 100>;
			interrupts = <2 3 0>;
			interrupt-parent = <&mpc5200_pic>;
		};

		ethernet@3000 {
			device_type = "network";
129
			compatible = "fsl,mpc5200-fec";
130
			reg = <3000 400>;
131
			local-mac-address = [ 00 00 00 00 00 00 ];
132 133
			interrupts = <2 5 0>;
			interrupt-parent = <&mpc5200_pic>;
134 135 136 137 138 139 140 141 142 143 144 145 146 147 148
			phy-handle = <&phy0>;
		};

		mdio@3000 {
			#address-cells = <1>;
			#size-cells = <0>;
			compatible = "fsl,mpc5200b-mdio","fsl,mpc5200-mdio";
			reg = <3000 400>;       // fec range, since we need to setup fec interrupts
			interrupts = <2 5 0>;   // these are for "mii command finished", not link changes & co.
			interrupt-parent = <&mpc5200_pic>;

			phy0: ethernet-phy@0 {
				device_type = "ethernet-phy";
				reg = <0>;
			};
149 150 151
		};

		ata@3a00 {
152
			compatible = "fsl,mpc5200-ata";
153 154 155 156 157 158
			reg = <3a00 100>;
			interrupts = <2 7 0>;
			interrupt-parent = <&mpc5200_pic>;
		};

		i2c@3d40 {
159 160
			#address-cells = <1>;
			#size-cells = <0>;
161
			compatible = "fsl,mpc5200-i2c","fsl-i2c";
162 163 164 165
			reg = <3d40 40>;
			interrupts = <2 10 0>;
			interrupt-parent = <&mpc5200_pic>;
			fsl5200-clocking;
166 167 168 169 170 171

			 rtc@68 {
				device_type = "rtc";
				compatible = "dallas,ds1307";
				reg = <68>;
			};
172 173 174
		};

		sram@8000 {
175
			compatible = "fsl,mpc5200-sram";
176 177 178 179
			reg = <8000 4000>;
		};
	};

180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196
	lpb {
		model = "fsl,lpb";
		compatible = "fsl,lpb";
		#address-cells = <2>;
		#size-cells = <1>;
		ranges = <0 0 fc000000 02000000>;

		flash@0,0 {
			compatible = "cfi-flash";
			reg = <0 0 02000000>;
			bank-width = <4>;
			device-width = <2>;
			#size-cells = <1>;
			#address-cells = <1>;
		};
	};

197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217
	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>;
	};
};