1// SPDX-License-Identifier: GPL-2.0-only
2/*
3 * Copyright (C) 2011 Texas Instruments Incorporated - https://www.ti.com/
4 */
5
6#include <dt-bindings/bus/ti-sysc.h>
7#include <dt-bindings/clock/omap4.h>
8#include <dt-bindings/gpio/gpio.h>
9#include <dt-bindings/interrupt-controller/arm-gic.h>
10#include <dt-bindings/pinctrl/omap.h>
11#include <dt-bindings/clock/omap4.h>
12
13/ {
14	compatible = "ti,omap4430", "ti,omap4";
15	interrupt-parent = <&wakeupgen>;
16	#address-cells = <1>;
17	#size-cells = <1>;
18	chosen { };
19
20	aliases {
21		i2c0 = &i2c1;
22		i2c1 = &i2c2;
23		i2c2 = &i2c3;
24		i2c3 = &i2c4;
25		mmc0 = &mmc1;
26		mmc1 = &mmc2;
27		mmc2 = &mmc3;
28		mmc3 = &mmc4;
29		mmc4 = &mmc5;
30		serial0 = &uart1;
31		serial1 = &uart2;
32		serial2 = &uart3;
33		serial3 = &uart4;
34		rproc0 = &dsp;
35		rproc1 = &ipu;
36	};
37
38	cpus {
39		#address-cells = <1>;
40		#size-cells = <0>;
41
42		cpu@0 {
43			compatible = "arm,cortex-a9";
44			device_type = "cpu";
45			next-level-cache = <&L2>;
46			reg = <0x0>;
47
48			clocks = <&dpll_mpu_ck>;
49			clock-names = "cpu";
50
51			clock-latency = <300000>; /* From omap-cpufreq driver */
52		};
53		cpu@1 {
54			compatible = "arm,cortex-a9";
55			device_type = "cpu";
56			next-level-cache = <&L2>;
57			reg = <0x1>;
58		};
59	};
60
61	/*
62	 * Needed early by omap4_sram_init() for barrier, do not move to l3
63	 * interconnect as simple-pm-bus probes at module_init() time.
64	 */
65	ocmcram: sram@40304000 {
66		compatible = "mmio-sram";
67		reg = <0x40304000 0xa000>; /* 40k */
68	};
69
70	gic: interrupt-controller@48241000 {
71		compatible = "arm,cortex-a9-gic";
72		interrupt-controller;
73		#interrupt-cells = <3>;
74		reg = <0x48241000 0x1000>,
75		      <0x48240100 0x0100>;
76		interrupt-parent = <&gic>;
77	};
78
79	L2: cache-controller@48242000 {
80		compatible = "arm,pl310-cache";
81		reg = <0x48242000 0x1000>;
82		cache-unified;
83		cache-level = <2>;
84	};
85
86	local-timer@48240600 {
87		compatible = "arm,cortex-a9-twd-timer";
88		clocks = <&mpu_periphclk>;
89		reg = <0x48240600 0x20>;
90		interrupts = <GIC_PPI 13 (GIC_CPU_MASK_RAW(3) | IRQ_TYPE_EDGE_RISING)>;
91		interrupt-parent = <&gic>;
92	};
93
94	wakeupgen: interrupt-controller@48281000 {
95		compatible = "ti,omap4-wugen-mpu";
96		interrupt-controller;
97		#interrupt-cells = <3>;
98		reg = <0x48281000 0x1000>;
99		interrupt-parent = <&gic>;
100	};
101
102	/*
103	 * XXX: Use a flat representation of the OMAP4 interconnect.
104	 * The real OMAP interconnect network is quite complex.
105	 * Since it will not bring real advantage to represent that in DT for
106	 * the moment, just use a fake OCP bus entry to represent the whole bus
107	 * hierarchy.
108	 */
109	ocp {
110		compatible = "simple-pm-bus";
111		power-domains = <&prm_l4per>;
112		clocks = <&l3_1_clkctrl OMAP4_L3_MAIN_1_CLKCTRL 0>,
113			 <&l3_2_clkctrl OMAP4_L3_MAIN_2_CLKCTRL 0>,
114			 <&l3_instr_clkctrl OMAP4_L3_MAIN_3_CLKCTRL 0>;
115		#address-cells = <1>;
116		#size-cells = <1>;
117		ranges;
118
119		l3-noc@44000000 {
120			compatible = "ti,omap4-l3-noc";
121			reg = <0x44000000 0x1000>,
122			      <0x44800000 0x2000>,
123			      <0x45000000 0x1000>;
124			interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>,
125				     <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
126		};
127
128		l4_wkup: interconnect@4a300000 {
129		};
130
131		l4_cfg: interconnect@4a000000 {
132		};
133
134		l4_per: interconnect@48000000 {
135		};
136
137		target-module@48210000 {
138			compatible = "ti,sysc-omap4-simple", "ti,sysc";
139			power-domains = <&prm_mpu>;
140			clocks = <&mpuss_clkctrl OMAP4_MPU_CLKCTRL 0>;
141			clock-names = "fck";
142			#address-cells = <1>;
143			#size-cells = <1>;
144			ranges = <0 0x48210000 0x1f0000>;
145
146			mpu {
147				compatible = "ti,omap4-mpu";
148				sram = <&ocmcram>;
149			};
150		};
151
152		l4_abe: interconnect@40100000 {
153		};
154
155		target-module@50000000 {
156			compatible = "ti,sysc-omap2", "ti,sysc";
157			reg = <0x50000000 4>,
158			      <0x50000010 4>,
159			      <0x50000014 4>;
160			reg-names = "rev", "sysc", "syss";
161			ti,sysc-sidle = <SYSC_IDLE_FORCE>,
162					<SYSC_IDLE_NO>,
163					<SYSC_IDLE_SMART>;
164			ti,syss-mask = <1>;
165			ti,no-idle-on-init;
166			clocks = <&l3_2_clkctrl OMAP4_GPMC_CLKCTRL 0>;
167			clock-names = "fck";
168			#address-cells = <1>;
169			#size-cells = <1>;
170			ranges = <0x50000000 0x50000000 0x00001000>, /* regs */
171				 <0x00000000 0x00000000 0x40000000>; /* data */
172
173			gpmc: gpmc@50000000 {
174				compatible = "ti,omap4430-gpmc";
175				reg = <0x50000000 0x1000>;
176				#address-cells = <2>;
177				#size-cells = <1>;
178				interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
179				dmas = <&sdma 4>;
180				dma-names = "rxtx";
181				gpmc,num-cs = <8>;
182				gpmc,num-waitpins = <4>;
183				clocks = <&l3_div_ck>;
184				clock-names = "fck";
185				interrupt-controller;
186				#interrupt-cells = <2>;
187				gpio-controller;
188				#gpio-cells = <2>;
189			};
190		};
191
192		target-module@52000000 {
193			compatible = "ti,sysc-omap4", "ti,sysc";
194			reg = <0x52000000 0x4>,
195			      <0x52000010 0x4>;
196			reg-names = "rev", "sysc";
197			ti,sysc-mask = <SYSC_OMAP4_SOFTRESET>;
198			ti,sysc-midle = <SYSC_IDLE_FORCE>,
199					<SYSC_IDLE_NO>,
200					<SYSC_IDLE_SMART>,
201					<SYSC_IDLE_SMART_WKUP>;
202			ti,sysc-sidle = <SYSC_IDLE_FORCE>,
203					<SYSC_IDLE_NO>,
204					<SYSC_IDLE_SMART>,
205					<SYSC_IDLE_SMART_WKUP>;
206			ti,sysc-delay-us = <2>;
207			power-domains = <&prm_cam>;
208			clocks = <&iss_clkctrl OMAP4_ISS_CLKCTRL 0>;
209			clock-names = "fck";
210			#address-cells = <1>;
211			#size-cells = <1>;
212			ranges = <0 0x52000000 0x1000000>;
213
214			/* No child device binding, driver in staging */
215		};
216
217		/*
218		 * Note that 4430 needs cross trigger interface (CTI) supported
219		 * before we can configure the interrupts. This means sampling
220		 * events are not supported for pmu. Note that 4460 does not use
221		 * CTI, see also 4460.dtsi.
222		 */
223		target-module@54000000 {
224			compatible = "ti,sysc-omap4-simple", "ti,sysc";
225			power-domains = <&prm_emu>;
226			clocks = <&emu_sys_clkctrl OMAP4_DEBUGSS_CLKCTRL 0>;
227			clock-names = "fck";
228			#address-cells = <1>;
229			#size-cells = <1>;
230			ranges = <0x0 0x54000000 0x1000000>;
231
232			pmu: pmu {
233				compatible = "arm,cortex-a9-pmu";
234			};
235		};
236
237		target-module@55082000 {
238			compatible = "ti,sysc-omap2", "ti,sysc";
239			reg = <0x55082000 0x4>,
240			      <0x55082010 0x4>,
241			      <0x55082014 0x4>;
242			reg-names = "rev", "sysc", "syss";
243			ti,sysc-sidle = <SYSC_IDLE_FORCE>,
244					<SYSC_IDLE_NO>,
245					<SYSC_IDLE_SMART>;
246			ti,sysc-mask = <(SYSC_OMAP2_CLOCKACTIVITY |
247					 SYSC_OMAP2_SOFTRESET |
248					 SYSC_OMAP2_AUTOIDLE)>;
249			clocks = <&ducati_clkctrl OMAP4_IPU_CLKCTRL 0>;
250			clock-names = "fck";
251			resets = <&prm_core 2>;
252			reset-names = "rstctrl";
253			ranges = <0x0 0x55082000 0x100>;
254			#size-cells = <1>;
255			#address-cells = <1>;
256
257			mmu_ipu: mmu@0 {
258				compatible = "ti,omap4-iommu";
259				reg = <0x0 0x100>;
260				interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
261				#iommu-cells = <0>;
262				ti,iommu-bus-err-back;
263			};
264		};
265
266		target-module@4012c000 {
267			compatible = "ti,sysc-omap4", "ti,sysc";
268			reg = <0x4012c000 0x4>,
269			      <0x4012c010 0x4>;
270			reg-names = "rev", "sysc";
271			ti,sysc-mask = <SYSC_OMAP4_SOFTRESET>;
272			ti,sysc-sidle = <SYSC_IDLE_FORCE>,
273					<SYSC_IDLE_NO>,
274					<SYSC_IDLE_SMART>,
275					<SYSC_IDLE_SMART_WKUP>;
276			clocks = <&abe_clkctrl OMAP4_SLIMBUS1_CLKCTRL 0>;
277			clock-names = "fck";
278			#address-cells = <1>;
279			#size-cells = <1>;
280			ranges = <0x00000000 0x4012c000 0x1000>, /* MPU */
281				 <0x4902c000 0x4902c000 0x1000>; /* L3 */
282
283			/* No child device binding or driver in mainline */
284		};
285
286		target-module@4e000000 {
287			compatible = "ti,sysc-omap2", "ti,sysc";
288			reg = <0x4e000000 0x4>,
289			      <0x4e000010 0x4>;
290			reg-names = "rev", "sysc";
291			ti,sysc-sidle = <SYSC_IDLE_FORCE>,
292					<SYSC_IDLE_NO>,
293					<SYSC_IDLE_SMART>;
294			ranges = <0x0 0x4e000000 0x2000000>;
295			#size-cells = <1>;
296			#address-cells = <1>;
297
298			dmm@0 {
299				compatible = "ti,omap4-dmm";
300				reg = <0 0x800>;
301				interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>;
302			};
303		};
304
305		target-module@4c000000 {
306			compatible = "ti,sysc-omap4-simple", "ti,sysc";
307			reg = <0x4c000000 0x4>;
308			reg-names = "rev";
309			clocks = <&l3_emif_clkctrl OMAP4_EMIF1_CLKCTRL 0>;
310			clock-names = "fck";
311			ti,no-idle;
312			#address-cells = <1>;
313			#size-cells = <1>;
314			ranges = <0x0 0x4c000000 0x1000000>;
315
316			emif1: emif@0 {
317				compatible = "ti,emif-4d";
318				reg = <0 0x100>;
319				interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
320				phy-type = <1>;
321				hw-caps-read-idle-ctrl;
322				hw-caps-ll-interface;
323				hw-caps-temp-alert;
324			};
325		};
326
327		target-module@4d000000 {
328			compatible = "ti,sysc-omap4-simple", "ti,sysc";
329			reg = <0x4d000000 0x4>;
330			reg-names = "rev";
331			clocks = <&l3_emif_clkctrl OMAP4_EMIF2_CLKCTRL 0>;
332			clock-names = "fck";
333			ti,no-idle;
334			#address-cells = <1>;
335			#size-cells = <1>;
336			ranges = <0x0 0x4d000000 0x1000000>;
337
338			emif2: emif@0 {
339				compatible = "ti,emif-4d";
340				reg = <0 0x100>;
341				interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
342				phy-type = <1>;
343				hw-caps-read-idle-ctrl;
344				hw-caps-ll-interface;
345				hw-caps-temp-alert;
346			};
347		};
348
349		dsp: dsp {
350			compatible = "ti,omap4-dsp";
351			ti,bootreg = <&scm_conf 0x304 0>;
352			iommus = <&mmu_dsp>;
353			resets = <&prm_tesla 0>;
354			clocks = <&tesla_clkctrl OMAP4_DSP_CLKCTRL 0>;
355			firmware-name = "omap4-dsp-fw.xe64T";
356			mboxes = <&mailbox &mbox_dsp>;
357			status = "disabled";
358		};
359
360		ipu: ipu@55020000 {
361			compatible = "ti,omap4-ipu";
362			reg = <0x55020000 0x10000>;
363			reg-names = "l2ram";
364			iommus = <&mmu_ipu>;
365			resets = <&prm_core 0>, <&prm_core 1>;
366			clocks = <&ducati_clkctrl OMAP4_IPU_CLKCTRL 0>;
367			firmware-name = "omap4-ipu-fw.xem3";
368			mboxes = <&mailbox &mbox_ipu>;
369			status = "disabled";
370		};
371
372		aes1_target: target-module@4b501000 {
373			compatible = "ti,sysc-omap2", "ti,sysc";
374			reg = <0x4b501080 0x4>,
375			      <0x4b501084 0x4>,
376			      <0x4b501088 0x4>;
377			reg-names = "rev", "sysc", "syss";
378			ti,sysc-mask = <(SYSC_OMAP2_SOFTRESET |
379					 SYSC_OMAP2_AUTOIDLE)>;
380			ti,sysc-sidle = <SYSC_IDLE_FORCE>,
381					<SYSC_IDLE_NO>,
382					<SYSC_IDLE_SMART>,
383					<SYSC_IDLE_SMART_WKUP>;
384			ti,syss-mask = <1>;
385			/* Domains (P, C): l4per_pwrdm, l4_secure_clkdm */
386			clocks = <&l4_secure_clkctrl OMAP4_AES1_CLKCTRL 0>;
387			clock-names = "fck";
388			#address-cells = <1>;
389			#size-cells = <1>;
390			ranges = <0x0 0x4b501000 0x1000>;
391
392			aes1: aes@0 {
393				compatible = "ti,omap4-aes";
394				reg = <0 0xa0>;
395				interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
396				dmas = <&sdma 111>, <&sdma 110>;
397				dma-names = "tx", "rx";
398			};
399		};
400
401		aes2_target: target-module@4b701000 {
402			compatible = "ti,sysc-omap2", "ti,sysc";
403			reg = <0x4b701080 0x4>,
404			      <0x4b701084 0x4>,
405			      <0x4b701088 0x4>;
406			reg-names = "rev", "sysc", "syss";
407			ti,sysc-mask = <(SYSC_OMAP2_SOFTRESET |
408					 SYSC_OMAP2_AUTOIDLE)>;
409			ti,sysc-sidle = <SYSC_IDLE_FORCE>,
410					<SYSC_IDLE_NO>,
411					<SYSC_IDLE_SMART>,
412					<SYSC_IDLE_SMART_WKUP>;
413			ti,syss-mask = <1>;
414			/* Domains (P, C): l4per_pwrdm, l4_secure_clkdm */
415			clocks = <&l4_secure_clkctrl OMAP4_AES2_CLKCTRL 0>;
416			clock-names = "fck";
417			#address-cells = <1>;
418			#size-cells = <1>;
419			ranges = <0x0 0x4b701000 0x1000>;
420
421			aes2: aes@0 {
422				compatible = "ti,omap4-aes";
423				reg = <0 0xa0>;
424				interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>;
425				dmas = <&sdma 114>, <&sdma 113>;
426				dma-names = "tx", "rx";
427			};
428		};
429
430		sham_target: target-module@4b100000 {
431			compatible = "ti,sysc-omap3-sham", "ti,sysc";
432			reg = <0x4b100100 0x4>,
433			      <0x4b100110 0x4>,
434			      <0x4b100114 0x4>;
435			reg-names = "rev", "sysc", "syss";
436			ti,sysc-mask = <(SYSC_OMAP2_SOFTRESET |
437					 SYSC_OMAP2_AUTOIDLE)>;
438			ti,sysc-sidle = <SYSC_IDLE_FORCE>,
439					<SYSC_IDLE_NO>,
440					<SYSC_IDLE_SMART>;
441			ti,syss-mask = <1>;
442			/* Domains (P, C): l4per_pwrdm, l4_secure_clkdm */
443			clocks = <&l4_secure_clkctrl OMAP4_SHA2MD5_CLKCTRL 0>;
444			clock-names = "fck";
445			#address-cells = <1>;
446			#size-cells = <1>;
447			ranges = <0x0 0x4b100000 0x1000>;
448
449			sham: sham@0 {
450				compatible = "ti,omap4-sham";
451				reg = <0 0x300>;
452				interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
453				dmas = <&sdma 119>;
454				dma-names = "rx";
455			};
456		};
457
458		abb_mpu: regulator-abb-mpu {
459			compatible = "ti,abb-v2";
460			regulator-name = "abb_mpu";
461			#address-cells = <0>;
462			#size-cells = <0>;
463			ti,tranxdone-status-mask = <0x80>;
464			clocks = <&sys_clkin_ck>;
465			ti,settling-time = <50>;
466			ti,clock-cycles = <16>;
467
468			status = "disabled";
469		};
470
471		abb_iva: regulator-abb-iva {
472			compatible = "ti,abb-v2";
473			regulator-name = "abb_iva";
474			#address-cells = <0>;
475			#size-cells = <0>;
476			ti,tranxdone-status-mask = <0x80000000>;
477			clocks = <&sys_clkin_ck>;
478			ti,settling-time = <50>;
479			ti,clock-cycles = <16>;
480
481			status = "disabled";
482		};
483
484		sgx_module: target-module@56000000 {
485			compatible = "ti,sysc-omap4", "ti,sysc";
486			reg = <0x5600fe00 0x4>,
487			      <0x5600fe10 0x4>;
488			reg-names = "rev", "sysc";
489			ti,sysc-midle = <SYSC_IDLE_FORCE>,
490					<SYSC_IDLE_NO>,
491					<SYSC_IDLE_SMART>,
492					<SYSC_IDLE_SMART_WKUP>;
493			ti,sysc-sidle = <SYSC_IDLE_FORCE>,
494					<SYSC_IDLE_NO>,
495					<SYSC_IDLE_SMART>,
496					<SYSC_IDLE_SMART_WKUP>;
497			power-domains = <&prm_gfx>;
498			clocks = <&l3_gfx_clkctrl OMAP4_GPU_CLKCTRL 0>;
499			clock-names = "fck";
500			#address-cells = <1>;
501			#size-cells = <1>;
502			ranges = <0 0x56000000 0x2000000>;
503
504			/*
505			 * Closed source PowerVR driver, no child device
506			 * binding or driver in mainline
507			 */
508		};
509
510		/*
511		 * DSS is only using l3 mapping without l4 as noted in the TRM
512		 * "10.1.3 DSS Register Manual" for omap4460.
513		 */
514		target-module@58000000 {
515			compatible = "ti,sysc-omap2", "ti,sysc";
516			reg = <0x58000000 4>,
517			      <0x58000014 4>;
518			reg-names = "rev", "syss";
519			ti,syss-mask = <1>;
520			power-domains = <&prm_dss>;
521			clocks = <&l3_dss_clkctrl OMAP4_DSS_CORE_CLKCTRL 0>,
522				 <&l3_dss_clkctrl OMAP4_DSS_CORE_CLKCTRL 9>,
523				 <&l3_dss_clkctrl OMAP4_DSS_CORE_CLKCTRL 10>,
524				 <&l3_dss_clkctrl OMAP4_DSS_CORE_CLKCTRL 11>;
525			clock-names = "fck", "hdmi_clk", "sys_clk", "tv_clk";
526			#address-cells = <1>;
527			#size-cells = <1>;
528			ranges = <0 0x58000000 0x1000000>;
529
530			dss: dss@0 {
531				compatible = "ti,omap4-dss";
532				reg = <0 0x80>;
533				status = "disabled";
534				clocks = <&l3_dss_clkctrl OMAP4_DSS_CORE_CLKCTRL 8>;
535				clock-names = "fck";
536				#address-cells = <1>;
537				#size-cells = <1>;
538				ranges = <0 0 0x1000000>;
539
540				target-module@1000 {
541					compatible = "ti,sysc-omap2", "ti,sysc";
542					reg = <0x1000 0x4>,
543					      <0x1010 0x4>,
544					      <0x1014 0x4>;
545					reg-names = "rev", "sysc", "syss";
546					ti,sysc-sidle = <SYSC_IDLE_FORCE>,
547							<SYSC_IDLE_NO>,
548							<SYSC_IDLE_SMART>;
549					ti,sysc-midle = <SYSC_IDLE_FORCE>,
550							<SYSC_IDLE_NO>,
551							<SYSC_IDLE_SMART>;
552					ti,sysc-mask = <(SYSC_OMAP2_CLOCKACTIVITY |
553							 SYSC_OMAP2_ENAWAKEUP |
554							 SYSC_OMAP2_SOFTRESET |
555							 SYSC_OMAP2_AUTOIDLE)>;
556					ti,syss-mask = <1>;
557					clocks = <&l3_dss_clkctrl OMAP4_DSS_CORE_CLKCTRL 8>,
558						 <&l3_dss_clkctrl OMAP4_DSS_CORE_CLKCTRL 10>;
559					clock-names = "fck", "sys_clk";
560					#address-cells = <1>;
561					#size-cells = <1>;
562					ranges = <0 0x1000 0x1000>;
563
564					dispc@0 {
565						compatible = "ti,omap4-dispc";
566						reg = <0 0x1000>;
567						interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
568						clocks = <&l3_dss_clkctrl OMAP4_DSS_CORE_CLKCTRL 8>;
569						clock-names = "fck";
570					};
571				};
572
573				target-module@2000 {
574					compatible = "ti,sysc-omap2", "ti,sysc";
575					reg = <0x2000 0x4>,
576					      <0x2010 0x4>,
577					      <0x2014 0x4>;
578					reg-names = "rev", "sysc", "syss";
579					ti,sysc-sidle = <SYSC_IDLE_FORCE>,
580							<SYSC_IDLE_NO>,
581							<SYSC_IDLE_SMART>;
582					ti,sysc-mask = <(SYSC_OMAP2_SOFTRESET |
583							 SYSC_OMAP2_AUTOIDLE)>;
584					ti,syss-mask = <1>;
585					clocks = <&l3_dss_clkctrl OMAP4_DSS_CORE_CLKCTRL 8>,
586						 <&l3_dss_clkctrl OMAP4_DSS_CORE_CLKCTRL 10>;
587					clock-names = "fck", "sys_clk";
588					#address-cells = <1>;
589					#size-cells = <1>;
590					ranges = <0 0x2000 0x1000>;
591
592					rfbi: encoder@0  {
593						reg = <0 0x1000>;
594						status = "disabled";
595						clocks = <&l3_dss_clkctrl OMAP4_DSS_CORE_CLKCTRL 8>, <&l3_div_ck>;
596						clock-names = "fck", "ick";
597					};
598				};
599
600				target-module@3000 {
601					compatible = "ti,sysc-omap2", "ti,sysc";
602					reg = <0x3000 0x4>;
603					reg-names = "rev";
604					clocks = <&l3_dss_clkctrl OMAP4_DSS_CORE_CLKCTRL 10>;
605					clock-names = "sys_clk";
606					#address-cells = <1>;
607					#size-cells = <1>;
608					ranges = <0 0x3000 0x1000>;
609
610					venc: encoder@0 {
611						compatible = "ti,omap4-venc";
612						reg = <0 0x1000>;
613						status = "disabled";
614						clocks = <&l3_dss_clkctrl OMAP4_DSS_CORE_CLKCTRL 11>;
615						clock-names = "fck";
616					};
617				};
618
619				target-module@4000 {
620					compatible = "ti,sysc-omap2", "ti,sysc";
621					reg = <0x4000 0x4>,
622					      <0x4010 0x4>,
623					      <0x4014 0x4>;
624					reg-names = "rev", "sysc", "syss";
625					ti,sysc-sidle = <SYSC_IDLE_FORCE>,
626							<SYSC_IDLE_NO>,
627							<SYSC_IDLE_SMART>;
628					ti,sysc-mask = <(SYSC_OMAP2_CLOCKACTIVITY |
629							 SYSC_OMAP2_ENAWAKEUP |
630							 SYSC_OMAP2_SOFTRESET |
631							 SYSC_OMAP2_AUTOIDLE)>;
632					ti,syss-mask = <1>;
633					#address-cells = <1>;
634					#size-cells = <1>;
635					ranges = <0 0x4000 0x1000>;
636
637					dsi1: encoder@0 {
638						compatible = "ti,omap4-dsi";
639						reg = <0 0x200>,
640						      <0x200 0x40>,
641						      <0x300 0x20>;
642						reg-names = "proto", "phy", "pll";
643						interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>;
644						status = "disabled";
645						clocks = <&l3_dss_clkctrl OMAP4_DSS_CORE_CLKCTRL 8>,
646							 <&l3_dss_clkctrl OMAP4_DSS_CORE_CLKCTRL 10>;
647						clock-names = "fck", "sys_clk";
648
649						#address-cells = <1>;
650						#size-cells = <0>;
651					};
652				};
653
654				target-module@5000 {
655					compatible = "ti,sysc-omap2", "ti,sysc";
656					reg = <0x5000 0x4>,
657					      <0x5010 0x4>,
658					      <0x5014 0x4>;
659					reg-names = "rev", "sysc", "syss";
660					ti,sysc-sidle = <SYSC_IDLE_FORCE>,
661							<SYSC_IDLE_NO>,
662							<SYSC_IDLE_SMART>;
663					ti,sysc-mask = <(SYSC_OMAP2_CLOCKACTIVITY |
664							 SYSC_OMAP2_ENAWAKEUP |
665							 SYSC_OMAP2_SOFTRESET |
666							 SYSC_OMAP2_AUTOIDLE)>;
667					ti,syss-mask = <1>;
668					#address-cells = <1>;
669					#size-cells = <1>;
670					ranges = <0 0x5000 0x1000>;
671
672					dsi2: encoder@0 {
673						compatible = "ti,omap4-dsi";
674						reg = <0 0x200>,
675						      <0x200 0x40>,
676						      <0x300 0x20>;
677						reg-names = "proto", "phy", "pll";
678						interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
679						status = "disabled";
680						clocks = <&l3_dss_clkctrl OMAP4_DSS_CORE_CLKCTRL 8>,
681						         <&l3_dss_clkctrl OMAP4_DSS_CORE_CLKCTRL 10>;
682						clock-names = "fck", "sys_clk";
683
684						#address-cells = <1>;
685						#size-cells = <0>;
686					};
687				};
688
689				target-module@6000 {
690					compatible = "ti,sysc-omap4", "ti,sysc";
691					reg = <0x6000 0x4>,
692					      <0x6010 0x4>;
693					reg-names = "rev", "sysc";
694					/*
695					 * Has SYSC_IDLE_SMART and SYSC_IDLE_SMART_WKUP
696					 * but HDMI audio will fail with them.
697					 */
698					ti,sysc-sidle = <SYSC_IDLE_FORCE>,
699							<SYSC_IDLE_NO>;
700					ti,sysc-mask = <(SYSC_OMAP4_SOFTRESET)>;
701					clocks = <&l3_dss_clkctrl OMAP4_DSS_CORE_CLKCTRL 9>,
702						 <&l3_dss_clkctrl OMAP4_DSS_CORE_CLKCTRL 8>;
703					clock-names = "fck", "dss_clk";
704					#address-cells = <1>;
705					#size-cells = <1>;
706					ranges = <0 0x6000 0x2000>;
707
708					hdmi: encoder@0 {
709					compatible = "ti,omap4-hdmi";
710						reg = <0 0x200>,
711						      <0x200 0x100>,
712						      <0x300 0x100>,
713						      <0x400 0x1000>;
714						reg-names = "wp", "pll", "phy", "core";
715						interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
716						status = "disabled";
717						clocks = <&l3_dss_clkctrl OMAP4_DSS_CORE_CLKCTRL 9>,
718						         <&l3_dss_clkctrl OMAP4_DSS_CORE_CLKCTRL 10>;
719						clock-names = "fck", "sys_clk";
720						dmas = <&sdma 76>;
721						dma-names = "audio_tx";
722					};
723				};
724			};
725		};
726
727		iva_hd_target: target-module@5a000000 {
728			compatible = "ti,sysc-omap4", "ti,sysc";
729			reg = <0x5a05a400 0x4>,
730			      <0x5a05a410 0x4>;
731			reg-names = "rev", "sysc";
732			ti,sysc-midle = <SYSC_IDLE_FORCE>,
733					<SYSC_IDLE_NO>,
734					<SYSC_IDLE_SMART>;
735			ti,sysc-sidle = <SYSC_IDLE_FORCE>,
736					<SYSC_IDLE_NO>,
737					<SYSC_IDLE_SMART>;
738			power-domains = <&prm_ivahd>;
739			resets = <&prm_ivahd 2>;
740			reset-names = "rstctrl";
741			clocks = <&ivahd_clkctrl OMAP4_IVA_CLKCTRL 0>;
742			clock-names = "fck";
743			#address-cells = <1>;
744			#size-cells = <1>;
745			ranges = <0x5a000000 0x5a000000 0x1000000>,
746				 <0x5b000000 0x5b000000 0x1000000>;
747
748			iva {
749				compatible = "ti,ivahd";
750			};
751		};
752	};
753};
754
755#include "omap4-l4.dtsi"
756#include "omap4-l4-abe.dtsi"
757#include "omap44xx-clocks.dtsi"
758
759&prm {
760	prm_mpu: prm@300 {
761		compatible = "ti,omap4-prm-inst", "ti,omap-prm-inst";
762		reg = <0x300 0x100>;
763		#power-domain-cells = <0>;
764	};
765
766	prm_tesla: prm@400 {
767		compatible = "ti,omap4-prm-inst", "ti,omap-prm-inst";
768		reg = <0x400 0x100>;
769		#reset-cells = <1>;
770		#power-domain-cells = <0>;
771	};
772
773	prm_abe: prm@500 {
774		compatible = "ti,omap4-prm-inst", "ti,omap-prm-inst";
775		reg = <0x500 0x100>;
776		#power-domain-cells = <0>;
777	};
778
779	prm_always_on_core: prm@600 {
780		compatible = "ti,omap4-prm-inst", "ti,omap-prm-inst";
781		reg = <0x600 0x100>;
782		#power-domain-cells = <0>;
783	};
784
785	prm_core: prm@700 {
786		compatible = "ti,omap4-prm-inst", "ti,omap-prm-inst";
787		reg = <0x700 0x100>;
788		#reset-cells = <1>;
789		#power-domain-cells = <0>;
790	};
791
792	prm_ivahd: prm@f00 {
793		compatible = "ti,omap4-prm-inst", "ti,omap-prm-inst";
794		reg = <0xf00 0x100>;
795		#reset-cells = <1>;
796		#power-domain-cells = <0>;
797	};
798
799	prm_cam: prm@1000 {
800		compatible = "ti,omap4-prm-inst", "ti,omap-prm-inst";
801		reg = <0x1000 0x100>;
802		#power-domain-cells = <0>;
803	};
804
805	prm_dss: prm@1100 {
806		compatible = "ti,omap4-prm-inst", "ti,omap-prm-inst";
807		reg = <0x1100 0x100>;
808		#power-domain-cells = <0>;
809	};
810
811	prm_gfx: prm@1200 {
812		compatible = "ti,omap4-prm-inst", "ti,omap-prm-inst";
813		reg = <0x1200 0x100>;
814		#power-domain-cells = <0>;
815	};
816
817	prm_l3init: prm@1300 {
818		compatible = "ti,omap4-prm-inst", "ti,omap-prm-inst";
819		reg = <0x1300 0x100>;
820		#power-domain-cells = <0>;
821	};
822
823	prm_l4per: prm@1400 {
824		compatible = "ti,omap4-prm-inst", "ti,omap-prm-inst";
825		reg = <0x1400 0x100>;
826		#power-domain-cells = <0>;
827	};
828
829	prm_cefuse: prm@1600 {
830		compatible = "ti,omap4-prm-inst", "ti,omap-prm-inst";
831		reg = <0x1600 0x100>;
832		#power-domain-cells = <0>;
833	};
834
835	prm_wkup: prm@1700 {
836		compatible = "ti,omap4-prm-inst", "ti,omap-prm-inst";
837		reg = <0x1700 0x100>;
838		#power-domain-cells = <0>;
839	};
840
841	prm_emu: prm@1900 {
842		compatible = "ti,omap4-prm-inst", "ti,omap-prm-inst";
843		reg = <0x1900 0x100>;
844		#power-domain-cells = <0>;
845	};
846
847	prm_dss: prm@1100 {
848		compatible = "ti,omap4-prm-inst", "ti,omap-prm-inst";
849		reg = <0x1100 0x40>;
850		#power-domain-cells = <0>;
851	};
852
853	prm_device: prm@1b00 {
854		compatible = "ti,omap4-prm-inst", "ti,omap-prm-inst";
855		reg = <0x1b00 0x40>;
856		#reset-cells = <1>;
857	};
858};
859
860/* Preferred always-on timer for clockevent */
861&timer1_target {
862	ti,no-reset-on-init;
863	ti,no-idle;
864	timer@0 {
865		assigned-clocks = <&l4_wkup_clkctrl OMAP4_TIMER1_CLKCTRL 24>;
866		assigned-clock-parents = <&sys_32k_ck>;
867	};
868};
869