blob: fc953a3baae9e241f2065364e10ed07cc55e73c4 [file] [log] [blame]
Usama Arifbec5afd2020-04-17 16:13:39 +01001/*
annsai017c607f22023-02-20 13:34:57 +00002 * Copyright (c) 2020-2024, Arm Limited. All rights reserved.
Usama Arifbec5afd2020-04-17 16:13:39 +01003 *
4 * SPDX-License-Identifier: BSD-3-Clause
5 */
6
7/dts-v1/;
8
Kshitij Sisodiab32a8f42023-08-16 09:46:05 +01009#include <dt-bindings/interrupt-controller/arm-gic.h>
10#include <dt-bindings/interrupt-controller/irq.h>
Boyan Karatotev192ad5d2023-12-12 15:59:01 +000011#include "platform_def.h"
Boyan Karatotev6ed3bf62023-07-07 13:33:19 +000012#include "tc_vers.dtsi"
Kshitij Sisodiab32a8f42023-08-16 09:46:05 +010013
Usama Arifbec5afd2020-04-17 16:13:39 +010014/ {
Usama Ariff1513622021-04-09 17:07:41 +010015 compatible = "arm,tc";
Usama Arifbec5afd2020-04-17 16:13:39 +010016 interrupt-parent = <&gic>;
17 #address-cells = <2>;
18 #size-cells = <2>;
19
20 aliases {
Boyan Karatotev13b8e742023-11-14 13:57:56 +000021 serial0 = &os_uart;
Usama Arifbec5afd2020-04-17 16:13:39 +010022 };
23
24 chosen {
Nikos Nikoleris35800bd2021-01-21 13:50:25 +000025 stdout-path = "serial0:115200n8";
Usama Arifbec5afd2020-04-17 16:13:39 +010026 };
27
28 cpus {
29 #address-cells = <1>;
30 #size-cells = <0>;
31
32 cpu-map {
33 cluster0 {
34 core0 {
35 cpu = <&CPU0>;
36 };
37 core1 {
38 cpu = <&CPU1>;
39 };
40 core2 {
41 cpu = <&CPU2>;
42 };
43 core3 {
44 cpu = <&CPU3>;
45 };
Avinash Mehtaf68a0842020-10-28 16:43:28 +000046 core4 {
47 cpu = <&CPU4>;
48 };
49 core5 {
50 cpu = <&CPU5>;
51 };
52 core6 {
53 cpu = <&CPU6>;
54 };
55 core7 {
56 cpu = <&CPU7>;
57 };
Boyan Karatotev192ad5d2023-12-12 15:59:01 +000058#if TARGET_FLAVOUR_FPGA && TARGET_PLATFORM <= 2
59 core8 {
60 cpu = <&CPU8>;
61 };
62 core9 {
63 cpu = <&CPU9>;
64 };
65 core10 {
66 cpu = <&CPU10>;
67 };
68 core11 {
69 cpu = <&CPU11>;
70 };
71 core12 {
72 cpu = <&CPU12>;
73 };
74 core13 {
75 cpu = <&CPU13>;
76 };
77#endif /* TARGET_FLAVOUR_FPGA && TARGET_PLATFORM <= 2 */
Usama Arifbec5afd2020-04-17 16:13:39 +010078 };
79 };
80
Usama Arif57900782020-08-12 17:14:37 +010081 /*
82 * The timings below are just to demonstrate working cpuidle.
83 * These values may be inaccurate.
84 */
85 idle-states {
Boyan Karatotev13b8e742023-11-14 13:57:56 +000086 entry-method = "psci";
Usama Arif57900782020-08-12 17:14:37 +010087
88 CPU_SLEEP_0: cpu-sleep-0 {
89 compatible = "arm,idle-state";
90 arm,psci-suspend-param = <0x0010000>;
91 local-timer-stop;
92 entry-latency-us = <300>;
93 exit-latency-us = <1200>;
94 min-residency-us = <2000>;
95 };
96 CLUSTER_SLEEP_0: cluster-sleep-0 {
97 compatible = "arm,idle-state";
98 arm,psci-suspend-param = <0x1010000>;
99 local-timer-stop;
100 entry-latency-us = <400>;
101 exit-latency-us = <1200>;
102 min-residency-us = <2500>;
103 };
104 };
105
Chris Kayc2d29ba2021-05-18 18:49:51 +0100106 amus {
107 amu: amu-0 {
108 #address-cells = <1>;
109 #size-cells = <0>;
110
111 mpmm_gear0: counter@0 {
112 reg = <0>;
Chris Kayc2d29ba2021-05-18 18:49:51 +0100113 enable-at-el3;
114 };
115
116 mpmm_gear1: counter@1 {
117 reg = <1>;
Chris Kayc2d29ba2021-05-18 18:49:51 +0100118 enable-at-el3;
119 };
120
121 mpmm_gear2: counter@2 {
122 reg = <2>;
Chris Kayc2d29ba2021-05-18 18:49:51 +0100123 enable-at-el3;
124 };
125 };
126 };
127
Usama Arifbec5afd2020-04-17 16:13:39 +0100128 CPU0:cpu@0 {
129 device_type = "cpu";
130 compatible = "arm,armv8";
131 reg = <0x0>;
132 enable-method = "psci";
133 clocks = <&scmi_dvfs 0>;
Usama Arif57900782020-08-12 17:14:37 +0100134 cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
Boyan Karatotev192ad5d2023-12-12 15:59:01 +0000135 capacity-dmips-mhz = <LIT_CAPACITY>;
Chris Kayc2d29ba2021-05-18 18:49:51 +0100136 amu = <&amu>;
137 supports-mpmm;
Usama Arifbec5afd2020-04-17 16:13:39 +0100138 };
139
140 CPU1:cpu@100 {
141 device_type = "cpu";
142 compatible = "arm,armv8";
143 reg = <0x100>;
144 enable-method = "psci";
145 clocks = <&scmi_dvfs 0>;
Usama Arif57900782020-08-12 17:14:37 +0100146 cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
Boyan Karatotev192ad5d2023-12-12 15:59:01 +0000147 capacity-dmips-mhz = <LIT_CAPACITY>;
Chris Kayc2d29ba2021-05-18 18:49:51 +0100148 amu = <&amu>;
149 supports-mpmm;
Usama Arifbec5afd2020-04-17 16:13:39 +0100150 };
151
152 CPU2:cpu@200 {
153 device_type = "cpu";
154 compatible = "arm,armv8";
155 reg = <0x200>;
156 enable-method = "psci";
Usama Arif57900782020-08-12 17:14:37 +0100157 cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
Boyan Karatotev192ad5d2023-12-12 15:59:01 +0000158#if TARGET_PLATFORM <= 2
159 clocks = <&scmi_dvfs 0>;
160 capacity-dmips-mhz = <LIT_CAPACITY>;
161#elif TARGET_PLATFORM == 3
162 clocks = <&scmi_dvfs 1>;
163 capacity-dmips-mhz = <MID_CAPACITY>;
164#endif /* TARGET_PLATFORM == 3 */
Chris Kayc2d29ba2021-05-18 18:49:51 +0100165 amu = <&amu>;
166 supports-mpmm;
Usama Arifbec5afd2020-04-17 16:13:39 +0100167 };
168
169 CPU3:cpu@300 {
170 device_type = "cpu";
171 compatible = "arm,armv8";
172 reg = <0x300>;
173 enable-method = "psci";
Usama Arif57900782020-08-12 17:14:37 +0100174 cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
Boyan Karatotev192ad5d2023-12-12 15:59:01 +0000175#if TARGET_PLATFORM <= 2
176 clocks = <&scmi_dvfs 0>;
177 capacity-dmips-mhz = <LIT_CAPACITY>;
178#elif TARGET_PLATFORM == 3
179 clocks = <&scmi_dvfs 1>;
180 capacity-dmips-mhz = <MID_CAPACITY>;
181#endif /* TARGET_PLATFORM == 3 */
Chris Kayc2d29ba2021-05-18 18:49:51 +0100182 amu = <&amu>;
183 supports-mpmm;
Usama Arifbec5afd2020-04-17 16:13:39 +0100184 };
185
Avinash Mehtaf68a0842020-10-28 16:43:28 +0000186 CPU4:cpu@400 {
187 device_type = "cpu";
188 compatible = "arm,armv8";
189 reg = <0x400>;
190 enable-method = "psci";
Usama Arif75edb752021-02-03 15:40:46 +0000191 clocks = <&scmi_dvfs 1>;
Avinash Mehtaf68a0842020-10-28 16:43:28 +0000192 cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
Boyan Karatotev192ad5d2023-12-12 15:59:01 +0000193 capacity-dmips-mhz = <MID_CAPACITY>;
Chris Kayc2d29ba2021-05-18 18:49:51 +0100194 amu = <&amu>;
195 supports-mpmm;
Avinash Mehtaf68a0842020-10-28 16:43:28 +0000196 };
197
198 CPU5:cpu@500 {
199 device_type = "cpu";
200 compatible = "arm,armv8";
201 reg = <0x500>;
202 enable-method = "psci";
Usama Arif75edb752021-02-03 15:40:46 +0000203 clocks = <&scmi_dvfs 1>;
Avinash Mehtaf68a0842020-10-28 16:43:28 +0000204 cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
Boyan Karatotev192ad5d2023-12-12 15:59:01 +0000205 capacity-dmips-mhz = <MID_CAPACITY>;
Chris Kayc2d29ba2021-05-18 18:49:51 +0100206 amu = <&amu>;
207 supports-mpmm;
Avinash Mehtaf68a0842020-10-28 16:43:28 +0000208 };
209
210 CPU6:cpu@600 {
211 device_type = "cpu";
212 compatible = "arm,armv8";
213 reg = <0x600>;
214 enable-method = "psci";
Avinash Mehtaf68a0842020-10-28 16:43:28 +0000215 cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
Boyan Karatotev192ad5d2023-12-12 15:59:01 +0000216#if TARGET_PLATFORM <= 2
217 clocks = <&scmi_dvfs 1>;
218 capacity-dmips-mhz = <MID_CAPACITY>;
219#elif TARGET_PLATFORM == 3
220 clocks = <&scmi_dvfs 2>;
221 capacity-dmips-mhz = <BIG_CAPACITY>;
222#endif /* TARGET_PLATFORM == 3 */
Chris Kayc2d29ba2021-05-18 18:49:51 +0100223 amu = <&amu>;
224 supports-mpmm;
Avinash Mehtaf68a0842020-10-28 16:43:28 +0000225 };
226
227 CPU7:cpu@700 {
228 device_type = "cpu";
229 compatible = "arm,armv8";
230 reg = <0x700>;
231 enable-method = "psci";
Avinash Mehtaf68a0842020-10-28 16:43:28 +0000232 cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
Boyan Karatotev192ad5d2023-12-12 15:59:01 +0000233#if TARGET_FLAVOUR_FPGA && TARGET_PLATFORM <= 2
234 clocks = <&scmi_dvfs 1>;
235 capacity-dmips-mhz = <MID_CAPACITY>;
236#else
237 clocks = <&scmi_dvfs 2>;
238 capacity-dmips-mhz = <BIG_CAPACITY>;
239#endif /* TARGET_FLAVOUR_FPGA && TARGET_PLATFORM <= 2 */
240 amu = <&amu>;
241 supports-mpmm;
242 };
243
244#if TARGET_FLAVOUR_FPGA && TARGET_PLATFORM <= 2
245 CPU8:cpu@800 {
246 device_type = "cpu";
247 compatible = "arm,armv8";
248 reg = <0x800>;
249 enable-method = "psci";
250 clocks = <&scmi_dvfs 1>;
251 capacity-dmips-mhz = <MID_CAPACITY>;
252 amu = <&amu>;
253 supports-mpmm;
254 };
255
256 CPU9:cpu@900 {
257 device_type = "cpu";
258 compatible = "arm,armv8";
259 reg = <0x900>;
260 enable-method = "psci";
261 clocks = <&scmi_dvfs 2>;
262 capacity-dmips-mhz = <BIG2_CAPACITY>;
263 amu = <&amu>;
264 supports-mpmm;
265 };
266
267 CPU10:cpu@A00 {
268 device_type = "cpu";
269 compatible = "arm,armv8";
270 reg = <0xA00>;
271 enable-method = "psci";
272 clocks = <&scmi_dvfs 2>;
273 capacity-dmips-mhz = <BIG2_CAPACITY>;
274 amu = <&amu>;
275 supports-mpmm;
276 };
277
278 CPU11:cpu@B00 {
279 device_type = "cpu";
280 compatible = "arm,armv8";
281 reg = <0xB00>;
282 enable-method = "psci";
283 clocks = <&scmi_dvfs 2>;
284 capacity-dmips-mhz = <BIG2_CAPACITY>;
Chris Kayc2d29ba2021-05-18 18:49:51 +0100285 amu = <&amu>;
286 supports-mpmm;
Avinash Mehtaf68a0842020-10-28 16:43:28 +0000287 };
288
Boyan Karatotev192ad5d2023-12-12 15:59:01 +0000289 CPU12:cpu@C00 {
290 device_type = "cpu";
291 compatible = "arm,armv8";
292 reg = <0xC00>;
293 enable-method = "psci";
294 clocks = <&scmi_dvfs 3>;
295 capacity-dmips-mhz = <BIG_CAPACITY>;
296 amu = <&amu>;
297 supports-mpmm;
298 };
299
300 CPU13:cpu@D00 {
301 device_type = "cpu";
302 compatible = "arm,armv8";
303 reg = <0xD00>;
304 enable-method = "psci";
305 clocks = <&scmi_dvfs 3>;
306 capacity-dmips-mhz = <BIG_CAPACITY>;
307 amu = <&amu>;
308 supports-mpmm;
309 };
310#endif /* TARGET_FLAVOUR_FPGA && TARGET_PLATFORM <= 2 */
Usama Arifbec5afd2020-04-17 16:13:39 +0100311 };
312
Arunachalam Ganapathy948bb442020-12-14 12:31:32 +0000313 reserved-memory {
314 #address-cells = <2>;
315 #size-cells = <2>;
316 ranges;
317
Anders Delliena6c9b722021-12-08 21:57:21 +0000318 linux,cma {
319 compatible = "shared-dma-pool";
320 reusable;
321 size = <0x0 0x8000000>;
322 linux,cma-default;
323 };
324
Boyan Karatotev13b8e742023-11-14 13:57:56 +0000325 optee@f8e00000 {
Davidson K4662a882022-12-14 17:38:14 +0530326 compatible = "restricted-dma-pool";
Arunachalam Ganapathyac9e1202022-04-11 17:38:17 +0100327 reg = <0x00000000 0xf8e00000 0 0x00200000>;
Arunachalam Ganapathy948bb442020-12-14 12:31:32 +0000328 };
Tudor Cretu77b301a2021-09-24 12:09:53 +0000329
Boyan Karatotev13b8e742023-11-14 13:57:56 +0000330 fwu_mm@fca00000 {
Tudor Cretu77b301a2021-09-24 12:09:53 +0000331 reg = <0x00000000 0xfca00000 0 0x00400000>;
332 no-map;
333 };
Arunachalam Ganapathy948bb442020-12-14 12:31:32 +0000334 };
335
Usama Arifbec5afd2020-04-17 16:13:39 +0100336 psci {
Usama Arif7a64bfa2021-05-27 20:09:17 +0100337 compatible = "arm,psci-1.0", "arm,psci-0.2";
Usama Arifbec5afd2020-04-17 16:13:39 +0100338 method = "smc";
339 };
340
Boyan Karatotev4fef47c2023-11-15 11:29:59 +0000341 cpu-pmu {
342 compatible = "arm,armv8-pmuv3";
343 interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH>;
344 interrupt-affinity = <&CPU0>, <&CPU1>, <&CPU2>, <&CPU3>,
345 <&CPU4>, <&CPU5>, <&CPU6>, <&CPU7>
Boyan Karatotev192ad5d2023-12-12 15:59:01 +0000346#if TARGET_FLAVOUR_FPGA && TARGET_PLATFORM <= 2
347 ,<&CPU8>, <&CPU9>, <&CPU10>, <&CPU11>,
348 <&CPU12>, <&CPU13>
349#endif /* TARGET_FLAVOUR_FPGA && TARGET_PLATFORM <= 2 */
Boyan Karatotev4fef47c2023-11-15 11:29:59 +0000350 ;
351 };
352
Usama Arifbec5afd2020-04-17 16:13:39 +0100353 sram: sram@6000000 {
354 compatible = "mmio-sram";
355 reg = <0x0 0x06000000 0x0 0x8000>;
356
357 #address-cells = <1>;
358 #size-cells = <1>;
359 ranges = <0 0x0 0x06000000 0x8000>;
360
361 cpu_scp_scmi_mem: scp-shmem@0 {
362 compatible = "arm,scmi-shmem";
363 reg = <0x0 0x80>;
364 };
365 };
366
Boyan Karatotev6ed3bf62023-07-07 13:33:19 +0000367 mbox_db_rx: mhu@MHU_RX_ADDR() {
Usama Arifb315c702021-05-27 20:01:39 +0100368 compatible = "arm,mhuv2-rx","arm,primecell";
Boyan Karatotev6ed3bf62023-07-07 13:33:19 +0000369 reg = <0x0 MHU_RX_ADDR(0x) 0x0 0x1000>;
Boyan Karatotev13b8e742023-11-14 13:57:56 +0000370 clocks = <&soc_refclk>;
Usama Arifbec5afd2020-04-17 16:13:39 +0100371 clock-names = "apb_pclk";
Usama Arifb315c702021-05-27 20:01:39 +0100372 #mbox-cells = <2>;
Boyan Karatotev6ed3bf62023-07-07 13:33:19 +0000373 interrupts = <GIC_SPI INT_MBOX_RX IRQ_TYPE_LEVEL_HIGH>;
Usama Arifbec5afd2020-04-17 16:13:39 +0100374 interrupt-names = "mhu_rx";
375 mhu-protocol = "doorbell";
Usama Arifb315c702021-05-27 20:01:39 +0100376 arm,mhuv2-protocols = <0 1>;
Usama Arifbec5afd2020-04-17 16:13:39 +0100377 };
378
Boyan Karatotev6ed3bf62023-07-07 13:33:19 +0000379 mbox_db_tx: mhu@MHU_TX_ADDR() {
Usama Arifb315c702021-05-27 20:01:39 +0100380 compatible = "arm,mhuv2-tx","arm,primecell";
Boyan Karatotev6ed3bf62023-07-07 13:33:19 +0000381 reg = <0x0 MHU_TX_ADDR(0x) 0x0 0x1000>;
Boyan Karatotev13b8e742023-11-14 13:57:56 +0000382 clocks = <&soc_refclk>;
Usama Arifbec5afd2020-04-17 16:13:39 +0100383 clock-names = "apb_pclk";
Usama Arifb315c702021-05-27 20:01:39 +0100384 #mbox-cells = <2>;
Usama Arifbec5afd2020-04-17 16:13:39 +0100385 interrupt-names = "mhu_tx";
386 mhu-protocol = "doorbell";
Usama Arifb315c702021-05-27 20:01:39 +0100387 arm,mhuv2-protocols = <0 1>;
Usama Arifbec5afd2020-04-17 16:13:39 +0100388 };
389
390 scmi {
391 compatible = "arm,scmi";
Usama Arifbec5afd2020-04-17 16:13:39 +0100392 mbox-names = "tx", "rx";
Usama Arifb315c702021-05-27 20:01:39 +0100393 mboxes = <&mbox_db_tx 0 0 &mbox_db_rx 0 0 >;
Usama Arifbec5afd2020-04-17 16:13:39 +0100394 shmem = <&cpu_scp_scmi_mem &cpu_scp_scmi_mem>;
395 #address-cells = <1>;
396 #size-cells = <0>;
397
Ben Horgan80781a52023-07-26 20:45:27 +0100398 scmi_devpd: protocol@11 {
399 reg = <0x11>;
400 #power-domain-cells = <1>;
401 };
402
Usama Arifbec5afd2020-04-17 16:13:39 +0100403 scmi_dvfs: protocol@13 {
404 reg = <0x13>;
405 #clock-cells = <1>;
406 };
407
408 scmi_clk: protocol@14 {
409 reg = <0x14>;
410 #clock-cells = <1>;
411 };
412 };
413
414 gic: interrupt-controller@2c010000 {
Boyan Karatotev13b8e742023-11-14 13:57:56 +0000415 compatible = "arm,gic-v3";
Usama Arifbec5afd2020-04-17 16:13:39 +0100416 #address-cells = <2>;
417 #interrupt-cells = <3>;
418 #size-cells = <2>;
419 ranges;
420 interrupt-controller;
421 reg = <0x0 0x30000000 0 0x10000>, /* GICD */
Usama Ariffdfd2502021-03-30 16:39:19 +0100422 <0x0 0x30080000 0 0x200000>; /* GICR */
Boyan Karatotev25c4fb72023-08-08 15:37:52 +0100423 interrupts = <GIC_PPI 0x9 IRQ_TYPE_LEVEL_LOW>;
Usama Arifbec5afd2020-04-17 16:13:39 +0100424 };
425
426 timer {
427 compatible = "arm,armv8-timer";
Boyan Karatotev25c4fb72023-08-08 15:37:52 +0100428 interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>,
429 <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>,
430 <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>,
431 <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>;
Usama Arifbec5afd2020-04-17 16:13:39 +0100432 };
433
Boyan Karatotev13b8e742023-11-14 13:57:56 +0000434 soc_refclk: refclk {
Usama Arifbec5afd2020-04-17 16:13:39 +0100435 compatible = "fixed-clock";
436 #clock-cells = <0>;
437 clock-frequency = <100000000>;
438 clock-output-names = "apb_pclk";
439 };
440
441 soc_refclk60mhz: refclk60mhz {
442 compatible = "fixed-clock";
443 #clock-cells = <0>;
444 clock-frequency = <60000000>;
445 clock-output-names = "iofpga_clk";
446 };
447
Boyan Karatotev13b8e742023-11-14 13:57:56 +0000448 soc_uartclk: uartclk {
Usama Arifbec5afd2020-04-17 16:13:39 +0100449 compatible = "fixed-clock";
450 #clock-cells = <0>;
Boyan Karatotev6ed3bf62023-07-07 13:33:19 +0000451 clock-frequency = <UARTCLK_FREQ>;
Usama Arifbec5afd2020-04-17 16:13:39 +0100452 clock-output-names = "uartclk";
453 };
454
Boyan Karatotev13b8e742023-11-14 13:57:56 +0000455 os_uart: serial@2a400000 {
Usama Arifbec5afd2020-04-17 16:13:39 +0100456 compatible = "arm,pl011", "arm,primecell";
annsai017c607f22023-02-20 13:34:57 +0000457 reg = <0x0 0x2A400000 0x0 0x1000>;
Boyan Karatotev25c4fb72023-08-08 15:37:52 +0100458 interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>;
Boyan Karatotev13b8e742023-11-14 13:57:56 +0000459 clocks = <&soc_uartclk>, <&soc_refclk>;
Usama Arifbec5afd2020-04-17 16:13:39 +0100460 clock-names = "uartclk", "apb_pclk";
461 status = "okay";
462 };
463
Boyan Karatotev13b8e742023-11-14 13:57:56 +0000464 rtc@1c170000 {
Jayanth Dodderi Chidanand2858cf52022-09-28 11:41:48 +0100465 compatible = "arm,pl031", "arm,primecell";
466 reg = <0x0 0x1C170000 0x0 0x1000>;
Boyan Karatotev25c4fb72023-08-08 15:37:52 +0100467 interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
Boyan Karatotev13b8e742023-11-14 13:57:56 +0000468 clocks = <&soc_refclk>;
Jayanth Dodderi Chidanand2858cf52022-09-28 11:41:48 +0100469 clock-names = "apb_pclk";
Jayanth Dodderi Chidanand2858cf52022-09-28 11:41:48 +0100470 };
Rupinderjit Singhd2d02982022-09-12 17:25:32 +0100471
Usama Arifbec5afd2020-04-17 16:13:39 +0100472 vencoder {
473 compatible = "drm,virtual-encoder";
Usama Arifbec5afd2020-04-17 16:13:39 +0100474 port {
475 vencoder_in: endpoint {
Avinash Mehtadf71a602020-07-22 16:40:07 +0100476 remote-endpoint = <&dp_pl0_out0>;
Usama Arifbec5afd2020-04-17 16:13:39 +0100477 };
478 };
479
480 display-timings {
Boyan Karatotev13b8e742023-11-14 13:57:56 +0000481 timing-panel {
Usama Arifbec5afd2020-04-17 16:13:39 +0100482 clock-frequency = <25175000>;
483 hactive = <640>;
484 vactive = <480>;
485 hfront-porch = <16>;
486 hback-porch = <48>;
487 hsync-len = <96>;
488 vfront-porch = <10>;
489 vback-porch = <33>;
490 vsync-len = <2>;
491 };
492 };
493
494 };
495
Usama Arifbec5afd2020-04-17 16:13:39 +0100496 ethernet@18000000 {
497 compatible = "smsc,lan91c111";
498 reg = <0x0 0x18000000 0x0 0x10000>;
Boyan Karatotev25c4fb72023-08-08 15:37:52 +0100499 interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>;
Usama Arifbec5afd2020-04-17 16:13:39 +0100500 };
501
502 kmi@1c060000 {
503 compatible = "arm,pl050", "arm,primecell";
504 reg = <0x0 0x001c060000 0x0 0x1000>;
Boyan Karatotev25c4fb72023-08-08 15:37:52 +0100505 interrupts = <GIC_SPI 197 IRQ_TYPE_LEVEL_HIGH>;
Usama Arifbec5afd2020-04-17 16:13:39 +0100506 clocks = <&bp_clock24mhz>, <&bp_clock24mhz>;
507 clock-names = "KMIREFCLK", "apb_pclk";
508 };
509
510 kmi@1c070000 {
511 compatible = "arm,pl050", "arm,primecell";
512 reg = <0x0 0x001c070000 0x0 0x1000>;
Boyan Karatotev25c4fb72023-08-08 15:37:52 +0100513 interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
Usama Arifbec5afd2020-04-17 16:13:39 +0100514 clocks = <&bp_clock24mhz>, <&bp_clock24mhz>;
515 clock-names = "KMIREFCLK", "apb_pclk";
516 };
517
518 bp_clock24mhz: clock24mhz {
519 compatible = "fixed-clock";
520 #clock-cells = <0>;
521 clock-frequency = <24000000>;
522 clock-output-names = "bp:clock24mhz";
523 };
524
525 virtio_block@1c130000 {
526 compatible = "virtio,mmio";
527 reg = <0x0 0x1c130000 0x0 0x200>;
Boyan Karatotev25c4fb72023-08-08 15:37:52 +0100528 /* spec lists this wrong */
529 interrupts = <GIC_SPI 204 IRQ_TYPE_LEVEL_HIGH>;
Usama Arifbec5afd2020-04-17 16:13:39 +0100530 };
531
Usama Arif1cd56dc2020-06-10 16:27:53 +0100532 sysreg: sysreg@1c010000 {
533 compatible = "arm,vexpress-sysreg";
534 reg = <0x0 0x001c010000 0x0 0x1000>;
535 gpio-controller;
536 #gpio-cells = <2>;
537 };
538
539 fixed_3v3: v2m-3v3 {
540 compatible = "regulator-fixed";
541 regulator-name = "3V3";
542 regulator-min-microvolt = <3300000>;
543 regulator-max-microvolt = <3300000>;
544 regulator-always-on;
545 };
546
547 mmci@1c050000 {
548 compatible = "arm,pl180", "arm,primecell";
549 reg = <0x0 0x001c050000 0x0 0x1000>;
Boyan Karatotev25c4fb72023-08-08 15:37:52 +0100550 interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>,
551 <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
Usama Arif1cd56dc2020-06-10 16:27:53 +0100552 cd-gpios = <&sysreg 0 0>;
553 wp-gpios = <&sysreg 1 0>;
554 bus-width = <8>;
555 max-frequency = <12000000>;
556 vmmc-supply = <&fixed_3v3>;
557 clocks = <&bp_clock24mhz>, <&bp_clock24mhz>;
558 clock-names = "mclk", "apb_pclk";
559 };
560
Rupinderjit Singhb2a75b82023-02-03 09:29:57 +0000561 gpu_clk: gpu_clk {
562 compatible = "fixed-clock";
563 #clock-cells = <0>;
564 clock-frequency = <1000000000>;
565 };
566
567 gpu_core_clk: gpu_core_clk {
568 compatible = "fixed-clock";
569 #clock-cells = <0>;
570 clock-frequency = <1000000000>;
571 };
572
Anders Dellien7a849802022-01-01 21:51:21 +0000573 gpu: gpu@2d000000 {
574 compatible = "arm,mali-midgard";
575 reg = <0x0 0x2d000000 0x0 0x200000>;
Boyan Karatotev25c4fb72023-08-08 15:37:52 +0100576 interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>,
577 <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>,
578 <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>;
Anders Dellien7a849802022-01-01 21:51:21 +0000579 interrupt-names = "JOB", "MMU", "GPU";
Ben Horgan80781a52023-07-26 20:45:27 +0100580 clocks = <&gpu_core_clk>;
581 clock-names = "shadercores";
Boyan Karatotev192ad5d2023-12-12 15:59:01 +0000582 power-domains = <&scmi_devpd GPU_SCMI_PD_IDX>;
Ben Horgan80781a52023-07-26 20:45:27 +0100583 scmi-perf-domain = <3>;
Davidson Kce633122022-11-21 17:49:51 +0530584 iommus = <&smmu_700 0x200>;
Anders Dellien7a849802022-01-01 21:51:21 +0000585 };
586
Boyan Karatotev13b8e742023-11-14 13:57:56 +0000587 power_model_simple {
Rupinderjit Singhb2a75b82023-02-03 09:29:57 +0000588 /*
589 * Numbers used are irrelevant to Titan,
590 * it helps suppressing the kernel warnings.
591 */
592 compatible = "arm,mali-simple-power-model";
593 static-coefficient = <2427750>;
594 dynamic-coefficient = <4687>;
595 ts = <20000 2000 (-20) 2>;
596 thermal-zone = "";
597 };
598
Boyan Karatotev13b8e742023-11-14 13:57:56 +0000599 smmu_700: iommu@3f000000 {
Anders Delliena1914132022-01-01 21:56:25 +0000600 #iommu-cells = <1>;
601 compatible = "arm,smmu-v3";
Davidson Kce633122022-11-21 17:49:51 +0530602 reg = <0x0 0x3f000000 0x0 0x5000000>;
Kshitij Sisodiab32a8f42023-08-16 09:46:05 +0100603 interrupts = <GIC_SPI 228 IRQ_TYPE_EDGE_RISING>,
604 <GIC_SPI 229 IRQ_TYPE_EDGE_RISING>,
605 <GIC_SPI 230 IRQ_TYPE_EDGE_RISING>;
606 interrupt-names = "eventq", "cmdq-sync", "gerror";
Davidson Kce633122022-11-21 17:49:51 +0530607 dma-coherent;
Anders Delliena1914132022-01-01 21:56:25 +0000608 };
609
Usama Arifbec5afd2020-04-17 16:13:39 +0100610 dp0: display@2cc00000 {
611 #address-cells = <1>;
612 #size-cells = <0>;
613 compatible = "arm,mali-d71";
614 reg = <0 0x2cc00000 0 0x20000>;
Boyan Karatotev25c4fb72023-08-08 15:37:52 +0100615 interrupts = <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>;
Usama Arifbec5afd2020-04-17 16:13:39 +0100616 interrupt-names = "DPU";
617 clocks = <&scmi_clk 0>;
618 clock-names = "aclk";
Davidson Kce633122022-11-21 17:49:51 +0530619 iommus = <&smmu_700 0x100>;
Boyan Karatotev192ad5d2023-12-12 15:59:01 +0000620 power-domains = <&scmi_devpd DPU_SCMI_PD_IDX>;
Usama Arifbec5afd2020-04-17 16:13:39 +0100621 pl0: pipeline@0 {
622 reg = <0>;
623 clocks = <&scmi_clk 1>;
624 clock-names = "pxclk";
625 pl_id = <0>;
626 ports {
627 #address-cells = <1>;
628 #size-cells = <0>;
629 port@0 {
630 reg = <0>;
631 dp_pl0_out0: endpoint {
632 remote-endpoint = <&vencoder_in>;
633 };
634 };
635 };
636 };
637
638 pl1: pipeline@1 {
639 reg = <1>;
640 clocks = <&scmi_clk 2>;
641 clock-names = "pxclk";
642 pl_id = <1>;
643 ports {
644 #address-cells = <1>;
645 #size-cells = <0>;
646 port@0 {
647 reg = <0>;
648 };
649 };
650 };
651 };
Arunachalam Ganapathyc44e43d2020-11-17 15:05:01 +0000652
Davidson K1ad2c412023-01-13 14:02:13 +0530653 /*
654 * L3 cache in the DSU is the Memory System Component (MSC)
655 * The MPAM registers are accessed through utility bus in the DSU
656 */
657 msc0 {
658 compatible = "arm,mpam-msc";
Boyan Karatotev6ed3bf62023-07-07 13:33:19 +0000659 reg = <MPAM_ADDR 0x0 0x2000>;
Davidson K1ad2c412023-01-13 14:02:13 +0530660 };
661
Davidson K65361052021-10-13 18:49:41 +0530662 ete0 {
663 compatible = "arm,embedded-trace-extension";
664 cpu = <&CPU0>;
665 };
666
667 ete1 {
668 compatible = "arm,embedded-trace-extension";
669 cpu = <&CPU1>;
670 };
671
672 ete2 {
673 compatible = "arm,embedded-trace-extension";
674 cpu = <&CPU2>;
675 };
676
677 ete3 {
678 compatible = "arm,embedded-trace-extension";
679 cpu = <&CPU3>;
680 };
681
682 ete4 {
683 compatible = "arm,embedded-trace-extension";
684 cpu = <&CPU4>;
685 };
686
687 ete5 {
688 compatible = "arm,embedded-trace-extension";
689 cpu = <&CPU5>;
690 };
691
692 ete6 {
693 compatible = "arm,embedded-trace-extension";
694 cpu = <&CPU6>;
695 };
696
697 ete7 {
698 compatible = "arm,embedded-trace-extension";
699 cpu = <&CPU7>;
700 };
Boyan Karatotev192ad5d2023-12-12 15:59:01 +0000701
702#if TARGET_FLAVOUR_FPGA && TARGET_PLATFORM <= 2
703 ete8 {
704 compatible = "arm,embedded-trace-extension";
705 cpu = <&CPU8>;
706 };
707
708 ete9 {
709 compatible = "arm,embedded-trace-extension";
710 cpu = <&CPU9>;
711 };
712
713 ete10 {
714 compatible = "arm,embedded-trace-extension";
715 cpu = <&CPU10>;
716 };
717
718 ete11 {
719 compatible = "arm,embedded-trace-extension";
720 cpu = <&CPU11>;
721 };
722
723 ete12 {
724 compatible = "arm,embedded-trace-extension";
725 cpu = <&CPU12>;
726 };
727
728 ete13 {
729 compatible = "arm,embedded-trace-extension";
730 cpu = <&CPU13>;
731 };
732#endif /* TARGET_FLAVOUR_FPGA && TARGET_PLATFORM <= 2 */
Davidson K65361052021-10-13 18:49:41 +0530733
Boyan Karatotev13b8e742023-11-14 13:57:56 +0000734 trbe {
Davidson K65361052021-10-13 18:49:41 +0530735 compatible = "arm,trace-buffer-extension";
Boyan Karatotev25c4fb72023-08-08 15:37:52 +0100736 interrupts = <GIC_PPI 2 IRQ_TYPE_LEVEL_LOW>;
Davidson K65361052021-10-13 18:49:41 +0530737 };
Arunachalam Ganapathy63128dc2022-04-11 14:43:15 +0100738
739 trusty {
740 #size-cells = <0x02>;
741 #address-cells = <0x02>;
742 ranges = <0x00>;
743 compatible = "android,trusty-v1";
744
745 virtio {
746 compatible = "android,trusty-virtio-v1";
747 };
748
749 test {
750 compatible = "android,trusty-test-v1";
751 };
752
753 log {
754 compatible = "android,trusty-log-v1";
755 };
756
757 irq {
758 ipi-range = <0x08 0x0f 0x08>;
759 interrupt-ranges = <0x00 0x0f 0x00 0x10 0x1f 0x01 0x20 0x3f 0x02>;
760 interrupt-templates = <0x01 0x00 0x8001 0x01 0x01 0x04 0x8001 0x01 0x00 0x04>;
761 compatible = "android,trusty-irq-v1";
762 };
763 };
Usama Arifbec5afd2020-04-17 16:13:39 +0100764};