mpc8641_hpcn.dts 8.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
/*
 * MPC8641 HPCN Device Tree Source
 *
 * Copyright 2006 Freescale Semiconductor Inc.
 *
 * 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 = "MPC8641HPCN";
	compatible = "mpc86xx";
	#address-cells = <1>;
	#size-cells = <1>;

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

		PowerPC,8641@0 {
			device_type = "cpu";
			reg = <0>;
			d-cache-line-size = <20>;	// 32 bytes
			i-cache-line-size = <20>;	// 32 bytes
			d-cache-size = <8000>;		// L1, 32K
			i-cache-size = <8000>;		// L1, 32K
			timebase-frequency = <0>;	// 33 MHz, from uboot
			bus-frequency = <0>;		// From uboot
			clock-frequency = <0>;		// From uboot
		};
		PowerPC,8641@1 {
			device_type = "cpu";
			reg = <1>;
			d-cache-line-size = <20>;	// 32 bytes
			i-cache-line-size = <20>;	// 32 bytes
			d-cache-size = <8000>;		// L1, 32K
			i-cache-size = <8000>;		// L1, 32K
			timebase-frequency = <0>;	// 33 MHz, from uboot
			bus-frequency = <0>;		// From uboot
			clock-frequency = <0>;		// From uboot
		};
	};

	memory {
		device_type = "memory";
		reg = <00000000 40000000>;	// 1G at 0x0
	};

	soc8641@f8000000 {
		#address-cells = <1>;
		#size-cells = <1>;
		device_type = "soc";
56
		ranges = <00000000 f8000000 00100000>;
57
		reg = <f8000000 00001000>;	// CCSRBAR
58 59 60 61 62 63 64
		bus-frequency = <0>;

		i2c@3000 {
			device_type = "i2c";
			compatible = "fsl-i2c";
			reg = <3000 100>;
			interrupts = <2b 2>;
65
			interrupt-parent = <&mpic>;
66 67 68 69 70 71 72 73
			dfsrr;
		};

		i2c@3100 {
			device_type = "i2c";
			compatible = "fsl-i2c";
			reg = <3100 100>;
			interrupts = <2b 2>;
74
			interrupt-parent = <&mpic>;
75 76 77 78 79 80 81 82 83
			dfsrr;
		};

		mdio@24520 {
			#address-cells = <1>;
			#size-cells = <0>;
			device_type = "mdio";
			compatible = "gianfar";
			reg = <24520 20>;
84 85
			phy0: ethernet-phy@0 {
				interrupt-parent = <&mpic>;
86
				interrupts = <a 1>;
87 88 89
				reg = <0>;
				device_type = "ethernet-phy";
			};
90 91
			phy1: ethernet-phy@1 {
				interrupt-parent = <&mpic>;
92
				interrupts = <a 1>;
93 94 95
				reg = <1>;
				device_type = "ethernet-phy";
			};
96 97
			phy2: ethernet-phy@2 {
				interrupt-parent = <&mpic>;
98
				interrupts = <a 1>;
99 100 101
				reg = <2>;
				device_type = "ethernet-phy";
			};
102 103
			phy3: ethernet-phy@3 {
				interrupt-parent = <&mpic>;
104
				interrupts = <a 1>;
105 106 107 108 109 110 111 112 113 114 115 116
				reg = <3>;
				device_type = "ethernet-phy";
			};
		};

		ethernet@24000 {
			#address-cells = <1>;
			#size-cells = <0>;
			device_type = "network";
			model = "TSEC";
			compatible = "gianfar";
			reg = <24000 1000>;
117 118 119 120 121 122 123
			/*
			 * mac-address is deprecated and will be removed
			 * in 2.6.25.  Only recent versions of
			 * U-Boot support local-mac-address, however.
			 */
			mac-address = [ 00 00 00 00 00 00 ];
			local-mac-address = [ 00 00 00 00 00 00 ];
124
			interrupts = <1d 2 1e 2 22 2>;
125 126
			interrupt-parent = <&mpic>;
			phy-handle = <&phy0>;
127
			phy-connection-type = "rgmii-id";
128 129 130 131 132 133 134 135 136
		};

		ethernet@25000 {
			#address-cells = <1>;
			#size-cells = <0>;
			device_type = "network";
			model = "TSEC";
			compatible = "gianfar";
			reg = <25000 1000>;
137 138 139 140 141 142 143
			/*
			 * mac-address is deprecated and will be removed
			 * in 2.6.25.  Only recent versions of
			 * U-Boot support local-mac-address, however.
			 */
			mac-address = [ 00 00 00 00 00 00 ];
			local-mac-address = [ 00 00 00 00 00 00 ];
144
			interrupts = <23 2 24 2 28 2>;
145 146
			interrupt-parent = <&mpic>;
			phy-handle = <&phy1>;
147
			phy-connection-type = "rgmii-id";
148 149 150 151 152 153 154 155 156
		};
		
		ethernet@26000 {
			#address-cells = <1>;
			#size-cells = <0>;
			device_type = "network";
			model = "TSEC";
			compatible = "gianfar";
			reg = <26000 1000>;
157 158 159 160 161 162 163
			/*
			 * mac-address is deprecated and will be removed
			 * in 2.6.25.  Only recent versions of
			 * U-Boot support local-mac-address, however.
			 */
			mac-address = [ 00 00 00 00 00 00 ];
			local-mac-address = [ 00 00 00 00 00 00 ];
164
			interrupts = <1F 2 20 2 21 2>;
165 166
			interrupt-parent = <&mpic>;
			phy-handle = <&phy2>;
167
			phy-connection-type = "rgmii-id";
168 169 170 171 172 173 174 175 176
		};

		ethernet@27000 {
			#address-cells = <1>;
			#size-cells = <0>;
			device_type = "network";
			model = "TSEC";
			compatible = "gianfar";
			reg = <27000 1000>;
177 178 179 180 181 182 183
			/*
			 * mac-address is deprecated and will be removed
			 * in 2.6.25.  Only recent versions of
			 * U-Boot support local-mac-address, however.
			 */
			mac-address = [ 00 00 00 00 00 00 ];
			local-mac-address = [ 00 00 00 00 00 00 ];
184
			interrupts = <25 2 26 2 27 2>;
185 186
			interrupt-parent = <&mpic>;
			phy-handle = <&phy3>;
187
			phy-connection-type = "rgmii-id";
188 189 190 191 192 193 194
		};
		serial@4500 {
			device_type = "serial";
			compatible = "ns16550";
			reg = <4500 100>;
			clock-frequency = <0>;
			interrupts = <2a 2>;
195
			interrupt-parent = <&mpic>;
196 197 198 199 200 201 202 203
		};

		serial@4600 {
			device_type = "serial";
			compatible = "ns16550";
			reg = <4600 100>;
			clock-frequency = <0>;
			interrupts = <1c 2>;
204
			interrupt-parent = <&mpic>;
205 206
		};

207 208 209 210 211 212 213 214 215 216 217
		mpic: pic@40000 {
			clock-frequency = <0>;
			interrupt-controller;
			#address-cells = <0>;
			#interrupt-cells = <2>;
			reg = <40000 40000>;
			compatible = "chrp,open-pic";
			device_type = "open-pic";
			big-endian;
		};
	};
218

219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238
	pcie@f8008000 {
		compatible = "fsl,mpc8641-pcie";
		device_type = "pci";
		#interrupt-cells = <1>;
		#size-cells = <2>;
		#address-cells = <3>;
		reg = <f8008000 1000>;
		bus-range = <0 ff>;
		ranges = <02000000 0 80000000 80000000 0 20000000
			  01000000 0 00000000 e2000000 0 00100000>;
		clock-frequency = <1fca055>;
		interrupt-parent = <&mpic>;
		interrupts = <18 2>;
		interrupt-map-mask = <fb00 0 0 0>;
		interrupt-map = <
			/* IDSEL 0x11 */
			8800 0 0 1 &i8259 9 2
			8800 0 0 2 &i8259 a 2
			8800 0 0 3 &i8259 b 2
			8800 0 0 4 &i8259 c 2
239

240 241 242 243 244
			/* IDSEL 0x12 */
			9000 0 0 1 &i8259 a 2
			9000 0 0 2 &i8259 b 2
			9000 0 0 3 &i8259 c 2
			9000 0 0 4 &i8259 9 2
245

246 247 248 249 250
			// IDSEL 0x1c  USB
			e000 0 0 0 &i8259 c 2
			e100 0 0 0 &i8259 9 2
			e200 0 0 0 &i8259 a 2
			e300 0 0 0 &i8259 b 2
251

252 253
			// IDSEL 0x1d  Audio
			e800 0 0 0 &i8259 6 2
254

255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275
			// IDSEL 0x1e Legacy
			f000 0 0 0 &i8259 7 2
			f100 0 0 0 &i8259 7 2

			// IDSEL 0x1f IDE/SATA
			f800 0 0 0 &i8259 e 2
			f900 0 0 0 &i8259 5 2
			>;

		pcie@0 {
			reg = <0 0 0 0 0>;
			#size-cells = <2>;
			#address-cells = <3>;
			device_type = "pci";
			ranges = <02000000 0 80000000
				  02000000 0 80000000
				  0 20000000

				  01000000 0 00000000
				  01000000 0 00000000
				  0 00100000>;
276 277 278 279 280 281 282 283 284 285
			uli1575@0 {
				reg = <0 0 0 0 0>;
				#size-cells = <2>;
				#address-cells = <3>;
				ranges = <02000000 0 80000000
					  02000000 0 80000000
					  0 20000000
					  01000000 0 00000000
					  01000000 0 00000000
					  0 00100000>;
286 287 288 289 290 291 292 293 294
				isa@1e {
					device_type = "isa";
					#interrupt-cells = <2>;
					#size-cells = <1>;
					#address-cells = <2>;
					reg = <f000 0 0 0 0>;
					ranges = <1 0 01000000 0 0
						  00001000>;
					interrupt-parent = <&i8259>;
295

296 297 298 299 300 301 302
					i8259: interrupt-controller@20 {
						reg = <1 20 2
						       1 a0 2
						       1 4d0 2>;
						interrupt-controller;
						device_type = "interrupt-controller";
						#address-cells = <0>;
303
						#interrupt-cells = <2>;
304 305 306 307
						compatible = "chrp,iic";
						interrupts = <9 2>;
						interrupt-parent = <&mpic>;
					};
308

309 310 311 312 313 314 315
					i8042@60 {
						#size-cells = <0>;
						#address-cells = <1>;
						reg = <1 60 1 1 64 1>;
						interrupts = <1 3 c 3>;
						interrupt-parent =
							<&i8259>;
316

317 318 319
						keyboard@0 {
							reg = <0>;
							compatible = "pnpPNP,303";
320 321
						};

322 323 324
						mouse@1 {
							reg = <1>;
							compatible = "pnpPNP,f03";
325
						};
326
					};
327

328 329 330 331 332 333 334 335
					rtc@70 {
						compatible =
							"pnpPNP,b00";
						reg = <1 70 2>;
					};

					gpio@400 {
						reg = <1 400 80>;
336 337
					};
				};
338 339
			};
		};
340

341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365
	};

	pcie@f8009000 {
		compatible = "fsl,mpc8641-pcie";
		device_type = "pci";
		#interrupt-cells = <1>;
		#size-cells = <2>;
		#address-cells = <3>;
		reg = <f8009000 1000>;
		bus-range = <0 ff>;
		ranges = <02000000 0 a0000000 a0000000 0 20000000
			  01000000 0 00000000 e3000000 0 00100000>;
		clock-frequency = <1fca055>;
		interrupt-parent = <&mpic>;
		interrupts = <19 2>;
		interrupt-map-mask = <f800 0 0 7>;
		interrupt-map = <
			/* IDSEL 0x0 */
			0000 0 0 1 &mpic 4 1
			0000 0 0 2 &mpic 5 1
			0000 0 0 3 &mpic 6 1
			0000 0 0 4 &mpic 7 1
			>;
		pcie@0 {
			reg = <0 0 0 0 0>;
366 367
			#size-cells = <2>;
			#address-cells = <3>;
368 369 370 371
			device_type = "pci";
			ranges = <02000000 0 a0000000
				  02000000 0 a0000000
				  0 20000000
372

373 374 375
				  01000000 0 00000000
				  01000000 0 00000000
				  0 00100000>;
376 377 378
		};
	};
};