omap4.dtsi 11.5 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

98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114
		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>;
		};

B
Benoit Cousson 已提交
115 116
		gpio1: gpio@4a310000 {
			compatible = "ti,omap4-gpio";
117 118
			reg = <0x4a310000 0x200>;
			interrupts = <0 29 0x4>;
B
Benoit Cousson 已提交
119 120 121 122 123 124 125 126 127
			ti,hwmods = "gpio1";
			gpio-controller;
			#gpio-cells = <2>;
			interrupt-controller;
			#interrupt-cells = <1>;
		};

		gpio2: gpio@48055000 {
			compatible = "ti,omap4-gpio";
128 129
			reg = <0x48055000 0x200>;
			interrupts = <0 30 0x4>;
B
Benoit Cousson 已提交
130 131 132 133 134 135 136 137 138
			ti,hwmods = "gpio2";
			gpio-controller;
			#gpio-cells = <2>;
			interrupt-controller;
			#interrupt-cells = <1>;
		};

		gpio3: gpio@48057000 {
			compatible = "ti,omap4-gpio";
139 140
			reg = <0x48057000 0x200>;
			interrupts = <0 31 0x4>;
B
Benoit Cousson 已提交
141 142 143 144 145 146 147 148 149
			ti,hwmods = "gpio3";
			gpio-controller;
			#gpio-cells = <2>;
			interrupt-controller;
			#interrupt-cells = <1>;
		};

		gpio4: gpio@48059000 {
			compatible = "ti,omap4-gpio";
150 151
			reg = <0x48059000 0x200>;
			interrupts = <0 32 0x4>;
B
Benoit Cousson 已提交
152 153 154 155 156 157 158 159 160
			ti,hwmods = "gpio4";
			gpio-controller;
			#gpio-cells = <2>;
			interrupt-controller;
			#interrupt-cells = <1>;
		};

		gpio5: gpio@4805b000 {
			compatible = "ti,omap4-gpio";
161 162
			reg = <0x4805b000 0x200>;
			interrupts = <0 33 0x4>;
B
Benoit Cousson 已提交
163 164 165 166 167 168 169 170 171
			ti,hwmods = "gpio5";
			gpio-controller;
			#gpio-cells = <2>;
			interrupt-controller;
			#interrupt-cells = <1>;
		};

		gpio6: gpio@4805d000 {
			compatible = "ti,omap4-gpio";
172 173
			reg = <0x4805d000 0x200>;
			interrupts = <0 34 0x4>;
B
Benoit Cousson 已提交
174 175 176 177 178 179
			ti,hwmods = "gpio6";
			gpio-controller;
			#gpio-cells = <2>;
			interrupt-controller;
			#interrupt-cells = <1>;
		};
180

181
		uart1: serial@4806a000 {
182
			compatible = "ti,omap4-uart";
183 184
			reg = <0x4806a000 0x100>;
			interrupts = <0 72 0x4>;
185 186 187 188
			ti,hwmods = "uart1";
			clock-frequency = <48000000>;
		};

189
		uart2: serial@4806c000 {
190
			compatible = "ti,omap4-uart";
191 192
			reg = <0x4806c000 0x100>;
			interrupts = <0 73 0x4>;
193 194 195 196
			ti,hwmods = "uart2";
			clock-frequency = <48000000>;
		};

197
		uart3: serial@48020000 {
198
			compatible = "ti,omap4-uart";
199 200
			reg = <0x48020000 0x100>;
			interrupts = <0 74 0x4>;
201 202 203 204
			ti,hwmods = "uart3";
			clock-frequency = <48000000>;
		};

205
		uart4: serial@4806e000 {
206
			compatible = "ti,omap4-uart";
207 208
			reg = <0x4806e000 0x100>;
			interrupts = <0 70 0x4>;
209 210 211
			ti,hwmods = "uart4";
			clock-frequency = <48000000>;
		};
212 213 214

		i2c1: i2c@48070000 {
			compatible = "ti,omap4-i2c";
215 216
			reg = <0x48070000 0x100>;
			interrupts = <0 56 0x4>;
217 218 219 220 221 222 223
			#address-cells = <1>;
			#size-cells = <0>;
			ti,hwmods = "i2c1";
		};

		i2c2: i2c@48072000 {
			compatible = "ti,omap4-i2c";
224 225
			reg = <0x48072000 0x100>;
			interrupts = <0 57 0x4>;
226 227 228 229 230 231 232
			#address-cells = <1>;
			#size-cells = <0>;
			ti,hwmods = "i2c2";
		};

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

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

		mcspi1: spi@48098000 {
			compatible = "ti,omap4-mcspi";
251 252
			reg = <0x48098000 0x200>;
			interrupts = <0 65 0x4>;
253 254 255 256 257 258 259 260
			#address-cells = <1>;
			#size-cells = <0>;
			ti,hwmods = "mcspi1";
			ti,spi-num-cs = <4>;
		};

		mcspi2: spi@4809a000 {
			compatible = "ti,omap4-mcspi";
261 262
			reg = <0x4809a000 0x200>;
			interrupts = <0 66 0x4>;
263 264 265 266 267 268 269 270
			#address-cells = <1>;
			#size-cells = <0>;
			ti,hwmods = "mcspi2";
			ti,spi-num-cs = <2>;
		};

		mcspi3: spi@480b8000 {
			compatible = "ti,omap4-mcspi";
271 272
			reg = <0x480b8000 0x200>;
			interrupts = <0 91 0x4>;
273 274 275 276 277 278 279 280
			#address-cells = <1>;
			#size-cells = <0>;
			ti,hwmods = "mcspi3";
			ti,spi-num-cs = <2>;
		};

		mcspi4: spi@480ba000 {
			compatible = "ti,omap4-mcspi";
281 282
			reg = <0x480ba000 0x200>;
			interrupts = <0 48 0x4>;
283 284 285 286 287
			#address-cells = <1>;
			#size-cells = <0>;
			ti,hwmods = "mcspi4";
			ti,spi-num-cs = <1>;
		};
288 289 290

		mmc1: mmc@4809c000 {
			compatible = "ti,omap4-hsmmc";
291 292
			reg = <0x4809c000 0x400>;
			interrupts = <0 83 0x4>;
293 294 295 296 297 298 299
			ti,hwmods = "mmc1";
			ti,dual-volt;
			ti,needs-special-reset;
		};

		mmc2: mmc@480b4000 {
			compatible = "ti,omap4-hsmmc";
300 301
			reg = <0x480b4000 0x400>;
			interrupts = <0 86 0x4>;
302 303 304 305 306 307
			ti,hwmods = "mmc2";
			ti,needs-special-reset;
		};

		mmc3: mmc@480ad000 {
			compatible = "ti,omap4-hsmmc";
308 309
			reg = <0x480ad000 0x400>;
			interrupts = <0 94 0x4>;
310 311 312 313 314 315
			ti,hwmods = "mmc3";
			ti,needs-special-reset;
		};

		mmc4: mmc@480d1000 {
			compatible = "ti,omap4-hsmmc";
316 317
			reg = <0x480d1000 0x400>;
			interrupts = <0 96 0x4>;
318 319 320 321 322 323
			ti,hwmods = "mmc4";
			ti,needs-special-reset;
		};

		mmc5: mmc@480d5000 {
			compatible = "ti,omap4-hsmmc";
324 325
			reg = <0x480d5000 0x400>;
			interrupts = <0 59 0x4>;
326 327 328
			ti,hwmods = "mmc5";
			ti,needs-special-reset;
		};
329 330 331

		wdt2: wdt@4a314000 {
			compatible = "ti,omap4-wdt", "ti,omap3-wdt";
332 333
			reg = <0x4a314000 0x80>;
			interrupts = <0 80 0x4>;
334 335
			ti,hwmods = "wd_timer2";
		};
336 337 338 339 340

		mcpdm: mcpdm@40132000 {
			compatible = "ti,omap4-mcpdm";
			reg = <0x40132000 0x7f>, /* MPU private access */
			      <0x49032000 0x7f>; /* L3 Interconnect */
341
			reg-names = "mpu", "dma";
342 343 344
			interrupts = <0 112 0x4>;
			ti,hwmods = "mcpdm";
		};
345 346 347 348 349

		dmic: dmic@4012e000 {
			compatible = "ti,omap4-dmic";
			reg = <0x4012e000 0x7f>, /* MPU private access */
			      <0x4902e000 0x7f>; /* L3 Interconnect */
350
			reg-names = "mpu", "dma";
351 352 353
			interrupts = <0 114 0x4>;
			ti,hwmods = "dmic";
		};
354

355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397
		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";
		};

398 399
		keypad: keypad@4a31c000 {
			compatible = "ti,omap4-keypad";
400 401 402
			reg = <0x4a31c000 0x80>;
			interrupts = <0 120 0x4>;
			reg-names = "mpu";
403 404
			ti,hwmods = "kbd";
		};
405 406 407

		emif1: emif@4c000000 {
			compatible = "ti,emif-4d";
408 409
			reg = <0x4c000000 0x100>;
			interrupts = <0 110 0x4>;
410 411 412 413 414 415 416 417 418
			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";
419 420
			reg = <0x4d000000 0x100>;
			interrupts = <0 111 0x4>;
421 422 423 424 425 426
			ti,hwmods = "emif2";
			phy-type = <1>;
			hw-caps-read-idle-ctrl;
			hw-caps-ll-interface;
			hw-caps-temp-alert;
		};
427

428
		ocp2scp@4a0ad000 {
429
			compatible = "ti,omap-ocp2scp";
430
			reg = <0x4a0ad000 0x1f>;
431 432 433 434 435
			#address-cells = <1>;
			#size-cells = <1>;
			ranges;
			ti,hwmods = "ocp2scp_usb_phy";
		};
J
Jon Hunter 已提交
436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 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 518 519 520 521

		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";
		};

		timer5: timer@49038000 {
			compatible = "ti,omap2-timer";
			reg = <0x49038000 0x80>;
			interrupts = <0 41 0x4>;
			ti,hwmods = "timer5";
			ti,timer-dsp;
		};

		timer6: timer@4903a000 {
			compatible = "ti,omap2-timer";
			reg = <0x4903a000 0x80>;
			interrupts = <0 42 0x4>;
			ti,hwmods = "timer6";
			ti,timer-dsp;
		};

		timer7: timer@4903c000 {
			compatible = "ti,omap2-timer";
			reg = <0x4903c000 0x80>;
			interrupts = <0 43 0x4>;
			ti,hwmods = "timer7";
			ti,timer-dsp;
		};

		timer8: timer@4903e000 {
			compatible = "ti,omap2-timer";
			reg = <0x4903e000 0x80>;
			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;
		};
522 523
	};
};