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

B
Benoit Cousson 已提交
98 99
		gpio1: gpio@4a310000 {
			compatible = "ti,omap4-gpio";
100 101
			reg = <0x4a310000 0x200>;
			interrupts = <0 29 0x4>;
B
Benoit Cousson 已提交
102 103 104 105 106 107 108 109 110
			ti,hwmods = "gpio1";
			gpio-controller;
			#gpio-cells = <2>;
			interrupt-controller;
			#interrupt-cells = <1>;
		};

		gpio2: gpio@48055000 {
			compatible = "ti,omap4-gpio";
111 112
			reg = <0x48055000 0x200>;
			interrupts = <0 30 0x4>;
B
Benoit Cousson 已提交
113 114 115 116 117 118 119 120 121
			ti,hwmods = "gpio2";
			gpio-controller;
			#gpio-cells = <2>;
			interrupt-controller;
			#interrupt-cells = <1>;
		};

		gpio3: gpio@48057000 {
			compatible = "ti,omap4-gpio";
122 123
			reg = <0x48057000 0x200>;
			interrupts = <0 31 0x4>;
B
Benoit Cousson 已提交
124 125 126 127 128 129 130 131 132
			ti,hwmods = "gpio3";
			gpio-controller;
			#gpio-cells = <2>;
			interrupt-controller;
			#interrupt-cells = <1>;
		};

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

		gpio5: gpio@4805b000 {
			compatible = "ti,omap4-gpio";
144 145
			reg = <0x4805b000 0x200>;
			interrupts = <0 33 0x4>;
B
Benoit Cousson 已提交
146 147 148 149 150 151 152 153 154
			ti,hwmods = "gpio5";
			gpio-controller;
			#gpio-cells = <2>;
			interrupt-controller;
			#interrupt-cells = <1>;
		};

		gpio6: gpio@4805d000 {
			compatible = "ti,omap4-gpio";
155 156
			reg = <0x4805d000 0x200>;
			interrupts = <0 34 0x4>;
B
Benoit Cousson 已提交
157 158 159 160 161 162
			ti,hwmods = "gpio6";
			gpio-controller;
			#gpio-cells = <2>;
			interrupt-controller;
			#interrupt-cells = <1>;
		};
163

164
		uart1: serial@4806a000 {
165
			compatible = "ti,omap4-uart";
166 167
			reg = <0x4806a000 0x100>;
			interrupts = <0 72 0x4>;
168 169 170 171
			ti,hwmods = "uart1";
			clock-frequency = <48000000>;
		};

172
		uart2: serial@4806c000 {
173
			compatible = "ti,omap4-uart";
174 175
			reg = <0x4806c000 0x100>;
			interrupts = <0 73 0x4>;
176 177 178 179
			ti,hwmods = "uart2";
			clock-frequency = <48000000>;
		};

180
		uart3: serial@48020000 {
181
			compatible = "ti,omap4-uart";
182 183
			reg = <0x48020000 0x100>;
			interrupts = <0 74 0x4>;
184 185 186 187
			ti,hwmods = "uart3";
			clock-frequency = <48000000>;
		};

188
		uart4: serial@4806e000 {
189
			compatible = "ti,omap4-uart";
190 191
			reg = <0x4806e000 0x100>;
			interrupts = <0 70 0x4>;
192 193 194
			ti,hwmods = "uart4";
			clock-frequency = <48000000>;
		};
195 196 197

		i2c1: i2c@48070000 {
			compatible = "ti,omap4-i2c";
198 199
			reg = <0x48070000 0x100>;
			interrupts = <0 56 0x4>;
200 201 202 203 204 205 206
			#address-cells = <1>;
			#size-cells = <0>;
			ti,hwmods = "i2c1";
		};

		i2c2: i2c@48072000 {
			compatible = "ti,omap4-i2c";
207 208
			reg = <0x48072000 0x100>;
			interrupts = <0 57 0x4>;
209 210 211 212 213 214 215
			#address-cells = <1>;
			#size-cells = <0>;
			ti,hwmods = "i2c2";
		};

		i2c3: i2c@48060000 {
			compatible = "ti,omap4-i2c";
216 217
			reg = <0x48060000 0x100>;
			interrupts = <0 61 0x4>;
218 219 220 221 222 223 224
			#address-cells = <1>;
			#size-cells = <0>;
			ti,hwmods = "i2c3";
		};

		i2c4: i2c@48350000 {
			compatible = "ti,omap4-i2c";
225 226
			reg = <0x48350000 0x100>;
			interrupts = <0 62 0x4>;
227 228 229 230
			#address-cells = <1>;
			#size-cells = <0>;
			ti,hwmods = "i2c4";
		};
231 232 233

		mcspi1: spi@48098000 {
			compatible = "ti,omap4-mcspi";
234 235
			reg = <0x48098000 0x200>;
			interrupts = <0 65 0x4>;
236 237 238 239 240 241 242 243
			#address-cells = <1>;
			#size-cells = <0>;
			ti,hwmods = "mcspi1";
			ti,spi-num-cs = <4>;
		};

		mcspi2: spi@4809a000 {
			compatible = "ti,omap4-mcspi";
244 245
			reg = <0x4809a000 0x200>;
			interrupts = <0 66 0x4>;
246 247 248 249 250 251 252 253
			#address-cells = <1>;
			#size-cells = <0>;
			ti,hwmods = "mcspi2";
			ti,spi-num-cs = <2>;
		};

		mcspi3: spi@480b8000 {
			compatible = "ti,omap4-mcspi";
254 255
			reg = <0x480b8000 0x200>;
			interrupts = <0 91 0x4>;
256 257 258 259 260 261 262 263
			#address-cells = <1>;
			#size-cells = <0>;
			ti,hwmods = "mcspi3";
			ti,spi-num-cs = <2>;
		};

		mcspi4: spi@480ba000 {
			compatible = "ti,omap4-mcspi";
264 265
			reg = <0x480ba000 0x200>;
			interrupts = <0 48 0x4>;
266 267 268 269 270
			#address-cells = <1>;
			#size-cells = <0>;
			ti,hwmods = "mcspi4";
			ti,spi-num-cs = <1>;
		};
271 272 273

		mmc1: mmc@4809c000 {
			compatible = "ti,omap4-hsmmc";
274 275
			reg = <0x4809c000 0x400>;
			interrupts = <0 83 0x4>;
276 277 278 279 280 281 282
			ti,hwmods = "mmc1";
			ti,dual-volt;
			ti,needs-special-reset;
		};

		mmc2: mmc@480b4000 {
			compatible = "ti,omap4-hsmmc";
283 284
			reg = <0x480b4000 0x400>;
			interrupts = <0 86 0x4>;
285 286 287 288 289 290
			ti,hwmods = "mmc2";
			ti,needs-special-reset;
		};

		mmc3: mmc@480ad000 {
			compatible = "ti,omap4-hsmmc";
291 292
			reg = <0x480ad000 0x400>;
			interrupts = <0 94 0x4>;
293 294 295 296 297 298
			ti,hwmods = "mmc3";
			ti,needs-special-reset;
		};

		mmc4: mmc@480d1000 {
			compatible = "ti,omap4-hsmmc";
299 300
			reg = <0x480d1000 0x400>;
			interrupts = <0 96 0x4>;
301 302 303 304 305 306
			ti,hwmods = "mmc4";
			ti,needs-special-reset;
		};

		mmc5: mmc@480d5000 {
			compatible = "ti,omap4-hsmmc";
307 308
			reg = <0x480d5000 0x400>;
			interrupts = <0 59 0x4>;
309 310 311
			ti,hwmods = "mmc5";
			ti,needs-special-reset;
		};
312 313 314

		wdt2: wdt@4a314000 {
			compatible = "ti,omap4-wdt", "ti,omap3-wdt";
315 316
			reg = <0x4a314000 0x80>;
			interrupts = <0 80 0x4>;
317 318
			ti,hwmods = "wd_timer2";
		};
319 320 321 322 323

		mcpdm: mcpdm@40132000 {
			compatible = "ti,omap4-mcpdm";
			reg = <0x40132000 0x7f>, /* MPU private access */
			      <0x49032000 0x7f>; /* L3 Interconnect */
324
			reg-names = "mpu", "dma";
325 326 327 328
			interrupts = <0 112 0x4>;
			interrupt-parent = <&gic>;
			ti,hwmods = "mcpdm";
		};
329 330 331 332 333

		dmic: dmic@4012e000 {
			compatible = "ti,omap4-dmic";
			reg = <0x4012e000 0x7f>, /* MPU private access */
			      <0x4902e000 0x7f>; /* L3 Interconnect */
334
			reg-names = "mpu", "dma";
335 336 337 338
			interrupts = <0 114 0x4>;
			interrupt-parent = <&gic>;
			ti,hwmods = "dmic";
		};
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 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386
		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";
			interrupt-parent = <&gic>;
			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";
			interrupt-parent = <&gic>;
			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";
			interrupt-parent = <&gic>;
			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";
			interrupt-parent = <&gic>;
			ti,buffer-size = <128>;
			ti,hwmods = "mcbsp4";
		};

387 388
		keypad: keypad@4a31c000 {
			compatible = "ti,omap4-keypad";
389 390 391
			reg = <0x4a31c000 0x80>;
			interrupts = <0 120 0x4>;
			reg-names = "mpu";
392 393
			ti,hwmods = "kbd";
		};
394 395 396

		emif1: emif@4c000000 {
			compatible = "ti,emif-4d";
397 398
			reg = <0x4c000000 0x100>;
			interrupts = <0 110 0x4>;
399 400 401 402 403 404 405 406 407
			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";
408 409
			reg = <0x4d000000 0x100>;
			interrupts = <0 111 0x4>;
410 411 412 413 414 415
			ti,hwmods = "emif2";
			phy-type = <1>;
			hw-caps-read-idle-ctrl;
			hw-caps-ll-interface;
			hw-caps-temp-alert;
		};
416 417
	};
};