Linux Audio

Check our new training course

Loading...
v5.4
   1// SPDX-License-Identifier: GPL-2.0-or-later
   2/*
   3 * Copyright 2012 Linaro Ltd
 
 
 
 
 
 
 
   4 */
   5
   6#include <dt-bindings/interrupt-controller/irq.h>
   7#include <dt-bindings/interrupt-controller/arm-gic.h>
   8#include <dt-bindings/mfd/dbx500-prcmu.h>
   9#include <dt-bindings/arm/ux500_pm_domains.h>
  10#include <dt-bindings/gpio/gpio.h>
  11#include <dt-bindings/thermal/thermal.h>
  12
  13/ {
  14	#address-cells = <1>;
  15	#size-cells = <1>;
  16
  17	chosen {
  18	};
  19
  20	cpus {
  21		#address-cells = <1>;
  22		#size-cells = <0>;
  23		enable-method = "ste,dbx500-smp";
  24
  25		cpu-map {
  26			cluster0 {
  27				core0 {
  28					cpu = <&CPU0>;
  29				};
  30				core1 {
  31					cpu = <&CPU1>;
  32				};
  33			};
  34		};
  35		CPU0: cpu@300 {
  36			device_type = "cpu";
  37			compatible = "arm,cortex-a9";
  38			reg = <0x300>;
  39			/* cpufreq controls */
  40			operating-points = <998400 0
  41					    800000 0
  42					    400000 0
  43					    200000 0>;
  44			clocks = <&prcmu_clk PRCMU_ARMSS>;
  45			clock-names = "cpu";
  46			clock-latency = <20000>;
  47			#cooling-cells = <2>;
  48		};
  49		CPU1: cpu@301 {
  50			device_type = "cpu";
  51			compatible = "arm,cortex-a9";
  52			reg = <0x301>;
  53		};
  54	};
  55
  56	thermal-zones {
  57		/*
  58		 * Thermal zone for the SoC, using the thermal sensor in the
  59		 * PRCMU for temperature and the cpufreq driver for passive
  60		 * cooling.
  61		 */
  62		cpu_thermal: cpu-thermal {
  63			polling-delay-passive = <250>;
  64			/*
  65			 * This sensor fires interrupts to update the thermal
  66			 * zone, so no polling is needed.
  67			 */
  68			polling-delay = <0>;
  69
  70			thermal-sensors = <&thermal>;
  71
  72			trips {
  73				cpu_alert: cpu-alert {
  74					temperature = <70000>;
  75					hysteresis = <2000>;
  76					type = "passive";
  77				};
  78				cpu-crit {
  79					temperature = <85000>;
  80					hysteresis = <0>;
  81					type = "critical";
  82				};
  83			};
  84
  85			cooling-maps {
  86				trip = <&cpu_alert>;
  87				cooling-device = <&CPU0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
  88				contribution = <100>;
  89			};
  90		};
  91	};
  92
  93	soc {
  94		#address-cells = <1>;
  95		#size-cells = <1>;
  96		compatible = "stericsson,db8500";
  97		interrupt-parent = <&intc>;
  98		ranges;
  99
 100		ptm@801ae000 {
 101			compatible = "arm,coresight-etm3x", "arm,primecell";
 102			reg = <0x801ae000 0x1000>;
 103
 104			clocks = <&prcmu_clk PRCMU_APETRACECLK>, <&prcmu_clk PRCMU_APEATCLK>;
 105			clock-names = "apb_pclk", "atclk";
 106			cpu = <&CPU0>;
 107			out-ports {
 108				port {
 109					ptm0_out_port: endpoint {
 110						remote-endpoint = <&funnel_in_port0>;
 111					};
 112				};
 113			};
 114		};
 115
 116		ptm@801af000 {
 117			compatible = "arm,coresight-etm3x", "arm,primecell";
 118			reg = <0x801af000 0x1000>;
 119
 120			clocks = <&prcmu_clk PRCMU_APETRACECLK>, <&prcmu_clk PRCMU_APEATCLK>;
 121			clock-names = "apb_pclk", "atclk";
 122			cpu = <&CPU1>;
 123			out-ports {
 124				port {
 125					ptm1_out_port: endpoint {
 126						remote-endpoint = <&funnel_in_port1>;
 127					};
 128				};
 129			};
 130		};
 131
 132		funnel@801a6000 {
 133			compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
 134			reg = <0x801a6000 0x1000>;
 135
 136			clocks = <&prcmu_clk PRCMU_APETRACECLK>, <&prcmu_clk PRCMU_APEATCLK>;
 137			clock-names = "apb_pclk", "atclk";
 138			out-ports {
 139				port {
 
 
 
 
 
 140					funnel_out_port: endpoint {
 141						remote-endpoint =
 142							<&replicator_in_port0>;
 143					};
 144				};
 145			};
 146
 147			in-ports {
 148				#address-cells = <1>;
 149				#size-cells = <0>;
 150
 151				port@0 {
 
 152					reg = <0>;
 153					funnel_in_port0: endpoint {
 
 154						remote-endpoint = <&ptm0_out_port>;
 155					};
 156				};
 157
 158				port@1 {
 159					reg = <1>;
 160					funnel_in_port1: endpoint {
 
 161						remote-endpoint = <&ptm1_out_port>;
 162					};
 163				};
 164			};
 165		};
 166
 167		replicator {
 168			compatible = "arm,coresight-static-replicator";
 169			clocks = <&prcmu_clk PRCMU_APEATCLK>;
 170			clock-names = "atclk";
 171
 172			out-ports {
 173				#address-cells = <1>;
 174				#size-cells = <0>;
 175
 
 176				port@0 {
 177					reg = <0>;
 178					replicator_out_port0: endpoint {
 179						remote-endpoint = <&tpiu_in_port>;
 180					};
 181				};
 182				port@1 {
 183					reg = <1>;
 184					replicator_out_port1: endpoint {
 185						remote-endpoint = <&etb_in_port>;
 186					};
 187				};
 188			};
 189
 190			in-ports {
 191				port {
 
 192					replicator_in_port0: endpoint {
 
 193						remote-endpoint = <&funnel_out_port>;
 194					};
 195				};
 196			};
 197		};
 198
 199		tpiu@80190000 {
 200			compatible = "arm,coresight-tpiu", "arm,primecell";
 201			reg = <0x80190000 0x1000>;
 202
 203			clocks = <&prcmu_clk PRCMU_APETRACECLK>, <&prcmu_clk PRCMU_APEATCLK>;
 204			clock-names = "apb_pclk", "atclk";
 205			in-ports {
 206				port {
 207					tpiu_in_port: endpoint {
 208						remote-endpoint = <&replicator_out_port0>;
 209					};
 210				};
 211			};
 212		};
 213
 214		etb@801a4000 {
 215			compatible = "arm,coresight-etb10", "arm,primecell";
 216			reg = <0x801a4000 0x1000>;
 217
 218			clocks = <&prcmu_clk PRCMU_APETRACECLK>, <&prcmu_clk PRCMU_APEATCLK>;
 219			clock-names = "apb_pclk", "atclk";
 220			in-ports {
 221				port {
 222					etb_in_port: endpoint {
 223						remote-endpoint = <&replicator_out_port1>;
 224					};
 225				};
 226			};
 227		};
 228
 229		intc: interrupt-controller@a0411000 {
 230			compatible = "arm,cortex-a9-gic";
 231			#interrupt-cells = <3>;
 232			#address-cells = <1>;
 233			interrupt-controller;
 234			reg = <0xa0411000 0x1000>,
 235			      <0xa0410100 0x100>;
 236		};
 237
 238		scu@a0410000 {
 239			compatible = "arm,cortex-a9-scu";
 240			reg = <0xa0410000 0x100>;
 241		};
 242
 243		/*
 244		 * The backup RAM is used for retention during sleep
 245		 * and various things like spin tables
 246		 */
 247		backupram@80150000 {
 248			compatible = "ste,dbx500-backupram";
 249			reg = <0x80150000 0x2000>;
 250		};
 251
 252		L2: l2-cache {
 253			compatible = "arm,pl310-cache";
 254			reg = <0xa0412000 0x1000>;
 255			interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
 256			cache-unified;
 257			cache-level = <2>;
 258		};
 259
 260		pmu {
 261			compatible = "arm,cortex-a9-pmu";
 262			interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
 263		};
 264
 265		pm_domains: pm_domains0 {
 266			compatible = "stericsson,ux500-pm-domains";
 267			#power-domain-cells = <1>;
 268		};
 269
 270		clocks {
 271			compatible = "stericsson,u8500-clks";
 272			/*
 273			 * Registers for the CLKRST block on peripheral
 274			 * groups 1, 2, 3, 5, 6,
 275			 */
 276			reg = <0x8012f000 0x1000>, <0x8011f000 0x1000>,
 277			    <0x8000f000 0x1000>, <0xa03ff000 0x1000>,
 278			    <0xa03cf000 0x1000>;
 279
 280			prcmu_clk: prcmu-clock {
 281				#clock-cells = <1>;
 282			};
 283
 284			prcc_pclk: prcc-periph-clock {
 285				#clock-cells = <2>;
 286			};
 287
 288			prcc_kclk: prcc-kernel-clock {
 289				#clock-cells = <2>;
 290			};
 291
 292			rtc_clk: rtc32k-clock {
 293				#clock-cells = <0>;
 294			};
 295
 296			smp_twd_clk: smp-twd-clock {
 297				#clock-cells = <0>;
 298			};
 299		};
 300
 301		mtu@a03c6000 {
 302			/* Nomadik System Timer */
 303			compatible = "st,nomadik-mtu";
 304			reg = <0xa03c6000 0x1000>;
 305			interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
 306
 307			clocks = <&prcmu_clk PRCMU_TIMCLK>, <&prcc_pclk 6 6>;
 308			clock-names = "timclk", "apb_pclk";
 309		};
 310
 311		timer@a0410600 {
 312			compatible = "arm,cortex-a9-twd-timer";
 313			reg = <0xa0410600 0x20>;
 314			interrupts = <GIC_PPI 13 (GIC_CPU_MASK_RAW(3) | IRQ_TYPE_LEVEL_HIGH)>;
 315
 316			clocks = <&smp_twd_clk>;
 317		};
 318
 319		watchdog@a0410620 {
 320			compatible = "arm,cortex-a9-twd-wdt";
 321			reg = <0xa0410620 0x20>;
 322			interrupts = <GIC_PPI 14 (GIC_CPU_MASK_RAW(3) | IRQ_TYPE_LEVEL_HIGH)>;
 323			clocks = <&smp_twd_clk>;
 324		};
 325
 326		rtc@80154000 {
 327			compatible = "arm,rtc-pl031", "arm,primecell";
 328			reg = <0x80154000 0x1000>;
 329			interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>;
 330
 331			clocks = <&rtc_clk>;
 332			clock-names = "apb_pclk";
 333		};
 334
 335		gpio0: gpio@8012e000 {
 336			compatible = "stericsson,db8500-gpio",
 337				"st,nomadik-gpio";
 338			reg =  <0x8012e000 0x80>;
 339			interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>;
 340			interrupt-controller;
 341			#interrupt-cells = <2>;
 342			st,supports-sleepmode;
 343			gpio-controller;
 344			#gpio-cells = <2>;
 345			gpio-bank = <0>;
 346			gpio-ranges = <&pinctrl 0 0 32>;
 347			clocks = <&prcc_pclk 1 9>;
 348		};
 349
 350		gpio1: gpio@8012e080 {
 351			compatible = "stericsson,db8500-gpio",
 352				"st,nomadik-gpio";
 353			reg =  <0x8012e080 0x80>;
 354			interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>;
 355			interrupt-controller;
 356			#interrupt-cells = <2>;
 357			st,supports-sleepmode;
 358			gpio-controller;
 359			#gpio-cells = <2>;
 360			gpio-bank = <1>;
 361			gpio-ranges = <&pinctrl 0 32 5>;
 362			clocks = <&prcc_pclk 1 9>;
 363		};
 364
 365		gpio2: gpio@8000e000 {
 366			compatible = "stericsson,db8500-gpio",
 367				"st,nomadik-gpio";
 368			reg =  <0x8000e000 0x80>;
 369			interrupts = <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>;
 370			interrupt-controller;
 371			#interrupt-cells = <2>;
 372			st,supports-sleepmode;
 373			gpio-controller;
 374			#gpio-cells = <2>;
 375			gpio-bank = <2>;
 376			gpio-ranges = <&pinctrl 0 64 32>;
 377			clocks = <&prcc_pclk 3 8>;
 378		};
 379
 380		gpio3: gpio@8000e080 {
 381			compatible = "stericsson,db8500-gpio",
 382				"st,nomadik-gpio";
 383			reg =  <0x8000e080 0x80>;
 384			interrupts = <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>;
 385			interrupt-controller;
 386			#interrupt-cells = <2>;
 387			st,supports-sleepmode;
 388			gpio-controller;
 389			#gpio-cells = <2>;
 390			gpio-bank = <3>;
 391			gpio-ranges = <&pinctrl 0 96 2>;
 392			clocks = <&prcc_pclk 3 8>;
 393		};
 394
 395		gpio4: gpio@8000e100 {
 396			compatible = "stericsson,db8500-gpio",
 397				"st,nomadik-gpio";
 398			reg =  <0x8000e100 0x80>;
 399			interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>;
 400			interrupt-controller;
 401			#interrupt-cells = <2>;
 402			st,supports-sleepmode;
 403			gpio-controller;
 404			#gpio-cells = <2>;
 405			gpio-bank = <4>;
 406			gpio-ranges = <&pinctrl 0 128 32>;
 407			clocks = <&prcc_pclk 3 8>;
 408		};
 409
 410		gpio5: gpio@8000e180 {
 411			compatible = "stericsson,db8500-gpio",
 412				"st,nomadik-gpio";
 413			reg =  <0x8000e180 0x80>;
 414			interrupts = <GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>;
 415			interrupt-controller;
 416			#interrupt-cells = <2>;
 417			st,supports-sleepmode;
 418			gpio-controller;
 419			#gpio-cells = <2>;
 420			gpio-bank = <5>;
 421			gpio-ranges = <&pinctrl 0 160 12>;
 422			clocks = <&prcc_pclk 3 8>;
 423		};
 424
 425		gpio6: gpio@8011e000 {
 426			compatible = "stericsson,db8500-gpio",
 427				"st,nomadik-gpio";
 428			reg =  <0x8011e000 0x80>;
 429			interrupts = <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>;
 430			interrupt-controller;
 431			#interrupt-cells = <2>;
 432			st,supports-sleepmode;
 433			gpio-controller;
 434			#gpio-cells = <2>;
 435			gpio-bank = <6>;
 436			gpio-ranges = <&pinctrl 0 192 32>;
 437			clocks = <&prcc_pclk 2 11>;
 438		};
 439
 440		gpio7: gpio@8011e080 {
 441			compatible = "stericsson,db8500-gpio",
 442				"st,nomadik-gpio";
 443			reg =  <0x8011e080 0x80>;
 444			interrupts = <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>;
 445			interrupt-controller;
 446			#interrupt-cells = <2>;
 447			st,supports-sleepmode;
 448			gpio-controller;
 449			#gpio-cells = <2>;
 450			gpio-bank = <7>;
 451			gpio-ranges = <&pinctrl 0 224 7>;
 452			clocks = <&prcc_pclk 2 11>;
 453		};
 454
 455		gpio8: gpio@a03fe000 {
 456			compatible = "stericsson,db8500-gpio",
 457				"st,nomadik-gpio";
 458			reg =  <0xa03fe000 0x80>;
 459			interrupts = <GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>;
 460			interrupt-controller;
 461			#interrupt-cells = <2>;
 462			st,supports-sleepmode;
 463			gpio-controller;
 464			#gpio-cells = <2>;
 465			gpio-bank = <8>;
 466			gpio-ranges = <&pinctrl 0 256 12>;
 467			clocks = <&prcc_pclk 5 1>;
 468		};
 469
 470		pinctrl: pinctrl {
 471			compatible = "stericsson,db8500-pinctrl";
 472			nomadik-gpio-chips = <&gpio0>, <&gpio1>, <&gpio2>, <&gpio3>,
 473						<&gpio4>, <&gpio5>, <&gpio6>, <&gpio7>,
 474						<&gpio8>;
 475			prcm = <&prcmu>;
 476		};
 477
 478		usb_per5@a03e0000 {
 479			compatible = "stericsson,db8500-musb";
 480			reg = <0xa03e0000 0x10000>;
 481			interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
 482			interrupt-names = "mc";
 483
 484			dr_mode = "otg";
 485
 486			dmas = <&dma 38 0 0x2>, /* Logical - DevToMem */
 487			       <&dma 38 0 0x0>, /* Logical - MemToDev */
 488			       <&dma 37 0 0x2>, /* Logical - DevToMem */
 489			       <&dma 37 0 0x0>, /* Logical - MemToDev */
 490			       <&dma 36 0 0x2>, /* Logical - DevToMem */
 491			       <&dma 36 0 0x0>, /* Logical - MemToDev */
 492			       <&dma 19 0 0x2>, /* Logical - DevToMem */
 493			       <&dma 19 0 0x0>, /* Logical - MemToDev */
 494			       <&dma 18 0 0x2>, /* Logical - DevToMem */
 495			       <&dma 18 0 0x0>, /* Logical - MemToDev */
 496			       <&dma 17 0 0x2>, /* Logical - DevToMem */
 497			       <&dma 17 0 0x0>, /* Logical - MemToDev */
 498			       <&dma 16 0 0x2>, /* Logical - DevToMem */
 499			       <&dma 16 0 0x0>, /* Logical - MemToDev */
 500			       <&dma 39 0 0x2>, /* Logical - DevToMem */
 501			       <&dma 39 0 0x0>; /* Logical - MemToDev */
 502
 503			dma-names = "iep_1_9",  "oep_1_9",
 504				    "iep_2_10", "oep_2_10",
 505				    "iep_3_11", "oep_3_11",
 506				    "iep_4_12", "oep_4_12",
 507				    "iep_5_13", "oep_5_13",
 508				    "iep_6_14", "oep_6_14",
 509				    "iep_7_15", "oep_7_15",
 510				    "iep_8",    "oep_8";
 511
 512			clocks = <&prcc_pclk 5 0>;
 513		};
 514
 515		dma: dma-controller@801C0000 {
 516			compatible = "stericsson,db8500-dma40", "stericsson,dma40";
 517			reg = <0x801C0000 0x1000 0x40010000 0x800>;
 518			reg-names = "base", "lcpa";
 519			interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
 520
 521			#dma-cells = <3>;
 522			memcpy-channels = <56 57 58 59 60>;
 523
 524			clocks = <&prcmu_clk PRCMU_DMACLK>;
 525		};
 526
 527		prcmu: prcmu@80157000 {
 528			compatible = "stericsson,db8500-prcmu", "syscon";
 529			reg = <0x80157000 0x2000>, <0x801b0000 0x8000>, <0x801b8000 0x1000>;
 530			reg-names = "prcmu", "prcmu-tcpm", "prcmu-tcdm";
 531			interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>;
 532			#address-cells = <1>;
 533			#size-cells = <1>;
 534			interrupt-controller;
 535			#interrupt-cells = <2>;
 536			ranges;
 537
 538			prcmu-timer-4@80157450 {
 539				compatible = "stericsson,db8500-prcmu-timer-4";
 540				reg = <0x80157450 0xC>;
 541			};
 542
 543			thermal: thermal@801573c0 {
 
 
 
 
 
 
 
 544				compatible = "stericsson,db8500-thermal";
 545				reg = <0x801573c0 0x40>;
 546				interrupt-parent = <&prcmu>;
 547				interrupts = <21 IRQ_TYPE_LEVEL_HIGH>,
 548					     <22 IRQ_TYPE_LEVEL_HIGH>;
 549				interrupt-names = "IRQ_HOTMON_LOW", "IRQ_HOTMON_HIGH";
 550				#thermal-sensor-cells = <0>;
 551			};
 552
 553			db8500-prcmu-regulators {
 554				compatible = "stericsson,db8500-prcmu-regulator";
 555
 556				// DB8500_REGULATOR_VAPE
 557				db8500_vape_reg: db8500_vape {
 558					regulator-always-on;
 559				};
 560
 561				// DB8500_REGULATOR_VARM
 562				db8500_varm_reg: db8500_varm {
 563				};
 564
 565				// DB8500_REGULATOR_VMODEM
 566				db8500_vmodem_reg: db8500_vmodem {
 567				};
 568
 569				// DB8500_REGULATOR_VPLL
 570				db8500_vpll_reg: db8500_vpll {
 571				};
 572
 573				// DB8500_REGULATOR_VSMPS1
 574				db8500_vsmps1_reg: db8500_vsmps1 {
 575				};
 576
 577				// DB8500_REGULATOR_VSMPS2
 578				db8500_vsmps2_reg: db8500_vsmps2 {
 579				};
 580
 581				// DB8500_REGULATOR_VSMPS3
 582				db8500_vsmps3_reg: db8500_vsmps3 {
 583				};
 584
 585				// DB8500_REGULATOR_VRF1
 586				db8500_vrf1_reg: db8500_vrf1 {
 587				};
 588
 589				// DB8500_REGULATOR_SWITCH_SVAMMDSP
 590				db8500_sva_mmdsp_reg: db8500_sva_mmdsp {
 591				};
 592
 593				// DB8500_REGULATOR_SWITCH_SVAMMDSPRET
 594				db8500_sva_mmdsp_ret_reg: db8500_sva_mmdsp_ret {
 595				};
 596
 597				// DB8500_REGULATOR_SWITCH_SVAPIPE
 598				db8500_sva_pipe_reg: db8500_sva_pipe {
 599				};
 600
 601				// DB8500_REGULATOR_SWITCH_SIAMMDSP
 602				db8500_sia_mmdsp_reg: db8500_sia_mmdsp {
 603				};
 604
 605				// DB8500_REGULATOR_SWITCH_SIAMMDSPRET
 606				db8500_sia_mmdsp_ret_reg: db8500_sia_mmdsp_ret {
 607				};
 608
 609				// DB8500_REGULATOR_SWITCH_SIAPIPE
 610				db8500_sia_pipe_reg: db8500_sia_pipe {
 611				};
 612
 613				// DB8500_REGULATOR_SWITCH_SGA
 614				db8500_sga_reg: db8500_sga {
 615					vin-supply = <&db8500_vape_reg>;
 616				};
 617
 618				// DB8500_REGULATOR_SWITCH_B2R2_MCDE
 619				db8500_b2r2_mcde_reg: db8500_b2r2_mcde {
 620					vin-supply = <&db8500_vape_reg>;
 621				};
 622
 623				// DB8500_REGULATOR_SWITCH_ESRAM12
 624				db8500_esram12_reg: db8500_esram12 {
 625				};
 626
 627				// DB8500_REGULATOR_SWITCH_ESRAM12RET
 628				db8500_esram12_ret_reg: db8500_esram12_ret {
 629				};
 630
 631				// DB8500_REGULATOR_SWITCH_ESRAM34
 632				db8500_esram34_reg: db8500_esram34 {
 633				};
 634
 635				// DB8500_REGULATOR_SWITCH_ESRAM34RET
 636				db8500_esram34_ret_reg: db8500_esram34_ret {
 637				};
 638			};
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 639		};
 640
 641		i2c@80004000 {
 642			compatible = "stericsson,db8500-i2c", "st,nomadik-i2c", "arm,primecell";
 643			reg = <0x80004000 0x1000>;
 644			interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>;
 645
 646			#address-cells = <1>;
 647			#size-cells = <0>;
 648			v-i2c-supply = <&db8500_vape_reg>;
 649
 650			clock-frequency = <400000>;
 651			clocks = <&prcc_kclk 3 3>, <&prcc_pclk 3 3>;
 652			clock-names = "i2cclk", "apb_pclk";
 653			power-domains = <&pm_domains DOMAIN_VAPE>;
 654		};
 655
 656		i2c@80122000 {
 657			compatible = "stericsson,db8500-i2c", "st,nomadik-i2c", "arm,primecell";
 658			reg = <0x80122000 0x1000>;
 659			interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>;
 660
 661			#address-cells = <1>;
 662			#size-cells = <0>;
 663			v-i2c-supply = <&db8500_vape_reg>;
 664
 665			clock-frequency = <400000>;
 666
 667			clocks = <&prcc_kclk 1 2>, <&prcc_pclk 1 2>;
 668			clock-names = "i2cclk", "apb_pclk";
 669			power-domains = <&pm_domains DOMAIN_VAPE>;
 670		};
 671
 672		i2c@80128000 {
 673			compatible = "stericsson,db8500-i2c", "st,nomadik-i2c", "arm,primecell";
 674			reg = <0x80128000 0x1000>;
 675			interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>;
 676
 677			#address-cells = <1>;
 678			#size-cells = <0>;
 679			v-i2c-supply = <&db8500_vape_reg>;
 680
 681			clock-frequency = <400000>;
 682
 683			clocks = <&prcc_kclk 1 6>, <&prcc_pclk 1 6>;
 684			clock-names = "i2cclk", "apb_pclk";
 685			power-domains = <&pm_domains DOMAIN_VAPE>;
 686		};
 687
 688		i2c@80110000 {
 689			compatible = "stericsson,db8500-i2c", "st,nomadik-i2c", "arm,primecell";
 690			reg = <0x80110000 0x1000>;
 691			interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
 692
 693			#address-cells = <1>;
 694			#size-cells = <0>;
 695			v-i2c-supply = <&db8500_vape_reg>;
 696
 697			clock-frequency = <400000>;
 698
 699			clocks = <&prcc_kclk 2 0>, <&prcc_pclk 2 0>;
 700			clock-names = "i2cclk", "apb_pclk";
 701			power-domains = <&pm_domains DOMAIN_VAPE>;
 702		};
 703
 704		i2c@8012a000 {
 705			compatible = "stericsson,db8500-i2c", "st,nomadik-i2c", "arm,primecell";
 706			reg = <0x8012a000 0x1000>;
 707			interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
 708
 709			#address-cells = <1>;
 710			#size-cells = <0>;
 711			v-i2c-supply = <&db8500_vape_reg>;
 712
 713			clock-frequency = <400000>;
 714
 715			clocks = <&prcc_kclk 1 9>, <&prcc_pclk 1 10>;
 716			clock-names = "i2cclk", "apb_pclk";
 717			power-domains = <&pm_domains DOMAIN_VAPE>;
 718		};
 719
 720		spi@80002000 {
 721			compatible = "arm,pl022", "arm,primecell";
 722			reg = <0x80002000 0x1000>;
 723			interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
 724			#address-cells = <1>;
 725			#size-cells = <0>;
 726			clocks = <&prcc_kclk 3 1>, <&prcc_pclk 3 1>;
 727			clock-names = "SSPCLK", "apb_pclk";
 728			dmas = <&dma 8 0 0x2>, /* Logical - DevToMem */
 729			       <&dma 8 0 0x0>; /* Logical - MemToDev */
 730			dma-names = "rx", "tx";
 731			power-domains = <&pm_domains DOMAIN_VAPE>;
 732		};
 733
 734		spi@80003000 {
 735			compatible = "arm,pl022", "arm,primecell";
 736			reg = <0x80003000 0x1000>;
 737			interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
 738			#address-cells = <1>;
 739			#size-cells = <0>;
 740			clocks = <&prcc_kclk 3 2>, <&prcc_pclk 3 2>;
 741			clock-names = "SSPCLK", "apb_pclk";
 742			dmas = <&dma 9 0 0x2>, /* Logical - DevToMem */
 743			       <&dma 9 0 0x0>; /* Logical - MemToDev */
 744			dma-names = "rx", "tx";
 745			power-domains = <&pm_domains DOMAIN_VAPE>;
 746		};
 747
 748		spi@8011a000 {
 749			compatible = "arm,pl022", "arm,primecell";
 750			reg = <0x8011a000 0x1000>;
 751			interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
 752			#address-cells = <1>;
 753			#size-cells = <0>;
 754			/* Same clock wired to kernel and pclk */
 755			clocks = <&prcc_pclk 2 8>, <&prcc_pclk 2 8>;
 756			clock-names = "SSPCLK", "apb_pclk";
 757			dmas = <&dma 0 0 0x2>, /* Logical - DevToMem */
 758			       <&dma 0 0 0x0>; /* Logical - MemToDev */
 759			dma-names = "rx", "tx";
 760			power-domains = <&pm_domains DOMAIN_VAPE>;
 761		};
 762
 763		spi@80112000 {
 764			compatible = "arm,pl022", "arm,primecell";
 765			reg = <0x80112000 0x1000>;
 766			interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
 767			#address-cells = <1>;
 768			#size-cells = <0>;
 769			/* Same clock wired to kernel and pclk */
 770			clocks = <&prcc_pclk 2 2>, <&prcc_pclk 2 2>;
 771			clock-names = "SSPCLK", "apb_pclk";
 772			dmas = <&dma 35 0 0x2>, /* Logical - DevToMem */
 773			       <&dma 35 0 0x0>; /* Logical - MemToDev */
 774			dma-names = "rx", "tx";
 775			power-domains = <&pm_domains DOMAIN_VAPE>;
 776		};
 777
 778		spi@80111000 {
 779			compatible = "arm,pl022", "arm,primecell";
 780			reg = <0x80111000 0x1000>;
 781			interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
 782			#address-cells = <1>;
 783			#size-cells = <0>;
 784			/* Same clock wired to kernel and pclk */
 785			clocks = <&prcc_pclk 2 1>, <&prcc_pclk 2 1>;
 786			clock-names = "SSPCLK", "apb_pclk";
 787			dmas = <&dma 33 0 0x2>, /* Logical - DevToMem */
 788			       <&dma 33 0 0x0>; /* Logical - MemToDev */
 789			dma-names = "rx", "tx";
 790			power-domains = <&pm_domains DOMAIN_VAPE>;
 791		};
 792
 793		spi@80129000 {
 794			compatible = "arm,pl022", "arm,primecell";
 795			reg = <0x80129000 0x1000>;
 796			interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
 797			#address-cells = <1>;
 798			#size-cells = <0>;
 799			/* Same clock wired to kernel and pclk */
 800			clocks = <&prcc_pclk 1 7>, <&prcc_pclk 1 7>;
 801			clock-names = "SSPCLK", "apb_pclk";
 802			dmas = <&dma 40 0 0x2>, /* Logical - DevToMem */
 803			       <&dma 40 0 0x0>; /* Logical - MemToDev */
 804			dma-names = "rx", "tx";
 805			power-domains = <&pm_domains DOMAIN_VAPE>;
 806		};
 807
 808		ux500_serial0: uart@80120000 {
 809			compatible = "arm,pl011", "arm,primecell";
 810			reg = <0x80120000 0x1000>;
 811			interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
 812
 813			dmas = <&dma 13 0 0x2>, /* Logical - DevToMem */
 814			       <&dma 13 0 0x0>; /* Logical - MemToDev */
 815			dma-names = "rx", "tx";
 816
 817			clocks = <&prcc_kclk 1 0>, <&prcc_pclk 1 0>;
 818			clock-names = "uart", "apb_pclk";
 819
 820			status = "disabled";
 821		};
 822
 823		ux500_serial1: uart@80121000 {
 824			compatible = "arm,pl011", "arm,primecell";
 825			reg = <0x80121000 0x1000>;
 826			interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
 827
 828			dmas = <&dma 12 0 0x2>, /* Logical - DevToMem */
 829			       <&dma 12 0 0x0>; /* Logical - MemToDev */
 830			dma-names = "rx", "tx";
 831
 832			clocks = <&prcc_kclk 1 1>, <&prcc_pclk 1 1>;
 833			clock-names = "uart", "apb_pclk";
 834
 835			status = "disabled";
 836		};
 837
 838		ux500_serial2: uart@80007000 {
 839			compatible = "arm,pl011", "arm,primecell";
 840			reg = <0x80007000 0x1000>;
 841			interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
 842
 843			dmas = <&dma 11 0 0x2>, /* Logical - DevToMem */
 844			       <&dma 11 0 0x0>; /* Logical - MemToDev */
 845			dma-names = "rx", "tx";
 846
 847			clocks = <&prcc_kclk 3 6>, <&prcc_pclk 3 6>;
 848			clock-names = "uart", "apb_pclk";
 849
 850			status = "disabled";
 851		};
 852
 853		sdi0_per1@80126000 {
 854			compatible = "arm,pl18x", "arm,primecell";
 855			reg = <0x80126000 0x1000>;
 856			interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>;
 857
 858			dmas = <&dma 29 0 0x2>, /* Logical - DevToMem */
 859			       <&dma 29 0 0x0>; /* Logical - MemToDev */
 860			dma-names = "rx", "tx";
 861
 862			clocks = <&prcc_kclk 1 5>, <&prcc_pclk 1 5>;
 863			clock-names = "sdi", "apb_pclk";
 864			power-domains = <&pm_domains DOMAIN_VAPE>;
 865
 866			status = "disabled";
 867		};
 868
 869		sdi1_per2@80118000 {
 870			compatible = "arm,pl18x", "arm,primecell";
 871			reg = <0x80118000 0x1000>;
 872			interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
 873
 874			dmas = <&dma 32 0 0x2>, /* Logical - DevToMem */
 875			       <&dma 32 0 0x0>; /* Logical - MemToDev */
 876			dma-names = "rx", "tx";
 877
 878			clocks = <&prcc_kclk 2 4>, <&prcc_pclk 2 6>;
 879			clock-names = "sdi", "apb_pclk";
 880			power-domains = <&pm_domains DOMAIN_VAPE>;
 881
 882			status = "disabled";
 883		};
 884
 885		sdi2_per3@80005000 {
 886			compatible = "arm,pl18x", "arm,primecell";
 887			reg = <0x80005000 0x1000>;
 888			interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
 889
 890			dmas = <&dma 28 0 0x2>, /* Logical - DevToMem */
 891			       <&dma 28 0 0x0>; /* Logical - MemToDev */
 892			dma-names = "rx", "tx";
 893
 894			clocks = <&prcc_kclk 3 4>, <&prcc_pclk 3 4>;
 895			clock-names = "sdi", "apb_pclk";
 896			power-domains = <&pm_domains DOMAIN_VAPE>;
 897
 898			status = "disabled";
 899		};
 900
 901		sdi3_per2@80119000 {
 902			compatible = "arm,pl18x", "arm,primecell";
 903			reg = <0x80119000 0x1000>;
 904			interrupts = <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>;
 905
 906			dmas = <&dma 41 0 0x2>, /* Logical - DevToMem */
 907			       <&dma 41 0 0x0>; /* Logical - MemToDev */
 908			dma-names = "rx", "tx";
 909
 910			clocks = <&prcc_kclk 2 5>, <&prcc_pclk 2 7>;
 911			clock-names = "sdi", "apb_pclk";
 912			power-domains = <&pm_domains DOMAIN_VAPE>;
 913
 914			status = "disabled";
 915		};
 916
 917		sdi4_per2@80114000 {
 918			compatible = "arm,pl18x", "arm,primecell";
 919			reg = <0x80114000 0x1000>;
 920			interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>;
 921
 922			dmas = <&dma 42 0 0x2>, /* Logical - DevToMem */
 923			       <&dma 42 0 0x0>; /* Logical - MemToDev */
 924			dma-names = "rx", "tx";
 925
 926			clocks = <&prcc_kclk 2 2>, <&prcc_pclk 2 4>;
 927			clock-names = "sdi", "apb_pclk";
 928			power-domains = <&pm_domains DOMAIN_VAPE>;
 929
 930			status = "disabled";
 931		};
 932
 933		sdi5_per3@80008000 {
 934			compatible = "arm,pl18x", "arm,primecell";
 935			reg = <0x80008000 0x1000>;
 936			interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
 937
 938			dmas = <&dma 43 0 0x2>, /* Logical - DevToMem */
 939			       <&dma 43 0 0x0>; /* Logical - MemToDev */
 940			dma-names = "rx", "tx";
 941
 942			clocks = <&prcc_kclk 3 7>, <&prcc_pclk 3 7>;
 943			clock-names = "sdi", "apb_pclk";
 944			power-domains = <&pm_domains DOMAIN_VAPE>;
 945
 946			status = "disabled";
 947		};
 948
 949		sound {
 950			compatible = "stericsson,snd-soc-mop500";
 951			stericsson,cpu-dai = <&msp1 &msp3>;
 952		};
 953
 954		msp0: msp@80123000 {
 955			compatible = "stericsson,ux500-msp-i2s";
 956			reg = <0x80123000 0x1000>;
 957			interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
 958			v-ape-supply = <&db8500_vape_reg>;
 959
 960			dmas = <&dma 31 0 0x12>, /* Logical - DevToMem - HighPrio */
 961			       <&dma 31 0 0x10>; /* Logical - MemToDev - HighPrio */
 962			dma-names = "rx", "tx";
 963
 964			clocks = <&prcc_kclk 1 3>, <&prcc_pclk 1 3>;
 965			clock-names = "msp", "apb_pclk";
 966
 967			status = "disabled";
 968		};
 969
 970		msp1: msp@80124000 {
 971			compatible = "stericsson,ux500-msp-i2s";
 972			reg = <0x80124000 0x1000>;
 973			interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>;
 974			v-ape-supply = <&db8500_vape_reg>;
 975
 976			/* This DMA channel only exist on DB8500 v1 */
 977			dmas = <&dma 30 0 0x10>; /* Logical - MemToDev - HighPrio */
 978			dma-names = "tx";
 979
 980			clocks = <&prcc_kclk 1 4>, <&prcc_pclk 1 4>;
 981			clock-names = "msp", "apb_pclk";
 982
 983			status = "disabled";
 984		};
 985
 986		// HDMI sound
 987		msp2: msp@80117000 {
 988			compatible = "stericsson,ux500-msp-i2s";
 989			reg = <0x80117000 0x1000>;
 990			interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
 991			v-ape-supply = <&db8500_vape_reg>;
 992
 993			dmas = <&dma 14 0 0x12>, /* Logical  - DevToMem - HighPrio */
 994			       <&dma 14 1 0x19>; /* Physical Chan 1 - MemToDev
 995                                                    HighPrio - Fixed */
 996			dma-names = "rx", "tx";
 997
 998			clocks = <&prcc_kclk 2 3>, <&prcc_pclk 2 5>;
 999			clock-names = "msp", "apb_pclk";
1000
1001			status = "disabled";
1002		};
1003
1004		msp3: msp@80125000 {
1005			compatible = "stericsson,ux500-msp-i2s";
1006			reg = <0x80125000 0x1000>;
1007			interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>;
1008			v-ape-supply = <&db8500_vape_reg>;
1009
1010			/* This DMA channel only exist on DB8500 v2 */
1011			dmas = <&dma 30 0 0x12>; /* Logical - DevToMem - HighPrio */
1012			dma-names = "rx";
1013
1014			clocks = <&prcc_kclk 1 10>, <&prcc_pclk 1 11>;
1015			clock-names = "msp", "apb_pclk";
1016
1017			status = "disabled";
1018		};
1019
1020		external-bus@50000000 {
1021			compatible = "simple-bus";
1022			reg = <0x50000000 0x4000000>;
1023			#address-cells = <1>;
1024			#size-cells = <1>;
1025			ranges = <0 0x50000000 0x4000000>;
1026			status = "disabled";
1027		};
1028
1029		gpu@a0300000 {
1030			/*
1031			 * This block is referred to as "Smart Graphics Adapter SGA500"
1032			 * in documentation but is in practice a pretty straight-forward
1033			 * MALI-400 GPU block.
1034			 */
1035			compatible = "stericsson,db8500-mali", "arm,mali-400";
1036			reg = <0xa0300000 0x10000>;
1037			interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>,
1038				     <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>,
1039				     <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>,
1040				     <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>,
1041				     <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>;
1042			interrupt-names = "gp",
1043					  "gpmmu",
1044					  "pp0",
1045					  "ppmmu0",
1046					  "combined";
1047			clocks = <&prcmu_clk PRCMU_ACLK>, <&prcmu_clk PRCMU_SGACLK>;
1048			clock-names = "bus", "core";
1049			mali-supply = <&db8500_sga_reg>;
1050			power-domains = <&pm_domains DOMAIN_VAPE>;
1051		};
1052
1053		mcde@a0350000 {
1054			compatible = "ste,mcde";
1055			reg = <0xa0350000 0x1000>;
1056			interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>;
1057			epod-supply = <&db8500_b2r2_mcde_reg>;
 
 
1058			clocks = <&prcmu_clk PRCMU_MCDECLK>, /* Main MCDE clock */
1059				 <&prcmu_clk PRCMU_LCDCLK>, /* LCD clock */
1060				 <&prcmu_clk PRCMU_PLLDSI>; /* HDMI clock */
1061			clock-names = "mcde", "lcd", "hdmi";
1062			#address-cells = <1>;
1063			#size-cells = <1>;
1064			ranges;
1065			status = "disabled";
1066
1067			dsi0: dsi@a0351000 {
1068				compatible = "ste,mcde-dsi";
1069				reg = <0xa0351000 0x1000>;
1070				clocks = <&prcmu_clk PRCMU_DSI0CLK>, <&prcmu_clk PRCMU_DSI0ESCCLK>;
1071				clock-names = "hs", "lp";
1072				#address-cells = <1>;
1073				#size-cells = <0>;
1074			};
1075			dsi1: dsi@a0352000 {
1076				compatible = "ste,mcde-dsi";
1077				reg = <0xa0352000 0x1000>;
1078				clocks = <&prcmu_clk PRCMU_DSI1CLK>, <&prcmu_clk PRCMU_DSI1ESCCLK>;
1079				clock-names = "hs", "lp";
1080				#address-cells = <1>;
1081				#size-cells = <0>;
1082			};
1083			dsi2: dsi@a0353000 {
1084				compatible = "ste,mcde-dsi";
1085				reg = <0xa0353000 0x1000>;
1086				/* This DSI port only has the Low Power / Energy Save clock */
1087				clocks = <&prcmu_clk PRCMU_DSI2ESCCLK>;
1088				clock-names = "lp";
1089				#address-cells = <1>;
1090				#size-cells = <0>;
1091			};
1092		};
1093
1094		cryp@a03cb000 {
1095			compatible = "stericsson,ux500-cryp";
1096			reg = <0xa03cb000 0x1000>;
1097			interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
1098
1099			v-ape-supply = <&db8500_vape_reg>;
1100			clocks = <&prcc_pclk 6 1>;
1101		};
1102
1103		hash@a03c2000 {
1104			compatible = "stericsson,ux500-hash";
1105			reg = <0xa03c2000 0x1000>;
1106
1107			v-ape-supply = <&db8500_vape_reg>;
1108			clocks = <&prcc_pclk 6 2>;
1109		};
1110	};
1111};
v4.6
 
   1/*
   2 * Copyright 2012 Linaro Ltd
   3 *
   4 * The code contained herein is licensed under the GNU General Public
   5 * License. You may obtain a copy of the GNU General Public License
   6 * Version 2 or later at the following locations:
   7 *
   8 * http://www.opensource.org/licenses/gpl-license.html
   9 * http://www.gnu.org/copyleft/gpl.html
  10 */
  11
  12#include <dt-bindings/interrupt-controller/irq.h>
 
  13#include <dt-bindings/mfd/dbx500-prcmu.h>
  14#include <dt-bindings/arm/ux500_pm_domains.h>
  15#include "skeleton.dtsi"
 
  16
  17/ {
 
 
 
 
 
 
  18	cpus {
  19		#address-cells = <1>;
  20		#size-cells = <0>;
  21		enable-method = "ste,dbx500-smp";
  22
  23		cpu-map {
  24			cluster0 {
  25				core0 {
  26					cpu = <&CPU0>;
  27				};
  28				core1 {
  29					cpu = <&CPU1>;
  30				};
  31			};
  32		};
  33		CPU0: cpu@300 {
  34			device_type = "cpu";
  35			compatible = "arm,cortex-a9";
  36			reg = <0x300>;
 
 
 
 
 
 
 
 
 
  37		};
  38		CPU1: cpu@301 {
  39			device_type = "cpu";
  40			compatible = "arm,cortex-a9";
  41			reg = <0x301>;
  42		};
  43	};
  44
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
  45	soc {
  46		#address-cells = <1>;
  47		#size-cells = <1>;
  48		compatible = "stericsson,db8500";
  49		interrupt-parent = <&intc>;
  50		ranges;
  51
  52		ptm@801ae000 {
  53			compatible = "arm,coresight-etm3x", "arm,primecell";
  54			reg = <0x801ae000 0x1000>;
  55
  56			clocks = <&prcmu_clk PRCMU_APETRACECLK>, <&prcmu_clk PRCMU_APEATCLK>;
  57			clock-names = "apb_pclk", "atclk";
  58			cpu = <&CPU0>;
  59			port {
  60				ptm0_out_port: endpoint {
  61					remote-endpoint = <&funnel_in_port0>;
 
 
  62				};
  63			};
  64		};
  65
  66		ptm@801af000 {
  67			compatible = "arm,coresight-etm3x", "arm,primecell";
  68			reg = <0x801af000 0x1000>;
  69
  70			clocks = <&prcmu_clk PRCMU_APETRACECLK>, <&prcmu_clk PRCMU_APEATCLK>;
  71			clock-names = "apb_pclk", "atclk";
  72			cpu = <&CPU1>;
  73			port {
  74				ptm1_out_port: endpoint {
  75					remote-endpoint = <&funnel_in_port1>;
 
 
  76				};
  77			};
  78		};
  79
  80		funnel@801a6000 {
  81			compatible = "arm,coresight-funnel", "arm,primecell";
  82			reg = <0x801a6000 0x1000>;
  83
  84			clocks = <&prcmu_clk PRCMU_APETRACECLK>, <&prcmu_clk PRCMU_APEATCLK>;
  85			clock-names = "apb_pclk", "atclk";
  86			ports {
  87				#address-cells = <1>;
  88				#size-cells = <0>;
  89
  90				/* funnel output ports */
  91				port@0 {
  92					reg = <0>;
  93					funnel_out_port: endpoint {
  94						remote-endpoint =
  95							<&replicator_in_port0>;
  96					};
  97				};
 
 
 
 
 
  98
  99				/* funnel input ports */
 100				port@1 {
 101					reg = <0>;
 102					funnel_in_port0: endpoint {
 103						slave-mode;
 104						remote-endpoint = <&ptm0_out_port>;
 105					};
 106				};
 107
 108				port@2 {
 109					reg = <1>;
 110					funnel_in_port1: endpoint {
 111						slave-mode;
 112						remote-endpoint = <&ptm1_out_port>;
 113					};
 114				};
 115			};
 116		};
 117
 118		replicator {
 119			compatible = "arm,coresight-replicator";
 120			clocks = <&prcmu_clk PRCMU_APEATCLK>;
 121			clock-names = "atclk";
 122
 123			ports {
 124				#address-cells = <1>;
 125				#size-cells = <0>;
 126
 127				/* replicator output ports */
 128				port@0 {
 129					reg = <0>;
 130					replicator_out_port0: endpoint {
 131						remote-endpoint = <&tpiu_in_port>;
 132					};
 133				};
 134				port@1 {
 135					reg = <1>;
 136					replicator_out_port1: endpoint {
 137						remote-endpoint = <&etb_in_port>;
 138					};
 139				};
 
 140
 141				/* replicator input port */
 142				port@2 {
 143					reg = <0>;
 144					replicator_in_port0: endpoint {
 145						slave-mode;
 146						remote-endpoint = <&funnel_out_port>;
 147					};
 148				};
 149			};
 150		};
 151
 152		tpiu@80190000 {
 153			compatible = "arm,coresight-tpiu", "arm,primecell";
 154			reg = <0x80190000 0x1000>;
 155
 156			clocks = <&prcmu_clk PRCMU_APETRACECLK>, <&prcmu_clk PRCMU_APEATCLK>;
 157			clock-names = "apb_pclk", "atclk";
 158			port {
 159				tpiu_in_port: endpoint {
 160					slave-mode;
 161					remote-endpoint = <&replicator_out_port0>;
 
 162				};
 163			};
 164		};
 165
 166		etb@801a4000 {
 167			compatible = "arm,coresight-etb10", "arm,primecell";
 168			reg = <0x801a4000 0x1000>;
 169
 170			clocks = <&prcmu_clk PRCMU_APETRACECLK>, <&prcmu_clk PRCMU_APEATCLK>;
 171			clock-names = "apb_pclk", "atclk";
 172			port {
 173				etb_in_port: endpoint {
 174					slave-mode;
 175					remote-endpoint = <&replicator_out_port1>;
 
 176				};
 177			};
 178		};
 179
 180		intc: interrupt-controller@a0411000 {
 181			compatible = "arm,cortex-a9-gic";
 182			#interrupt-cells = <3>;
 183			#address-cells = <1>;
 184			interrupt-controller;
 185			reg = <0xa0411000 0x1000>,
 186			      <0xa0410100 0x100>;
 187		};
 188
 189		scu@a04100000 {
 190			compatible = "arm,cortex-a9-scu";
 191			reg = <0xa0410000 0x100>;
 192		};
 193
 194		/*
 195		 * The backup RAM is used for retention during sleep
 196		 * and various things like spin tables
 197		 */
 198		backupram@80150000 {
 199			compatible = "ste,dbx500-backupram";
 200			reg = <0x80150000 0x2000>;
 201		};
 202
 203		L2: l2-cache {
 204			compatible = "arm,pl310-cache";
 205			reg = <0xa0412000 0x1000>;
 206			interrupts = <0 13 IRQ_TYPE_LEVEL_HIGH>;
 207			cache-unified;
 208			cache-level = <2>;
 209		};
 210
 211		pmu {
 212			compatible = "arm,cortex-a9-pmu";
 213			interrupts = <0 7 IRQ_TYPE_LEVEL_HIGH>;
 214		};
 215
 216		pm_domains: pm_domains0 {
 217			compatible = "stericsson,ux500-pm-domains";
 218			#power-domain-cells = <1>;
 219		};
 220
 221		clocks {
 222			compatible = "stericsson,u8500-clks";
 223			/*
 224			 * Registers for the CLKRST block on peripheral
 225			 * groups 1, 2, 3, 5, 6,
 226			 */
 227			reg = <0x8012f000 0x1000>, <0x8011f000 0x1000>,
 228			    <0x8000f000 0x1000>, <0xa03ff000 0x1000>,
 229			    <0xa03cf000 0x1000>;
 230
 231			prcmu_clk: prcmu-clock {
 232				#clock-cells = <1>;
 233			};
 234
 235			prcc_pclk: prcc-periph-clock {
 236				#clock-cells = <2>;
 237			};
 238
 239			prcc_kclk: prcc-kernel-clock {
 240				#clock-cells = <2>;
 241			};
 242
 243			rtc_clk: rtc32k-clock {
 244				#clock-cells = <0>;
 245			};
 246
 247			smp_twd_clk: smp-twd-clock {
 248				#clock-cells = <0>;
 249			};
 250		};
 251
 252		mtu@a03c6000 {
 253			/* Nomadik System Timer */
 254			compatible = "st,nomadik-mtu";
 255			reg = <0xa03c6000 0x1000>;
 256			interrupts = <0 4 IRQ_TYPE_LEVEL_HIGH>;
 257
 258			clocks = <&prcmu_clk PRCMU_TIMCLK>, <&prcc_pclk 6 6>;
 259			clock-names = "timclk", "apb_pclk";
 260		};
 261
 262		timer@a0410600 {
 263			compatible = "arm,cortex-a9-twd-timer";
 264			reg = <0xa0410600 0x20>;
 265			interrupts = <1 13 0x304>; /* IRQ level high per-CPU */
 266
 267			clocks = <&smp_twd_clk>;
 268		};
 269
 270		watchdog@a0410620 {
 271			compatible = "arm,cortex-a9-twd-wdt";
 272			reg = <0xa0410620 0x20>;
 273			interrupts = <1 14 0x304>;
 274			clocks = <&smp_twd_clk>;
 275		};
 276
 277		rtc@80154000 {
 278			compatible = "arm,rtc-pl031", "arm,primecell";
 279			reg = <0x80154000 0x1000>;
 280			interrupts = <0 18 IRQ_TYPE_LEVEL_HIGH>;
 281
 282			clocks = <&rtc_clk>;
 283			clock-names = "apb_pclk";
 284		};
 285
 286		gpio0: gpio@8012e000 {
 287			compatible = "stericsson,db8500-gpio",
 288				"st,nomadik-gpio";
 289			reg =  <0x8012e000 0x80>;
 290			interrupts = <0 119 IRQ_TYPE_LEVEL_HIGH>;
 291			interrupt-controller;
 292			#interrupt-cells = <2>;
 293			st,supports-sleepmode;
 294			gpio-controller;
 295			#gpio-cells = <2>;
 296			gpio-bank = <0>;
 297			gpio-ranges = <&pinctrl 0 0 32>;
 298			clocks = <&prcc_pclk 1 9>;
 299		};
 300
 301		gpio1: gpio@8012e080 {
 302			compatible = "stericsson,db8500-gpio",
 303				"st,nomadik-gpio";
 304			reg =  <0x8012e080 0x80>;
 305			interrupts = <0 120 IRQ_TYPE_LEVEL_HIGH>;
 306			interrupt-controller;
 307			#interrupt-cells = <2>;
 308			st,supports-sleepmode;
 309			gpio-controller;
 310			#gpio-cells = <2>;
 311			gpio-bank = <1>;
 312			gpio-ranges = <&pinctrl 0 32 5>;
 313			clocks = <&prcc_pclk 1 9>;
 314		};
 315
 316		gpio2: gpio@8000e000 {
 317			compatible = "stericsson,db8500-gpio",
 318				"st,nomadik-gpio";
 319			reg =  <0x8000e000 0x80>;
 320			interrupts = <0 121 IRQ_TYPE_LEVEL_HIGH>;
 321			interrupt-controller;
 322			#interrupt-cells = <2>;
 323			st,supports-sleepmode;
 324			gpio-controller;
 325			#gpio-cells = <2>;
 326			gpio-bank = <2>;
 327			gpio-ranges = <&pinctrl 0 64 32>;
 328			clocks = <&prcc_pclk 3 8>;
 329		};
 330
 331		gpio3: gpio@8000e080 {
 332			compatible = "stericsson,db8500-gpio",
 333				"st,nomadik-gpio";
 334			reg =  <0x8000e080 0x80>;
 335			interrupts = <0 122 IRQ_TYPE_LEVEL_HIGH>;
 336			interrupt-controller;
 337			#interrupt-cells = <2>;
 338			st,supports-sleepmode;
 339			gpio-controller;
 340			#gpio-cells = <2>;
 341			gpio-bank = <3>;
 342			gpio-ranges = <&pinctrl 0 96 2>;
 343			clocks = <&prcc_pclk 3 8>;
 344		};
 345
 346		gpio4: gpio@8000e100 {
 347			compatible = "stericsson,db8500-gpio",
 348				"st,nomadik-gpio";
 349			reg =  <0x8000e100 0x80>;
 350			interrupts = <0 123 IRQ_TYPE_LEVEL_HIGH>;
 351			interrupt-controller;
 352			#interrupt-cells = <2>;
 353			st,supports-sleepmode;
 354			gpio-controller;
 355			#gpio-cells = <2>;
 356			gpio-bank = <4>;
 357			gpio-ranges = <&pinctrl 0 128 32>;
 358			clocks = <&prcc_pclk 3 8>;
 359		};
 360
 361		gpio5: gpio@8000e180 {
 362			compatible = "stericsson,db8500-gpio",
 363				"st,nomadik-gpio";
 364			reg =  <0x8000e180 0x80>;
 365			interrupts = <0 124 IRQ_TYPE_LEVEL_HIGH>;
 366			interrupt-controller;
 367			#interrupt-cells = <2>;
 368			st,supports-sleepmode;
 369			gpio-controller;
 370			#gpio-cells = <2>;
 371			gpio-bank = <5>;
 372			gpio-ranges = <&pinctrl 0 160 12>;
 373			clocks = <&prcc_pclk 3 8>;
 374		};
 375
 376		gpio6: gpio@8011e000 {
 377			compatible = "stericsson,db8500-gpio",
 378				"st,nomadik-gpio";
 379			reg =  <0x8011e000 0x80>;
 380			interrupts = <0 125 IRQ_TYPE_LEVEL_HIGH>;
 381			interrupt-controller;
 382			#interrupt-cells = <2>;
 383			st,supports-sleepmode;
 384			gpio-controller;
 385			#gpio-cells = <2>;
 386			gpio-bank = <6>;
 387			gpio-ranges = <&pinctrl 0 192 32>;
 388			clocks = <&prcc_pclk 2 11>;
 389		};
 390
 391		gpio7: gpio@8011e080 {
 392			compatible = "stericsson,db8500-gpio",
 393				"st,nomadik-gpio";
 394			reg =  <0x8011e080 0x80>;
 395			interrupts = <0 126 IRQ_TYPE_LEVEL_HIGH>;
 396			interrupt-controller;
 397			#interrupt-cells = <2>;
 398			st,supports-sleepmode;
 399			gpio-controller;
 400			#gpio-cells = <2>;
 401			gpio-bank = <7>;
 402			gpio-ranges = <&pinctrl 0 224 7>;
 403			clocks = <&prcc_pclk 2 11>;
 404		};
 405
 406		gpio8: gpio@a03fe000 {
 407			compatible = "stericsson,db8500-gpio",
 408				"st,nomadik-gpio";
 409			reg =  <0xa03fe000 0x80>;
 410			interrupts = <0 127 IRQ_TYPE_LEVEL_HIGH>;
 411			interrupt-controller;
 412			#interrupt-cells = <2>;
 413			st,supports-sleepmode;
 414			gpio-controller;
 415			#gpio-cells = <2>;
 416			gpio-bank = <8>;
 417			gpio-ranges = <&pinctrl 0 256 12>;
 418			clocks = <&prcc_pclk 5 1>;
 419		};
 420
 421		pinctrl: pinctrl {
 422			compatible = "stericsson,db8500-pinctrl";
 423			nomadik-gpio-chips = <&gpio0>, <&gpio1>, <&gpio2>, <&gpio3>,
 424						<&gpio4>, <&gpio5>, <&gpio6>, <&gpio7>,
 425						<&gpio8>;
 426			prcm = <&prcmu>;
 427		};
 428
 429		usb_per5@a03e0000 {
 430			compatible = "stericsson,db8500-musb";
 431			reg = <0xa03e0000 0x10000>;
 432			interrupts = <0 23 IRQ_TYPE_LEVEL_HIGH>;
 433			interrupt-names = "mc";
 434
 435			dr_mode = "otg";
 436
 437			dmas = <&dma 38 0 0x2>, /* Logical - DevToMem */
 438			       <&dma 38 0 0x0>, /* Logical - MemToDev */
 439			       <&dma 37 0 0x2>, /* Logical - DevToMem */
 440			       <&dma 37 0 0x0>, /* Logical - MemToDev */
 441			       <&dma 36 0 0x2>, /* Logical - DevToMem */
 442			       <&dma 36 0 0x0>, /* Logical - MemToDev */
 443			       <&dma 19 0 0x2>, /* Logical - DevToMem */
 444			       <&dma 19 0 0x0>, /* Logical - MemToDev */
 445			       <&dma 18 0 0x2>, /* Logical - DevToMem */
 446			       <&dma 18 0 0x0>, /* Logical - MemToDev */
 447			       <&dma 17 0 0x2>, /* Logical - DevToMem */
 448			       <&dma 17 0 0x0>, /* Logical - MemToDev */
 449			       <&dma 16 0 0x2>, /* Logical - DevToMem */
 450			       <&dma 16 0 0x0>, /* Logical - MemToDev */
 451			       <&dma 39 0 0x2>, /* Logical - DevToMem */
 452			       <&dma 39 0 0x0>; /* Logical - MemToDev */
 453
 454			dma-names = "iep_1_9",  "oep_1_9",
 455				    "iep_2_10", "oep_2_10",
 456				    "iep_3_11", "oep_3_11",
 457				    "iep_4_12", "oep_4_12",
 458				    "iep_5_13", "oep_5_13",
 459				    "iep_6_14", "oep_6_14",
 460				    "iep_7_15", "oep_7_15",
 461				    "iep_8",    "oep_8";
 462
 463			clocks = <&prcc_pclk 5 0>;
 464		};
 465
 466		dma: dma-controller@801C0000 {
 467			compatible = "stericsson,db8500-dma40", "stericsson,dma40";
 468			reg = <0x801C0000 0x1000 0x40010000 0x800>;
 469			reg-names = "base", "lcpa";
 470			interrupts = <0 25 IRQ_TYPE_LEVEL_HIGH>;
 471
 472			#dma-cells = <3>;
 473			memcpy-channels = <56 57 58 59 60>;
 474
 475			clocks = <&prcmu_clk PRCMU_DMACLK>;
 476		};
 477
 478		prcmu: prcmu@80157000 {
 479			compatible = "stericsson,db8500-prcmu";
 480			reg = <0x80157000 0x2000>, <0x801b0000 0x8000>, <0x801b8000 0x1000>;
 481			reg-names = "prcmu", "prcmu-tcpm", "prcmu-tcdm";
 482			interrupts = <0 47 IRQ_TYPE_LEVEL_HIGH>;
 483			#address-cells = <1>;
 484			#size-cells = <1>;
 485			interrupt-controller;
 486			#interrupt-cells = <2>;
 487			ranges;
 488
 489			prcmu-timer-4@80157450 {
 490				compatible = "stericsson,db8500-prcmu-timer-4";
 491				reg = <0x80157450 0xC>;
 492			};
 493
 494			cpufreq {
 495				compatible = "stericsson,cpufreq-ux500";
 496				clocks = <&prcmu_clk PRCMU_ARMSS>;
 497				clock-names = "armss";
 498				status = "disabled";
 499			};
 500
 501			thermal@801573c0 {
 502				compatible = "stericsson,db8500-thermal";
 503				reg = <0x801573c0 0x40>;
 
 504				interrupts = <21 IRQ_TYPE_LEVEL_HIGH>,
 505					     <22 IRQ_TYPE_LEVEL_HIGH>;
 506				interrupt-names = "IRQ_HOTMON_LOW", "IRQ_HOTMON_HIGH";
 507				status = "disabled";
 508			};
 509
 510			db8500-prcmu-regulators {
 511				compatible = "stericsson,db8500-prcmu-regulator";
 512
 513				// DB8500_REGULATOR_VAPE
 514				db8500_vape_reg: db8500_vape {
 515					regulator-always-on;
 516				};
 517
 518				// DB8500_REGULATOR_VARM
 519				db8500_varm_reg: db8500_varm {
 520				};
 521
 522				// DB8500_REGULATOR_VMODEM
 523				db8500_vmodem_reg: db8500_vmodem {
 524				};
 525
 526				// DB8500_REGULATOR_VPLL
 527				db8500_vpll_reg: db8500_vpll {
 528				};
 529
 530				// DB8500_REGULATOR_VSMPS1
 531				db8500_vsmps1_reg: db8500_vsmps1 {
 532				};
 533
 534				// DB8500_REGULATOR_VSMPS2
 535				db8500_vsmps2_reg: db8500_vsmps2 {
 536				};
 537
 538				// DB8500_REGULATOR_VSMPS3
 539				db8500_vsmps3_reg: db8500_vsmps3 {
 540				};
 541
 542				// DB8500_REGULATOR_VRF1
 543				db8500_vrf1_reg: db8500_vrf1 {
 544				};
 545
 546				// DB8500_REGULATOR_SWITCH_SVAMMDSP
 547				db8500_sva_mmdsp_reg: db8500_sva_mmdsp {
 548				};
 549
 550				// DB8500_REGULATOR_SWITCH_SVAMMDSPRET
 551				db8500_sva_mmdsp_ret_reg: db8500_sva_mmdsp_ret {
 552				};
 553
 554				// DB8500_REGULATOR_SWITCH_SVAPIPE
 555				db8500_sva_pipe_reg: db8500_sva_pipe {
 556				};
 557
 558				// DB8500_REGULATOR_SWITCH_SIAMMDSP
 559				db8500_sia_mmdsp_reg: db8500_sia_mmdsp {
 560				};
 561
 562				// DB8500_REGULATOR_SWITCH_SIAMMDSPRET
 563				db8500_sia_mmdsp_ret_reg: db8500_sia_mmdsp_ret {
 564				};
 565
 566				// DB8500_REGULATOR_SWITCH_SIAPIPE
 567				db8500_sia_pipe_reg: db8500_sia_pipe {
 568				};
 569
 570				// DB8500_REGULATOR_SWITCH_SGA
 571				db8500_sga_reg: db8500_sga {
 572					vin-supply = <&db8500_vape_reg>;
 573				};
 574
 575				// DB8500_REGULATOR_SWITCH_B2R2_MCDE
 576				db8500_b2r2_mcde_reg: db8500_b2r2_mcde {
 577					vin-supply = <&db8500_vape_reg>;
 578				};
 579
 580				// DB8500_REGULATOR_SWITCH_ESRAM12
 581				db8500_esram12_reg: db8500_esram12 {
 582				};
 583
 584				// DB8500_REGULATOR_SWITCH_ESRAM12RET
 585				db8500_esram12_ret_reg: db8500_esram12_ret {
 586				};
 587
 588				// DB8500_REGULATOR_SWITCH_ESRAM34
 589				db8500_esram34_reg: db8500_esram34 {
 590				};
 591
 592				// DB8500_REGULATOR_SWITCH_ESRAM34RET
 593				db8500_esram34_ret_reg: db8500_esram34_ret {
 594				};
 595			};
 596
 597			ab8500 {
 598				compatible = "stericsson,ab8500";
 599				interrupt-parent = <&intc>;
 600				interrupts = <0 40 IRQ_TYPE_LEVEL_HIGH>;
 601				interrupt-controller;
 602				#interrupt-cells = <2>;
 603
 604				ab8500_gpio: ab8500-gpio {
 605					gpio-controller;
 606					#gpio-cells = <2>;
 607				};
 608
 609				ab8500-rtc {
 610					compatible = "stericsson,ab8500-rtc";
 611					interrupts = <17 IRQ_TYPE_LEVEL_HIGH
 612						      18 IRQ_TYPE_LEVEL_HIGH>;
 613					interrupt-names = "60S", "ALARM";
 614				};
 615
 616				ab8500-gpadc {
 617					compatible = "stericsson,ab8500-gpadc";
 618					interrupts = <32 IRQ_TYPE_LEVEL_HIGH
 619						      39 IRQ_TYPE_LEVEL_HIGH>;
 620					interrupt-names = "HW_CONV_END", "SW_CONV_END";
 621					vddadc-supply = <&ab8500_ldo_tvout_reg>;
 622				};
 623
 624				ab8500_battery: ab8500_battery {
 625					stericsson,battery-type = "LIPO";
 626					thermistor-on-batctrl;
 627				};
 628
 629				ab8500_fg {
 630					compatible = "stericsson,ab8500-fg";
 631					battery	   = <&ab8500_battery>;
 632				};
 633
 634				ab8500_btemp {
 635					compatible = "stericsson,ab8500-btemp";
 636					battery	   = <&ab8500_battery>;
 637				};
 638
 639				ab8500_charger {
 640					compatible	= "stericsson,ab8500-charger";
 641					battery		= <&ab8500_battery>;
 642					vddadc-supply	= <&ab8500_ldo_tvout_reg>;
 643				};
 644
 645				ab8500_chargalg {
 646					compatible	= "stericsson,ab8500-chargalg";
 647					battery		= <&ab8500_battery>;
 648				};
 649
 650				ab8500_usb {
 651					compatible = "stericsson,ab8500-usb";
 652					interrupts = < 90 IRQ_TYPE_LEVEL_HIGH
 653						       96 IRQ_TYPE_LEVEL_HIGH
 654						       14 IRQ_TYPE_LEVEL_HIGH
 655						       15 IRQ_TYPE_LEVEL_HIGH
 656						       79 IRQ_TYPE_LEVEL_HIGH
 657						       74 IRQ_TYPE_LEVEL_HIGH
 658						       75 IRQ_TYPE_LEVEL_HIGH>;
 659					interrupt-names = "ID_WAKEUP_R",
 660							  "ID_WAKEUP_F",
 661							  "VBUS_DET_F",
 662							  "VBUS_DET_R",
 663							  "USB_LINK_STATUS",
 664							  "USB_ADP_PROBE_PLUG",
 665							  "USB_ADP_PROBE_UNPLUG";
 666					vddulpivio18-supply = <&ab8500_ldo_intcore_reg>;
 667					v-ape-supply = <&db8500_vape_reg>;
 668					musb_1v8-supply = <&db8500_vsmps2_reg>;
 669				};
 670
 671				ab8500-ponkey {
 672					compatible = "stericsson,ab8500-poweron-key";
 673					interrupts = <6 IRQ_TYPE_LEVEL_HIGH
 674						      7 IRQ_TYPE_LEVEL_HIGH>;
 675					interrupt-names = "ONKEY_DBF", "ONKEY_DBR";
 676				};
 677
 678				ab8500-sysctrl {
 679					compatible = "stericsson,ab8500-sysctrl";
 680				};
 681
 682				ab8500-pwm {
 683					compatible = "stericsson,ab8500-pwm";
 684				};
 685
 686				ab8500-debugfs {
 687					compatible = "stericsson,ab8500-debug";
 688				};
 689
 690				codec: ab8500-codec {
 691					compatible = "stericsson,ab8500-codec";
 692
 693					V-AUD-supply = <&ab8500_ldo_audio_reg>;
 694					V-AMIC1-supply = <&ab8500_ldo_anamic1_reg>;
 695					V-AMIC2-supply = <&ab8500_ldo_anamic2_reg>;
 696					V-DMIC-supply = <&ab8500_ldo_dmic_reg>;
 697
 698					stericsson,earpeice-cmv = <950>; /* Units in mV. */
 699				};
 700
 701				ext_regulators: ab8500-ext-regulators {
 702					compatible = "stericsson,ab8500-ext-regulator";
 703
 704					ab8500_ext1_reg: ab8500_ext1 {
 705						regulator-min-microvolt = <1800000>;
 706						regulator-max-microvolt = <1800000>;
 707						regulator-boot-on;
 708						regulator-always-on;
 709					};
 710
 711					ab8500_ext2_reg: ab8500_ext2 {
 712						regulator-min-microvolt = <1360000>;
 713						regulator-max-microvolt = <1360000>;
 714						regulator-boot-on;
 715						regulator-always-on;
 716					};
 717
 718					ab8500_ext3_reg: ab8500_ext3 {
 719						regulator-min-microvolt = <3400000>;
 720						regulator-max-microvolt = <3400000>;
 721						regulator-boot-on;
 722					};
 723				};
 724
 725				ab8500-regulators {
 726					compatible = "stericsson,ab8500-regulator";
 727					vin-supply = <&ab8500_ext3_reg>;
 728
 729					// supplies to the display/camera
 730					ab8500_ldo_aux1_reg: ab8500_ldo_aux1 {
 731						regulator-min-microvolt = <2500000>;
 732						regulator-max-microvolt = <2900000>;
 733						regulator-boot-on;
 734						/* BUG: If turned off MMC will be affected. */
 735						regulator-always-on;
 736					};
 737
 738					// supplies to the on-board eMMC
 739					ab8500_ldo_aux2_reg: ab8500_ldo_aux2 {
 740						regulator-min-microvolt = <1100000>;
 741						regulator-max-microvolt = <3300000>;
 742					};
 743
 744					// supply for VAUX3; SDcard slots
 745					ab8500_ldo_aux3_reg: ab8500_ldo_aux3 {
 746						regulator-min-microvolt = <1100000>;
 747						regulator-max-microvolt = <3300000>;
 748					};
 749
 750					// supply for v-intcore12; VINTCORE12 LDO
 751					ab8500_ldo_intcore_reg: ab8500_ldo_intcore {
 752					};
 753
 754					// supply for tvout; gpadc; TVOUT LDO
 755					ab8500_ldo_tvout_reg: ab8500_ldo_tvout {
 756					};
 757
 758					// supply for ab8500-usb; USB LDO
 759					ab8500_ldo_usb_reg: ab8500_ldo_usb {
 760					};
 761
 762					// supply for ab8500-vaudio; VAUDIO LDO
 763					ab8500_ldo_audio_reg: ab8500_ldo_audio {
 764					};
 765
 766					// supply for v-anamic1 VAMIC1 LDO
 767					ab8500_ldo_anamic1_reg: ab8500_ldo_anamic1 {
 768					};
 769
 770					// supply for v-amic2; VAMIC2 LDO; reuse constants for AMIC1
 771					ab8500_ldo_anamic2_reg: ab8500_ldo_anamic2 {
 772					};
 773
 774					// supply for v-dmic; VDMIC LDO
 775					ab8500_ldo_dmic_reg: ab8500_ldo_dmic {
 776					};
 777
 778					// supply for U8500 CSI/DSI; VANA LDO
 779					ab8500_ldo_ana_reg: ab8500_ldo_ana {
 780					};
 781				};
 782			};
 783		};
 784
 785		i2c@80004000 {
 786			compatible = "stericsson,db8500-i2c", "st,nomadik-i2c", "arm,primecell";
 787			reg = <0x80004000 0x1000>;
 788			interrupts = <0 21 IRQ_TYPE_LEVEL_HIGH>;
 789
 790			#address-cells = <1>;
 791			#size-cells = <0>;
 792			v-i2c-supply = <&db8500_vape_reg>;
 793
 794			clock-frequency = <400000>;
 795			clocks = <&prcc_kclk 3 3>, <&prcc_pclk 3 3>;
 796			clock-names = "i2cclk", "apb_pclk";
 797			power-domains = <&pm_domains DOMAIN_VAPE>;
 798		};
 799
 800		i2c@80122000 {
 801			compatible = "stericsson,db8500-i2c", "st,nomadik-i2c", "arm,primecell";
 802			reg = <0x80122000 0x1000>;
 803			interrupts = <0 22 IRQ_TYPE_LEVEL_HIGH>;
 804
 805			#address-cells = <1>;
 806			#size-cells = <0>;
 807			v-i2c-supply = <&db8500_vape_reg>;
 808
 809			clock-frequency = <400000>;
 810
 811			clocks = <&prcc_kclk 1 2>, <&prcc_pclk 1 2>;
 812			clock-names = "i2cclk", "apb_pclk";
 813			power-domains = <&pm_domains DOMAIN_VAPE>;
 814		};
 815
 816		i2c@80128000 {
 817			compatible = "stericsson,db8500-i2c", "st,nomadik-i2c", "arm,primecell";
 818			reg = <0x80128000 0x1000>;
 819			interrupts = <0 55 IRQ_TYPE_LEVEL_HIGH>;
 820
 821			#address-cells = <1>;
 822			#size-cells = <0>;
 823			v-i2c-supply = <&db8500_vape_reg>;
 824
 825			clock-frequency = <400000>;
 826
 827			clocks = <&prcc_kclk 1 6>, <&prcc_pclk 1 6>;
 828			clock-names = "i2cclk", "apb_pclk";
 829			power-domains = <&pm_domains DOMAIN_VAPE>;
 830		};
 831
 832		i2c@80110000 {
 833			compatible = "stericsson,db8500-i2c", "st,nomadik-i2c", "arm,primecell";
 834			reg = <0x80110000 0x1000>;
 835			interrupts = <0 12 IRQ_TYPE_LEVEL_HIGH>;
 836
 837			#address-cells = <1>;
 838			#size-cells = <0>;
 839			v-i2c-supply = <&db8500_vape_reg>;
 840
 841			clock-frequency = <400000>;
 842
 843			clocks = <&prcc_kclk 2 0>, <&prcc_pclk 2 0>;
 844			clock-names = "i2cclk", "apb_pclk";
 845			power-domains = <&pm_domains DOMAIN_VAPE>;
 846		};
 847
 848		i2c@8012a000 {
 849			compatible = "stericsson,db8500-i2c", "st,nomadik-i2c", "arm,primecell";
 850			reg = <0x8012a000 0x1000>;
 851			interrupts = <0 51 IRQ_TYPE_LEVEL_HIGH>;
 852
 853			#address-cells = <1>;
 854			#size-cells = <0>;
 855			v-i2c-supply = <&db8500_vape_reg>;
 856
 857			clock-frequency = <400000>;
 858
 859			clocks = <&prcc_kclk 1 9>, <&prcc_pclk 1 10>;
 860			clock-names = "i2cclk", "apb_pclk";
 861			power-domains = <&pm_domains DOMAIN_VAPE>;
 862		};
 863
 864		ssp@80002000 {
 865			compatible = "arm,pl022", "arm,primecell";
 866			reg = <0x80002000 0x1000>;
 867			interrupts = <0 14 IRQ_TYPE_LEVEL_HIGH>;
 868			#address-cells = <1>;
 869			#size-cells = <0>;
 870			clocks = <&prcc_kclk 3 1>, <&prcc_pclk 3 1>;
 871			clock-names = "SSPCLK", "apb_pclk";
 872			dmas = <&dma 8 0 0x2>, /* Logical - DevToMem */
 873			       <&dma 8 0 0x0>; /* Logical - MemToDev */
 874			dma-names = "rx", "tx";
 875			power-domains = <&pm_domains DOMAIN_VAPE>;
 876		};
 877
 878		ssp@80003000 {
 879			compatible = "arm,pl022", "arm,primecell";
 880			reg = <0x80003000 0x1000>;
 881			interrupts = <0 52 IRQ_TYPE_LEVEL_HIGH>;
 882			#address-cells = <1>;
 883			#size-cells = <0>;
 884			clocks = <&prcc_kclk 3 2>, <&prcc_pclk 3 2>;
 885			clock-names = "SSPCLK", "apb_pclk";
 886			dmas = <&dma 9 0 0x2>, /* Logical - DevToMem */
 887			       <&dma 9 0 0x0>; /* Logical - MemToDev */
 888			dma-names = "rx", "tx";
 889			power-domains = <&pm_domains DOMAIN_VAPE>;
 890		};
 891
 892		spi@8011a000 {
 893			compatible = "arm,pl022", "arm,primecell";
 894			reg = <0x8011a000 0x1000>;
 895			interrupts = <0 8 IRQ_TYPE_LEVEL_HIGH>;
 896			#address-cells = <1>;
 897			#size-cells = <0>;
 898			/* Same clock wired to kernel and pclk */
 899			clocks = <&prcc_pclk 2 8>, <&prcc_pclk 2 8>;
 900			clock-names = "SSPCLK", "apb_pclk";
 901			dmas = <&dma 0 0 0x2>, /* Logical - DevToMem */
 902			       <&dma 0 0 0x0>; /* Logical - MemToDev */
 903			dma-names = "rx", "tx";
 904			power-domains = <&pm_domains DOMAIN_VAPE>;
 905		};
 906
 907		spi@80112000 {
 908			compatible = "arm,pl022", "arm,primecell";
 909			reg = <0x80112000 0x1000>;
 910			interrupts = <0 96 IRQ_TYPE_LEVEL_HIGH>;
 911			#address-cells = <1>;
 912			#size-cells = <0>;
 913			/* Same clock wired to kernel and pclk */
 914			clocks = <&prcc_pclk 2 2>, <&prcc_pclk 2 2>;
 915			clock-names = "SSPCLK", "apb_pclk";
 916			dmas = <&dma 35 0 0x2>, /* Logical - DevToMem */
 917			       <&dma 35 0 0x0>; /* Logical - MemToDev */
 918			dma-names = "rx", "tx";
 919			power-domains = <&pm_domains DOMAIN_VAPE>;
 920		};
 921
 922		spi@80111000 {
 923			compatible = "arm,pl022", "arm,primecell";
 924			reg = <0x80111000 0x1000>;
 925			interrupts = <0 6 IRQ_TYPE_LEVEL_HIGH>;
 926			#address-cells = <1>;
 927			#size-cells = <0>;
 928			/* Same clock wired to kernel and pclk */
 929			clocks = <&prcc_pclk 2 1>, <&prcc_pclk 2 1>;
 930			clock-names = "SSPCLK", "apb_pclk";
 931			dmas = <&dma 33 0 0x2>, /* Logical - DevToMem */
 932			       <&dma 33 0 0x0>; /* Logical - MemToDev */
 933			dma-names = "rx", "tx";
 934			power-domains = <&pm_domains DOMAIN_VAPE>;
 935		};
 936
 937		spi@80129000 {
 938			compatible = "arm,pl022", "arm,primecell";
 939			reg = <0x80129000 0x1000>;
 940			interrupts = <0 49 IRQ_TYPE_LEVEL_HIGH>;
 941			#address-cells = <1>;
 942			#size-cells = <0>;
 943			/* Same clock wired to kernel and pclk */
 944			clocks = <&prcc_pclk 1 7>, <&prcc_pclk 1 7>;
 945			clock-names = "SSPCLK", "apb_pclk";
 946			dmas = <&dma 40 0 0x2>, /* Logical - DevToMem */
 947			       <&dma 40 0 0x0>; /* Logical - MemToDev */
 948			dma-names = "rx", "tx";
 949			power-domains = <&pm_domains DOMAIN_VAPE>;
 950		};
 951
 952		ux500_serial0: uart@80120000 {
 953			compatible = "arm,pl011", "arm,primecell";
 954			reg = <0x80120000 0x1000>;
 955			interrupts = <0 11 IRQ_TYPE_LEVEL_HIGH>;
 956
 957			dmas = <&dma 13 0 0x2>, /* Logical - DevToMem */
 958			       <&dma 13 0 0x0>; /* Logical - MemToDev */
 959			dma-names = "rx", "tx";
 960
 961			clocks = <&prcc_kclk 1 0>, <&prcc_pclk 1 0>;
 962			clock-names = "uart", "apb_pclk";
 963
 964			status = "disabled";
 965		};
 966
 967		ux500_serial1: uart@80121000 {
 968			compatible = "arm,pl011", "arm,primecell";
 969			reg = <0x80121000 0x1000>;
 970			interrupts = <0 19 IRQ_TYPE_LEVEL_HIGH>;
 971
 972			dmas = <&dma 12 0 0x2>, /* Logical - DevToMem */
 973			       <&dma 12 0 0x0>; /* Logical - MemToDev */
 974			dma-names = "rx", "tx";
 975
 976			clocks = <&prcc_kclk 1 1>, <&prcc_pclk 1 1>;
 977			clock-names = "uart", "apb_pclk";
 978
 979			status = "disabled";
 980		};
 981
 982		ux500_serial2: uart@80007000 {
 983			compatible = "arm,pl011", "arm,primecell";
 984			reg = <0x80007000 0x1000>;
 985			interrupts = <0 26 IRQ_TYPE_LEVEL_HIGH>;
 986
 987			dmas = <&dma 11 0 0x2>, /* Logical - DevToMem */
 988			       <&dma 11 0 0x0>; /* Logical - MemToDev */
 989			dma-names = "rx", "tx";
 990
 991			clocks = <&prcc_kclk 3 6>, <&prcc_pclk 3 6>;
 992			clock-names = "uart", "apb_pclk";
 993
 994			status = "disabled";
 995		};
 996
 997		sdi0_per1@80126000 {
 998			compatible = "arm,pl18x", "arm,primecell";
 999			reg = <0x80126000 0x1000>;
1000			interrupts = <0 60 IRQ_TYPE_LEVEL_HIGH>;
1001
1002			dmas = <&dma 29 0 0x2>, /* Logical - DevToMem */
1003			       <&dma 29 0 0x0>; /* Logical - MemToDev */
1004			dma-names = "rx", "tx";
1005
1006			clocks = <&prcc_kclk 1 5>, <&prcc_pclk 1 5>;
1007			clock-names = "sdi", "apb_pclk";
1008			power-domains = <&pm_domains DOMAIN_VAPE>;
1009
1010			status = "disabled";
1011		};
1012
1013		sdi1_per2@80118000 {
1014			compatible = "arm,pl18x", "arm,primecell";
1015			reg = <0x80118000 0x1000>;
1016			interrupts = <0 50 IRQ_TYPE_LEVEL_HIGH>;
1017
1018			dmas = <&dma 32 0 0x2>, /* Logical - DevToMem */
1019			       <&dma 32 0 0x0>; /* Logical - MemToDev */
1020			dma-names = "rx", "tx";
1021
1022			clocks = <&prcc_kclk 2 4>, <&prcc_pclk 2 6>;
1023			clock-names = "sdi", "apb_pclk";
1024			power-domains = <&pm_domains DOMAIN_VAPE>;
1025
1026			status = "disabled";
1027		};
1028
1029		sdi2_per3@80005000 {
1030			compatible = "arm,pl18x", "arm,primecell";
1031			reg = <0x80005000 0x1000>;
1032			interrupts = <0 41 IRQ_TYPE_LEVEL_HIGH>;
1033
1034			dmas = <&dma 28 0 0x2>, /* Logical - DevToMem */
1035			       <&dma 28 0 0x0>; /* Logical - MemToDev */
1036			dma-names = "rx", "tx";
1037
1038			clocks = <&prcc_kclk 3 4>, <&prcc_pclk 3 4>;
1039			clock-names = "sdi", "apb_pclk";
1040			power-domains = <&pm_domains DOMAIN_VAPE>;
1041
1042			status = "disabled";
1043		};
1044
1045		sdi3_per2@80119000 {
1046			compatible = "arm,pl18x", "arm,primecell";
1047			reg = <0x80119000 0x1000>;
1048			interrupts = <0 59 IRQ_TYPE_LEVEL_HIGH>;
1049
1050			dmas = <&dma 41 0 0x2>, /* Logical - DevToMem */
1051			       <&dma 41 0 0x0>; /* Logical - MemToDev */
1052			dma-names = "rx", "tx";
1053
1054			clocks = <&prcc_kclk 2 5>, <&prcc_pclk 2 7>;
1055			clock-names = "sdi", "apb_pclk";
1056			power-domains = <&pm_domains DOMAIN_VAPE>;
1057
1058			status = "disabled";
1059		};
1060
1061		sdi4_per2@80114000 {
1062			compatible = "arm,pl18x", "arm,primecell";
1063			reg = <0x80114000 0x1000>;
1064			interrupts = <0 99 IRQ_TYPE_LEVEL_HIGH>;
1065
1066			dmas = <&dma 42 0 0x2>, /* Logical - DevToMem */
1067			       <&dma 42 0 0x0>; /* Logical - MemToDev */
1068			dma-names = "rx", "tx";
1069
1070			clocks = <&prcc_kclk 2 2>, <&prcc_pclk 2 4>;
1071			clock-names = "sdi", "apb_pclk";
1072			power-domains = <&pm_domains DOMAIN_VAPE>;
1073
1074			status = "disabled";
1075		};
1076
1077		sdi5_per3@80008000 {
1078			compatible = "arm,pl18x", "arm,primecell";
1079			reg = <0x80008000 0x1000>;
1080			interrupts = <0 100 IRQ_TYPE_LEVEL_HIGH>;
1081
1082			dmas = <&dma 43 0 0x2>, /* Logical - DevToMem */
1083			       <&dma 43 0 0x0>; /* Logical - MemToDev */
1084			dma-names = "rx", "tx";
1085
1086			clocks = <&prcc_kclk 3 7>, <&prcc_pclk 3 7>;
1087			clock-names = "sdi", "apb_pclk";
1088			power-domains = <&pm_domains DOMAIN_VAPE>;
1089
1090			status = "disabled";
1091		};
1092
 
 
 
 
 
1093		msp0: msp@80123000 {
1094			compatible = "stericsson,ux500-msp-i2s";
1095			reg = <0x80123000 0x1000>;
1096			interrupts = <0 31 IRQ_TYPE_LEVEL_HIGH>;
1097			v-ape-supply = <&db8500_vape_reg>;
1098
1099			dmas = <&dma 31 0 0x12>, /* Logical - DevToMem - HighPrio */
1100			       <&dma 31 0 0x10>; /* Logical - MemToDev - HighPrio */
1101			dma-names = "rx", "tx";
1102
1103			clocks = <&prcc_kclk 1 3>, <&prcc_pclk 1 3>;
1104			clock-names = "msp", "apb_pclk";
1105
1106			status = "disabled";
1107		};
1108
1109		msp1: msp@80124000 {
1110			compatible = "stericsson,ux500-msp-i2s";
1111			reg = <0x80124000 0x1000>;
1112			interrupts = <0 62 IRQ_TYPE_LEVEL_HIGH>;
1113			v-ape-supply = <&db8500_vape_reg>;
1114
1115			/* This DMA channel only exist on DB8500 v1 */
1116			dmas = <&dma 30 0 0x10>; /* Logical - MemToDev - HighPrio */
1117			dma-names = "tx";
1118
1119			clocks = <&prcc_kclk 1 4>, <&prcc_pclk 1 4>;
1120			clock-names = "msp", "apb_pclk";
1121
1122			status = "disabled";
1123		};
1124
1125		// HDMI sound
1126		msp2: msp@80117000 {
1127			compatible = "stericsson,ux500-msp-i2s";
1128			reg = <0x80117000 0x1000>;
1129			interrupts = <0 98 IRQ_TYPE_LEVEL_HIGH>;
1130			v-ape-supply = <&db8500_vape_reg>;
1131
1132			dmas = <&dma 14 0 0x12>, /* Logical  - DevToMem - HighPrio */
1133			       <&dma 14 1 0x19>; /* Physical Chan 1 - MemToDev
1134                                                    HighPrio - Fixed */
1135			dma-names = "rx", "tx";
1136
1137			clocks = <&prcc_kclk 2 3>, <&prcc_pclk 2 5>;
1138			clock-names = "msp", "apb_pclk";
1139
1140			status = "disabled";
1141		};
1142
1143		msp3: msp@80125000 {
1144			compatible = "stericsson,ux500-msp-i2s";
1145			reg = <0x80125000 0x1000>;
1146			interrupts = <0 62 IRQ_TYPE_LEVEL_HIGH>;
1147			v-ape-supply = <&db8500_vape_reg>;
1148
1149			/* This DMA channel only exist on DB8500 v2 */
1150			dmas = <&dma 30 0 0x12>; /* Logical - DevToMem - HighPrio */
1151			dma-names = "rx";
1152
1153			clocks = <&prcc_kclk 1 10>, <&prcc_pclk 1 11>;
1154			clock-names = "msp", "apb_pclk";
1155
1156			status = "disabled";
1157		};
1158
1159		external-bus@50000000 {
1160			compatible = "simple-bus";
1161			reg = <0x50000000 0x4000000>;
1162			#address-cells = <1>;
1163			#size-cells = <1>;
1164			ranges = <0 0x50000000 0x4000000>;
1165			status = "disabled";
1166		};
1167
1168		cpufreq-cooling {
1169			compatible = "stericsson,db8500-cpufreq-cooling";
1170			status = "disabled";
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1171		};
1172
1173		mcde@a0350000 {
1174			compatible = "stericsson,mcde";
1175			reg = <0xa0350000 0x1000>, /* MCDE */
1176			      <0xa0351000 0x1000>, /* DSI link 1 */
1177			      <0xa0352000 0x1000>, /* DSI link 2 */
1178			      <0xa0353000 0x1000>; /* DSI link 3 */
1179			interrupts = <0 48 IRQ_TYPE_LEVEL_HIGH>;
1180			clocks = <&prcmu_clk PRCMU_MCDECLK>, /* Main MCDE clock */
1181				 <&prcmu_clk PRCMU_LCDCLK>, /* LCD clock */
1182				 <&prcmu_clk PRCMU_PLLDSI>, /* HDMI clock */
1183				 <&prcmu_clk PRCMU_DSI0CLK>, /* DSI 0 */
1184				 <&prcmu_clk PRCMU_DSI1CLK>, /* DSI 1 */
1185				 <&prcmu_clk PRCMU_DSI0ESCCLK>, /* TVout clock 0 */
1186				 <&prcmu_clk PRCMU_DSI1ESCCLK>, /* TVout clock 1 */
1187				 <&prcmu_clk PRCMU_DSI2ESCCLK>; /* TVout clock 2 */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1188		};
1189
1190		cryp@a03cb000 {
1191			compatible = "stericsson,ux500-cryp";
1192			reg = <0xa03cb000 0x1000>;
1193			interrupts = <0 15 IRQ_TYPE_LEVEL_HIGH>;
1194
1195			v-ape-supply = <&db8500_vape_reg>;
1196			clocks = <&prcc_pclk 6 1>;
1197		};
1198
1199		hash@a03c2000 {
1200			compatible = "stericsson,ux500-hash";
1201			reg = <0xa03c2000 0x1000>;
1202
1203			v-ape-supply = <&db8500_vape_reg>;
1204			clocks = <&prcc_pclk 6 2>;
1205		};
1206	};
1207};