dbx5x0.dtsi 16.0 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
/*
 * Copyright 2012 Linaro Ltd
 *
 * The code contained herein is licensed under the GNU General Public
 * License. You may obtain a copy of the GNU General Public License
 * Version 2 or later at the following locations:
 *
 * http://www.opensource.org/licenses/gpl-license.html
 * http://www.gnu.org/copyleft/gpl.html
 */

/include/ "skeleton.dtsi"

/ {
	soc-u9500 {
		#address-cells = <1>;
		#size-cells = <1>;
18
		compatible = "stericsson,db8500";
19
		interrupt-parent = <&intc>;
20
		ranges;
21

22 23 24 25 26 27 28 29 30
		intc: interrupt-controller@a0411000 {
			compatible = "arm,cortex-a9-gic";
			#interrupt-cells = <3>;
			#address-cells = <1>;
			interrupt-controller;
			reg = <0xa0411000 0x1000>,
			      <0xa0410100 0x100>;
		};

31 32 33 34 35 36 37 38
		L2: l2-cache {
			compatible = "arm,pl310-cache";
			reg = <0xa0412000 0x1000>;
			interrupts = <0 13 4>;
			cache-unified;
			cache-level = <2>;
		};

39 40 41 42 43
		pmu {
			compatible = "arm,cortex-a9-pmu";
			interrupts = <0 7 0x4>;
		};

44 45 46 47 48 49
		timer@a0410600 {
			compatible = "arm,cortex-a9-twd-timer";
			reg = <0xa0410600 0x20>;
			interrupts = <1 13 0x304>;
		};

50
		rtc@80154000 {
51
			compatible = "arm,rtc-pl031", "arm,primecell";
52 53 54 55 56 57
			reg = <0x80154000 0x1000>;
			interrupts = <0 18 0x4>;
		};

		gpio0: gpio@8012e000 {
			compatible = "stericsson,db8500-gpio",
58
				"st,nomadik-gpio";
59 60
			reg =  <0x8012e000 0x80>;
			interrupts = <0 119 0x4>;
61 62
			interrupt-controller;
			#interrupt-cells = <2>;
63
			st,supports-sleepmode;
64
			gpio-controller;
65 66
			#gpio-cells = <2>;
			gpio-bank = <0>;
67 68 69 70
		};

		gpio1: gpio@8012e080 {
			compatible = "stericsson,db8500-gpio",
71
				"st,nomadik-gpio";
72 73
			reg =  <0x8012e080 0x80>;
			interrupts = <0 120 0x4>;
74 75
			interrupt-controller;
			#interrupt-cells = <2>;
76
			st,supports-sleepmode;
77
			gpio-controller;
78 79
			#gpio-cells = <2>;
			gpio-bank = <1>;
80 81 82 83
		};

		gpio2: gpio@8000e000 {
			compatible = "stericsson,db8500-gpio",
84
				"st,nomadik-gpio";
85 86
			reg =  <0x8000e000 0x80>;
			interrupts = <0 121 0x4>;
87 88
			interrupt-controller;
			#interrupt-cells = <2>;
89
			st,supports-sleepmode;
90
			gpio-controller;
91 92
			#gpio-cells = <2>;
			gpio-bank = <2>;
93 94 95 96
		};

		gpio3: gpio@8000e080 {
			compatible = "stericsson,db8500-gpio",
97
				"st,nomadik-gpio";
98 99
			reg =  <0x8000e080 0x80>;
			interrupts = <0 122 0x4>;
100 101
			interrupt-controller;
			#interrupt-cells = <2>;
102
			st,supports-sleepmode;
103
			gpio-controller;
104 105
			#gpio-cells = <2>;
			gpio-bank = <3>;
106 107 108 109
		};

		gpio4: gpio@8000e100 {
			compatible = "stericsson,db8500-gpio",
110
				"st,nomadik-gpio";
111 112
			reg =  <0x8000e100 0x80>;
			interrupts = <0 123 0x4>;
113 114
			interrupt-controller;
			#interrupt-cells = <2>;
115
			st,supports-sleepmode;
116
			gpio-controller;
117 118
			#gpio-cells = <2>;
			gpio-bank = <4>;
119 120 121 122
		};

		gpio5: gpio@8000e180 {
			compatible = "stericsson,db8500-gpio",
123
				"st,nomadik-gpio";
124 125
			reg =  <0x8000e180 0x80>;
			interrupts = <0 124 0x4>;
126 127
			interrupt-controller;
			#interrupt-cells = <2>;
128
			st,supports-sleepmode;
129
			gpio-controller;
130 131
			#gpio-cells = <2>;
			gpio-bank = <5>;
132 133 134 135
		};

		gpio6: gpio@8011e000 {
			compatible = "stericsson,db8500-gpio",
136
				"st,nomadik-gpio";
137 138
			reg =  <0x8011e000 0x80>;
			interrupts = <0 125 0x4>;
139 140
			interrupt-controller;
			#interrupt-cells = <2>;
141
			st,supports-sleepmode;
142
			gpio-controller;
143 144
			#gpio-cells = <2>;
			gpio-bank = <6>;
145 146 147 148
		};

		gpio7: gpio@8011e080 {
			compatible = "stericsson,db8500-gpio",
149
				"st,nomadik-gpio";
150 151
			reg =  <0x8011e080 0x80>;
			interrupts = <0 126 0x4>;
152 153
			interrupt-controller;
			#interrupt-cells = <2>;
154
			st,supports-sleepmode;
155
			gpio-controller;
156 157
			#gpio-cells = <2>;
			gpio-bank = <7>;
158 159 160 161
		};

		gpio8: gpio@a03fe000 {
			compatible = "stericsson,db8500-gpio",
162
				"st,nomadik-gpio";
163 164
			reg =  <0xa03fe000 0x80>;
			interrupts = <0 127 0x4>;
165 166
			interrupt-controller;
			#interrupt-cells = <2>;
167
			st,supports-sleepmode;
168
			gpio-controller;
169 170
			#gpio-cells = <2>;
			gpio-bank = <8>;
171 172
		};

173 174 175 176
		pinctrl {
			compatible = "stericsson,nmk_pinctrl";
		};

177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193
		usb@a03e0000 {
			compatible = "stericsson,db8500-musb",
				"mentor,musb";
			reg = <0xa03e0000 0x10000>;
			interrupts = <0 23 0x4>;
		};

		dma-controller@801C0000 {
			compatible = "stericsson,db8500-dma40",
					"stericsson,dma40";
			reg = <0x801C0000 0x1000 0x40010000 0x800>;
			interrupts = <0 25 0x4>;
		};

		prcmu@80157000 {
			compatible = "stericsson,db8500-prcmu";
			reg = <0x80157000 0x1000>;
194
			interrupts = <0 47 0x4>;
195
			#address-cells = <1>;
196
			#size-cells = <1>;
197 198
			interrupt-controller;
			#interrupt-cells = <2>;
199 200
			ranges;

201
			prcmu-timer-4@80157450 {
202 203 204
				compatible = "stericsson,db8500-prcmu-timer-4";
				reg = <0x80157450 0xC>;
			};
205

206 207 208 209 210
			db8500-prcmu-regulators {
				compatible = "stericsson,db8500-prcmu-regulator";

				// DB8500_REGULATOR_VAPE
				db8500_vape_reg: db8500_vape {
211
					regulator-compatible = "db8500_vape";
212 213 214 215 216 217
					regulator-name = "db8500-vape";
					regulator-always-on;
				};

				// DB8500_REGULATOR_VARM
				db8500_varm_reg: db8500_varm {
218
					regulator-compatible = "db8500_varm";
219 220 221 222 223
					regulator-name = "db8500-varm";
				};

				// DB8500_REGULATOR_VMODEM
				db8500_vmodem_reg: db8500_vmodem {
224
					regulator-compatible = "db8500_vmodem";
225 226 227 228 229
					regulator-name = "db8500-vmodem";
				};

				// DB8500_REGULATOR_VPLL
				db8500_vpll_reg: db8500_vpll {
230
					regulator-compatible = "db8500_vpll";
231 232 233 234 235
					regulator-name = "db8500-vpll";
				};

				// DB8500_REGULATOR_VSMPS1
				db8500_vsmps1_reg: db8500_vsmps1 {
236
					regulator-compatible = "db8500_vsmps1";
237 238 239 240 241
					regulator-name = "db8500-vsmps1";
				};

				// DB8500_REGULATOR_VSMPS2
				db8500_vsmps2_reg: db8500_vsmps2 {
242
					regulator-compatible = "db8500_vsmps2";
243 244 245 246 247
					regulator-name = "db8500-vsmps2";
				};

				// DB8500_REGULATOR_VSMPS3
				db8500_vsmps3_reg: db8500_vsmps3 {
248
					regulator-compatible = "db8500_vsmps3";
249 250 251 252 253
					regulator-name = "db8500-vsmps3";
				};

				// DB8500_REGULATOR_VRF1
				db8500_vrf1_reg: db8500_vrf1 {
254
					regulator-compatible = "db8500_vrf1";
255 256 257 258 259
					regulator-name = "db8500-vrf1";
				};

				// DB8500_REGULATOR_SWITCH_SVAMMDSP
				db8500_sva_mmdsp_reg: db8500_sva_mmdsp {
260
					regulator-compatible = "db8500_sva_mmdsp";
261 262 263 264 265
					regulator-name = "db8500-sva-mmdsp";
				};

				// DB8500_REGULATOR_SWITCH_SVAMMDSPRET
				db8500_sva_mmdsp_ret_reg: db8500_sva_mmdsp_ret {
266
					regulator-compatible = "db8500_sva_mmdsp_ret";
267 268 269 270 271
					regulator-name = "db8500-sva-mmdsp-ret";
				};

				// DB8500_REGULATOR_SWITCH_SVAPIPE
				db8500_sva_pipe_reg: db8500_sva_pipe {
272
					regulator-compatible = "db8500_sva_pipe";
273 274 275 276 277
					regulator-name = "db8500_sva_pipe";
				};

				// DB8500_REGULATOR_SWITCH_SIAMMDSP
				db8500_sia_mmdsp_reg: db8500_sia_mmdsp {
278
					regulator-compatible = "db8500_sia_mmdsp";
279 280 281 282 283 284 285 286 287 288
					regulator-name = "db8500_sia_mmdsp";
				};

				// DB8500_REGULATOR_SWITCH_SIAMMDSPRET
				db8500_sia_mmdsp_ret_reg: db8500_sia_mmdsp_ret {
					regulator-name = "db8500-sia-mmdsp-ret";
				};

				// DB8500_REGULATOR_SWITCH_SIAPIPE
				db8500_sia_pipe_reg: db8500_sia_pipe {
289
					regulator-compatible = "db8500_sia_pipe";
290 291 292 293 294
					regulator-name = "db8500-sia-pipe";
				};

				// DB8500_REGULATOR_SWITCH_SGA
				db8500_sga_reg: db8500_sga {
295
					regulator-compatible = "db8500_sga";
296 297 298 299 300 301
					regulator-name = "db8500-sga";
					vin-supply = <&db8500_vape_reg>;
				};

				// DB8500_REGULATOR_SWITCH_B2R2_MCDE
				db8500_b2r2_mcde_reg: db8500_b2r2_mcde {
302
					regulator-compatible = "db8500_b2r2_mcde";
303 304 305 306 307 308
					regulator-name = "db8500-b2r2-mcde";
					vin-supply = <&db8500_vape_reg>;
				};

				// DB8500_REGULATOR_SWITCH_ESRAM12
				db8500_esram12_reg: db8500_esram12 {
309
					regulator-compatible = "db8500_esram12";
310 311 312 313 314
					regulator-name = "db8500-esram12";
				};

				// DB8500_REGULATOR_SWITCH_ESRAM12RET
				db8500_esram12_ret_reg: db8500_esram12_ret {
315
					regulator-compatible = "db8500_esram12_ret";
316 317 318 319 320
					regulator-name = "db8500-esram12-ret";
				};

				// DB8500_REGULATOR_SWITCH_ESRAM34
				db8500_esram34_reg: db8500_esram34 {
321
					regulator-compatible = "db8500_esram34";
322 323 324 325 326
					regulator-name = "db8500-esram34";
				};

				// DB8500_REGULATOR_SWITCH_ESRAM34RET
				db8500_esram34_ret_reg: db8500_esram34_ret {
327
					regulator-compatible = "db8500_esram34_ret";
328 329 330 331
					regulator-name = "db8500-esram34-ret";
				};
			};

332 333 334
			ab8500@5 {
				compatible = "stericsson,ab8500";
				reg = <5>; /* mailbox 5 is i2c */
335
				interrupt-parent = <&intc>;
336
				interrupts = <0 40 0x4>;
337 338
				interrupt-controller;
				#interrupt-cells = <2>;
339

340 341 342 343 344 345 346
				ab8500-rtc {
					compatible = "stericsson,ab8500-rtc";
					interrupts = <17 0x4
					              18 0x4>;
					interrupt-names = "60S", "ALARM";
				};

347 348
				ab8500-gpadc {
					compatible = "stericsson,ab8500-gpadc";
349 350
					interrupts = <32 0x4
						      39 0x4>;
351 352 353 354
					interrupt-names = "HW_CONV_END", "SW_CONV_END";
					vddadc-supply = <&ab8500_ldo_tvout_reg>;
				};

355 356
				ab8500-usb {
					compatible = "stericsson,ab8500-usb";
357 358 359 360 361 362 363
					interrupts = < 90 0x4
						       96 0x4
						       14 0x4
						       15 0x4
						       79 0x4
						       74 0x4
						       75 0x4>;
364 365 366 367 368 369 370 371 372 373 374 375
					interrupt-names = "ID_WAKEUP_R",
							  "ID_WAKEUP_F",
							  "VBUS_DET_F",
							  "VBUS_DET_R",
							  "USB_LINK_STATUS",
							  "USB_ADP_PROBE_PLUG",
							  "USB_ADP_PROBE_UNPLUG";
					vddulpivio18-supply = <&ab8500_ldo_initcore_reg>;
					v-ape-supply = <&db8500_vape_reg>;
					musb_1v8-supply = <&db8500_vsmps2_reg>;
				};

376
				ab8500-ponkey {
377
					compatible = "stericsson,ab8500-poweron-key";
378 379
					interrupts = <6 0x4
						      7 0x4>;
380 381 382
					interrupt-names = "ONKEY_DBF", "ONKEY_DBR";
				};

383 384 385 386
				ab8500-sysctrl {
					compatible = "stericsson,ab8500-sysctrl";
				};

387 388 389 390
				ab8500-pwm {
					compatible = "stericsson,ab8500-pwm";
				};

391 392 393
				ab8500-debugfs {
					compatible = "stericsson,ab8500-debug";
				};
394

395 396 397 398 399 400
				codec: ab8500-codec {
					compatible = "stericsson,ab8500-codec";

					stericsson,earpeice-cmv = <950>; /* Units in mV. */
				};

401 402 403 404 405
				ab8500-regulators {
					compatible = "stericsson,ab8500-regulator";

					// supplies to the display/camera
					ab8500_ldo_aux1_reg: ab8500_ldo_aux1 {
406
						regulator-compatible = "ab8500_ldo_aux1";
407 408 409 410 411 412 413 414 415 416
						regulator-name = "V-DISPLAY";
						regulator-min-microvolt = <2500000>;
						regulator-max-microvolt = <2900000>;
						regulator-boot-on;
						/* BUG: If turned off MMC will be affected. */
						regulator-always-on;
					};

					// supplies to the on-board eMMC
					ab8500_ldo_aux2_reg: ab8500_ldo_aux2 {
417
						regulator-compatible = "ab8500_ldo_aux2";
418 419 420 421 422 423 424
						regulator-name = "V-eMMC1";
						regulator-min-microvolt = <1100000>;
						regulator-max-microvolt = <3300000>;
					};

					// supply for VAUX3; SDcard slots
					ab8500_ldo_aux3_reg: ab8500_ldo_aux3 {
425
						regulator-compatible = "ab8500_ldo_aux3";
426 427 428 429 430 431 432
						regulator-name = "V-MMC-SD";
						regulator-min-microvolt = <1100000>;
						regulator-max-microvolt = <3300000>;
					};

					// supply for v-intcore12; VINTCORE12 LDO
					ab8500_ldo_initcore_reg: ab8500_ldo_initcore {
433
						regulator-compatible = "ab8500_ldo_initcore";
434 435 436 437 438
						regulator-name = "V-INTCORE";
					};

					// supply for tvout; gpadc; TVOUT LDO
					ab8500_ldo_tvout_reg: ab8500_ldo_tvout {
439
						regulator-compatible = "ab8500_ldo_tvout";
440 441 442 443 444
						regulator-name = "V-TVOUT";
					};

					// supply for ab8500-usb; USB LDO
					ab8500_ldo_usb_reg: ab8500_ldo_usb {
445
						regulator-compatible = "ab8500_ldo_usb";
446 447 448 449 450
						regulator-name = "dummy";
					};

					// supply for ab8500-vaudio; VAUDIO LDO
					ab8500_ldo_audio_reg: ab8500_ldo_audio {
451
						regulator-compatible = "ab8500_ldo_audio";
452 453 454 455 456
						regulator-name = "V-AUD";
					};

					// supply for v-anamic1 VAMic1-LDO
					ab8500_ldo_anamic1_reg: ab8500_ldo_anamic1 {
457
						regulator-compatible = "ab8500_ldo_anamic1";
458 459 460 461 462
						regulator-name = "V-AMIC1";
					};

					// supply for v-amic2; VAMIC2 LDO; reuse constants for AMIC1
					ab8500_ldo_amamic2_reg: ab8500_ldo_amamic2 {
463
						regulator-compatible = "ab8500_ldo_amamic2";
464 465 466 467 468
						regulator-name = "V-AMIC2";
					};

					// supply for v-dmic; VDMIC LDO
					ab8500_ldo_dmic_reg: ab8500_ldo_dmic {
469
						regulator-compatible = "ab8500_ldo_dmic";
470 471 472 473 474
						regulator-name = "V-DMIC";
					};

					// supply for U8500 CSI/DSI; VANA LDO
					ab8500_ldo_ana_reg: ab8500_ldo_ana {
475
						regulator-compatible = "ab8500_ldo_ana";
476 477 478
						regulator-name = "V-CSI/DSI";
					};
				};
479 480 481 482
			};
		};

		i2c@80004000 {
483
			compatible = "stericsson,db8500-i2c", "st,nomadik-i2c", "arm,primecell";
484 485 486 487
			reg = <0x80004000 0x1000>;
			interrupts = <0 21 0x4>;
			#address-cells = <1>;
			#size-cells = <0>;
488 489 490
			v-i2c-supply = <&db8500_vape_reg>;

			clock-frequency = <400000>;
491 492 493
		};

		i2c@80122000 {
494
			compatible = "stericsson,db8500-i2c", "st,nomadik-i2c", "arm,primecell";
495 496 497 498
			reg = <0x80122000 0x1000>;
			interrupts = <0 22 0x4>;
			#address-cells = <1>;
			#size-cells = <0>;
499 500 501
			v-i2c-supply = <&db8500_vape_reg>;

			clock-frequency = <400000>;
502 503 504
		};

		i2c@80128000 {
505
			compatible = "stericsson,db8500-i2c", "st,nomadik-i2c", "arm,primecell";
506 507 508 509
			reg = <0x80128000 0x1000>;
			interrupts = <0 55 0x4>;
			#address-cells = <1>;
			#size-cells = <0>;
510 511 512
			v-i2c-supply = <&db8500_vape_reg>;

			clock-frequency = <400000>;
513 514 515
		};

		i2c@80110000 {
516
			compatible = "stericsson,db8500-i2c", "st,nomadik-i2c", "arm,primecell";
517 518 519 520
			reg = <0x80110000 0x1000>;
			interrupts = <0 12 0x4>;
			#address-cells = <1>;
			#size-cells = <0>;
521 522 523
			v-i2c-supply = <&db8500_vape_reg>;

			clock-frequency = <400000>;
524 525 526
		};

		i2c@8012a000 {
527
			compatible = "stericsson,db8500-i2c", "st,nomadik-i2c", "arm,primecell";
528 529 530 531
			reg = <0x8012a000 0x1000>;
			interrupts = <0 51 0x4>;
			#address-cells = <1>;
			#size-cells = <0>;
532 533 534
			v-i2c-supply = <&db8500_vape_reg>;

			clock-frequency = <400000>;
535 536 537 538
		};

		ssp@80002000 {
			compatible = "arm,pl022", "arm,primecell";
539
			reg = <0x80002000 0x1000>;
540 541 542 543
			interrupts = <0 14 0x4>;
			#address-cells = <1>;
			#size-cells = <0>;
			status = "disabled";
544 545

			// Add one of these for each child device
546 547
			cs-gpios = <&gpio0 31 0x4 &gpio4 14 0x4 &gpio4 16 0x4
				    &gpio6 22 0x4 &gpio7 0 0x4>;
548

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

		uart@80120000 {
			compatible = "arm,pl011", "arm,primecell";
			reg = <0x80120000 0x1000>;
			interrupts = <0 11 0x4>;
			status = "disabled";
		};
		uart@80121000 {
			compatible = "arm,pl011", "arm,primecell";
			reg = <0x80121000 0x1000>;
			interrupts = <0 19 0x4>;
			status = "disabled";
		};
		uart@80007000 {
			compatible = "arm,pl011", "arm,primecell";
			reg = <0x80007000 0x1000>;
			interrupts = <0 26 0x4>;
			status = "disabled";
		};

		sdi@80126000 {
			compatible = "arm,pl18x", "arm,primecell";
			reg = <0x80126000 0x1000>;
			interrupts = <0 60 0x4>;
			status = "disabled";
		};
		sdi@80118000 {
			compatible = "arm,pl18x", "arm,primecell";
			reg = <0x80118000 0x1000>;
			interrupts = <0 50 0x4>;
			status = "disabled";
		};
		sdi@80005000 {
			compatible = "arm,pl18x", "arm,primecell";
			reg = <0x80005000 0x1000>;
			interrupts = <0 41 0x4>;
			status = "disabled";
		};
		sdi@80119000 {
			compatible = "arm,pl18x", "arm,primecell";
			reg = <0x80119000 0x1000>;
			interrupts = <0 59 0x4>;
			status = "disabled";
		};
		sdi@80114000 {
			compatible = "arm,pl18x", "arm,primecell";
			reg = <0x80114000 0x1000>;
			interrupts = <0 99 0x4>;
			status = "disabled";
		};
		sdi@80008000 {
			compatible = "arm,pl18x", "arm,primecell";
			reg = <0x80114000 0x1000>;
			interrupts = <0 100 0x4>;
			status = "disabled";
		};
606

607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639
		msp0: msp@80123000 {
			compatible = "stericsson,ux500-msp-i2s";
			reg = <0x80123000 0x1000>;
			interrupts = <0 31 0x4>;
			v-ape-supply = <&db8500_vape_reg>;
			status = "disabled";
		};

		msp1: msp@80124000 {
			compatible = "stericsson,ux500-msp-i2s";
			reg = <0x80124000 0x1000>;
			interrupts = <0 62 0x4>;
			v-ape-supply = <&db8500_vape_reg>;
			status = "disabled";
		};

		// HDMI sound
		msp2: msp@80117000 {
			compatible = "stericsson,ux500-msp-i2s";
			reg = <0x80117000 0x1000>;
			interrupts = <0 98 0x4>;
			v-ape-supply = <&db8500_vape_reg>;
			status = "disabled";
		};

		msp3: msp@80125000 {
			compatible = "stericsson,ux500-msp-i2s";
			reg = <0x80125000 0x1000>;
			interrupts = <0 62 0x4>;
			v-ape-supply = <&db8500_vape_reg>;
			status = "disabled";
		};

640 641 642 643 644 645 646 647
		external-bus@50000000 {
			compatible = "simple-bus";
			reg = <0x50000000 0x4000000>;
			#address-cells = <1>;
			#size-cells = <1>;
			ranges = <0 0x50000000 0x4000000>;
			status = "disabled";
		};
648 649
	};
};