blob: 2bbff9032be3ed6faefd4c1dc98106d5d21cbc1b [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001// 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};