1 // SPDX-License-Identifier: GPL-2.0-only
3 * Copyright (C) 2012 Texas Instruments Incorporated - https://www.ti.com/
5 * Based on "omap4.dtsi"
8 #include <dt-bindings/bus/ti-sysc.h>
9 #include <dt-bindings/gpio/gpio.h>
10 #include <dt-bindings/interrupt-controller/arm-gic.h>
11 #include <dt-bindings/pinctrl/omap.h>
12 #include <dt-bindings/clock/omap5.h>
18 compatible = "ti,omap5";
19 interrupt-parent = <&wakeupgen>;
44 compatible = "arm,cortex-a15";
53 clocks = <&dpll_mpu_ck>;
56 clock-latency = <300000>; /* From omap-cpufreq driver */
59 #cooling-cells = <2>; /* min followed by max */
63 compatible = "arm,cortex-a15";
72 clocks = <&dpll_mpu_ck>;
75 clock-latency = <300000>; /* From omap-cpufreq driver */
78 #cooling-cells = <2>; /* min followed by max */
83 #include "omap4-cpu-thermal.dtsi"
84 #include "omap5-gpu-thermal.dtsi"
85 #include "omap5-core-thermal.dtsi"
89 compatible = "arm,armv7-timer";
90 /* PPI secure/nonsecure IRQ */
91 interrupts = <GIC_PPI 13 (GIC_CPU_MASK_RAW(3) | IRQ_TYPE_LEVEL_LOW)>,
92 <GIC_PPI 14 (GIC_CPU_MASK_RAW(3) | IRQ_TYPE_LEVEL_LOW)>,
93 <GIC_PPI 11 (GIC_CPU_MASK_RAW(3) | IRQ_TYPE_LEVEL_LOW)>,
94 <GIC_PPI 10 (GIC_CPU_MASK_RAW(3) | IRQ_TYPE_LEVEL_LOW)>;
95 interrupt-parent = <&gic>;
99 compatible = "arm,cortex-a15-pmu";
100 interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>,
101 <GIC_SPI 132 IRQ_TYPE_LEVEL_HIGH>;
104 gic: interrupt-controller@48211000 {
105 compatible = "arm,cortex-a15-gic";
106 interrupt-controller;
107 #interrupt-cells = <3>;
108 reg = <0 0x48211000 0 0x1000>,
109 <0 0x48212000 0 0x2000>,
110 <0 0x48214000 0 0x2000>,
111 <0 0x48216000 0 0x2000>;
112 interrupt-parent = <&gic>;
115 wakeupgen: interrupt-controller@48281000 {
116 compatible = "ti,omap5-wugen-mpu", "ti,omap4-wugen-mpu";
117 interrupt-controller;
118 #interrupt-cells = <3>;
119 reg = <0 0x48281000 0 0x1000>;
120 interrupt-parent = <&gic>;
124 * The soc node represents the soc top level view. It is used for IPs
125 * that are not memory mapped in the MPU view or for the MPU itself.
128 compatible = "ti,omap-infra";
130 compatible = "ti,omap4-mpu";
137 * XXX: Use a flat representation of the OMAP3 interconnect.
138 * The real OMAP interconnect network is quite complex.
139 * Since it will not bring real advantage to represent that in DT for
140 * the moment, just use a fake OCP bus entry to represent the whole bus
144 compatible = "ti,omap5-l3-noc", "simple-bus";
145 #address-cells = <1>;
147 ranges = <0 0 0 0xc0000000>;
148 dma-ranges = <0x80000000 0x0 0x80000000 0x80000000>;
149 ti,hwmods = "l3_main_1", "l3_main_2", "l3_main_3";
150 reg = <0 0x44000000 0 0x2000>,
151 <0 0x44800000 0 0x3000>,
152 <0 0x45000000 0 0x4000>;
153 interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>,
154 <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
156 l4_wkup: interconnect@4ae00000 {
159 l4_cfg: interconnect@4a000000 {
162 l4_per: interconnect@48000000 {
165 l4_abe: interconnect@40100000 {
168 ocmcram: sram@40300000 {
169 compatible = "mmio-sram";
170 reg = <0x40300000 0x20000>; /* 128k */
173 gpmc: gpmc@50000000 {
174 compatible = "ti,omap4430-gpmc";
175 reg = <0x50000000 0x1000>;
176 #address-cells = <2>;
178 interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
182 gpmc,num-waitpins = <4>;
184 clocks = <&l3_iclk_div>;
186 interrupt-controller;
187 #interrupt-cells = <2>;
192 target-module@55082000 {
193 compatible = "ti,sysc-omap2", "ti,sysc";
194 reg = <0x55082000 0x4>,
197 reg-names = "rev", "sysc", "syss";
198 ti,sysc-sidle = <SYSC_IDLE_FORCE>,
201 ti,sysc-mask = <(SYSC_OMAP2_CLOCKACTIVITY |
202 SYSC_OMAP2_SOFTRESET |
203 SYSC_OMAP2_AUTOIDLE)>;
204 clocks = <&ipu_clkctrl OMAP5_MMU_IPU_CLKCTRL 0>;
206 resets = <&prm_core 2>;
207 reset-names = "rstctrl";
208 ranges = <0x0 0x55082000 0x100>;
210 #address-cells = <1>;
213 compatible = "ti,omap4-iommu";
215 interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
217 ti,iommu-bus-err-back;
222 compatible = "ti,omap5-dsp";
223 ti,bootreg = <&scm_conf 0x304 0>;
225 resets = <&prm_dsp 0>;
226 clocks = <&dsp_clkctrl OMAP5_MMU_DSP_CLKCTRL 0>;
227 firmware-name = "omap5-dsp-fw.xe64T";
228 mboxes = <&mailbox &mbox_dsp>;
233 compatible = "ti,omap5-ipu";
234 reg = <0x55020000 0x10000>;
237 resets = <&prm_core 0>, <&prm_core 1>;
238 clocks = <&ipu_clkctrl OMAP5_MMU_IPU_CLKCTRL 0>;
239 firmware-name = "omap5-ipu-fw.xem4";
240 mboxes = <&mailbox &mbox_ipu>;
245 compatible = "ti,omap5-dmm";
246 reg = <0x4e000000 0x800>;
247 interrupts = <0 113 0x4>;
251 emif1: emif@4c000000 {
252 compatible = "ti,emif-4d5";
255 phy-type = <2>; /* DDR PHY type: Intelli PHY */
256 reg = <0x4c000000 0x400>;
257 interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
258 hw-caps-read-idle-ctrl;
259 hw-caps-ll-interface;
263 emif2: emif@4d000000 {
264 compatible = "ti,emif-4d5";
267 phy-type = <2>; /* DDR PHY type: Intelli PHY */
268 reg = <0x4d000000 0x400>;
269 interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
270 hw-caps-read-idle-ctrl;
271 hw-caps-ll-interface;
275 aes1_target: target-module@4b501000 {
276 compatible = "ti,sysc-omap2", "ti,sysc";
277 reg = <0x4b501080 0x4>,
280 reg-names = "rev", "sysc", "syss";
281 ti,sysc-mask = <(SYSC_OMAP2_SOFTRESET |
282 SYSC_OMAP2_AUTOIDLE)>;
283 ti,sysc-sidle = <SYSC_IDLE_FORCE>,
286 <SYSC_IDLE_SMART_WKUP>;
288 /* Domains (P, C): l4per_pwrdm, l4sec_clkdm */
289 clocks = <&l4sec_clkctrl OMAP5_AES1_CLKCTRL 0>;
291 #address-cells = <1>;
293 ranges = <0x0 0x4b501000 0x1000>;
296 compatible = "ti,omap4-aes";
298 interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
299 dmas = <&sdma 111>, <&sdma 110>;
300 dma-names = "tx", "rx";
304 aes2_target: target-module@4b701000 {
305 compatible = "ti,sysc-omap2", "ti,sysc";
306 reg = <0x4b701080 0x4>,
309 reg-names = "rev", "sysc", "syss";
310 ti,sysc-mask = <(SYSC_OMAP2_SOFTRESET |
311 SYSC_OMAP2_AUTOIDLE)>;
312 ti,sysc-sidle = <SYSC_IDLE_FORCE>,
315 <SYSC_IDLE_SMART_WKUP>;
317 /* Domains (P, C): l4per_pwrdm, l4sec_clkdm */
318 clocks = <&l4sec_clkctrl OMAP5_AES2_CLKCTRL 0>;
320 #address-cells = <1>;
322 ranges = <0x0 0x4b701000 0x1000>;
325 compatible = "ti,omap4-aes";
327 interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>;
328 dmas = <&sdma 114>, <&sdma 113>;
329 dma-names = "tx", "rx";
333 sham_target: target-module@4b100000 {
334 compatible = "ti,sysc-omap3-sham", "ti,sysc";
335 reg = <0x4b100100 0x4>,
338 reg-names = "rev", "sysc", "syss";
339 ti,sysc-mask = <(SYSC_OMAP2_SOFTRESET |
340 SYSC_OMAP2_AUTOIDLE)>;
341 ti,sysc-sidle = <SYSC_IDLE_FORCE>,
345 /* Domains (P, C): l4per_pwrdm, l4sec_clkdm */
346 clocks = <&l4sec_clkctrl OMAP5_SHA2MD5_CLKCTRL 0>;
348 #address-cells = <1>;
350 ranges = <0x0 0x4b100000 0x1000>;
353 compatible = "ti,omap4-sham";
355 interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
361 bandgap: bandgap@4a0021e0 {
362 reg = <0x4a0021e0 0xc
366 interrupts = <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>;
367 compatible = "ti,omap5430-bandgap";
369 #thermal-sensor-cells = <1>;
373 sata: sata@4a141100 {
374 compatible = "snps,dwc-ahci";
375 reg = <0x4a140000 0x1100>, <0x4a141100 0x7>;
376 interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>;
378 phy-names = "sata-phy";
379 clocks = <&l3init_clkctrl OMAP5_SATA_CLKCTRL 8>;
381 ports-implemented = <0x1>;
384 target-module@56000000 {
385 compatible = "ti,sysc-omap4", "ti,sysc";
386 reg = <0x5600fe00 0x4>,
388 reg-names = "rev", "sysc";
389 ti,sysc-midle = <SYSC_IDLE_FORCE>,
392 ti,sysc-sidle = <SYSC_IDLE_FORCE>,
395 clocks = <&gpu_clkctrl OMAP5_GPU_CLKCTRL 0>;
397 #address-cells = <1>;
399 ranges = <0 0x56000000 0x2000000>;
402 * Closed source PowerVR driver, no child device
403 * binding or driver in mainline
407 target-module@58000000 {
408 compatible = "ti,sysc-omap2", "ti,sysc";
409 reg = <0x58000000 4>,
411 reg-names = "rev", "syss";
413 power-domains = <&prm_dss>;
414 clocks = <&dss_clkctrl OMAP5_DSS_CORE_CLKCTRL 0>,
415 <&dss_clkctrl OMAP5_DSS_CORE_CLKCTRL 9>,
416 <&dss_clkctrl OMAP5_DSS_CORE_CLKCTRL 10>,
417 <&dss_clkctrl OMAP5_DSS_CORE_CLKCTRL 11>;
418 clock-names = "fck", "hdmi_clk", "sys_clk", "tv_clk";
419 #address-cells = <1>;
421 ranges = <0 0x58000000 0x1000000>;
424 compatible = "ti,omap5-dss";
427 clocks = <&dss_clkctrl OMAP5_DSS_CORE_CLKCTRL 8>;
429 #address-cells = <1>;
431 ranges = <0 0 0x1000000>;
434 compatible = "ti,sysc-omap2", "ti,sysc";
438 reg-names = "rev", "sysc", "syss";
439 ti,sysc-sidle = <SYSC_IDLE_FORCE>,
442 ti,sysc-midle = <SYSC_IDLE_FORCE>,
445 ti,sysc-mask = <(SYSC_OMAP2_CLOCKACTIVITY |
446 SYSC_OMAP2_ENAWAKEUP |
447 SYSC_OMAP2_SOFTRESET |
448 SYSC_OMAP2_AUTOIDLE)>;
450 clocks = <&dss_clkctrl OMAP5_DSS_CORE_CLKCTRL 8>;
452 #address-cells = <1>;
454 ranges = <0 0x1000 0x1000>;
457 compatible = "ti,omap5-dispc";
459 interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
460 clocks = <&dss_clkctrl OMAP5_DSS_CORE_CLKCTRL 8>;
466 compatible = "ti,sysc-omap2", "ti,sysc";
470 reg-names = "rev", "sysc", "syss";
471 ti,sysc-sidle = <SYSC_IDLE_FORCE>,
474 ti,sysc-mask = <(SYSC_OMAP2_SOFTRESET |
475 SYSC_OMAP2_AUTOIDLE)>;
477 clocks = <&dss_clkctrl OMAP5_DSS_CORE_CLKCTRL 8>;
479 #address-cells = <1>;
481 ranges = <0 0x2000 0x1000>;
484 compatible = "ti,omap5-rfbi";
487 clocks = <&dss_clkctrl OMAP5_DSS_CORE_CLKCTRL 8>, <&l3_iclk_div>;
488 clock-names = "fck", "ick";
493 compatible = "ti,sysc-omap2", "ti,sysc";
497 reg-names = "rev", "sysc", "syss";
498 ti,sysc-sidle = <SYSC_IDLE_FORCE>,
501 ti,sysc-mask = <(SYSC_OMAP2_CLOCKACTIVITY |
502 SYSC_OMAP2_ENAWAKEUP |
503 SYSC_OMAP2_SOFTRESET |
504 SYSC_OMAP2_AUTOIDLE)>;
506 #address-cells = <1>;
508 ranges = <0 0x4000 0x1000>;
511 compatible = "ti,omap5-dsi";
515 reg-names = "proto", "phy", "pll";
516 interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>;
518 clocks = <&dss_clkctrl OMAP5_DSS_CORE_CLKCTRL 8>,
519 <&dss_clkctrl OMAP5_DSS_CORE_CLKCTRL 10>;
520 clock-names = "fck", "sys_clk";
525 compatible = "ti,sysc-omap2", "ti,sysc";
529 reg-names = "rev", "sysc", "syss";
530 ti,sysc-sidle = <SYSC_IDLE_FORCE>,
533 ti,sysc-mask = <(SYSC_OMAP2_CLOCKACTIVITY |
534 SYSC_OMAP2_ENAWAKEUP |
535 SYSC_OMAP2_SOFTRESET |
536 SYSC_OMAP2_AUTOIDLE)>;
538 #address-cells = <1>;
540 ranges = <0 0x9000 0x1000>;
543 compatible = "ti,omap5-dsi";
547 reg-names = "proto", "phy", "pll";
548 interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>;
550 clocks = <&dss_clkctrl OMAP5_DSS_CORE_CLKCTRL 8>,
551 <&dss_clkctrl OMAP5_DSS_CORE_CLKCTRL 10>;
552 clock-names = "fck", "sys_clk";
556 target-module@40000 {
557 compatible = "ti,sysc-omap4", "ti,sysc";
560 reg-names = "rev", "sysc";
561 ti,sysc-sidle = <SYSC_IDLE_FORCE>,
564 <SYSC_IDLE_SMART_WKUP>;
565 ti,sysc-mask = <(SYSC_OMAP4_SOFTRESET)>;
566 clocks = <&dss_clkctrl OMAP5_DSS_CORE_CLKCTRL 9>,
567 <&dss_clkctrl OMAP5_DSS_CORE_CLKCTRL 8>;
568 clock-names = "fck", "dss_clk";
569 #address-cells = <1>;
571 ranges = <0 0x40000 0x40000>;
574 compatible = "ti,omap5-hdmi";
579 reg-names = "wp", "pll", "phy", "core";
580 interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
582 clocks = <&dss_clkctrl OMAP5_DSS_CORE_CLKCTRL 9>,
583 <&dss_clkctrl OMAP5_DSS_CORE_CLKCTRL 10>;
584 clock-names = "fck", "sys_clk";
586 dma-names = "audio_tx";
592 abb_mpu: regulator-abb-mpu {
593 compatible = "ti,abb-v2";
594 regulator-name = "abb_mpu";
595 #address-cells = <0>;
597 clocks = <&sys_clkin>;
598 ti,settling-time = <50>;
599 ti,clock-cycles = <16>;
601 reg = <0x4ae07cdc 0x8>, <0x4ae06014 0x4>,
602 <0x4a0021c4 0x8>, <0x4ae0c318 0x4>;
603 reg-names = "base-address", "int-address",
604 "efuse-address", "ldo-address";
605 ti,tranxdone-status-mask = <0x80>;
606 /* LDOVBBMPU_MUX_CTRL */
607 ti,ldovbb-override-mask = <0x400>;
608 /* LDOVBBMPU_VSET_OUT */
609 ti,ldovbb-vset-mask = <0x1F>;
612 * NOTE: only FBB mode used but actual vset will
613 * determine final biasing
616 /*uV ABB efuse rbb_m fbb_m vset_m*/
617 1060000 0 0x0 0 0x02000000 0x01F00000
618 1250000 0 0x4 0 0x02000000 0x01F00000
622 abb_mm: regulator-abb-mm {
623 compatible = "ti,abb-v2";
624 regulator-name = "abb_mm";
625 #address-cells = <0>;
627 clocks = <&sys_clkin>;
628 ti,settling-time = <50>;
629 ti,clock-cycles = <16>;
631 reg = <0x4ae07ce4 0x8>, <0x4ae06010 0x4>,
632 <0x4a0021a4 0x8>, <0x4ae0c314 0x4>;
633 reg-names = "base-address", "int-address",
634 "efuse-address", "ldo-address";
635 ti,tranxdone-status-mask = <0x80000000>;
636 /* LDOVBBMM_MUX_CTRL */
637 ti,ldovbb-override-mask = <0x400>;
638 /* LDOVBBMM_VSET_OUT */
639 ti,ldovbb-vset-mask = <0x1F>;
642 * NOTE: only FBB mode used but actual vset will
643 * determine final biasing
646 /*uV ABB efuse rbb_m fbb_m vset_m*/
647 1025000 0 0x0 0 0x02000000 0x01F00000
648 1120000 0 0x4 0 0x02000000 0x01F00000
655 polling-delay = <500>; /* milliseconds */
656 coefficients = <65 (-1791)>;
659 #include "omap5-l4.dtsi"
660 #include "omap54xx-clocks.dtsi"
663 coefficients = <117 (-2992)>;
667 coefficients = <0 2000>;
670 #include "omap5-l4-abe.dtsi"
671 #include "omap54xx-clocks.dtsi"
675 compatible = "ti,omap5-prm-inst", "ti,omap-prm-inst";
677 #power-domain-cells = <0>;
681 compatible = "ti,omap5-prm-inst", "ti,omap-prm-inst";
684 #power-domain-cells = <0>;
688 compatible = "ti,omap5-prm-inst", "ti,omap-prm-inst";
690 #power-domain-cells = <0>;
693 prm_coreaon: prm@600 {
694 compatible = "ti,omap5-prm-inst", "ti,omap-prm-inst";
696 #power-domain-cells = <0>;
700 compatible = "ti,omap5-prm-inst", "ti,omap-prm-inst";
703 #power-domain-cells = <0>;
707 compatible = "ti,omap5-prm-inst", "ti,omap-prm-inst";
708 reg = <0x1200 0x100>;
710 #power-domain-cells = <0>;
714 compatible = "ti,omap5-prm-inst", "ti,omap-prm-inst";
715 reg = <0x1300 0x100>;
716 #power-domain-cells = <0>;
720 compatible = "ti,omap5-prm-inst", "ti,omap-prm-inst";
721 reg = <0x1400 0x100>;
722 #power-domain-cells = <0>;
726 compatible = "ti,omap5-prm-inst", "ti,omap-prm-inst";
727 reg = <0x1500 0x100>;
728 #power-domain-cells = <0>;
731 prm_l3init: prm@1600 {
732 compatible = "ti,omap5-prm-inst", "ti,omap-prm-inst";
733 reg = <0x1600 0x100>;
734 #power-domain-cells = <0>;
737 prm_custefuse: prm@1700 {
738 compatible = "ti,omap5-prm-inst", "ti,omap-prm-inst";
739 reg = <0x1700 0x100>;
740 #power-domain-cells = <0>;
743 prm_wkupaon: prm@1800 {
744 compatible = "ti,omap5-prm-inst", "ti,omap-prm-inst";
745 reg = <0x1800 0x100>;
746 #power-domain-cells = <0>;
750 compatible = "ti,omap5-prm-inst", "ti,omap-prm-inst";
751 reg = <0x1a00 0x100>;
752 #power-domain-cells = <0>;
755 prm_device: prm@1c00 {
756 compatible = "ti,omap5-prm-inst", "ti,omap-prm-inst";
757 reg = <0x1c00 0x100>;
762 /* Preferred always-on timer for clockevent */
767 assigned-clocks = <&wkupaon_clkctrl OMAP5_TIMER1_CLKCTRL 24>;
768 assigned-clock-parents = <&sys_32k_ck>;