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