blob: 72e4f6481776c7d49a7af009941febbdffbab91c [file] [log] [blame]
Thomas Gleixnerd2912cb2019-06-04 10:11:33 +02001// SPDX-License-Identifier: GPL-2.0-only
Benoit Coussond9fda072011-08-09 17:15:17 +02002/*
Alexander A. Klimov75f66812020-07-08 11:34:51 +02003 * Copyright (C) 2011 Texas Instruments Incorporated - https://www.ti.com/
Benoit Coussond9fda072011-08-09 17:15:17 +02004 */
5
Tony Lindgrene14d7e52018-01-11 16:04:03 -08006#include <dt-bindings/bus/ti-sysc.h>
7#include <dt-bindings/clock/omap4.h>
Florian Vaussard6d624ea2013-05-31 14:32:56 +02008#include <dt-bindings/gpio/gpio.h>
Florian Vaussard8fea7d52013-05-31 14:32:57 +02009#include <dt-bindings/interrupt-controller/arm-gic.h>
Florian Vaussardbcd3cca2013-05-31 14:32:59 +020010#include <dt-bindings/pinctrl/omap.h>
Tero Kristoa5c82a02017-12-08 17:17:27 +020011#include <dt-bindings/clock/omap4.h>
Benoit Coussond9fda072011-08-09 17:15:17 +020012
Benoit Coussond9fda072011-08-09 17:15:17 +020013/ {
14 compatible = "ti,omap4430", "ti,omap4";
Marc Zyngier7136d452015-03-11 15:43:49 +000015 interrupt-parent = <&wakeupgen>;
Javier Martinez Canillasda6269e2016-08-31 12:35:19 +020016 #address-cells = <1>;
17 #size-cells = <1>;
Javier Martinez Canillas6c565d12016-12-19 11:44:35 -030018 chosen { };
Benoit Coussond9fda072011-08-09 17:15:17 +020019
20 aliases {
Nishanth Menon20b80942013-10-16 15:21:03 -050021 i2c0 = &i2c1;
22 i2c1 = &i2c2;
23 i2c2 = &i2c3;
24 i2c3 = &i2c4;
Rajendra Nayakcf3c79d2011-12-14 17:25:46 +053025 serial0 = &uart1;
26 serial1 = &uart2;
27 serial2 = &uart3;
28 serial3 = &uart4;
Suman Anna691eb182020-07-09 18:19:46 -050029 rproc0 = &dsp;
30 rproc1 = &ipu;
Benoit Coussond9fda072011-08-09 17:15:17 +020031 };
32
Benoit Cousson476b6792011-08-16 11:49:08 +020033 cpus {
Lorenzo Pieralisieeb25fd2013-04-18 18:35:59 +010034 #address-cells = <1>;
35 #size-cells = <0>;
36
Benoit Cousson476b6792011-08-16 11:49:08 +020037 cpu@0 {
38 compatible = "arm,cortex-a9";
Lorenzo Pieralisieeb25fd2013-04-18 18:35:59 +010039 device_type = "cpu";
Santosh Shilimkar926fd452012-07-04 17:57:34 +053040 next-level-cache = <&L2>;
Lorenzo Pieralisieeb25fd2013-04-18 18:35:59 +010041 reg = <0x0>;
Nishanth Menon8d766fa2014-01-29 12:19:17 -060042
43 clocks = <&dpll_mpu_ck>;
44 clock-names = "cpu";
45
46 clock-latency = <300000>; /* From omap-cpufreq driver */
Benoit Cousson476b6792011-08-16 11:49:08 +020047 };
48 cpu@1 {
49 compatible = "arm,cortex-a9";
Lorenzo Pieralisieeb25fd2013-04-18 18:35:59 +010050 device_type = "cpu";
Santosh Shilimkar926fd452012-07-04 17:57:34 +053051 next-level-cache = <&L2>;
Lorenzo Pieralisieeb25fd2013-04-18 18:35:59 +010052 reg = <0x1>;
Benoit Cousson476b6792011-08-16 11:49:08 +020053 };
54 };
55
Tony Lindgrenb0142a12017-08-30 08:19:38 -070056 /*
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
Benoit Cousson56351212012-09-03 17:56:32 +020067 gic: interrupt-controller@48241000 {
68 compatible = "arm,cortex-a9-gic";
69 interrupt-controller;
70 #interrupt-cells = <3>;
71 reg = <0x48241000 0x1000>,
72 <0x48240100 0x0100>;
Marc Zyngier7136d452015-03-11 15:43:49 +000073 interrupt-parent = <&gic>;
Benoit Cousson56351212012-09-03 17:56:32 +020074 };
75
Krzysztof Kozlowski01df6232020-06-26 10:06:19 +020076 L2: cache-controller@48242000 {
Santosh Shilimkar926fd452012-07-04 17:57:34 +053077 compatible = "arm,pl310-cache";
78 reg = <0x48242000 0x1000>;
79 cache-unified;
80 cache-level = <2>;
81 };
82
Lee Jones75d71d42013-07-22 11:52:36 +010083 local-timer@48240600 {
Santosh Shilimkareed0de22012-07-04 18:32:32 +053084 compatible = "arm,cortex-a9-twd-timer";
Gilles Chanteperdrix23c47372014-04-07 22:05:39 +020085 clocks = <&mpu_periphclk>;
Santosh Shilimkareed0de22012-07-04 18:32:32 +053086 reg = <0x48240600 0x20>;
Jon Hunter6b472572016-03-17 14:19:06 +000087 interrupts = <GIC_PPI 13 (GIC_CPU_MASK_RAW(3) | IRQ_TYPE_EDGE_RISING)>;
Marc Zyngier7136d452015-03-11 15:43:49 +000088 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>;
Santosh Shilimkareed0de22012-07-04 18:32:32 +053097 };
98
Benoit Coussond9fda072011-08-09 17:15:17 +020099 /*
Geert Uytterhoeven5c5be9d2014-03-28 11:11:37 +0100100 * The soc node represents the soc top level view. It is used for IPs
Benoit Coussond9fda072011-08-09 17:15:17 +0200101 * that are not memory mapped in the MPU view or for the MPU itself.
102 */
103 soc {
104 compatible = "ti,omap-infra";
Benoit Cousson476b6792011-08-16 11:49:08 +0200105 mpu {
106 compatible = "ti,omap4-mpu";
107 ti,hwmods = "mpu";
Rajendra Nayak1306c082014-09-10 11:04:04 -0500108 sram = <&ocmcram>;
Benoit Cousson476b6792011-08-16 11:49:08 +0200109 };
Benoit Coussond9fda072011-08-09 17:15:17 +0200110 };
111
112 /*
113 * XXX: Use a flat representation of the OMAP4 interconnect.
114 * The real OMAP interconnect network is quite complex.
Geert Uytterhoevenb7ab5242014-03-28 11:11:39 +0100115 * Since it will not bring real advantage to represent that in DT for
Benoit Coussond9fda072011-08-09 17:15:17 +0200116 * the moment, just use a fake OCP bus entry to represent the whole bus
117 * hierarchy.
118 */
119 ocp {
Benoit Coussonad8dfac2011-08-12 13:48:47 +0200120 compatible = "ti,omap4-l3-noc", "simple-bus";
Benoit Coussond9fda072011-08-09 17:15:17 +0200121 #address-cells = <1>;
122 #size-cells = <1>;
123 ranges;
Benoit Coussonad8dfac2011-08-12 13:48:47 +0200124 ti,hwmods = "l3_main_1", "l3_main_2", "l3_main_3";
Santosh Shilimkar20a60ea2013-02-26 17:36:14 +0530125 reg = <0x44000000 0x1000>,
126 <0x44800000 0x2000>,
127 <0x45000000 0x1000>;
Florian Vaussard8fea7d52013-05-31 14:32:57 +0200128 interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>,
129 <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
Benoit Coussond9fda072011-08-09 17:15:17 +0200130
Tony Lindgren84badc52018-07-05 23:19:37 -0700131 l4_wkup: interconnect@4a300000 {
132 };
Tony Lindgren679e3312012-09-10 10:34:51 -0700133
Tony Lindgren84badc52018-07-05 23:19:37 -0700134 l4_cfg: interconnect@4a000000 {
135 };
Balaji T Kcd042fe2014-02-19 20:26:40 +0530136
Tony Lindgren84badc52018-07-05 23:19:37 -0700137 l4_per: interconnect@48000000 {
Balaji T Kcd042fe2014-02-19 20:26:40 +0530138 };
139
Tony Lindgren5b597532019-04-09 09:00:53 -0700140 l4_abe: interconnect@40100000 {
141 };
142
Krzysztof Kozlowskice8739d2019-10-02 18:43:16 +0200143 ocmcram: sram@40304000 {
Rajendra Nayak8b9a2812014-09-10 11:04:03 -0500144 compatible = "mmio-sram";
145 reg = <0x40304000 0xa000>; /* 40k */
146 };
147
Tony Lindgrenfb0bf6a2020-11-19 14:19:01 +0200148 target-module@50000000 {
149 compatible = "ti,sysc-omap2", "ti,sysc";
150 reg = <0x50000000 4>,
151 <0x50000010 4>,
152 <0x50000014 4>;
153 reg-names = "rev", "sysc", "syss";
154 ti,sysc-sidle = <SYSC_IDLE_FORCE>,
155 <SYSC_IDLE_NO>,
156 <SYSC_IDLE_SMART>;
157 ti,syss-mask = <1>;
Rajendra Nayakf12ecbe22013-10-15 12:37:50 +0530158 ti,no-idle-on-init;
Tony Lindgrenfb0bf6a2020-11-19 14:19:01 +0200159 clocks = <&l3_2_clkctrl OMAP4_GPMC_CLKCTRL 0>;
Florian Vaussard7b8b6af2014-02-26 11:38:09 +0100160 clock-names = "fck";
Tony Lindgrenfb0bf6a2020-11-19 14:19:01 +0200161 #address-cells = <1>;
162 #size-cells = <1>;
163 ranges = <0x50000000 0x50000000 0x00001000>, /* regs */
164 <0x00000000 0x00000000 0x40000000>; /* data */
165
166 gpmc: gpmc@50000000 {
167 compatible = "ti,omap4430-gpmc";
168 reg = <0x50000000 0x1000>;
169 #address-cells = <2>;
170 #size-cells = <1>;
171 interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
172 dmas = <&sdma 4>;
173 dma-names = "rxtx";
174 gpmc,num-cs = <8>;
175 gpmc,num-waitpins = <4>;
176 clocks = <&l3_div_ck>;
177 clock-names = "fck";
178 interrupt-controller;
179 #interrupt-cells = <2>;
180 gpio-controller;
181 #gpio-cells = <2>;
182 };
Jon Hunter1c7dbb52013-02-22 15:33:31 -0600183 };
184
Tony Lindgrend23a1632017-10-10 14:14:50 -0700185 target-module@52000000 {
Tony Lindgrenfeffce12017-12-13 16:36:47 -0800186 compatible = "ti,sysc-omap4", "ti,sysc";
Tony Lindgrend23a1632017-10-10 14:14:50 -0700187 ti,hwmods = "iss";
188 reg = <0x52000000 0x4>,
189 <0x52000010 0x4>;
190 reg-names = "rev", "sysc";
Tony Lindgrene14d7e52018-01-11 16:04:03 -0800191 ti,sysc-mask = <SYSC_OMAP4_SOFTRESET>;
192 ti,sysc-midle = <SYSC_IDLE_FORCE>,
193 <SYSC_IDLE_NO>,
194 <SYSC_IDLE_SMART>,
195 <SYSC_IDLE_SMART_WKUP>;
196 ti,sysc-sidle = <SYSC_IDLE_FORCE>,
197 <SYSC_IDLE_NO>,
198 <SYSC_IDLE_SMART>,
199 <SYSC_IDLE_SMART_WKUP>;
200 ti,sysc-delay-us = <2>;
201 clocks = <&iss_clkctrl OMAP4_ISS_CLKCTRL 0>;
202 clock-names = "fck";
Tony Lindgrend23a1632017-10-10 14:14:50 -0700203 #address-cells = <1>;
204 #size-cells = <1>;
205 ranges = <0 0x52000000 0x1000000>;
206
207 /* No child device binding, driver in staging */
208 };
209
Tero Kristo22f8d662019-12-12 14:51:20 +0200210 target-module@55082000 {
211 compatible = "ti,sysc-omap2", "ti,sysc";
212 reg = <0x55082000 0x4>,
213 <0x55082010 0x4>,
214 <0x55082014 0x4>;
215 reg-names = "rev", "sysc", "syss";
216 ti,sysc-sidle = <SYSC_IDLE_FORCE>,
217 <SYSC_IDLE_NO>,
218 <SYSC_IDLE_SMART>;
219 ti,sysc-mask = <(SYSC_OMAP2_CLOCKACTIVITY |
220 SYSC_OMAP2_SOFTRESET |
221 SYSC_OMAP2_AUTOIDLE)>;
222 clocks = <&ducati_clkctrl OMAP4_IPU_CLKCTRL 0>;
223 clock-names = "fck";
224 resets = <&prm_core 2>;
225 reset-names = "rstctrl";
226 ranges = <0x0 0x55082000 0x100>;
227 #size-cells = <1>;
228 #address-cells = <1>;
229
230 mmu_ipu: mmu@0 {
231 compatible = "ti,omap4-iommu";
232 reg = <0x0 0x100>;
233 interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
234 #iommu-cells = <0>;
235 ti,iommu-bus-err-back;
236 };
Florian Vaussard21bd85a2014-03-05 18:24:18 -0600237 };
Tero Kristo22f8d662019-12-12 14:51:20 +0200238
Tony Lindgrend23a1632017-10-10 14:14:50 -0700239 target-module@4012c000 {
Tony Lindgrenfeffce12017-12-13 16:36:47 -0800240 compatible = "ti,sysc-omap4", "ti,sysc";
Tony Lindgrend23a1632017-10-10 14:14:50 -0700241 reg = <0x4012c000 0x4>,
242 <0x4012c010 0x4>;
243 reg-names = "rev", "sysc";
Tony Lindgrene14d7e52018-01-11 16:04:03 -0800244 ti,sysc-mask = <SYSC_OMAP4_SOFTRESET>;
245 ti,sysc-sidle = <SYSC_IDLE_FORCE>,
246 <SYSC_IDLE_NO>,
247 <SYSC_IDLE_SMART>,
248 <SYSC_IDLE_SMART_WKUP>;
249 clocks = <&abe_clkctrl OMAP4_SLIMBUS1_CLKCTRL 0>;
250 clock-names = "fck";
Tony Lindgrend23a1632017-10-10 14:14:50 -0700251 #address-cells = <1>;
252 #size-cells = <1>;
253 ranges = <0x00000000 0x4012c000 0x1000>, /* MPU */
254 <0x4902c000 0x4902c000 0x1000>; /* L3 */
255
256 /* No child device binding or driver in mainline */
257 };
258
Archit Taneja1a5fe3c2013-12-17 15:32:21 +0530259 dmm@4e000000 {
260 compatible = "ti,omap4-dmm";
261 reg = <0x4e000000 0x800>;
262 interrupts = <0 113 0x4>;
263 ti,hwmods = "dmm";
264 };
265
Aneesh V11c27062012-01-20 20:35:26 +0530266 emif1: emif@4c000000 {
267 compatible = "ti,emif-4d";
Benoit Cousson48420db2012-09-05 11:38:23 +0200268 reg = <0x4c000000 0x100>;
Florian Vaussard8fea7d52013-05-31 14:32:57 +0200269 interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
Aneesh V11c27062012-01-20 20:35:26 +0530270 ti,hwmods = "emif1";
Rajendra Nayakf12ecbe22013-10-15 12:37:50 +0530271 ti,no-idle-on-init;
Aneesh V11c27062012-01-20 20:35:26 +0530272 phy-type = <1>;
273 hw-caps-read-idle-ctrl;
274 hw-caps-ll-interface;
275 hw-caps-temp-alert;
276 };
277
278 emif2: emif@4d000000 {
279 compatible = "ti,emif-4d";
Benoit Cousson48420db2012-09-05 11:38:23 +0200280 reg = <0x4d000000 0x100>;
Florian Vaussard8fea7d52013-05-31 14:32:57 +0200281 interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
Aneesh V11c27062012-01-20 20:35:26 +0530282 ti,hwmods = "emif2";
Rajendra Nayakf12ecbe22013-10-15 12:37:50 +0530283 ti,no-idle-on-init;
Aneesh V11c27062012-01-20 20:35:26 +0530284 phy-type = <1>;
285 hw-caps-read-idle-ctrl;
286 hw-caps-ll-interface;
287 hw-caps-temp-alert;
288 };
Linus Torvalds8f446a72012-10-01 18:46:13 -0700289
Suman Anna9ae60ac2020-07-09 18:19:44 -0500290 dsp: dsp {
291 compatible = "ti,omap4-dsp";
292 ti,bootreg = <&scm_conf 0x304 0>;
293 iommus = <&mmu_dsp>;
294 resets = <&prm_tesla 0>;
295 clocks = <&tesla_clkctrl OMAP4_DSP_CLKCTRL 0>;
296 firmware-name = "omap4-dsp-fw.xe64T";
297 mboxes = <&mailbox &mbox_dsp>;
298 status = "disabled";
299 };
300
Suman Anna5ce170c2020-07-09 18:19:45 -0500301 ipu: ipu@55020000 {
302 compatible = "ti,omap4-ipu";
303 reg = <0x55020000 0x10000>;
304 reg-names = "l2ram";
305 iommus = <&mmu_ipu>;
306 resets = <&prm_core 0>, <&prm_core 1>;
307 clocks = <&ducati_clkctrl OMAP4_IPU_CLKCTRL 0>;
308 firmware-name = "omap4-ipu-fw.xem3";
309 mboxes = <&mailbox &mbox_ipu>;
310 status = "disabled";
311 };
312
Tony Lindgren316a4182019-12-12 09:46:12 -0800313 aes1_target: target-module@4b501000 {
314 compatible = "ti,sysc-omap2", "ti,sysc";
Tony Lindgren316a4182019-12-12 09:46:12 -0800315 reg = <0x4b501080 0x4>,
316 <0x4b501084 0x4>,
317 <0x4b501088 0x4>;
318 reg-names = "rev", "sysc", "syss";
319 ti,sysc-mask = <(SYSC_OMAP2_SOFTRESET |
320 SYSC_OMAP2_AUTOIDLE)>;
321 ti,sysc-sidle = <SYSC_IDLE_FORCE>,
322 <SYSC_IDLE_NO>,
323 <SYSC_IDLE_SMART>,
324 <SYSC_IDLE_SMART_WKUP>;
325 ti,syss-mask = <1>;
326 /* Domains (P, C): l4per_pwrdm, l4_secure_clkdm */
327 clocks = <&l4_secure_clkctrl OMAP4_AES1_CLKCTRL 0>;
328 clock-names = "fck";
329 #address-cells = <1>;
330 #size-cells = <1>;
331 ranges = <0x0 0x4b501000 0x1000>;
332
333 aes1: aes@0 {
334 compatible = "ti,omap4-aes";
335 reg = <0 0xa0>;
336 interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
337 dmas = <&sdma 111>, <&sdma 110>;
338 dma-names = "tx", "rx";
339 };
Joel Fernandesdd6317d2013-07-11 18:20:05 -0500340 };
Joel Fernandes806e9432013-09-24 15:23:33 -0500341
Tony Lindgren316a4182019-12-12 09:46:12 -0800342 aes2_target: target-module@4b701000 {
343 compatible = "ti,sysc-omap2", "ti,sysc";
Tony Lindgren316a4182019-12-12 09:46:12 -0800344 reg = <0x4b701080 0x4>,
345 <0x4b701084 0x4>,
346 <0x4b701088 0x4>;
347 reg-names = "rev", "sysc", "syss";
348 ti,sysc-mask = <(SYSC_OMAP2_SOFTRESET |
349 SYSC_OMAP2_AUTOIDLE)>;
350 ti,sysc-sidle = <SYSC_IDLE_FORCE>,
351 <SYSC_IDLE_NO>,
352 <SYSC_IDLE_SMART>,
353 <SYSC_IDLE_SMART_WKUP>;
354 ti,syss-mask = <1>;
355 /* Domains (P, C): l4per_pwrdm, l4_secure_clkdm */
356 clocks = <&l4_secure_clkctrl OMAP4_AES2_CLKCTRL 0>;
357 clock-names = "fck";
358 #address-cells = <1>;
359 #size-cells = <1>;
360 ranges = <0x0 0x4b701000 0x1000>;
361
362 aes2: aes@0 {
363 compatible = "ti,omap4-aes";
364 reg = <0 0xa0>;
365 interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>;
366 dmas = <&sdma 114>, <&sdma 113>;
367 dma-names = "tx", "rx";
368 };
Tero Kristoc6faccf2017-06-13 16:45:48 +0300369 };
370
Tony Lindgren18c48e62019-12-12 09:46:12 -0800371 sham_target: target-module@4b100000 {
372 compatible = "ti,sysc-omap3-sham", "ti,sysc";
Tony Lindgren18c48e62019-12-12 09:46:12 -0800373 reg = <0x4b100100 0x4>,
374 <0x4b100110 0x4>,
375 <0x4b100114 0x4>;
376 reg-names = "rev", "sysc", "syss";
377 ti,sysc-mask = <(SYSC_OMAP2_SOFTRESET |
378 SYSC_OMAP2_AUTOIDLE)>;
379 ti,sysc-sidle = <SYSC_IDLE_FORCE>,
380 <SYSC_IDLE_NO>,
381 <SYSC_IDLE_SMART>;
382 ti,syss-mask = <1>;
383 /* Domains (P, C): l4per_pwrdm, l4_secure_clkdm */
384 clocks = <&l4_secure_clkctrl OMAP4_SHA2MD5_CLKCTRL 0>;
385 clock-names = "fck";
386 #address-cells = <1>;
387 #size-cells = <1>;
388 ranges = <0x0 0x4b100000 0x1000>;
Andrii.Tseglytskyie12c7732014-03-03 20:20:22 +0530389
Tony Lindgren18c48e62019-12-12 09:46:12 -0800390 sham: sham@0 {
391 compatible = "ti,omap4-sham";
392 reg = <0 0x300>;
393 interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
394 dmas = <&sdma 119>;
395 dma-names = "rx";
396 };
Tero Kristo45f1d5e2017-06-13 16:45:49 +0300397 };
398
Andrii.Tseglytskyie12c7732014-03-03 20:20:22 +0530399 abb_mpu: regulator-abb-mpu {
400 compatible = "ti,abb-v2";
401 regulator-name = "abb_mpu";
402 #address-cells = <0>;
403 #size-cells = <0>;
404 ti,tranxdone-status-mask = <0x80>;
405 clocks = <&sys_clkin_ck>;
406 ti,settling-time = <50>;
407 ti,clock-cycles = <16>;
408
409 status = "disabled";
410 };
411
412 abb_iva: regulator-abb-iva {
413 compatible = "ti,abb-v2";
414 regulator-name = "abb_iva";
415 #address-cells = <0>;
416 #size-cells = <0>;
417 ti,tranxdone-status-mask = <0x80000000>;
418 clocks = <&sys_clkin_ck>;
419 ti,settling-time = <50>;
420 ti,clock-cycles = <16>;
421
422 status = "disabled";
423 };
Tomi Valkeinencfe86fc2012-08-21 15:34:50 +0300424
Tony Lindgren19d3e9a2020-03-10 14:02:48 -0700425 sgx_module: target-module@56000000 {
Tony Lindgrenfeffce12017-12-13 16:36:47 -0800426 compatible = "ti,sysc-omap4", "ti,sysc";
Tony Lindgren3e5c3c42019-11-24 09:43:16 -0800427 reg = <0x5600fe00 0x4>,
428 <0x5600fe10 0x4>;
Tony Lindgrend23a1632017-10-10 14:14:50 -0700429 reg-names = "rev", "sysc";
Tony Lindgrene14d7e52018-01-11 16:04:03 -0800430 ti,sysc-midle = <SYSC_IDLE_FORCE>,
431 <SYSC_IDLE_NO>,
432 <SYSC_IDLE_SMART>,
433 <SYSC_IDLE_SMART_WKUP>;
434 ti,sysc-sidle = <SYSC_IDLE_FORCE>,
435 <SYSC_IDLE_NO>,
436 <SYSC_IDLE_SMART>,
437 <SYSC_IDLE_SMART_WKUP>;
438 clocks = <&l3_gfx_clkctrl OMAP4_GPU_CLKCTRL 0>;
439 clock-names = "fck";
Tony Lindgrend23a1632017-10-10 14:14:50 -0700440 #address-cells = <1>;
441 #size-cells = <1>;
442 ranges = <0 0x56000000 0x2000000>;
443
444 /*
445 * Closed source PowerVR driver, no child device
446 * binding or driver in mainline
447 */
448 };
449
Tony Lindgren63b34412020-03-04 08:10:37 -0800450 /*
451 * DSS is only using l3 mapping without l4 as noted in the TRM
452 * "10.1.3 DSS Register Manual" for omap4460.
453 */
454 target-module@58000000 {
455 compatible = "ti,sysc-omap2", "ti,sysc";
Tony Lindgren63b34412020-03-04 08:10:37 -0800456 reg = <0x58000000 4>,
457 <0x58000014 4>;
458 reg-names = "rev", "syss";
459 ti,syss-mask = <1>;
Tony Lindgren0c7815f2020-11-19 14:18:08 +0200460 power-domains = <&prm_dss>;
Tony Lindgren63b34412020-03-04 08:10:37 -0800461 clocks = <&l3_dss_clkctrl OMAP4_DSS_CORE_CLKCTRL 0>,
462 <&l3_dss_clkctrl OMAP4_DSS_CORE_CLKCTRL 9>,
463 <&l3_dss_clkctrl OMAP4_DSS_CORE_CLKCTRL 10>,
464 <&l3_dss_clkctrl OMAP4_DSS_CORE_CLKCTRL 11>;
465 clock-names = "fck", "hdmi_clk", "sys_clk", "tv_clk";
Tomi Valkeinencfe86fc2012-08-21 15:34:50 +0300466 #address-cells = <1>;
467 #size-cells = <1>;
Tony Lindgren63b34412020-03-04 08:10:37 -0800468 ranges = <0 0x58000000 0x1000000>;
Tomi Valkeinencfe86fc2012-08-21 15:34:50 +0300469
Tony Lindgren63b34412020-03-04 08:10:37 -0800470 dss: dss@0 {
471 compatible = "ti,omap4-dss";
472 reg = <0 0x80>;
473 status = "disabled";
Tero Kristoa5c82a02017-12-08 17:17:27 +0200474 clocks = <&l3_dss_clkctrl OMAP4_DSS_CORE_CLKCTRL 8>;
Tomi Valkeinencfe86fc2012-08-21 15:34:50 +0300475 clock-names = "fck";
Tony Lindgren63b34412020-03-04 08:10:37 -0800476 #address-cells = <1>;
477 #size-cells = <1>;
478 ranges = <0 0 0x1000000>;
Tomi Valkeinencfe86fc2012-08-21 15:34:50 +0300479
Tony Lindgren4c8d1c82020-03-04 08:10:37 -0800480 target-module@1000 {
481 compatible = "ti,sysc-omap2", "ti,sysc";
Tony Lindgren4c8d1c82020-03-04 08:10:37 -0800482 reg = <0x1000 0x4>,
483 <0x1010 0x4>,
484 <0x1014 0x4>;
485 reg-names = "rev", "sysc", "syss";
486 ti,sysc-sidle = <SYSC_IDLE_FORCE>,
487 <SYSC_IDLE_NO>,
488 <SYSC_IDLE_SMART>;
489 ti,sysc-midle = <SYSC_IDLE_FORCE>,
490 <SYSC_IDLE_NO>,
491 <SYSC_IDLE_SMART>;
492 ti,sysc-mask = <(SYSC_OMAP2_CLOCKACTIVITY |
493 SYSC_OMAP2_ENAWAKEUP |
494 SYSC_OMAP2_SOFTRESET |
495 SYSC_OMAP2_AUTOIDLE)>;
496 ti,syss-mask = <1>;
497 clocks = <&l3_dss_clkctrl OMAP4_DSS_CORE_CLKCTRL 8>,
498 <&l3_dss_clkctrl OMAP4_DSS_CORE_CLKCTRL 10>;
499 clock-names = "fck", "sys_clk";
500 #address-cells = <1>;
501 #size-cells = <1>;
502 ranges = <0 0x1000 0x1000>;
503
504 dispc@0 {
505 compatible = "ti,omap4-dispc";
506 reg = <0 0x1000>;
507 interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
508 clocks = <&l3_dss_clkctrl OMAP4_DSS_CORE_CLKCTRL 8>;
509 clock-names = "fck";
510 };
Tony Lindgren63b34412020-03-04 08:10:37 -0800511 };
Tomi Valkeinencfe86fc2012-08-21 15:34:50 +0300512
Tony Lindgren3a97c4b2020-03-04 08:10:37 -0800513 target-module@2000 {
514 compatible = "ti,sysc-omap2", "ti,sysc";
515 reg = <0x2000 0x4>,
516 <0x2010 0x4>,
517 <0x2014 0x4>;
518 reg-names = "rev", "sysc", "syss";
519 ti,sysc-sidle = <SYSC_IDLE_FORCE>,
520 <SYSC_IDLE_NO>,
521 <SYSC_IDLE_SMART>;
522 ti,sysc-mask = <(SYSC_OMAP2_SOFTRESET |
523 SYSC_OMAP2_AUTOIDLE)>;
524 ti,syss-mask = <1>;
525 clocks = <&l3_dss_clkctrl OMAP4_DSS_CORE_CLKCTRL 8>,
526 <&l3_dss_clkctrl OMAP4_DSS_CORE_CLKCTRL 10>;
527 clock-names = "fck", "sys_clk";
528 #address-cells = <1>;
529 #size-cells = <1>;
530 ranges = <0 0x2000 0x1000>;
531
532 rfbi: encoder@0 {
533 reg = <0 0x1000>;
534 status = "disabled";
535 clocks = <&l3_dss_clkctrl OMAP4_DSS_CORE_CLKCTRL 8>, <&l3_div_ck>;
536 clock-names = "fck", "ick";
537 };
Tony Lindgren63b34412020-03-04 08:10:37 -0800538 };
Tomi Valkeinencfe86fc2012-08-21 15:34:50 +0300539
Tony Lindgren663de782020-03-04 08:10:38 -0800540 target-module@3000 {
541 compatible = "ti,sysc-omap2", "ti,sysc";
542 reg = <0x3000 0x4>;
543 reg-names = "rev";
544 clocks = <&l3_dss_clkctrl OMAP4_DSS_CORE_CLKCTRL 10>;
545 clock-names = "sys_clk";
546 #address-cells = <1>;
547 #size-cells = <1>;
548 ranges = <0 0x3000 0x1000>;
549
550 venc: encoder@0 {
551 compatible = "ti,omap4-venc";
552 reg = <0 0x1000>;
553 status = "disabled";
554 clocks = <&l3_dss_clkctrl OMAP4_DSS_CORE_CLKCTRL 11>;
555 clock-names = "fck";
556 };
Tony Lindgren63b34412020-03-04 08:10:37 -0800557 };
Tomi Valkeinencfe86fc2012-08-21 15:34:50 +0300558
Tony Lindgren0b98d512020-03-04 08:10:38 -0800559 target-module@4000 {
560 compatible = "ti,sysc-omap2", "ti,sysc";
561 reg = <0x4000 0x4>,
562 <0x4010 0x4>,
563 <0x4014 0x4>;
564 reg-names = "rev", "sysc", "syss";
565 ti,sysc-sidle = <SYSC_IDLE_FORCE>,
566 <SYSC_IDLE_NO>,
567 <SYSC_IDLE_SMART>;
568 ti,sysc-mask = <(SYSC_OMAP2_CLOCKACTIVITY |
569 SYSC_OMAP2_ENAWAKEUP |
570 SYSC_OMAP2_SOFTRESET |
571 SYSC_OMAP2_AUTOIDLE)>;
572 ti,syss-mask = <1>;
573 #address-cells = <1>;
574 #size-cells = <1>;
575 ranges = <0 0x4000 0x1000>;
576
577 dsi1: encoder@0 {
578 compatible = "ti,omap4-dsi";
579 reg = <0 0x200>,
580 <0x200 0x40>,
581 <0x300 0x20>;
582 reg-names = "proto", "phy", "pll";
583 interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>;
584 status = "disabled";
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";
Sebastian Reichel23807f82020-07-16 14:57:31 +0200588
589 #address-cells = <1>;
590 #size-cells = <0>;
Tony Lindgren0b98d512020-03-04 08:10:38 -0800591 };
Tony Lindgren63b34412020-03-04 08:10:37 -0800592 };
Tomi Valkeinencfe86fc2012-08-21 15:34:50 +0300593
Tony Lindgrendc7578e2020-03-04 08:10:39 -0800594 target-module@5000 {
595 compatible = "ti,sysc-omap2", "ti,sysc";
596 reg = <0x5000 0x4>,
597 <0x5010 0x4>,
598 <0x5014 0x4>;
599 reg-names = "rev", "sysc", "syss";
600 ti,sysc-sidle = <SYSC_IDLE_FORCE>,
601 <SYSC_IDLE_NO>,
602 <SYSC_IDLE_SMART>;
603 ti,sysc-mask = <(SYSC_OMAP2_CLOCKACTIVITY |
604 SYSC_OMAP2_ENAWAKEUP |
605 SYSC_OMAP2_SOFTRESET |
606 SYSC_OMAP2_AUTOIDLE)>;
607 ti,syss-mask = <1>;
608 #address-cells = <1>;
609 #size-cells = <1>;
610 ranges = <0 0x5000 0x1000>;
611
612 dsi2: encoder@0 {
613 compatible = "ti,omap4-dsi";
614 reg = <0 0x200>,
615 <0x200 0x40>,
616 <0x300 0x20>;
617 reg-names = "proto", "phy", "pll";
618 interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
619 status = "disabled";
620 clocks = <&l3_dss_clkctrl OMAP4_DSS_CORE_CLKCTRL 8>,
621 <&l3_dss_clkctrl OMAP4_DSS_CORE_CLKCTRL 10>;
622 clock-names = "fck", "sys_clk";
Sebastian Reichel23807f82020-07-16 14:57:31 +0200623
624 #address-cells = <1>;
625 #size-cells = <0>;
Tony Lindgrendc7578e2020-03-04 08:10:39 -0800626 };
Tony Lindgren63b34412020-03-04 08:10:37 -0800627 };
628
Tony Lindgren8f661562020-03-04 08:10:39 -0800629 target-module@6000 {
630 compatible = "ti,sysc-omap4", "ti,sysc";
631 reg = <0x6000 0x4>,
632 <0x6010 0x4>;
633 reg-names = "rev", "sysc";
634 /*
635 * Has SYSC_IDLE_SMART and SYSC_IDLE_SMART_WKUP
636 * but HDMI audio will fail with them.
637 */
638 ti,sysc-sidle = <SYSC_IDLE_FORCE>,
639 <SYSC_IDLE_NO>;
640 ti,sysc-mask = <(SYSC_OMAP4_SOFTRESET)>;
Tony Lindgren63b34412020-03-04 08:10:37 -0800641 clocks = <&l3_dss_clkctrl OMAP4_DSS_CORE_CLKCTRL 9>,
Tony Lindgren8f661562020-03-04 08:10:39 -0800642 <&l3_dss_clkctrl OMAP4_DSS_CORE_CLKCTRL 8>;
643 clock-names = "fck", "dss_clk";
644 #address-cells = <1>;
645 #size-cells = <1>;
646 ranges = <0 0x6000 0x2000>;
647
648 hdmi: encoder@0 {
649 compatible = "ti,omap4-hdmi";
650 reg = <0 0x200>,
651 <0x200 0x100>,
652 <0x300 0x100>,
653 <0x400 0x1000>;
654 reg-names = "wp", "pll", "phy", "core";
655 interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
656 status = "disabled";
657 clocks = <&l3_dss_clkctrl OMAP4_DSS_CORE_CLKCTRL 9>,
658 <&l3_dss_clkctrl OMAP4_DSS_CORE_CLKCTRL 10>;
659 clock-names = "fck", "sys_clk";
660 dmas = <&sdma 76>;
661 dma-names = "audio_tx";
662 };
Tony Lindgren63b34412020-03-04 08:10:37 -0800663 };
Tomi Valkeinencfe86fc2012-08-21 15:34:50 +0300664 };
665 };
Tony Lindgrendfdaf862020-11-19 14:18:54 +0200666
667 iva_hd_target: target-module@5a000000 {
668 compatible = "ti,sysc-omap4", "ti,sysc";
669 reg = <0x5a05a400 0x4>,
670 <0x5a05a410 0x4>;
671 reg-names = "rev", "sysc";
672 ti,sysc-midle = <SYSC_IDLE_FORCE>,
673 <SYSC_IDLE_NO>,
674 <SYSC_IDLE_SMART>;
675 ti,sysc-sidle = <SYSC_IDLE_FORCE>,
676 <SYSC_IDLE_NO>,
677 <SYSC_IDLE_SMART>;
678 power-domains = <&prm_ivahd>;
679 resets = <&prm_ivahd 2>;
680 reset-names = "rstctrl";
681 clocks = <&ivahd_clkctrl OMAP4_IVA_CLKCTRL 0>;
682 clock-names = "fck";
683 #address-cells = <1>;
684 #size-cells = <1>;
685 ranges = <0x5a000000 0x5a000000 0x1000000>,
686 <0x5b000000 0x5b000000 0x1000000>;
687
688 iva {
689 compatible = "ti,ivahd";
690 };
691 };
Benoit Coussond9fda072011-08-09 17:15:17 +0200692 };
693};
Tero Kristo2488ff62013-07-18 12:42:02 +0300694
Tony Lindgren84badc52018-07-05 23:19:37 -0700695#include "omap4-l4.dtsi"
Tony Lindgren5b597532019-04-09 09:00:53 -0700696#include "omap4-l4-abe.dtsi"
Tero Kristoa5c82a02017-12-08 17:17:27 +0200697#include "omap44xx-clocks.dtsi"
Tero Kristo222fe592019-10-10 11:21:05 +0300698
699&prm {
Tero Kristo6d4b65e2020-11-12 14:21:52 +0200700 prm_mpu: prm@300 {
701 compatible = "ti,omap4-prm-inst", "ti,omap-prm-inst";
702 reg = <0x300 0x100>;
703 #power-domain-cells = <0>;
704 };
705
Tero Kristo222fe592019-10-10 11:21:05 +0300706 prm_tesla: prm@400 {
707 compatible = "ti,omap4-prm-inst", "ti,omap-prm-inst";
708 reg = <0x400 0x100>;
709 #reset-cells = <1>;
Tero Kristo6d4b65e2020-11-12 14:21:52 +0200710 #power-domain-cells = <0>;
Tero Kristo222fe592019-10-10 11:21:05 +0300711 };
712
Tony Lindgren0fd15942020-07-02 08:45:13 -0700713 prm_abe: prm@500 {
714 compatible = "ti,omap4-prm-inst", "ti,omap-prm-inst";
715 reg = <0x500 0x100>;
716 #power-domain-cells = <0>;
717 };
718
Tero Kristo6d4b65e2020-11-12 14:21:52 +0200719 prm_always_on_core: prm@600 {
720 compatible = "ti,omap4-prm-inst", "ti,omap-prm-inst";
721 reg = <0x600 0x100>;
722 #power-domain-cells = <0>;
723 };
724
Tero Kristo222fe592019-10-10 11:21:05 +0300725 prm_core: prm@700 {
726 compatible = "ti,omap4-prm-inst", "ti,omap-prm-inst";
727 reg = <0x700 0x100>;
728 #reset-cells = <1>;
Tero Kristo6d4b65e2020-11-12 14:21:52 +0200729 #power-domain-cells = <0>;
Tero Kristo222fe592019-10-10 11:21:05 +0300730 };
731
732 prm_ivahd: prm@f00 {
733 compatible = "ti,omap4-prm-inst", "ti,omap-prm-inst";
734 reg = <0xf00 0x100>;
735 #reset-cells = <1>;
Tero Kristo6d4b65e2020-11-12 14:21:52 +0200736 #power-domain-cells = <0>;
737 };
738
739 prm_cam: prm@1000 {
740 compatible = "ti,omap4-prm-inst", "ti,omap-prm-inst";
741 reg = <0x1000 0x100>;
742 #power-domain-cells = <0>;
743 };
744
745 prm_dss: prm@1100 {
746 compatible = "ti,omap4-prm-inst", "ti,omap-prm-inst";
747 reg = <0x1100 0x100>;
748 #power-domain-cells = <0>;
749 };
750
751 prm_gfx: prm@1200 {
752 compatible = "ti,omap4-prm-inst", "ti,omap-prm-inst";
753 reg = <0x1200 0x100>;
754 #power-domain-cells = <0>;
755 };
756
757 prm_l3init: prm@1300 {
758 compatible = "ti,omap4-prm-inst", "ti,omap-prm-inst";
759 reg = <0x1300 0x100>;
760 #power-domain-cells = <0>;
761 };
762
763 prm_l4per: prm@1400 {
764 compatible = "ti,omap4-prm-inst", "ti,omap-prm-inst";
765 reg = <0x1400 0x100>;
766 #power-domain-cells = <0>;
767 };
768
769 prm_cefuse: prm@1600 {
770 compatible = "ti,omap4-prm-inst", "ti,omap-prm-inst";
771 reg = <0x1600 0x100>;
772 #power-domain-cells = <0>;
773 };
774
775 prm_wkup: prm@1700 {
776 compatible = "ti,omap4-prm-inst", "ti,omap-prm-inst";
777 reg = <0x1700 0x100>;
778 #power-domain-cells = <0>;
779 };
780
781 prm_emu: prm@1900 {
782 compatible = "ti,omap4-prm-inst", "ti,omap-prm-inst";
783 reg = <0x1900 0x100>;
784 #power-domain-cells = <0>;
Tero Kristo222fe592019-10-10 11:21:05 +0300785 };
786
Tony Lindgren0c7815f2020-11-19 14:18:08 +0200787 prm_dss: prm@1100 {
788 compatible = "ti,omap4-prm-inst", "ti,omap-prm-inst";
789 reg = <0x1100 0x40>;
790 #power-domain-cells = <0>;
791 };
792
Tero Kristo222fe592019-10-10 11:21:05 +0300793 prm_device: prm@1b00 {
794 compatible = "ti,omap4-prm-inst", "ti,omap-prm-inst";
795 reg = <0x1b00 0x40>;
796 #reset-cells = <1>;
797 };
798};
Tony Lindgren14b19252020-05-07 09:59:31 -0700799
800/* Preferred always-on timer for clockevent */
801&timer1_target {
802 ti,no-reset-on-init;
803 ti,no-idle;
804 timer@0 {
805 assigned-clocks = <&l4_wkup_clkctrl OMAP4_TIMER1_CLKCTRL 24>;
Tony Lindgrenc030688d2020-06-12 10:23:40 -0700806 assigned-clock-parents = <&sys_32k_ck>;
Tony Lindgren14b19252020-05-07 09:59:31 -0700807 };
808};