Linux Audio

Check our new training course

Loading...
v6.2
  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};
v5.9
  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		serial0 = &uart1;
 26		serial1 = &uart2;
 27		serial2 = &uart3;
 28		serial3 = &uart4;
 29		rproc0 = &dsp;
 30		rproc1 = &ipu;
 31	};
 32
 33	cpus {
 34		#address-cells = <1>;
 35		#size-cells = <0>;
 36
 37		cpu@0 {
 38			compatible = "arm,cortex-a9";
 39			device_type = "cpu";
 40			next-level-cache = <&L2>;
 41			reg = <0x0>;
 42
 43			clocks = <&dpll_mpu_ck>;
 44			clock-names = "cpu";
 45
 46			clock-latency = <300000>; /* From omap-cpufreq driver */
 47		};
 48		cpu@1 {
 49			compatible = "arm,cortex-a9";
 50			device_type = "cpu";
 51			next-level-cache = <&L2>;
 52			reg = <0x1>;
 53		};
 54	};
 55
 56	/*
 57	 * Note that 4430 needs cross trigger interface (CTI) supported
 58	 * before we can configure the interrupts. This means sampling
 59	 * events are not supported for pmu. Note that 4460 does not use
 60	 * CTI, see also 4460.dtsi.
 61	 */
 62	pmu {
 63		compatible = "arm,cortex-a9-pmu";
 64		ti,hwmods = "debugss";
 65	};
 66
 67	gic: interrupt-controller@48241000 {
 68		compatible = "arm,cortex-a9-gic";
 69		interrupt-controller;
 70		#interrupt-cells = <3>;
 71		reg = <0x48241000 0x1000>,
 72		      <0x48240100 0x0100>;
 73		interrupt-parent = <&gic>;
 74	};
 75
 76	L2: cache-controller@48242000 {
 77		compatible = "arm,pl310-cache";
 78		reg = <0x48242000 0x1000>;
 79		cache-unified;
 80		cache-level = <2>;
 81	};
 82
 83	local-timer@48240600 {
 84		compatible = "arm,cortex-a9-twd-timer";
 85		clocks = <&mpu_periphclk>;
 86		reg = <0x48240600 0x20>;
 87		interrupts = <GIC_PPI 13 (GIC_CPU_MASK_RAW(3) | IRQ_TYPE_EDGE_RISING)>;
 88		interrupt-parent = <&gic>;
 89	};
 90
 91	wakeupgen: interrupt-controller@48281000 {
 92		compatible = "ti,omap4-wugen-mpu";
 93		interrupt-controller;
 94		#interrupt-cells = <3>;
 95		reg = <0x48281000 0x1000>;
 96		interrupt-parent = <&gic>;
 97	};
 98
 99	/*
100	 * The soc node represents the soc top level view. It is used for IPs
101	 * that are not memory mapped in the MPU view or for the MPU itself.
102	 */
103	soc {
104		compatible = "ti,omap-infra";
105		mpu {
106			compatible = "ti,omap4-mpu";
107			ti,hwmods = "mpu";
108			sram = <&ocmcram>;
109		};
110
111		iva {
112			compatible = "ti,ivahd";
113			ti,hwmods = "iva";
114		};
115	};
116
117	/*
118	 * XXX: Use a flat representation of the OMAP4 interconnect.
119	 * The real OMAP interconnect network is quite complex.
120	 * Since it will not bring real advantage to represent that in DT for
121	 * the moment, just use a fake OCP bus entry to represent the whole bus
122	 * hierarchy.
123	 */
124	ocp {
125		compatible = "ti,omap4-l3-noc", "simple-bus";
 
 
 
 
126		#address-cells = <1>;
127		#size-cells = <1>;
128		ranges;
129		ti,hwmods = "l3_main_1", "l3_main_2", "l3_main_3";
130		reg = <0x44000000 0x1000>,
131		      <0x44800000 0x2000>,
132		      <0x45000000 0x1000>;
133		interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>,
134			     <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
 
 
 
135
136		l4_wkup: interconnect@4a300000 {
137		};
138
139		l4_cfg: interconnect@4a000000 {
140		};
141
142		l4_per: interconnect@48000000 {
143		};
144
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
145		l4_abe: interconnect@40100000 {
146		};
147
148		ocmcram: sram@40304000 {
149			compatible = "mmio-sram";
150			reg = <0x40304000 0xa000>; /* 40k */
151		};
152
153		gpmc: gpmc@50000000 {
154			compatible = "ti,omap4430-gpmc";
155			reg = <0x50000000 0x1000>;
156			#address-cells = <2>;
157			#size-cells = <1>;
158			interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
159			dmas = <&sdma 4>;
160			dma-names = "rxtx";
161			gpmc,num-cs = <8>;
162			gpmc,num-waitpins = <4>;
163			ti,hwmods = "gpmc";
164			ti,no-idle-on-init;
165			clocks = <&l3_div_ck>;
166			clock-names = "fck";
167			interrupt-controller;
168			#interrupt-cells = <2>;
169			gpio-controller;
170			#gpio-cells = <2>;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
171		};
172
173		target-module@52000000 {
174			compatible = "ti,sysc-omap4", "ti,sysc";
175			ti,hwmods = "iss";
176			reg = <0x52000000 0x4>,
177			      <0x52000010 0x4>;
178			reg-names = "rev", "sysc";
179			ti,sysc-mask = <SYSC_OMAP4_SOFTRESET>;
180			ti,sysc-midle = <SYSC_IDLE_FORCE>,
181					<SYSC_IDLE_NO>,
182					<SYSC_IDLE_SMART>,
183					<SYSC_IDLE_SMART_WKUP>;
184			ti,sysc-sidle = <SYSC_IDLE_FORCE>,
185					<SYSC_IDLE_NO>,
186					<SYSC_IDLE_SMART>,
187					<SYSC_IDLE_SMART_WKUP>;
188			ti,sysc-delay-us = <2>;
 
189			clocks = <&iss_clkctrl OMAP4_ISS_CLKCTRL 0>;
190			clock-names = "fck";
191			#address-cells = <1>;
192			#size-cells = <1>;
193			ranges = <0 0x52000000 0x1000000>;
194
195			/* No child device binding, driver in staging */
196		};
197
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
198		target-module@55082000 {
199			compatible = "ti,sysc-omap2", "ti,sysc";
200			reg = <0x55082000 0x4>,
201			      <0x55082010 0x4>,
202			      <0x55082014 0x4>;
203			reg-names = "rev", "sysc", "syss";
204			ti,sysc-sidle = <SYSC_IDLE_FORCE>,
205					<SYSC_IDLE_NO>,
206					<SYSC_IDLE_SMART>;
207			ti,sysc-mask = <(SYSC_OMAP2_CLOCKACTIVITY |
208					 SYSC_OMAP2_SOFTRESET |
209					 SYSC_OMAP2_AUTOIDLE)>;
210			clocks = <&ducati_clkctrl OMAP4_IPU_CLKCTRL 0>;
211			clock-names = "fck";
212			resets = <&prm_core 2>;
213			reset-names = "rstctrl";
214			ranges = <0x0 0x55082000 0x100>;
215			#size-cells = <1>;
216			#address-cells = <1>;
217
218			mmu_ipu: mmu@0 {
219				compatible = "ti,omap4-iommu";
220				reg = <0x0 0x100>;
221				interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
222				#iommu-cells = <0>;
223				ti,iommu-bus-err-back;
224			};
225		};
226
227		target-module@4012c000 {
228			compatible = "ti,sysc-omap4", "ti,sysc";
229			reg = <0x4012c000 0x4>,
230			      <0x4012c010 0x4>;
231			reg-names = "rev", "sysc";
232			ti,sysc-mask = <SYSC_OMAP4_SOFTRESET>;
233			ti,sysc-sidle = <SYSC_IDLE_FORCE>,
234					<SYSC_IDLE_NO>,
235					<SYSC_IDLE_SMART>,
236					<SYSC_IDLE_SMART_WKUP>;
237			clocks = <&abe_clkctrl OMAP4_SLIMBUS1_CLKCTRL 0>;
238			clock-names = "fck";
239			#address-cells = <1>;
240			#size-cells = <1>;
241			ranges = <0x00000000 0x4012c000 0x1000>, /* MPU */
242				 <0x4902c000 0x4902c000 0x1000>; /* L3 */
243
244			/* No child device binding or driver in mainline */
245		};
246
247		dmm@4e000000 {
248			compatible = "ti,omap4-dmm";
249			reg = <0x4e000000 0x800>;
250			interrupts = <0 113 0x4>;
251			ti,hwmods = "dmm";
 
 
 
 
 
 
 
 
 
 
 
 
252		};
253
254		emif1: emif@4c000000 {
255			compatible = "ti,emif-4d";
256			reg = <0x4c000000 0x100>;
257			interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
258			ti,hwmods = "emif1";
259			ti,no-idle-on-init;
260			phy-type = <1>;
261			hw-caps-read-idle-ctrl;
262			hw-caps-ll-interface;
263			hw-caps-temp-alert;
 
 
 
 
 
 
 
 
 
 
264		};
265
266		emif2: emif@4d000000 {
267			compatible = "ti,emif-4d";
268			reg = <0x4d000000 0x100>;
269			interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
270			ti,hwmods = "emif2";
271			ti,no-idle-on-init;
272			phy-type = <1>;
273			hw-caps-read-idle-ctrl;
274			hw-caps-ll-interface;
275			hw-caps-temp-alert;
 
 
 
 
 
 
 
 
 
 
276		};
277
278		dsp: dsp {
279			compatible = "ti,omap4-dsp";
280			ti,bootreg = <&scm_conf 0x304 0>;
281			iommus = <&mmu_dsp>;
282			resets = <&prm_tesla 0>;
283			clocks = <&tesla_clkctrl OMAP4_DSP_CLKCTRL 0>;
284			firmware-name = "omap4-dsp-fw.xe64T";
285			mboxes = <&mailbox &mbox_dsp>;
286			status = "disabled";
287		};
288
289		ipu: ipu@55020000 {
290			compatible = "ti,omap4-ipu";
291			reg = <0x55020000 0x10000>;
292			reg-names = "l2ram";
293			iommus = <&mmu_ipu>;
294			resets = <&prm_core 0>, <&prm_core 1>;
295			clocks = <&ducati_clkctrl OMAP4_IPU_CLKCTRL 0>;
296			firmware-name = "omap4-ipu-fw.xem3";
297			mboxes = <&mailbox &mbox_ipu>;
298			status = "disabled";
299		};
300
301		aes1_target: target-module@4b501000 {
302			compatible = "ti,sysc-omap2", "ti,sysc";
303			reg = <0x4b501080 0x4>,
304			      <0x4b501084 0x4>,
305			      <0x4b501088 0x4>;
306			reg-names = "rev", "sysc", "syss";
307			ti,sysc-mask = <(SYSC_OMAP2_SOFTRESET |
308					 SYSC_OMAP2_AUTOIDLE)>;
309			ti,sysc-sidle = <SYSC_IDLE_FORCE>,
310					<SYSC_IDLE_NO>,
311					<SYSC_IDLE_SMART>,
312					<SYSC_IDLE_SMART_WKUP>;
313			ti,syss-mask = <1>;
314			/* Domains (P, C): l4per_pwrdm, l4_secure_clkdm */
315			clocks = <&l4_secure_clkctrl OMAP4_AES1_CLKCTRL 0>;
316			clock-names = "fck";
317			#address-cells = <1>;
318			#size-cells = <1>;
319			ranges = <0x0 0x4b501000 0x1000>;
320
321			aes1: aes@0 {
322				compatible = "ti,omap4-aes";
323				reg = <0 0xa0>;
324				interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
325				dmas = <&sdma 111>, <&sdma 110>;
326				dma-names = "tx", "rx";
327			};
328		};
329
330		aes2_target: target-module@4b701000 {
331			compatible = "ti,sysc-omap2", "ti,sysc";
332			reg = <0x4b701080 0x4>,
333			      <0x4b701084 0x4>,
334			      <0x4b701088 0x4>;
335			reg-names = "rev", "sysc", "syss";
336			ti,sysc-mask = <(SYSC_OMAP2_SOFTRESET |
337					 SYSC_OMAP2_AUTOIDLE)>;
338			ti,sysc-sidle = <SYSC_IDLE_FORCE>,
339					<SYSC_IDLE_NO>,
340					<SYSC_IDLE_SMART>,
341					<SYSC_IDLE_SMART_WKUP>;
342			ti,syss-mask = <1>;
343			/* Domains (P, C): l4per_pwrdm, l4_secure_clkdm */
344			clocks = <&l4_secure_clkctrl OMAP4_AES2_CLKCTRL 0>;
345			clock-names = "fck";
346			#address-cells = <1>;
347			#size-cells = <1>;
348			ranges = <0x0 0x4b701000 0x1000>;
349
350			aes2: aes@0 {
351				compatible = "ti,omap4-aes";
352				reg = <0 0xa0>;
353				interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>;
354				dmas = <&sdma 114>, <&sdma 113>;
355				dma-names = "tx", "rx";
356			};
357		};
358
359		sham_target: target-module@4b100000 {
360			compatible = "ti,sysc-omap3-sham", "ti,sysc";
361			reg = <0x4b100100 0x4>,
362			      <0x4b100110 0x4>,
363			      <0x4b100114 0x4>;
364			reg-names = "rev", "sysc", "syss";
365			ti,sysc-mask = <(SYSC_OMAP2_SOFTRESET |
366					 SYSC_OMAP2_AUTOIDLE)>;
367			ti,sysc-sidle = <SYSC_IDLE_FORCE>,
368					<SYSC_IDLE_NO>,
369					<SYSC_IDLE_SMART>;
370			ti,syss-mask = <1>;
371			/* Domains (P, C): l4per_pwrdm, l4_secure_clkdm */
372			clocks = <&l4_secure_clkctrl OMAP4_SHA2MD5_CLKCTRL 0>;
373			clock-names = "fck";
374			#address-cells = <1>;
375			#size-cells = <1>;
376			ranges = <0x0 0x4b100000 0x1000>;
377
378			sham: sham@0 {
379				compatible = "ti,omap4-sham";
380				reg = <0 0x300>;
381				interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
382				dmas = <&sdma 119>;
383				dma-names = "rx";
384			};
385		};
386
387		abb_mpu: regulator-abb-mpu {
388			compatible = "ti,abb-v2";
389			regulator-name = "abb_mpu";
390			#address-cells = <0>;
391			#size-cells = <0>;
392			ti,tranxdone-status-mask = <0x80>;
393			clocks = <&sys_clkin_ck>;
394			ti,settling-time = <50>;
395			ti,clock-cycles = <16>;
396
397			status = "disabled";
398		};
399
400		abb_iva: regulator-abb-iva {
401			compatible = "ti,abb-v2";
402			regulator-name = "abb_iva";
403			#address-cells = <0>;
404			#size-cells = <0>;
405			ti,tranxdone-status-mask = <0x80000000>;
406			clocks = <&sys_clkin_ck>;
407			ti,settling-time = <50>;
408			ti,clock-cycles = <16>;
409
410			status = "disabled";
411		};
412
413		target-module@56000000 {
414			compatible = "ti,sysc-omap4", "ti,sysc";
415			reg = <0x5600fe00 0x4>,
416			      <0x5600fe10 0x4>;
417			reg-names = "rev", "sysc";
418			ti,sysc-midle = <SYSC_IDLE_FORCE>,
419					<SYSC_IDLE_NO>,
420					<SYSC_IDLE_SMART>,
421					<SYSC_IDLE_SMART_WKUP>;
422			ti,sysc-sidle = <SYSC_IDLE_FORCE>,
423					<SYSC_IDLE_NO>,
424					<SYSC_IDLE_SMART>,
425					<SYSC_IDLE_SMART_WKUP>;
 
426			clocks = <&l3_gfx_clkctrl OMAP4_GPU_CLKCTRL 0>;
427			clock-names = "fck";
428			#address-cells = <1>;
429			#size-cells = <1>;
430			ranges = <0 0x56000000 0x2000000>;
431
432			/*
433			 * Closed source PowerVR driver, no child device
434			 * binding or driver in mainline
435			 */
436		};
437
438		/*
439		 * DSS is only using l3 mapping without l4 as noted in the TRM
440		 * "10.1.3 DSS Register Manual" for omap4460.
441		 */
442		target-module@58000000 {
443			compatible = "ti,sysc-omap2", "ti,sysc";
444			reg = <0x58000000 4>,
445			      <0x58000014 4>;
446			reg-names = "rev", "syss";
447			ti,syss-mask = <1>;
 
448			clocks = <&l3_dss_clkctrl OMAP4_DSS_CORE_CLKCTRL 0>,
449				 <&l3_dss_clkctrl OMAP4_DSS_CORE_CLKCTRL 9>,
450				 <&l3_dss_clkctrl OMAP4_DSS_CORE_CLKCTRL 10>,
451				 <&l3_dss_clkctrl OMAP4_DSS_CORE_CLKCTRL 11>;
452			clock-names = "fck", "hdmi_clk", "sys_clk", "tv_clk";
453			#address-cells = <1>;
454			#size-cells = <1>;
455			ranges = <0 0x58000000 0x1000000>;
456
457			dss: dss@0 {
458				compatible = "ti,omap4-dss";
459				reg = <0 0x80>;
460				status = "disabled";
461				clocks = <&l3_dss_clkctrl OMAP4_DSS_CORE_CLKCTRL 8>;
462				clock-names = "fck";
463				#address-cells = <1>;
464				#size-cells = <1>;
465				ranges = <0 0 0x1000000>;
466
467				target-module@1000 {
468					compatible = "ti,sysc-omap2", "ti,sysc";
469					reg = <0x1000 0x4>,
470					      <0x1010 0x4>,
471					      <0x1014 0x4>;
472					reg-names = "rev", "sysc", "syss";
473					ti,sysc-sidle = <SYSC_IDLE_FORCE>,
474							<SYSC_IDLE_NO>,
475							<SYSC_IDLE_SMART>;
476					ti,sysc-midle = <SYSC_IDLE_FORCE>,
477							<SYSC_IDLE_NO>,
478							<SYSC_IDLE_SMART>;
479					ti,sysc-mask = <(SYSC_OMAP2_CLOCKACTIVITY |
480							 SYSC_OMAP2_ENAWAKEUP |
481							 SYSC_OMAP2_SOFTRESET |
482							 SYSC_OMAP2_AUTOIDLE)>;
483					ti,syss-mask = <1>;
484					clocks = <&l3_dss_clkctrl OMAP4_DSS_CORE_CLKCTRL 8>,
485						 <&l3_dss_clkctrl OMAP4_DSS_CORE_CLKCTRL 10>;
486					clock-names = "fck", "sys_clk";
487					#address-cells = <1>;
488					#size-cells = <1>;
489					ranges = <0 0x1000 0x1000>;
490
491					dispc@0 {
492						compatible = "ti,omap4-dispc";
493						reg = <0 0x1000>;
494						interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
495						clocks = <&l3_dss_clkctrl OMAP4_DSS_CORE_CLKCTRL 8>;
496						clock-names = "fck";
497					};
498				};
499
500				target-module@2000 {
501					compatible = "ti,sysc-omap2", "ti,sysc";
502					reg = <0x2000 0x4>,
503					      <0x2010 0x4>,
504					      <0x2014 0x4>;
505					reg-names = "rev", "sysc", "syss";
506					ti,sysc-sidle = <SYSC_IDLE_FORCE>,
507							<SYSC_IDLE_NO>,
508							<SYSC_IDLE_SMART>;
509					ti,sysc-mask = <(SYSC_OMAP2_SOFTRESET |
510							 SYSC_OMAP2_AUTOIDLE)>;
511					ti,syss-mask = <1>;
512					clocks = <&l3_dss_clkctrl OMAP4_DSS_CORE_CLKCTRL 8>,
513						 <&l3_dss_clkctrl OMAP4_DSS_CORE_CLKCTRL 10>;
514					clock-names = "fck", "sys_clk";
515					#address-cells = <1>;
516					#size-cells = <1>;
517					ranges = <0 0x2000 0x1000>;
518
519					rfbi: encoder@0  {
520						reg = <0 0x1000>;
521						status = "disabled";
522						clocks = <&l3_dss_clkctrl OMAP4_DSS_CORE_CLKCTRL 8>, <&l3_div_ck>;
523						clock-names = "fck", "ick";
524					};
525				};
526
527				target-module@3000 {
528					compatible = "ti,sysc-omap2", "ti,sysc";
529					reg = <0x3000 0x4>;
530					reg-names = "rev";
531					clocks = <&l3_dss_clkctrl OMAP4_DSS_CORE_CLKCTRL 10>;
532					clock-names = "sys_clk";
533					#address-cells = <1>;
534					#size-cells = <1>;
535					ranges = <0 0x3000 0x1000>;
536
537					venc: encoder@0 {
538						compatible = "ti,omap4-venc";
539						reg = <0 0x1000>;
540						status = "disabled";
541						clocks = <&l3_dss_clkctrl OMAP4_DSS_CORE_CLKCTRL 11>;
542						clock-names = "fck";
543					};
544				};
545
546				target-module@4000 {
547					compatible = "ti,sysc-omap2", "ti,sysc";
548					reg = <0x4000 0x4>,
549					      <0x4010 0x4>,
550					      <0x4014 0x4>;
551					reg-names = "rev", "sysc", "syss";
552					ti,sysc-sidle = <SYSC_IDLE_FORCE>,
553							<SYSC_IDLE_NO>,
554							<SYSC_IDLE_SMART>;
555					ti,sysc-mask = <(SYSC_OMAP2_CLOCKACTIVITY |
556							 SYSC_OMAP2_ENAWAKEUP |
557							 SYSC_OMAP2_SOFTRESET |
558							 SYSC_OMAP2_AUTOIDLE)>;
559					ti,syss-mask = <1>;
560					#address-cells = <1>;
561					#size-cells = <1>;
562					ranges = <0 0x4000 0x1000>;
563
564					dsi1: encoder@0 {
565						compatible = "ti,omap4-dsi";
566						reg = <0 0x200>,
567						      <0x200 0x40>,
568						      <0x300 0x20>;
569						reg-names = "proto", "phy", "pll";
570						interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>;
571						status = "disabled";
572						clocks = <&l3_dss_clkctrl OMAP4_DSS_CORE_CLKCTRL 8>,
573							 <&l3_dss_clkctrl OMAP4_DSS_CORE_CLKCTRL 10>;
574						clock-names = "fck", "sys_clk";
 
 
 
575					};
576				};
577
578				target-module@5000 {
579					compatible = "ti,sysc-omap2", "ti,sysc";
580					reg = <0x5000 0x4>,
581					      <0x5010 0x4>,
582					      <0x5014 0x4>;
583					reg-names = "rev", "sysc", "syss";
584					ti,sysc-sidle = <SYSC_IDLE_FORCE>,
585							<SYSC_IDLE_NO>,
586							<SYSC_IDLE_SMART>;
587					ti,sysc-mask = <(SYSC_OMAP2_CLOCKACTIVITY |
588							 SYSC_OMAP2_ENAWAKEUP |
589							 SYSC_OMAP2_SOFTRESET |
590							 SYSC_OMAP2_AUTOIDLE)>;
591					ti,syss-mask = <1>;
592					#address-cells = <1>;
593					#size-cells = <1>;
594					ranges = <0 0x5000 0x1000>;
595
596					dsi2: encoder@0 {
597						compatible = "ti,omap4-dsi";
598						reg = <0 0x200>,
599						      <0x200 0x40>,
600						      <0x300 0x20>;
601						reg-names = "proto", "phy", "pll";
602						interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
603						status = "disabled";
604						clocks = <&l3_dss_clkctrl OMAP4_DSS_CORE_CLKCTRL 8>,
605						         <&l3_dss_clkctrl OMAP4_DSS_CORE_CLKCTRL 10>;
606						clock-names = "fck", "sys_clk";
 
 
 
607					};
608				};
609
610				target-module@6000 {
611					compatible = "ti,sysc-omap4", "ti,sysc";
612					reg = <0x6000 0x4>,
613					      <0x6010 0x4>;
614					reg-names = "rev", "sysc";
615					/*
616					 * Has SYSC_IDLE_SMART and SYSC_IDLE_SMART_WKUP
617					 * but HDMI audio will fail with them.
618					 */
619					ti,sysc-sidle = <SYSC_IDLE_FORCE>,
620							<SYSC_IDLE_NO>;
621					ti,sysc-mask = <(SYSC_OMAP4_SOFTRESET)>;
622					clocks = <&l3_dss_clkctrl OMAP4_DSS_CORE_CLKCTRL 9>,
623						 <&l3_dss_clkctrl OMAP4_DSS_CORE_CLKCTRL 8>;
624					clock-names = "fck", "dss_clk";
625					#address-cells = <1>;
626					#size-cells = <1>;
627					ranges = <0 0x6000 0x2000>;
628
629					hdmi: encoder@0 {
630					compatible = "ti,omap4-hdmi";
631						reg = <0 0x200>,
632						      <0x200 0x100>,
633						      <0x300 0x100>,
634						      <0x400 0x1000>;
635						reg-names = "wp", "pll", "phy", "core";
636						interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
637						status = "disabled";
638						clocks = <&l3_dss_clkctrl OMAP4_DSS_CORE_CLKCTRL 9>,
639						         <&l3_dss_clkctrl OMAP4_DSS_CORE_CLKCTRL 10>;
640						clock-names = "fck", "sys_clk";
641						dmas = <&sdma 76>;
642						dma-names = "audio_tx";
643					};
644				};
645			};
646		};
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
647	};
648};
649
650#include "omap4-l4.dtsi"
651#include "omap4-l4-abe.dtsi"
652#include "omap44xx-clocks.dtsi"
653
654&prm {
 
 
 
 
 
 
655	prm_tesla: prm@400 {
656		compatible = "ti,omap4-prm-inst", "ti,omap-prm-inst";
657		reg = <0x400 0x100>;
658		#reset-cells = <1>;
 
 
 
 
 
 
 
 
 
 
 
 
 
659	};
660
661	prm_core: prm@700 {
662		compatible = "ti,omap4-prm-inst", "ti,omap-prm-inst";
663		reg = <0x700 0x100>;
664		#reset-cells = <1>;
 
665	};
666
667	prm_ivahd: prm@f00 {
668		compatible = "ti,omap4-prm-inst", "ti,omap-prm-inst";
669		reg = <0xf00 0x100>;
670		#reset-cells = <1>;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
671	};
672
673	prm_device: prm@1b00 {
674		compatible = "ti,omap4-prm-inst", "ti,omap-prm-inst";
675		reg = <0x1b00 0x40>;
676		#reset-cells = <1>;
677	};
678};
679
680/* Preferred always-on timer for clockevent */
681&timer1_target {
682	ti,no-reset-on-init;
683	ti,no-idle;
684	timer@0 {
685		assigned-clocks = <&l4_wkup_clkctrl OMAP4_TIMER1_CLKCTRL 24>;
686		assigned-clock-parents = <&sys_32k_ck>;
687	};
688};