blob: e0e2df56df83b8673be2cfff030b19687ac04638 [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>
11
Usama Arifbec5afd2020-04-17 16:13:39 +010012/ {
Usama Ariff1513622021-04-09 17:07:41 +010013 compatible = "arm,tc";
Usama Arifbec5afd2020-04-17 16:13:39 +010014 interrupt-parent = <&gic>;
15 #address-cells = <2>;
16 #size-cells = <2>;
17
18 aliases {
Boyan Karatotev13b8e742023-11-14 13:57:56 +000019 serial0 = &os_uart;
Usama Arifbec5afd2020-04-17 16:13:39 +010020 };
21
22 chosen {
Nikos Nikoleris35800bd2021-01-21 13:50:25 +000023 stdout-path = "serial0:115200n8";
Usama Arifbec5afd2020-04-17 16:13:39 +010024 };
25
26 cpus {
27 #address-cells = <1>;
28 #size-cells = <0>;
29
30 cpu-map {
31 cluster0 {
32 core0 {
33 cpu = <&CPU0>;
34 };
35 core1 {
36 cpu = <&CPU1>;
37 };
38 core2 {
39 cpu = <&CPU2>;
40 };
41 core3 {
42 cpu = <&CPU3>;
43 };
Avinash Mehtaf68a0842020-10-28 16:43:28 +000044 core4 {
45 cpu = <&CPU4>;
46 };
47 core5 {
48 cpu = <&CPU5>;
49 };
50 core6 {
51 cpu = <&CPU6>;
52 };
53 core7 {
54 cpu = <&CPU7>;
55 };
Usama Arifbec5afd2020-04-17 16:13:39 +010056 };
57 };
58
Usama Arif57900782020-08-12 17:14:37 +010059 /*
60 * The timings below are just to demonstrate working cpuidle.
61 * These values may be inaccurate.
62 */
63 idle-states {
Boyan Karatotev13b8e742023-11-14 13:57:56 +000064 entry-method = "psci";
Usama Arif57900782020-08-12 17:14:37 +010065
66 CPU_SLEEP_0: cpu-sleep-0 {
67 compatible = "arm,idle-state";
68 arm,psci-suspend-param = <0x0010000>;
69 local-timer-stop;
70 entry-latency-us = <300>;
71 exit-latency-us = <1200>;
72 min-residency-us = <2000>;
73 };
74 CLUSTER_SLEEP_0: cluster-sleep-0 {
75 compatible = "arm,idle-state";
76 arm,psci-suspend-param = <0x1010000>;
77 local-timer-stop;
78 entry-latency-us = <400>;
79 exit-latency-us = <1200>;
80 min-residency-us = <2500>;
81 };
82 };
83
Chris Kayc2d29ba2021-05-18 18:49:51 +010084 amus {
85 amu: amu-0 {
86 #address-cells = <1>;
87 #size-cells = <0>;
88
89 mpmm_gear0: counter@0 {
90 reg = <0>;
91
92 enable-at-el3;
93 };
94
95 mpmm_gear1: counter@1 {
96 reg = <1>;
97
98 enable-at-el3;
99 };
100
101 mpmm_gear2: counter@2 {
102 reg = <2>;
103
104 enable-at-el3;
105 };
106 };
107 };
108
Usama Arifbec5afd2020-04-17 16:13:39 +0100109 CPU0:cpu@0 {
110 device_type = "cpu";
111 compatible = "arm,armv8";
112 reg = <0x0>;
113 enable-method = "psci";
114 clocks = <&scmi_dvfs 0>;
Usama Arif57900782020-08-12 17:14:37 +0100115 cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
Usama Arifecbc8462021-06-14 12:38:37 +0100116 capacity-dmips-mhz = <406>;
Chris Kayc2d29ba2021-05-18 18:49:51 +0100117 amu = <&amu>;
118 supports-mpmm;
Usama Arifbec5afd2020-04-17 16:13:39 +0100119 };
120
121 CPU1:cpu@100 {
122 device_type = "cpu";
123 compatible = "arm,armv8";
124 reg = <0x100>;
125 enable-method = "psci";
126 clocks = <&scmi_dvfs 0>;
Usama Arif57900782020-08-12 17:14:37 +0100127 cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
Usama Arifecbc8462021-06-14 12:38:37 +0100128 capacity-dmips-mhz = <406>;
Chris Kayc2d29ba2021-05-18 18:49:51 +0100129 amu = <&amu>;
130 supports-mpmm;
Usama Arifbec5afd2020-04-17 16:13:39 +0100131 };
132
133 CPU2:cpu@200 {
134 device_type = "cpu";
135 compatible = "arm,armv8";
136 reg = <0x200>;
137 enable-method = "psci";
138 clocks = <&scmi_dvfs 0>;
Usama Arif57900782020-08-12 17:14:37 +0100139 cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
Usama Arifecbc8462021-06-14 12:38:37 +0100140 capacity-dmips-mhz = <406>;
Chris Kayc2d29ba2021-05-18 18:49:51 +0100141 amu = <&amu>;
142 supports-mpmm;
Usama Arifbec5afd2020-04-17 16:13:39 +0100143 };
144
145 CPU3:cpu@300 {
146 device_type = "cpu";
147 compatible = "arm,armv8";
148 reg = <0x300>;
149 enable-method = "psci";
150 clocks = <&scmi_dvfs 0>;
Usama Arif57900782020-08-12 17:14:37 +0100151 cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
Usama Arifecbc8462021-06-14 12:38:37 +0100152 capacity-dmips-mhz = <406>;
Chris Kayc2d29ba2021-05-18 18:49:51 +0100153 amu = <&amu>;
154 supports-mpmm;
Usama Arifbec5afd2020-04-17 16:13:39 +0100155 };
156
Avinash Mehtaf68a0842020-10-28 16:43:28 +0000157 CPU4:cpu@400 {
158 device_type = "cpu";
159 compatible = "arm,armv8";
160 reg = <0x400>;
161 enable-method = "psci";
Usama Arif75edb752021-02-03 15:40:46 +0000162 clocks = <&scmi_dvfs 1>;
Avinash Mehtaf68a0842020-10-28 16:43:28 +0000163 cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
Usama Arifecbc8462021-06-14 12:38:37 +0100164 capacity-dmips-mhz = <912>;
Chris Kayc2d29ba2021-05-18 18:49:51 +0100165 amu = <&amu>;
166 supports-mpmm;
Avinash Mehtaf68a0842020-10-28 16:43:28 +0000167 };
168
169 CPU5:cpu@500 {
170 device_type = "cpu";
171 compatible = "arm,armv8";
172 reg = <0x500>;
173 enable-method = "psci";
Usama Arif75edb752021-02-03 15:40:46 +0000174 clocks = <&scmi_dvfs 1>;
Avinash Mehtaf68a0842020-10-28 16:43:28 +0000175 cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
Usama Arifecbc8462021-06-14 12:38:37 +0100176 capacity-dmips-mhz = <912>;
Chris Kayc2d29ba2021-05-18 18:49:51 +0100177 amu = <&amu>;
178 supports-mpmm;
Avinash Mehtaf68a0842020-10-28 16:43:28 +0000179 };
180
181 CPU6:cpu@600 {
182 device_type = "cpu";
183 compatible = "arm,armv8";
184 reg = <0x600>;
185 enable-method = "psci";
Usama Arif75edb752021-02-03 15:40:46 +0000186 clocks = <&scmi_dvfs 1>;
Avinash Mehtaf68a0842020-10-28 16:43:28 +0000187 cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
Usama Arifecbc8462021-06-14 12:38:37 +0100188 capacity-dmips-mhz = <912>;
Chris Kayc2d29ba2021-05-18 18:49:51 +0100189 amu = <&amu>;
190 supports-mpmm;
Avinash Mehtaf68a0842020-10-28 16:43:28 +0000191 };
192
193 CPU7:cpu@700 {
194 device_type = "cpu";
195 compatible = "arm,armv8";
196 reg = <0x700>;
197 enable-method = "psci";
Usama Arif410d50d2021-04-07 11:48:22 +0100198 clocks = <&scmi_dvfs 2>;
Avinash Mehtaf68a0842020-10-28 16:43:28 +0000199 cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
Usama Arifecbc8462021-06-14 12:38:37 +0100200 capacity-dmips-mhz = <1024>;
Chris Kayc2d29ba2021-05-18 18:49:51 +0100201 amu = <&amu>;
202 supports-mpmm;
Avinash Mehtaf68a0842020-10-28 16:43:28 +0000203 };
204
Usama Arifbec5afd2020-04-17 16:13:39 +0100205 };
206
Arunachalam Ganapathy948bb442020-12-14 12:31:32 +0000207 reserved-memory {
208 #address-cells = <2>;
209 #size-cells = <2>;
210 ranges;
211
Anders Delliena6c9b722021-12-08 21:57:21 +0000212 linux,cma {
213 compatible = "shared-dma-pool";
214 reusable;
215 size = <0x0 0x8000000>;
216 linux,cma-default;
217 };
218
Boyan Karatotev13b8e742023-11-14 13:57:56 +0000219 optee@f8e00000 {
Davidson K4662a882022-12-14 17:38:14 +0530220 compatible = "restricted-dma-pool";
Arunachalam Ganapathyac9e1202022-04-11 17:38:17 +0100221 reg = <0x00000000 0xf8e00000 0 0x00200000>;
Arunachalam Ganapathy948bb442020-12-14 12:31:32 +0000222 };
Tudor Cretu77b301a2021-09-24 12:09:53 +0000223
Boyan Karatotev13b8e742023-11-14 13:57:56 +0000224 fwu_mm@fca00000 {
Tudor Cretu77b301a2021-09-24 12:09:53 +0000225 reg = <0x00000000 0xfca00000 0 0x00400000>;
226 no-map;
227 };
Arunachalam Ganapathy948bb442020-12-14 12:31:32 +0000228 };
229
Usama Arifbec5afd2020-04-17 16:13:39 +0100230 psci {
Usama Arif7a64bfa2021-05-27 20:09:17 +0100231 compatible = "arm,psci-1.0", "arm,psci-0.2";
Usama Arifbec5afd2020-04-17 16:13:39 +0100232 method = "smc";
233 };
234
Boyan Karatotev4fef47c2023-11-15 11:29:59 +0000235 cpu-pmu {
236 compatible = "arm,armv8-pmuv3";
237 interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH>;
238 interrupt-affinity = <&CPU0>, <&CPU1>, <&CPU2>, <&CPU3>,
239 <&CPU4>, <&CPU5>, <&CPU6>, <&CPU7>
240 ;
241 };
242
Usama Arifbec5afd2020-04-17 16:13:39 +0100243 sram: sram@6000000 {
244 compatible = "mmio-sram";
245 reg = <0x0 0x06000000 0x0 0x8000>;
246
247 #address-cells = <1>;
248 #size-cells = <1>;
249 ranges = <0 0x0 0x06000000 0x8000>;
250
251 cpu_scp_scmi_mem: scp-shmem@0 {
252 compatible = "arm,scmi-shmem";
253 reg = <0x0 0x80>;
254 };
255 };
256
257 mbox_db_rx: mhu@45010000 {
Usama Arifb315c702021-05-27 20:01:39 +0100258 compatible = "arm,mhuv2-rx","arm,primecell";
Usama Arifbec5afd2020-04-17 16:13:39 +0100259 reg = <0x0 0x45010000 0x0 0x1000>;
Boyan Karatotev13b8e742023-11-14 13:57:56 +0000260 clocks = <&soc_refclk>;
Usama Arifbec5afd2020-04-17 16:13:39 +0100261 clock-names = "apb_pclk";
Usama Arifb315c702021-05-27 20:01:39 +0100262 #mbox-cells = <2>;
Boyan Karatotev25c4fb72023-08-08 15:37:52 +0100263 interrupts = <GIC_SPI 317 IRQ_TYPE_LEVEL_HIGH>;
Usama Arifbec5afd2020-04-17 16:13:39 +0100264 interrupt-names = "mhu_rx";
265 mhu-protocol = "doorbell";
Usama Arifb315c702021-05-27 20:01:39 +0100266 arm,mhuv2-protocols = <0 1>;
Usama Arifbec5afd2020-04-17 16:13:39 +0100267 };
268
269 mbox_db_tx: mhu@45000000 {
Usama Arifb315c702021-05-27 20:01:39 +0100270 compatible = "arm,mhuv2-tx","arm,primecell";
Usama Arifbec5afd2020-04-17 16:13:39 +0100271 reg = <0x0 0x45000000 0x0 0x1000>;
Boyan Karatotev13b8e742023-11-14 13:57:56 +0000272 clocks = <&soc_refclk>;
Usama Arifbec5afd2020-04-17 16:13:39 +0100273 clock-names = "apb_pclk";
Usama Arifb315c702021-05-27 20:01:39 +0100274 #mbox-cells = <2>;
Usama Arifbec5afd2020-04-17 16:13:39 +0100275 interrupt-names = "mhu_tx";
276 mhu-protocol = "doorbell";
Usama Arifb315c702021-05-27 20:01:39 +0100277 arm,mhuv2-protocols = <0 1>;
Usama Arifbec5afd2020-04-17 16:13:39 +0100278 };
279
Rupinderjit Singh8c901962022-02-22 21:50:33 +0000280 cmn-pmu {
281 compatible = "arm,ci-700";
282 reg = <0x0 0x50000000 0x0 0x10000000>;
Boyan Karatotev25c4fb72023-08-08 15:37:52 +0100283 interrupts = <GIC_SPI 460 IRQ_TYPE_LEVEL_HIGH>;
Rupinderjit Singh8c901962022-02-22 21:50:33 +0000284 };
285
Usama Arifbec5afd2020-04-17 16:13:39 +0100286 scmi {
287 compatible = "arm,scmi";
Usama Arifbec5afd2020-04-17 16:13:39 +0100288 mbox-names = "tx", "rx";
Usama Arifb315c702021-05-27 20:01:39 +0100289 mboxes = <&mbox_db_tx 0 0 &mbox_db_rx 0 0 >;
Usama Arifbec5afd2020-04-17 16:13:39 +0100290 shmem = <&cpu_scp_scmi_mem &cpu_scp_scmi_mem>;
291 #address-cells = <1>;
292 #size-cells = <0>;
293
Ben Horgan80781a52023-07-26 20:45:27 +0100294 scmi_devpd: protocol@11 {
295 reg = <0x11>;
296 #power-domain-cells = <1>;
297 };
298
Usama Arifbec5afd2020-04-17 16:13:39 +0100299 scmi_dvfs: protocol@13 {
300 reg = <0x13>;
301 #clock-cells = <1>;
302 };
303
304 scmi_clk: protocol@14 {
305 reg = <0x14>;
306 #clock-cells = <1>;
307 };
308 };
309
310 gic: interrupt-controller@2c010000 {
Boyan Karatotev13b8e742023-11-14 13:57:56 +0000311 compatible = "arm,gic-v3";
Usama Arifbec5afd2020-04-17 16:13:39 +0100312 #address-cells = <2>;
313 #interrupt-cells = <3>;
314 #size-cells = <2>;
315 ranges;
316 interrupt-controller;
317 reg = <0x0 0x30000000 0 0x10000>, /* GICD */
Usama Ariffdfd2502021-03-30 16:39:19 +0100318 <0x0 0x30080000 0 0x200000>; /* GICR */
Boyan Karatotev25c4fb72023-08-08 15:37:52 +0100319 interrupts = <GIC_PPI 0x9 IRQ_TYPE_LEVEL_LOW>;
Usama Arifbec5afd2020-04-17 16:13:39 +0100320 };
321
322 timer {
323 compatible = "arm,armv8-timer";
Boyan Karatotev25c4fb72023-08-08 15:37:52 +0100324 interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>,
325 <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>,
326 <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>,
327 <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>;
Usama Arifbec5afd2020-04-17 16:13:39 +0100328 };
329
Boyan Karatotev13b8e742023-11-14 13:57:56 +0000330 soc_refclk: refclk {
Usama Arifbec5afd2020-04-17 16:13:39 +0100331 compatible = "fixed-clock";
332 #clock-cells = <0>;
333 clock-frequency = <100000000>;
334 clock-output-names = "apb_pclk";
335 };
336
337 soc_refclk60mhz: refclk60mhz {
338 compatible = "fixed-clock";
339 #clock-cells = <0>;
340 clock-frequency = <60000000>;
341 clock-output-names = "iofpga_clk";
342 };
343
Boyan Karatotev13b8e742023-11-14 13:57:56 +0000344 soc_uartclk: uartclk {
Usama Arifbec5afd2020-04-17 16:13:39 +0100345 compatible = "fixed-clock";
346 #clock-cells = <0>;
347 clock-frequency = <50000000>;
348 clock-output-names = "uartclk";
349 };
350
Boyan Karatotev13b8e742023-11-14 13:57:56 +0000351 os_uart: serial@2a400000 {
Usama Arifbec5afd2020-04-17 16:13:39 +0100352 compatible = "arm,pl011", "arm,primecell";
annsai017c607f22023-02-20 13:34:57 +0000353 reg = <0x0 0x2A400000 0x0 0x1000>;
Boyan Karatotev25c4fb72023-08-08 15:37:52 +0100354 interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>;
Boyan Karatotev13b8e742023-11-14 13:57:56 +0000355 clocks = <&soc_uartclk>, <&soc_refclk>;
Usama Arifbec5afd2020-04-17 16:13:39 +0100356 clock-names = "uartclk", "apb_pclk";
357 status = "okay";
358 };
359
Boyan Karatotev13b8e742023-11-14 13:57:56 +0000360 rtc@1c170000 {
Jayanth Dodderi Chidanand2858cf52022-09-28 11:41:48 +0100361 compatible = "arm,pl031", "arm,primecell";
362 reg = <0x0 0x1C170000 0x0 0x1000>;
Boyan Karatotev25c4fb72023-08-08 15:37:52 +0100363 interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
Boyan Karatotev13b8e742023-11-14 13:57:56 +0000364 clocks = <&soc_refclk>;
Jayanth Dodderi Chidanand2858cf52022-09-28 11:41:48 +0100365 clock-names = "apb_pclk";
Jayanth Dodderi Chidanand2858cf52022-09-28 11:41:48 +0100366 };
Rupinderjit Singhd2d02982022-09-12 17:25:32 +0100367
Usama Arifbec5afd2020-04-17 16:13:39 +0100368 vencoder {
369 compatible = "drm,virtual-encoder";
Usama Arifbec5afd2020-04-17 16:13:39 +0100370 port {
371 vencoder_in: endpoint {
Avinash Mehtadf71a602020-07-22 16:40:07 +0100372 remote-endpoint = <&dp_pl0_out0>;
Usama Arifbec5afd2020-04-17 16:13:39 +0100373 };
374 };
375
376 display-timings {
Boyan Karatotev13b8e742023-11-14 13:57:56 +0000377 timing-panel {
Usama Arifbec5afd2020-04-17 16:13:39 +0100378 clock-frequency = <25175000>;
379 hactive = <640>;
380 vactive = <480>;
381 hfront-porch = <16>;
382 hback-porch = <48>;
383 hsync-len = <96>;
384 vfront-porch = <10>;
385 vback-porch = <33>;
386 vsync-len = <2>;
387 };
388 };
389
390 };
391
Usama Arifbec5afd2020-04-17 16:13:39 +0100392 ethernet@18000000 {
393 compatible = "smsc,lan91c111";
394 reg = <0x0 0x18000000 0x0 0x10000>;
Boyan Karatotev25c4fb72023-08-08 15:37:52 +0100395 interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>;
Usama Arifbec5afd2020-04-17 16:13:39 +0100396 };
397
398 kmi@1c060000 {
399 compatible = "arm,pl050", "arm,primecell";
400 reg = <0x0 0x001c060000 0x0 0x1000>;
Boyan Karatotev25c4fb72023-08-08 15:37:52 +0100401 interrupts = <GIC_SPI 197 IRQ_TYPE_LEVEL_HIGH>;
Usama Arifbec5afd2020-04-17 16:13:39 +0100402 clocks = <&bp_clock24mhz>, <&bp_clock24mhz>;
403 clock-names = "KMIREFCLK", "apb_pclk";
404 };
405
406 kmi@1c070000 {
407 compatible = "arm,pl050", "arm,primecell";
408 reg = <0x0 0x001c070000 0x0 0x1000>;
Boyan Karatotev25c4fb72023-08-08 15:37:52 +0100409 interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
Usama Arifbec5afd2020-04-17 16:13:39 +0100410 clocks = <&bp_clock24mhz>, <&bp_clock24mhz>;
411 clock-names = "KMIREFCLK", "apb_pclk";
412 };
413
414 bp_clock24mhz: clock24mhz {
415 compatible = "fixed-clock";
416 #clock-cells = <0>;
417 clock-frequency = <24000000>;
418 clock-output-names = "bp:clock24mhz";
419 };
420
421 virtio_block@1c130000 {
422 compatible = "virtio,mmio";
423 reg = <0x0 0x1c130000 0x0 0x200>;
Boyan Karatotev25c4fb72023-08-08 15:37:52 +0100424 /* spec lists this wrong */
425 interrupts = <GIC_SPI 204 IRQ_TYPE_LEVEL_HIGH>;
Usama Arifbec5afd2020-04-17 16:13:39 +0100426 };
427
Usama Arif1cd56dc2020-06-10 16:27:53 +0100428 sysreg: sysreg@1c010000 {
429 compatible = "arm,vexpress-sysreg";
430 reg = <0x0 0x001c010000 0x0 0x1000>;
431 gpio-controller;
432 #gpio-cells = <2>;
433 };
434
435 fixed_3v3: v2m-3v3 {
436 compatible = "regulator-fixed";
437 regulator-name = "3V3";
438 regulator-min-microvolt = <3300000>;
439 regulator-max-microvolt = <3300000>;
440 regulator-always-on;
441 };
442
443 mmci@1c050000 {
444 compatible = "arm,pl180", "arm,primecell";
445 reg = <0x0 0x001c050000 0x0 0x1000>;
Boyan Karatotev25c4fb72023-08-08 15:37:52 +0100446 interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>,
447 <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
Usama Arif1cd56dc2020-06-10 16:27:53 +0100448 cd-gpios = <&sysreg 0 0>;
449 wp-gpios = <&sysreg 1 0>;
450 bus-width = <8>;
451 max-frequency = <12000000>;
452 vmmc-supply = <&fixed_3v3>;
453 clocks = <&bp_clock24mhz>, <&bp_clock24mhz>;
454 clock-names = "mclk", "apb_pclk";
455 };
456
Rupinderjit Singhb2a75b82023-02-03 09:29:57 +0000457 gpu_clk: gpu_clk {
458 compatible = "fixed-clock";
459 #clock-cells = <0>;
460 clock-frequency = <1000000000>;
461 };
462
463 gpu_core_clk: gpu_core_clk {
464 compatible = "fixed-clock";
465 #clock-cells = <0>;
466 clock-frequency = <1000000000>;
467 };
468
Anders Dellien7a849802022-01-01 21:51:21 +0000469 gpu: gpu@2d000000 {
470 compatible = "arm,mali-midgard";
471 reg = <0x0 0x2d000000 0x0 0x200000>;
Boyan Karatotev25c4fb72023-08-08 15:37:52 +0100472 interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>,
473 <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>,
474 <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>;
Anders Dellien7a849802022-01-01 21:51:21 +0000475 interrupt-names = "JOB", "MMU", "GPU";
Ben Horgan80781a52023-07-26 20:45:27 +0100476 clocks = <&gpu_core_clk>;
477 clock-names = "shadercores";
478 power-domains = <&scmi_devpd 9>;
479 scmi-perf-domain = <3>;
Davidson Kce633122022-11-21 17:49:51 +0530480 iommus = <&smmu_700 0x200>;
Anders Dellien7a849802022-01-01 21:51:21 +0000481 };
482
Boyan Karatotev13b8e742023-11-14 13:57:56 +0000483 power_model_simple {
Rupinderjit Singhb2a75b82023-02-03 09:29:57 +0000484 /*
485 * Numbers used are irrelevant to Titan,
486 * it helps suppressing the kernel warnings.
487 */
488 compatible = "arm,mali-simple-power-model";
489 static-coefficient = <2427750>;
490 dynamic-coefficient = <4687>;
491 ts = <20000 2000 (-20) 2>;
492 thermal-zone = "";
493 };
494
Boyan Karatotev13b8e742023-11-14 13:57:56 +0000495 smmu_700: iommu@3f000000 {
Anders Delliena1914132022-01-01 21:56:25 +0000496 #iommu-cells = <1>;
497 compatible = "arm,smmu-v3";
Davidson Kce633122022-11-21 17:49:51 +0530498 reg = <0x0 0x3f000000 0x0 0x5000000>;
Kshitij Sisodiab32a8f42023-08-16 09:46:05 +0100499 interrupts = <GIC_SPI 228 IRQ_TYPE_EDGE_RISING>,
500 <GIC_SPI 229 IRQ_TYPE_EDGE_RISING>,
501 <GIC_SPI 230 IRQ_TYPE_EDGE_RISING>;
502 interrupt-names = "eventq", "cmdq-sync", "gerror";
Davidson Kce633122022-11-21 17:49:51 +0530503 dma-coherent;
Anders Delliena1914132022-01-01 21:56:25 +0000504 };
505
Usama Arifbec5afd2020-04-17 16:13:39 +0100506 dp0: display@2cc00000 {
507 #address-cells = <1>;
508 #size-cells = <0>;
509 compatible = "arm,mali-d71";
510 reg = <0 0x2cc00000 0 0x20000>;
Boyan Karatotev25c4fb72023-08-08 15:37:52 +0100511 interrupts = <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>;
Usama Arifbec5afd2020-04-17 16:13:39 +0100512 interrupt-names = "DPU";
513 clocks = <&scmi_clk 0>;
514 clock-names = "aclk";
Davidson Kce633122022-11-21 17:49:51 +0530515 iommus = <&smmu_700 0x100>;
Ben Horgan80781a52023-07-26 20:45:27 +0100516 power-domains = <&scmi_devpd 10>;
Usama Arifbec5afd2020-04-17 16:13:39 +0100517 pl0: pipeline@0 {
518 reg = <0>;
519 clocks = <&scmi_clk 1>;
520 clock-names = "pxclk";
521 pl_id = <0>;
522 ports {
523 #address-cells = <1>;
524 #size-cells = <0>;
525 port@0 {
526 reg = <0>;
527 dp_pl0_out0: endpoint {
528 remote-endpoint = <&vencoder_in>;
529 };
530 };
531 };
532 };
533
534 pl1: pipeline@1 {
535 reg = <1>;
536 clocks = <&scmi_clk 2>;
537 clock-names = "pxclk";
538 pl_id = <1>;
539 ports {
540 #address-cells = <1>;
541 #size-cells = <0>;
542 port@0 {
543 reg = <0>;
544 };
545 };
546 };
547 };
Arunachalam Ganapathyc44e43d2020-11-17 15:05:01 +0000548
Davidson K1ad2c412023-01-13 14:02:13 +0530549 /*
550 * L3 cache in the DSU is the Memory System Component (MSC)
551 * The MPAM registers are accessed through utility bus in the DSU
552 */
553 msc0 {
554 compatible = "arm,mpam-msc";
555 reg = <0x1 0x00010000 0x0 0x2000>;
556 };
557
Davidson K65361052021-10-13 18:49:41 +0530558 ete0 {
559 compatible = "arm,embedded-trace-extension";
560 cpu = <&CPU0>;
561 };
562
563 ete1 {
564 compatible = "arm,embedded-trace-extension";
565 cpu = <&CPU1>;
566 };
567
568 ete2 {
569 compatible = "arm,embedded-trace-extension";
570 cpu = <&CPU2>;
571 };
572
573 ete3 {
574 compatible = "arm,embedded-trace-extension";
575 cpu = <&CPU3>;
576 };
577
578 ete4 {
579 compatible = "arm,embedded-trace-extension";
580 cpu = <&CPU4>;
581 };
582
583 ete5 {
584 compatible = "arm,embedded-trace-extension";
585 cpu = <&CPU5>;
586 };
587
588 ete6 {
589 compatible = "arm,embedded-trace-extension";
590 cpu = <&CPU6>;
591 };
592
593 ete7 {
594 compatible = "arm,embedded-trace-extension";
595 cpu = <&CPU7>;
596 };
597
Boyan Karatotev13b8e742023-11-14 13:57:56 +0000598 trbe {
Davidson K65361052021-10-13 18:49:41 +0530599 compatible = "arm,trace-buffer-extension";
Boyan Karatotev25c4fb72023-08-08 15:37:52 +0100600 interrupts = <GIC_PPI 2 IRQ_TYPE_LEVEL_LOW>;
Davidson K65361052021-10-13 18:49:41 +0530601 };
Arunachalam Ganapathy63128dc2022-04-11 14:43:15 +0100602
603 trusty {
604 #size-cells = <0x02>;
605 #address-cells = <0x02>;
606 ranges = <0x00>;
607 compatible = "android,trusty-v1";
608
609 virtio {
610 compatible = "android,trusty-virtio-v1";
611 };
612
613 test {
614 compatible = "android,trusty-test-v1";
615 };
616
617 log {
618 compatible = "android,trusty-log-v1";
619 };
620
621 irq {
622 ipi-range = <0x08 0x0f 0x08>;
623 interrupt-ranges = <0x00 0x0f 0x00 0x10 0x1f 0x01 0x20 0x3f 0x02>;
624 interrupt-templates = <0x01 0x00 0x8001 0x01 0x01 0x04 0x8001 0x01 0x00 0x04>;
625 compatible = "android,trusty-irq-v1";
626 };
627 };
Usama Arifbec5afd2020-04-17 16:13:39 +0100628};