mpc8641_hpcn.dts 13.8 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11
/*
 * 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.
 */

12
/dts-v1/;
13 14 15

/ {
	model = "MPC8641HPCN";
16
	compatible = "fsl,mpc8641hpcn";
17 18 19
	#address-cells = <1>;
	#size-cells = <1>;

20 21 22 23 24 25 26 27 28
	aliases {
		ethernet0 = &enet0;
		ethernet1 = &enet1;
		ethernet2 = &enet2;
		ethernet3 = &enet3;
		serial0 = &serial0;
		serial1 = &serial1;
		pci0 = &pci0;
		pci1 = &pci1;
29 30 31 32 33 34 35
/*
 * Only one of Rapid IO or PCI can be present due to HW limitations and
 * due to the fact that the 2 now share address space in the new memory
 * map.  The most likely case is that we have PCI, so comment out the
 * rapidio node.  Leave it here for reference.
 */
		/* rapidio0 = &rapidio0; */
36 37
	};

38 39 40 41 42 43 44
	cpus {
		#address-cells = <1>;
		#size-cells = <0>;

		PowerPC,8641@0 {
			device_type = "cpu";
			reg = <0>;
45 46 47 48 49
			d-cache-line-size = <32>;
			i-cache-line-size = <32>;
			d-cache-size = <32768>;		// L1
			i-cache-size = <32768>;		// L1
			timebase-frequency = <0>;	// From uboot
50 51 52 53 54 55
			bus-frequency = <0>;		// From uboot
			clock-frequency = <0>;		// From uboot
		};
		PowerPC,8641@1 {
			device_type = "cpu";
			reg = <1>;
56 57 58 59 60
			d-cache-line-size = <32>;
			i-cache-line-size = <32>;
			d-cache-size = <32768>;
			i-cache-size = <32768>;
			timebase-frequency = <0>;	// From uboot
61 62 63 64 65 66 67
			bus-frequency = <0>;		// From uboot
			clock-frequency = <0>;		// From uboot
		};
	};

	memory {
		device_type = "memory";
68
		reg = <0x00000000 0x40000000>;	// 1G at 0x0
69 70
	};

71
	localbus@ffe05000 {
72 73 74
		#address-cells = <2>;
		#size-cells = <1>;
		compatible = "fsl,mpc8641-localbus", "simple-bus";
75
		reg = <0xffe05000 0x1000>;
76
		interrupts = <19 2>;
77 78
		interrupt-parent = <&mpic>;

79 80 81
		ranges = <0 0 0xef800000 0x00800000
			  2 0 0xffdf8000 0x00008000
			  3 0 0xffdf0000 0x00008000>;
82 83 84

		flash@0,0 {
			compatible = "cfi-flash";
85
			reg = <0 0 0x00800000>;
86 87 88 89 90 91
			bank-width = <2>;
			device-width = <2>;
			#address-cells = <1>;
			#size-cells = <1>;
			partition@0 {
				label = "kernel";
92
				reg = <0x00000000 0x00300000>;
93 94 95
			};
			partition@300000 {
				label = "firmware b";
96
				reg = <0x00300000 0x00100000>;
97 98 99 100
				read-only;
			};
			partition@400000 {
				label = "fs";
101
				reg = <0x00400000 0x00300000>;
102 103 104
			};
			partition@700000 {
				label = "firmware a";
105
				reg = <0x00700000 0x00100000>;
106 107 108 109 110
				read-only;
			};
		};
	};

111
	soc8641@ffe00000 {
112 113 114
		#address-cells = <1>;
		#size-cells = <1>;
		device_type = "soc";
115
		compatible = "simple-bus";
116 117
		ranges = <0x00000000 0xffe00000 0x00100000>;
		reg = <0xffe00000 0x00001000>;	// CCSRBAR
118 119 120
		bus-frequency = <0>;

		i2c@3000 {
121 122 123
			#address-cells = <1>;
			#size-cells = <0>;
			cell-index = <0>;
124
			compatible = "fsl-i2c";
125 126
			reg = <0x3000 0x100>;
			interrupts = <43 2>;
127
			interrupt-parent = <&mpic>;
128 129 130 131
			dfsrr;
		};

		i2c@3100 {
132 133 134
			#address-cells = <1>;
			#size-cells = <0>;
			cell-index = <1>;
135
			compatible = "fsl-i2c";
136 137
			reg = <0x3100 0x100>;
			interrupts = <43 2>;
138
			interrupt-parent = <&mpic>;
139 140 141
			dfsrr;
		};

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
		dma@21300 {
			#address-cells = <1>;
			#size-cells = <1>;
			compatible = "fsl,mpc8641-dma", "fsl,eloplus-dma";
			reg = <0x21300 0x4>;
			ranges = <0x0 0x21100 0x200>;
			cell-index = <0>;
			dma-channel@0 {
				compatible = "fsl,mpc8641-dma-channel",
						"fsl,eloplus-dma-channel";
				reg = <0x0 0x80>;
				cell-index = <0>;
				interrupt-parent = <&mpic>;
				interrupts = <20 2>;
			};
			dma-channel@80 {
				compatible = "fsl,mpc8641-dma-channel",
						"fsl,eloplus-dma-channel";
				reg = <0x80 0x80>;
				cell-index = <1>;
				interrupt-parent = <&mpic>;
				interrupts = <21 2>;
			};
			dma-channel@100 {
				compatible = "fsl,mpc8641-dma-channel",
						"fsl,eloplus-dma-channel";
				reg = <0x100 0x80>;
				cell-index = <2>;
				interrupt-parent = <&mpic>;
				interrupts = <22 2>;
			};
			dma-channel@180 {
				compatible = "fsl,mpc8641-dma-channel",
						"fsl,eloplus-dma-channel";
				reg = <0x180 0x80>;
				cell-index = <3>;
				interrupt-parent = <&mpic>;
				interrupts = <23 2>;
			};
		};

183
		enet0: ethernet@24000 {
184 185
			#address-cells = <1>;
			#size-cells = <1>;
186
			cell-index = <0>;
187 188 189
			device_type = "network";
			model = "TSEC";
			compatible = "gianfar";
190
			reg = <0x24000 0x1000>;
191
			ranges = <0x0 0x24000 0x1000>;
192
			local-mac-address = [ 00 00 00 00 00 00 ];
193
			interrupts = <29 2 30  2 34 2>;
194
			interrupt-parent = <&mpic>;
195
			tbi-handle = <&tbi0>;
196
			phy-handle = <&phy0>;
197
			phy-connection-type = "rgmii-id";
198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233

			mdio@520 {
				#address-cells = <1>;
				#size-cells = <0>;
				compatible = "fsl,gianfar-mdio";
				reg = <0x520 0x20>;

				phy0: ethernet-phy@0 {
					interrupt-parent = <&mpic>;
					interrupts = <10 1>;
					reg = <0>;
					device_type = "ethernet-phy";
				};
				phy1: ethernet-phy@1 {
					interrupt-parent = <&mpic>;
					interrupts = <10 1>;
					reg = <1>;
					device_type = "ethernet-phy";
				};
				phy2: ethernet-phy@2 {
					interrupt-parent = <&mpic>;
					interrupts = <10 1>;
					reg = <2>;
					device_type = "ethernet-phy";
				};
				phy3: ethernet-phy@3 {
					interrupt-parent = <&mpic>;
					interrupts = <10 1>;
					reg = <3>;
					device_type = "ethernet-phy";
				};
				tbi0: tbi-phy@11 {
					reg = <0x11>;
					device_type = "tbi-phy";
				};
			};
234 235
		};

236
		enet1: ethernet@25000 {
237 238
			#address-cells = <1>;
			#size-cells = <1>;
239
			cell-index = <1>;
240 241 242
			device_type = "network";
			model = "TSEC";
			compatible = "gianfar";
243
			reg = <0x25000 0x1000>;
244
			ranges = <0x0 0x25000 0x1000>;
245
			local-mac-address = [ 00 00 00 00 00 00 ];
246
			interrupts = <35 2 36 2 40 2>;
247
			interrupt-parent = <&mpic>;
248
			tbi-handle = <&tbi1>;
249
			phy-handle = <&phy1>;
250
			phy-connection-type = "rgmii-id";
251 252 253 254 255 256 257 258 259 260 261 262

			mdio@520 {
				#address-cells = <1>;
				#size-cells = <0>;
				compatible = "fsl,gianfar-tbi";
				reg = <0x520 0x20>;

				tbi1: tbi-phy@11 {
					reg = <0x11>;
					device_type = "tbi-phy";
				};
			};
263 264
		};
		
265
		enet2: ethernet@26000 {
266 267
			#address-cells = <1>;
			#size-cells = <1>;
268
			cell-index = <2>;
269 270 271
			device_type = "network";
			model = "TSEC";
			compatible = "gianfar";
272
			reg = <0x26000 0x1000>;
273
			ranges = <0x0 0x26000 0x1000>;
274
			local-mac-address = [ 00 00 00 00 00 00 ];
275
			interrupts = <31 2 32 2 33 2>;
276
			interrupt-parent = <&mpic>;
277
			tbi-handle = <&tbi2>;
278
			phy-handle = <&phy2>;
279
			phy-connection-type = "rgmii-id";
280 281 282 283 284 285 286 287 288 289 290 291

			mdio@520 {
				#address-cells = <1>;
				#size-cells = <0>;
				compatible = "fsl,gianfar-tbi";
				reg = <0x520 0x20>;

				tbi2: tbi-phy@11 {
					reg = <0x11>;
					device_type = "tbi-phy";
				};
			};
292 293
		};

294
		enet3: ethernet@27000 {
295 296
			#address-cells = <1>;
			#size-cells = <1>;
297
			cell-index = <3>;
298 299 300
			device_type = "network";
			model = "TSEC";
			compatible = "gianfar";
301
			reg = <0x27000 0x1000>;
302
			ranges = <0x0 0x27000 0x1000>;
303
			local-mac-address = [ 00 00 00 00 00 00 ];
304
			interrupts = <37 2 38 2 39 2>;
305
			interrupt-parent = <&mpic>;
306
			tbi-handle = <&tbi3>;
307
			phy-handle = <&phy3>;
308
			phy-connection-type = "rgmii-id";
309 310 311 312 313 314 315 316 317 318 319 320

			mdio@520 {
				#address-cells = <1>;
				#size-cells = <0>;
				compatible = "fsl,gianfar-tbi";
				reg = <0x520 0x20>;

				tbi3: tbi-phy@11 {
					reg = <0x11>;
					device_type = "tbi-phy";
				};
			};
321
		};
322 323

		serial0: serial@4500 {
324
			cell-index = <0>;
325 326
			device_type = "serial";
			compatible = "ns16550";
327
			reg = <0x4500 0x100>;
328
			clock-frequency = <0>;
329
			interrupts = <42 2>;
330
			interrupt-parent = <&mpic>;
331 332
		};

333
		serial1: serial@4600 {
334
			cell-index = <1>;
335 336
			device_type = "serial";
			compatible = "ns16550";
337
			reg = <0x4600 0x100>;
338
			clock-frequency = <0>;
339
			interrupts = <28 2>;
340
			interrupt-parent = <&mpic>;
341 342
		};

343 344 345 346
		mpic: pic@40000 {
			interrupt-controller;
			#address-cells = <0>;
			#interrupt-cells = <2>;
347
			reg = <0x40000 0x40000>;
348 349 350
			compatible = "chrp,open-pic";
			device_type = "open-pic";
		};
351 352 353

		global-utilities@e0000 {
			compatible = "fsl,mpc8641-guts";
354
			reg = <0xe0000 0x1000>;
355 356
			fsl,has-rstcr;
		};
357
	};
358

359
	pci0: pcie@ffe08000 {
360 361 362 363 364
		compatible = "fsl,mpc8641-pcie";
		device_type = "pci";
		#interrupt-cells = <1>;
		#size-cells = <2>;
		#address-cells = <3>;
365
		reg = <0xffe08000 0x1000>;
366 367
		bus-range = <0x0 0xff>;
		ranges = <0x02000000 0x0 0x80000000 0x80000000 0x0 0x20000000
368
			  0x01000000 0x0 0x00000000 0xffc00000 0x0 0x00010000>;
369
		clock-frequency = <33333333>;
370
		interrupt-parent = <&mpic>;
371 372
		interrupts = <24 2>;
		interrupt-map-mask = <0xff00 0 0 7>;
373
		interrupt-map = <
374
			/* IDSEL 0x11 func 0 - PCI slot 1 */
375 376 377 378
			0x8800 0 0 1 &mpic 2 1
			0x8800 0 0 2 &mpic 3 1
			0x8800 0 0 3 &mpic 4 1
			0x8800 0 0 4 &mpic 1 1
379 380

			/* IDSEL 0x11 func 1 - PCI slot 1 */
381 382 383 384
			0x8900 0 0 1 &mpic 2 1
			0x8900 0 0 2 &mpic 3 1
			0x8900 0 0 3 &mpic 4 1
			0x8900 0 0 4 &mpic 1 1
385 386

			/* IDSEL 0x11 func 2 - PCI slot 1 */
387 388 389 390
			0x8a00 0 0 1 &mpic 2 1
			0x8a00 0 0 2 &mpic 3 1
			0x8a00 0 0 3 &mpic 4 1
			0x8a00 0 0 4 &mpic 1 1
391 392

			/* IDSEL 0x11 func 3 - PCI slot 1 */
393 394 395 396
			0x8b00 0 0 1 &mpic 2 1
			0x8b00 0 0 2 &mpic 3 1
			0x8b00 0 0 3 &mpic 4 1
			0x8b00 0 0 4 &mpic 1 1
397 398

			/* IDSEL 0x11 func 4 - PCI slot 1 */
399 400 401 402
			0x8c00 0 0 1 &mpic 2 1
			0x8c00 0 0 2 &mpic 3 1
			0x8c00 0 0 3 &mpic 4 1
			0x8c00 0 0 4 &mpic 1 1
403 404

			/* IDSEL 0x11 func 5 - PCI slot 1 */
405 406 407 408
			0x8d00 0 0 1 &mpic 2 1
			0x8d00 0 0 2 &mpic 3 1
			0x8d00 0 0 3 &mpic 4 1
			0x8d00 0 0 4 &mpic 1 1
409 410

			/* IDSEL 0x11 func 6 - PCI slot 1 */
411 412 413 414
			0x8e00 0 0 1 &mpic 2 1
			0x8e00 0 0 2 &mpic 3 1
			0x8e00 0 0 3 &mpic 4 1
			0x8e00 0 0 4 &mpic 1 1
415 416

			/* IDSEL 0x11 func 7 - PCI slot 1 */
417 418 419 420
			0x8f00 0 0 1 &mpic 2 1
			0x8f00 0 0 2 &mpic 3 1
			0x8f00 0 0 3 &mpic 4 1
			0x8f00 0 0 4 &mpic 1 1
421 422

			/* IDSEL 0x12 func 0 - PCI slot 2 */
423 424 425 426
			0x9000 0 0 1 &mpic 3 1
			0x9000 0 0 2 &mpic 4 1
			0x9000 0 0 3 &mpic 1 1
			0x9000 0 0 4 &mpic 2 1
427 428

			/* IDSEL 0x12 func 1 - PCI slot 2 */
429 430 431 432
			0x9100 0 0 1 &mpic 3 1
			0x9100 0 0 2 &mpic 4 1
			0x9100 0 0 3 &mpic 1 1
			0x9100 0 0 4 &mpic 2 1
433 434

			/* IDSEL 0x12 func 2 - PCI slot 2 */
435 436 437 438
			0x9200 0 0 1 &mpic 3 1
			0x9200 0 0 2 &mpic 4 1
			0x9200 0 0 3 &mpic 1 1
			0x9200 0 0 4 &mpic 2 1
439 440

			/* IDSEL 0x12 func 3 - PCI slot 2 */
441 442 443 444
			0x9300 0 0 1 &mpic 3 1
			0x9300 0 0 2 &mpic 4 1
			0x9300 0 0 3 &mpic 1 1
			0x9300 0 0 4 &mpic 2 1
445 446

			/* IDSEL 0x12 func 4 - PCI slot 2 */
447 448 449 450
			0x9400 0 0 1 &mpic 3 1
			0x9400 0 0 2 &mpic 4 1
			0x9400 0 0 3 &mpic 1 1
			0x9400 0 0 4 &mpic 2 1
451 452

			/* IDSEL 0x12 func 5 - PCI slot 2 */
453 454 455 456
			0x9500 0 0 1 &mpic 3 1
			0x9500 0 0 2 &mpic 4 1
			0x9500 0 0 3 &mpic 1 1
			0x9500 0 0 4 &mpic 2 1
457 458

			/* IDSEL 0x12 func 6 - PCI slot 2 */
459 460 461 462
			0x9600 0 0 1 &mpic 3 1
			0x9600 0 0 2 &mpic 4 1
			0x9600 0 0 3 &mpic 1 1
			0x9600 0 0 4 &mpic 2 1
463 464

			/* IDSEL 0x12 func 7 - PCI slot 2 */
465 466 467 468
			0x9700 0 0 1 &mpic 3 1
			0x9700 0 0 2 &mpic 4 1
			0x9700 0 0 3 &mpic 1 1
			0x9700 0 0 4 &mpic 2 1
469

470
			// IDSEL 0x1c  USB
471 472 473
			0xe000 0 0 1 &i8259 12 2
			0xe100 0 0 2 &i8259 9 2
			0xe200 0 0 3 &i8259 10 2
474
			0xe300 0 0 4 &i8259 11 2
475

476
			// IDSEL 0x1d  Audio
477
			0xe800 0 0 1 &i8259 6 2
478

479
			// IDSEL 0x1e Legacy
480 481
			0xf000 0 0 1 &i8259 7 2
			0xf100 0 0 1 &i8259 7 2
482 483

			// IDSEL 0x1f IDE/SATA
484 485
			0xf800 0 0 1 &i8259 14 2
			0xf900 0 0 1 &i8259 5 2
486 487 488 489 490 491 492
			>;

		pcie@0 {
			reg = <0 0 0 0 0>;
			#size-cells = <2>;
			#address-cells = <3>;
			device_type = "pci";
493 494 495
			ranges = <0x02000000 0x0 0x80000000
				  0x02000000 0x0 0x80000000
				  0x0 0x20000000
496

497 498
				  0x01000000 0x0 0x00000000
				  0x01000000 0x0 0x00000000
499
				  0x0 0x00010000>;
500 501 502 503
			uli1575@0 {
				reg = <0 0 0 0 0>;
				#size-cells = <2>;
				#address-cells = <3>;
504 505 506 507 508
				ranges = <0x02000000 0x0 0x80000000
					  0x02000000 0x0 0x80000000
					  0x0 0x20000000
					  0x01000000 0x0 0x00000000
					  0x01000000 0x0 0x00000000
509
					  0x0 0x00010000>;
510 511 512 513 514
				isa@1e {
					device_type = "isa";
					#interrupt-cells = <2>;
					#size-cells = <1>;
					#address-cells = <2>;
515 516 517
					reg = <0xf000 0 0 0 0>;
					ranges = <1 0 0x01000000 0 0
						  0x00001000>;
518
					interrupt-parent = <&i8259>;
519

520
					i8259: interrupt-controller@20 {
521 522 523
						reg = <1 0x20 2
						       1 0xa0 2
						       1 0x4d0 2>;
524 525 526
						interrupt-controller;
						device_type = "interrupt-controller";
						#address-cells = <0>;
527
						#interrupt-cells = <2>;
528 529 530 531
						compatible = "chrp,iic";
						interrupts = <9 2>;
						interrupt-parent = <&mpic>;
					};
532

533 534 535
					i8042@60 {
						#size-cells = <0>;
						#address-cells = <1>;
536 537
						reg = <1 0x60 1 1 0x64 1>;
						interrupts = <1 3 12 3>;
538 539
						interrupt-parent =
							<&i8259>;
540

541 542 543
						keyboard@0 {
							reg = <0>;
							compatible = "pnpPNP,303";
544 545
						};

546 547 548
						mouse@1 {
							reg = <1>;
							compatible = "pnpPNP,f03";
549
						};
550
					};
551

552 553 554
					rtc@70 {
						compatible =
							"pnpPNP,b00";
555
						reg = <1 0x70 2>;
556 557 558
					};

					gpio@400 {
559
						reg = <1 0x400 0x80>;
560 561
					};
				};
562 563
			};
		};
564

565 566
	};

567
	pci1: pcie@ffe09000 {
568 569 570 571 572
		compatible = "fsl,mpc8641-pcie";
		device_type = "pci";
		#interrupt-cells = <1>;
		#size-cells = <2>;
		#address-cells = <3>;
573
		reg = <0xffe09000 0x1000>;
574 575
		bus-range = <0 0xff>;
		ranges = <0x02000000 0x0 0xa0000000 0xa0000000 0x0 0x20000000
576
			  0x01000000 0x0 0x00000000 0xffc10000 0x0 0x00010000>;
577
		clock-frequency = <33333333>;
578
		interrupt-parent = <&mpic>;
579 580
		interrupts = <25 2>;
		interrupt-map-mask = <0xf800 0 0 7>;
581 582
		interrupt-map = <
			/* IDSEL 0x0 */
583 584 585 586
			0x0000 0 0 1 &mpic 4 1
			0x0000 0 0 2 &mpic 5 1
			0x0000 0 0 3 &mpic 6 1
			0x0000 0 0 4 &mpic 7 1
587 588 589
			>;
		pcie@0 {
			reg = <0 0 0 0 0>;
590 591
			#size-cells = <2>;
			#address-cells = <3>;
592
			device_type = "pci";
593 594 595
			ranges = <0x02000000 0x0 0xa0000000
				  0x02000000 0x0 0xa0000000
				  0x0 0x20000000
596

597 598
				  0x01000000 0x0 0x00000000
				  0x01000000 0x0 0x00000000
599
				  0x0 0x00010000>;
600 601
		};
	};
602 603
/*
	rapidio0: rapidio@ffec0000 {
604 605 606
		#address-cells = <2>;
		#size-cells = <2>;
		compatible = "fsl,rapidio-delta";
607 608
		reg = <0xffec0000 0x20000>;
		ranges = <0 0 0x80000000 0 0x20000000>;
609
		interrupt-parent = <&mpic>;
610 611
		// err_irq bell_outb_irq bell_inb_irq
		//	msg1_tx_irq msg1_rx_irq	msg2_tx_irq msg2_rx_irq
612 613
		interrupts = <48 2 49 2 50 2 53 2 54 2 55 2 56 2>;
	};
614 615
*/

616
};