omap4.dtsi 14.2 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
/*
 * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 as
 * published by the Free Software Foundation.
 */

/*
 * Carveout for multimedia usecases
 * It should be the last 48MB of the first 512MB memory part
 * In theory, it should not even exist. That zone should be reserved
 * dynamically during the .reserve callback.
 */
/memreserve/ 0x9d000000 0x03000000;

/include/ "skeleton.dtsi"

/ {
	compatible = "ti,omap4430", "ti,omap4";
	interrupt-parent = <&gic>;

	aliases {
24 25 26 27
		serial0 = &uart1;
		serial1 = &uart2;
		serial2 = &uart3;
		serial3 = &uart4;
28 29
	};

30 31 32
	cpus {
		cpu@0 {
			compatible = "arm,cortex-a9";
33
			next-level-cache = <&L2>;
34 35 36
		};
		cpu@1 {
			compatible = "arm,cortex-a9";
37
			next-level-cache = <&L2>;
38 39 40
		};
	};

41 42 43 44 45 46 47 48
	gic: interrupt-controller@48241000 {
		compatible = "arm,cortex-a9-gic";
		interrupt-controller;
		#interrupt-cells = <3>;
		reg = <0x48241000 0x1000>,
		      <0x48240100 0x0100>;
	};

49 50 51 52 53 54 55
	L2: l2-cache-controller@48242000 {
		compatible = "arm,pl310-cache";
		reg = <0x48242000 0x1000>;
		cache-unified;
		cache-level = <2>;
	};

56 57 58 59 60 61
	local-timer@0x48240600 {
		compatible = "arm,cortex-a9-twd-timer";
		reg = <0x48240600 0x20>;
		interrupts = <1 13 0x304>;
	};

62 63 64 65 66 67
	/*
	 * The soc node represents the soc top level view. It is uses for IPs
	 * that are not memory mapped in the MPU view or for the MPU itself.
	 */
	soc {
		compatible = "ti,omap-infra";
68 69 70 71 72 73 74 75 76 77 78 79 80 81
		mpu {
			compatible = "ti,omap4-mpu";
			ti,hwmods = "mpu";
		};

		dsp {
			compatible = "ti,omap3-c64";
			ti,hwmods = "dsp";
		};

		iva {
			compatible = "ti,ivahd";
			ti,hwmods = "iva";
		};
82 83 84 85 86 87 88 89 90 91
	};

	/*
	 * XXX: Use a flat representation of the OMAP4 interconnect.
	 * The real OMAP interconnect network is quite complex.
	 * Since that will not bring real advantage to represent that in DT for
	 * the moment, just use a fake OCP bus entry to represent the whole bus
	 * hierarchy.
	 */
	ocp {
92
		compatible = "ti,omap4-l3-noc", "simple-bus";
93 94 95
		#address-cells = <1>;
		#size-cells = <1>;
		ranges;
96
		ti,hwmods = "l3_main_1", "l3_main_2", "l3_main_3";
97

J
Jon Hunter 已提交
98 99 100 101 102 103
		counter32k: counter@4a304000 {
			compatible = "ti,omap-counter32k";
			reg = <0x4a304000 0x20>;
			ti,hwmods = "counter_32k";
		};

104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120
		omap4_pmx_core: pinmux@4a100040 {
			compatible = "ti,omap4-padconf", "pinctrl-single";
			reg = <0x4a100040 0x0196>;
			#address-cells = <1>;
			#size-cells = <0>;
			pinctrl-single,register-width = <16>;
			pinctrl-single,function-mask = <0x7fff>;
		};
		omap4_pmx_wkup: pinmux@4a31e040 {
			compatible = "ti,omap4-padconf", "pinctrl-single";
			reg = <0x4a31e040 0x0038>;
			#address-cells = <1>;
			#size-cells = <0>;
			pinctrl-single,register-width = <16>;
			pinctrl-single,function-mask = <0x7fff>;
		};

121 122 123 124 125 126 127 128 129 130 131 132
		sdma: dma-controller@4a056000 {
			compatible = "ti,omap4430-sdma";
			reg = <0x4a056000 0x1000>;
			interrupts = <0 12 0x4>,
				     <0 13 0x4>,
				     <0 14 0x4>,
				     <0 15 0x4>;
			#dma-cells = <1>;
			#dma-channels = <32>;
			#dma-requests = <127>;
		};

B
Benoit Cousson 已提交
133 134
		gpio1: gpio@4a310000 {
			compatible = "ti,omap4-gpio";
135 136
			reg = <0x4a310000 0x200>;
			interrupts = <0 29 0x4>;
B
Benoit Cousson 已提交
137 138 139 140 141 142 143 144 145
			ti,hwmods = "gpio1";
			gpio-controller;
			#gpio-cells = <2>;
			interrupt-controller;
			#interrupt-cells = <1>;
		};

		gpio2: gpio@48055000 {
			compatible = "ti,omap4-gpio";
146 147
			reg = <0x48055000 0x200>;
			interrupts = <0 30 0x4>;
B
Benoit Cousson 已提交
148 149 150 151 152 153 154 155 156
			ti,hwmods = "gpio2";
			gpio-controller;
			#gpio-cells = <2>;
			interrupt-controller;
			#interrupt-cells = <1>;
		};

		gpio3: gpio@48057000 {
			compatible = "ti,omap4-gpio";
157 158
			reg = <0x48057000 0x200>;
			interrupts = <0 31 0x4>;
B
Benoit Cousson 已提交
159 160 161 162 163 164 165 166 167
			ti,hwmods = "gpio3";
			gpio-controller;
			#gpio-cells = <2>;
			interrupt-controller;
			#interrupt-cells = <1>;
		};

		gpio4: gpio@48059000 {
			compatible = "ti,omap4-gpio";
168 169
			reg = <0x48059000 0x200>;
			interrupts = <0 32 0x4>;
B
Benoit Cousson 已提交
170 171 172 173 174 175 176 177 178
			ti,hwmods = "gpio4";
			gpio-controller;
			#gpio-cells = <2>;
			interrupt-controller;
			#interrupt-cells = <1>;
		};

		gpio5: gpio@4805b000 {
			compatible = "ti,omap4-gpio";
179 180
			reg = <0x4805b000 0x200>;
			interrupts = <0 33 0x4>;
B
Benoit Cousson 已提交
181 182 183 184 185 186 187 188 189
			ti,hwmods = "gpio5";
			gpio-controller;
			#gpio-cells = <2>;
			interrupt-controller;
			#interrupt-cells = <1>;
		};

		gpio6: gpio@4805d000 {
			compatible = "ti,omap4-gpio";
190 191
			reg = <0x4805d000 0x200>;
			interrupts = <0 34 0x4>;
B
Benoit Cousson 已提交
192 193 194 195 196 197
			ti,hwmods = "gpio6";
			gpio-controller;
			#gpio-cells = <2>;
			interrupt-controller;
			#interrupt-cells = <1>;
		};
198

199
		uart1: serial@4806a000 {
200
			compatible = "ti,omap4-uart";
201 202
			reg = <0x4806a000 0x100>;
			interrupts = <0 72 0x4>;
203 204 205 206
			ti,hwmods = "uart1";
			clock-frequency = <48000000>;
		};

207
		uart2: serial@4806c000 {
208
			compatible = "ti,omap4-uart";
209 210
			reg = <0x4806c000 0x100>;
			interrupts = <0 73 0x4>;
211 212 213 214
			ti,hwmods = "uart2";
			clock-frequency = <48000000>;
		};

215
		uart3: serial@48020000 {
216
			compatible = "ti,omap4-uart";
217 218
			reg = <0x48020000 0x100>;
			interrupts = <0 74 0x4>;
219 220 221 222
			ti,hwmods = "uart3";
			clock-frequency = <48000000>;
		};

223
		uart4: serial@4806e000 {
224
			compatible = "ti,omap4-uart";
225 226
			reg = <0x4806e000 0x100>;
			interrupts = <0 70 0x4>;
227 228 229
			ti,hwmods = "uart4";
			clock-frequency = <48000000>;
		};
230 231 232

		i2c1: i2c@48070000 {
			compatible = "ti,omap4-i2c";
233 234
			reg = <0x48070000 0x100>;
			interrupts = <0 56 0x4>;
235 236 237 238 239 240 241
			#address-cells = <1>;
			#size-cells = <0>;
			ti,hwmods = "i2c1";
		};

		i2c2: i2c@48072000 {
			compatible = "ti,omap4-i2c";
242 243
			reg = <0x48072000 0x100>;
			interrupts = <0 57 0x4>;
244 245 246 247 248 249 250
			#address-cells = <1>;
			#size-cells = <0>;
			ti,hwmods = "i2c2";
		};

		i2c3: i2c@48060000 {
			compatible = "ti,omap4-i2c";
251 252
			reg = <0x48060000 0x100>;
			interrupts = <0 61 0x4>;
253 254 255 256 257 258 259
			#address-cells = <1>;
			#size-cells = <0>;
			ti,hwmods = "i2c3";
		};

		i2c4: i2c@48350000 {
			compatible = "ti,omap4-i2c";
260 261
			reg = <0x48350000 0x100>;
			interrupts = <0 62 0x4>;
262 263 264 265
			#address-cells = <1>;
			#size-cells = <0>;
			ti,hwmods = "i2c4";
		};
266 267 268

		mcspi1: spi@48098000 {
			compatible = "ti,omap4-mcspi";
269 270
			reg = <0x48098000 0x200>;
			interrupts = <0 65 0x4>;
271 272 273 274
			#address-cells = <1>;
			#size-cells = <0>;
			ti,hwmods = "mcspi1";
			ti,spi-num-cs = <4>;
275 276 277 278 279 280 281 282 283 284
			dmas = <&sdma 35>,
			       <&sdma 36>,
			       <&sdma 37>,
			       <&sdma 38>,
			       <&sdma 39>,
			       <&sdma 40>,
			       <&sdma 41>,
			       <&sdma 42>;
			dma-names = "tx0", "rx0", "tx1", "rx1",
				    "tx2", "rx2", "tx3", "rx3";
285 286 287 288
		};

		mcspi2: spi@4809a000 {
			compatible = "ti,omap4-mcspi";
289 290
			reg = <0x4809a000 0x200>;
			interrupts = <0 66 0x4>;
291 292 293 294
			#address-cells = <1>;
			#size-cells = <0>;
			ti,hwmods = "mcspi2";
			ti,spi-num-cs = <2>;
295 296 297 298 299
			dmas = <&sdma 43>,
			       <&sdma 44>,
			       <&sdma 45>,
			       <&sdma 46>;
			dma-names = "tx0", "rx0", "tx1", "rx1";
300 301 302 303
		};

		mcspi3: spi@480b8000 {
			compatible = "ti,omap4-mcspi";
304 305
			reg = <0x480b8000 0x200>;
			interrupts = <0 91 0x4>;
306 307 308 309
			#address-cells = <1>;
			#size-cells = <0>;
			ti,hwmods = "mcspi3";
			ti,spi-num-cs = <2>;
310 311
			dmas = <&sdma 15>, <&sdma 16>;
			dma-names = "tx0", "rx0";
312 313 314 315
		};

		mcspi4: spi@480ba000 {
			compatible = "ti,omap4-mcspi";
316 317
			reg = <0x480ba000 0x200>;
			interrupts = <0 48 0x4>;
318 319 320 321
			#address-cells = <1>;
			#size-cells = <0>;
			ti,hwmods = "mcspi4";
			ti,spi-num-cs = <1>;
322 323
			dmas = <&sdma 70>, <&sdma 71>;
			dma-names = "tx0", "rx0";
324
		};
325 326 327

		mmc1: mmc@4809c000 {
			compatible = "ti,omap4-hsmmc";
328 329
			reg = <0x4809c000 0x400>;
			interrupts = <0 83 0x4>;
330 331 332
			ti,hwmods = "mmc1";
			ti,dual-volt;
			ti,needs-special-reset;
333 334
			dmas = <&sdma 61>, <&sdma 62>;
			dma-names = "tx", "rx";
335 336 337 338
		};

		mmc2: mmc@480b4000 {
			compatible = "ti,omap4-hsmmc";
339 340
			reg = <0x480b4000 0x400>;
			interrupts = <0 86 0x4>;
341 342
			ti,hwmods = "mmc2";
			ti,needs-special-reset;
343 344
			dmas = <&sdma 47>, <&sdma 48>;
			dma-names = "tx", "rx";
345 346 347 348
		};

		mmc3: mmc@480ad000 {
			compatible = "ti,omap4-hsmmc";
349 350
			reg = <0x480ad000 0x400>;
			interrupts = <0 94 0x4>;
351 352
			ti,hwmods = "mmc3";
			ti,needs-special-reset;
353 354
			dmas = <&sdma 77>, <&sdma 78>;
			dma-names = "tx", "rx";
355 356 357 358
		};

		mmc4: mmc@480d1000 {
			compatible = "ti,omap4-hsmmc";
359 360
			reg = <0x480d1000 0x400>;
			interrupts = <0 96 0x4>;
361 362
			ti,hwmods = "mmc4";
			ti,needs-special-reset;
363 364
			dmas = <&sdma 57>, <&sdma 58>;
			dma-names = "tx", "rx";
365 366 367 368
		};

		mmc5: mmc@480d5000 {
			compatible = "ti,omap4-hsmmc";
369 370
			reg = <0x480d5000 0x400>;
			interrupts = <0 59 0x4>;
371 372
			ti,hwmods = "mmc5";
			ti,needs-special-reset;
373 374
			dmas = <&sdma 59>, <&sdma 60>;
			dma-names = "tx", "rx";
375
		};
376 377 378

		wdt2: wdt@4a314000 {
			compatible = "ti,omap4-wdt", "ti,omap3-wdt";
379 380
			reg = <0x4a314000 0x80>;
			interrupts = <0 80 0x4>;
381 382
			ti,hwmods = "wd_timer2";
		};
383 384 385 386 387

		mcpdm: mcpdm@40132000 {
			compatible = "ti,omap4-mcpdm";
			reg = <0x40132000 0x7f>, /* MPU private access */
			      <0x49032000 0x7f>; /* L3 Interconnect */
388
			reg-names = "mpu", "dma";
389 390 391
			interrupts = <0 112 0x4>;
			ti,hwmods = "mcpdm";
		};
392 393 394 395 396

		dmic: dmic@4012e000 {
			compatible = "ti,omap4-dmic";
			reg = <0x4012e000 0x7f>, /* MPU private access */
			      <0x4902e000 0x7f>; /* L3 Interconnect */
397
			reg-names = "mpu", "dma";
398 399 400
			interrupts = <0 114 0x4>;
			ti,hwmods = "dmic";
		};
401

402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444
		mcbsp1: mcbsp@40122000 {
			compatible = "ti,omap4-mcbsp";
			reg = <0x40122000 0xff>, /* MPU private access */
			      <0x49022000 0xff>; /* L3 Interconnect */
			reg-names = "mpu", "dma";
			interrupts = <0 17 0x4>;
			interrupt-names = "common";
			ti,buffer-size = <128>;
			ti,hwmods = "mcbsp1";
		};

		mcbsp2: mcbsp@40124000 {
			compatible = "ti,omap4-mcbsp";
			reg = <0x40124000 0xff>, /* MPU private access */
			      <0x49024000 0xff>; /* L3 Interconnect */
			reg-names = "mpu", "dma";
			interrupts = <0 22 0x4>;
			interrupt-names = "common";
			ti,buffer-size = <128>;
			ti,hwmods = "mcbsp2";
		};

		mcbsp3: mcbsp@40126000 {
			compatible = "ti,omap4-mcbsp";
			reg = <0x40126000 0xff>, /* MPU private access */
			      <0x49026000 0xff>; /* L3 Interconnect */
			reg-names = "mpu", "dma";
			interrupts = <0 23 0x4>;
			interrupt-names = "common";
			ti,buffer-size = <128>;
			ti,hwmods = "mcbsp3";
		};

		mcbsp4: mcbsp@48096000 {
			compatible = "ti,omap4-mcbsp";
			reg = <0x48096000 0xff>; /* L4 Interconnect */
			reg-names = "mpu";
			interrupts = <0 16 0x4>;
			interrupt-names = "common";
			ti,buffer-size = <128>;
			ti,hwmods = "mcbsp4";
		};

445 446
		keypad: keypad@4a31c000 {
			compatible = "ti,omap4-keypad";
447 448 449
			reg = <0x4a31c000 0x80>;
			interrupts = <0 120 0x4>;
			reg-names = "mpu";
450 451
			ti,hwmods = "kbd";
		};
452 453 454

		emif1: emif@4c000000 {
			compatible = "ti,emif-4d";
455 456
			reg = <0x4c000000 0x100>;
			interrupts = <0 110 0x4>;
457 458 459 460 461 462 463 464 465
			ti,hwmods = "emif1";
			phy-type = <1>;
			hw-caps-read-idle-ctrl;
			hw-caps-ll-interface;
			hw-caps-temp-alert;
		};

		emif2: emif@4d000000 {
			compatible = "ti,emif-4d";
466 467
			reg = <0x4d000000 0x100>;
			interrupts = <0 111 0x4>;
468 469 470 471 472 473
			ti,hwmods = "emif2";
			phy-type = <1>;
			hw-caps-read-idle-ctrl;
			hw-caps-ll-interface;
			hw-caps-temp-alert;
		};
474

475
		ocp2scp@4a0ad000 {
476
			compatible = "ti,omap-ocp2scp";
477
			reg = <0x4a0ad000 0x1f>;
478 479 480 481
			#address-cells = <1>;
			#size-cells = <1>;
			ranges;
			ti,hwmods = "ocp2scp_usb_phy";
482 483 484 485 486
			usb2_phy: usb2phy@4a0ad080 {
				compatible = "ti,omap-usb2";
				reg = <0x4a0ad080 0x58>;
				ctrl-module = <&omap_control_usb>;
			};
487
		};
J
Jon Hunter 已提交
488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517

		timer1: timer@4a318000 {
			compatible = "ti,omap2-timer";
			reg = <0x4a318000 0x80>;
			interrupts = <0 37 0x4>;
			ti,hwmods = "timer1";
			ti,timer-alwon;
		};

		timer2: timer@48032000 {
			compatible = "ti,omap2-timer";
			reg = <0x48032000 0x80>;
			interrupts = <0 38 0x4>;
			ti,hwmods = "timer2";
		};

		timer3: timer@48034000 {
			compatible = "ti,omap2-timer";
			reg = <0x48034000 0x80>;
			interrupts = <0 39 0x4>;
			ti,hwmods = "timer3";
		};

		timer4: timer@48036000 {
			compatible = "ti,omap2-timer";
			reg = <0x48036000 0x80>;
			interrupts = <0 40 0x4>;
			ti,hwmods = "timer4";
		};

518
		timer5: timer@40138000 {
J
Jon Hunter 已提交
519
			compatible = "ti,omap2-timer";
520 521
			reg = <0x40138000 0x80>,
			      <0x49038000 0x80>;
J
Jon Hunter 已提交
522 523 524 525 526
			interrupts = <0 41 0x4>;
			ti,hwmods = "timer5";
			ti,timer-dsp;
		};

527
		timer6: timer@4013a000 {
J
Jon Hunter 已提交
528
			compatible = "ti,omap2-timer";
529 530
			reg = <0x4013a000 0x80>,
			      <0x4903a000 0x80>;
J
Jon Hunter 已提交
531 532 533 534 535
			interrupts = <0 42 0x4>;
			ti,hwmods = "timer6";
			ti,timer-dsp;
		};

536
		timer7: timer@4013c000 {
J
Jon Hunter 已提交
537
			compatible = "ti,omap2-timer";
538 539
			reg = <0x4013c000 0x80>,
			      <0x4903c000 0x80>;
J
Jon Hunter 已提交
540 541 542 543 544
			interrupts = <0 43 0x4>;
			ti,hwmods = "timer7";
			ti,timer-dsp;
		};

545
		timer8: timer@4013e000 {
J
Jon Hunter 已提交
546
			compatible = "ti,omap2-timer";
547 548
			reg = <0x4013e000 0x80>,
			      <0x4903e000 0x80>;
J
Jon Hunter 已提交
549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577
			interrupts = <0 44 0x4>;
			ti,hwmods = "timer8";
			ti,timer-pwm;
			ti,timer-dsp;
		};

		timer9: timer@4803e000 {
			compatible = "ti,omap2-timer";
			reg = <0x4803e000 0x80>;
			interrupts = <0 45 0x4>;
			ti,hwmods = "timer9";
			ti,timer-pwm;
		};

		timer10: timer@48086000 {
			compatible = "ti,omap2-timer";
			reg = <0x48086000 0x80>;
			interrupts = <0 46 0x4>;
			ti,hwmods = "timer10";
			ti,timer-pwm;
		};

		timer11: timer@48088000 {
			compatible = "ti,omap2-timer";
			reg = <0x48088000 0x80>;
			interrupts = <0 47 0x4>;
			ti,hwmods = "timer11";
			ti,timer-pwm;
		};
578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607

		usbhstll: usbhstll@4a062000 {
			compatible = "ti,usbhs-tll";
			reg = <0x4a062000 0x1000>;
			interrupts = <0 78 0x4>;
			ti,hwmods = "usb_tll_hs";
		};

		usbhshost: usbhshost@4a064000 {
			compatible = "ti,usbhs-host";
			reg = <0x4a064000 0x800>;
			ti,hwmods = "usb_host_hs";
			#address-cells = <1>;
			#size-cells = <1>;
			ranges;

			usbhsohci: ohci@4a064800 {
				compatible = "ti,ohci-omap3", "usb-ohci";
				reg = <0x4a064800 0x400>;
				interrupt-parent = <&gic>;
				interrupts = <0 76 0x4>;
			};

			usbhsehci: ehci@4a064c00 {
				compatible = "ti,ehci-omap", "usb-ehci";
				reg = <0x4a064c00 0x400>;
				interrupt-parent = <&gic>;
				interrupts = <0 77 0x4>;
			};
		};
608 609 610 611 612 613 614 615

		omap_control_usb: omap-control-usb@4a002300 {
			compatible = "ti,omap-control-usb";
			reg = <0x4a002300 0x4>,
			      <0x4a00233c 0x4>;
			reg-names = "control_dev_conf", "otghs_control";
			ti,type = <1>;
		};
616 617 618 619 620 621 622 623 624 625 626 627 628

		usb_otg_hs: usb_otg_hs@4a0ab000 {
			compatible = "ti,omap4-musb";
			reg = <0x4a0ab000 0x7ff>;
			interrupts = <0 92 0x4>, <0 93 0x4>;
			interrupt-names = "mc", "dma";
			ti,hwmods = "usb_otg_hs";
			usb-phy = <&usb2_phy>;
			multipoint = <1>;
			num-eps = <16>;
			ram-bits = <12>;
			ti,has-mailbox;
		};
629 630
	};
};