blob: 53bb26768eef014acbfef54674f7fe5e7e22acac [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 Karatotev6ed3bf62023-07-07 13:33:19 +000011#include "tc_vers.dtsi"
Kshitij Sisodiab32a8f42023-08-16 09:46:05 +010012
Usama Arifbec5afd2020-04-17 16:13:39 +010013/ {
Usama Ariff1513622021-04-09 17:07:41 +010014 compatible = "arm,tc";
Usama Arifbec5afd2020-04-17 16:13:39 +010015 interrupt-parent = <&gic>;
16 #address-cells = <2>;
17 #size-cells = <2>;
18
19 aliases {
Boyan Karatotev13b8e742023-11-14 13:57:56 +000020 serial0 = &os_uart;
Usama Arifbec5afd2020-04-17 16:13:39 +010021 };
22
23 chosen {
Nikos Nikoleris35800bd2021-01-21 13:50:25 +000024 stdout-path = "serial0:115200n8";
Usama Arifbec5afd2020-04-17 16:13:39 +010025 };
26
27 cpus {
28 #address-cells = <1>;
29 #size-cells = <0>;
30
31 cpu-map {
32 cluster0 {
33 core0 {
34 cpu = <&CPU0>;
35 };
36 core1 {
37 cpu = <&CPU1>;
38 };
39 core2 {
40 cpu = <&CPU2>;
41 };
42 core3 {
43 cpu = <&CPU3>;
44 };
Avinash Mehtaf68a0842020-10-28 16:43:28 +000045 core4 {
46 cpu = <&CPU4>;
47 };
48 core5 {
49 cpu = <&CPU5>;
50 };
51 core6 {
52 cpu = <&CPU6>;
53 };
54 core7 {
55 cpu = <&CPU7>;
56 };
Usama Arifbec5afd2020-04-17 16:13:39 +010057 };
58 };
59
Usama Arif57900782020-08-12 17:14:37 +010060 /*
61 * The timings below are just to demonstrate working cpuidle.
62 * These values may be inaccurate.
63 */
64 idle-states {
Boyan Karatotev13b8e742023-11-14 13:57:56 +000065 entry-method = "psci";
Usama Arif57900782020-08-12 17:14:37 +010066
67 CPU_SLEEP_0: cpu-sleep-0 {
68 compatible = "arm,idle-state";
69 arm,psci-suspend-param = <0x0010000>;
70 local-timer-stop;
71 entry-latency-us = <300>;
72 exit-latency-us = <1200>;
73 min-residency-us = <2000>;
74 };
75 CLUSTER_SLEEP_0: cluster-sleep-0 {
76 compatible = "arm,idle-state";
77 arm,psci-suspend-param = <0x1010000>;
78 local-timer-stop;
79 entry-latency-us = <400>;
80 exit-latency-us = <1200>;
81 min-residency-us = <2500>;
82 };
83 };
84
Chris Kayc2d29ba2021-05-18 18:49:51 +010085 amus {
86 amu: amu-0 {
87 #address-cells = <1>;
88 #size-cells = <0>;
89
90 mpmm_gear0: counter@0 {
91 reg = <0>;
92
93 enable-at-el3;
94 };
95
96 mpmm_gear1: counter@1 {
97 reg = <1>;
98
99 enable-at-el3;
100 };
101
102 mpmm_gear2: counter@2 {
103 reg = <2>;
104
105 enable-at-el3;
106 };
107 };
108 };
109
Usama Arifbec5afd2020-04-17 16:13:39 +0100110 CPU0:cpu@0 {
111 device_type = "cpu";
112 compatible = "arm,armv8";
113 reg = <0x0>;
114 enable-method = "psci";
115 clocks = <&scmi_dvfs 0>;
Usama Arif57900782020-08-12 17:14:37 +0100116 cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
Usama Arifecbc8462021-06-14 12:38:37 +0100117 capacity-dmips-mhz = <406>;
Chris Kayc2d29ba2021-05-18 18:49:51 +0100118 amu = <&amu>;
119 supports-mpmm;
Usama Arifbec5afd2020-04-17 16:13:39 +0100120 };
121
122 CPU1:cpu@100 {
123 device_type = "cpu";
124 compatible = "arm,armv8";
125 reg = <0x100>;
126 enable-method = "psci";
127 clocks = <&scmi_dvfs 0>;
Usama Arif57900782020-08-12 17:14:37 +0100128 cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
Usama Arifecbc8462021-06-14 12:38:37 +0100129 capacity-dmips-mhz = <406>;
Chris Kayc2d29ba2021-05-18 18:49:51 +0100130 amu = <&amu>;
131 supports-mpmm;
Usama Arifbec5afd2020-04-17 16:13:39 +0100132 };
133
134 CPU2:cpu@200 {
135 device_type = "cpu";
136 compatible = "arm,armv8";
137 reg = <0x200>;
138 enable-method = "psci";
139 clocks = <&scmi_dvfs 0>;
Usama Arif57900782020-08-12 17:14:37 +0100140 cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
Usama Arifecbc8462021-06-14 12:38:37 +0100141 capacity-dmips-mhz = <406>;
Chris Kayc2d29ba2021-05-18 18:49:51 +0100142 amu = <&amu>;
143 supports-mpmm;
Usama Arifbec5afd2020-04-17 16:13:39 +0100144 };
145
146 CPU3:cpu@300 {
147 device_type = "cpu";
148 compatible = "arm,armv8";
149 reg = <0x300>;
150 enable-method = "psci";
151 clocks = <&scmi_dvfs 0>;
Usama Arif57900782020-08-12 17:14:37 +0100152 cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
Usama Arifecbc8462021-06-14 12:38:37 +0100153 capacity-dmips-mhz = <406>;
Chris Kayc2d29ba2021-05-18 18:49:51 +0100154 amu = <&amu>;
155 supports-mpmm;
Usama Arifbec5afd2020-04-17 16:13:39 +0100156 };
157
Avinash Mehtaf68a0842020-10-28 16:43:28 +0000158 CPU4:cpu@400 {
159 device_type = "cpu";
160 compatible = "arm,armv8";
161 reg = <0x400>;
162 enable-method = "psci";
Usama Arif75edb752021-02-03 15:40:46 +0000163 clocks = <&scmi_dvfs 1>;
Avinash Mehtaf68a0842020-10-28 16:43:28 +0000164 cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
Usama Arifecbc8462021-06-14 12:38:37 +0100165 capacity-dmips-mhz = <912>;
Chris Kayc2d29ba2021-05-18 18:49:51 +0100166 amu = <&amu>;
167 supports-mpmm;
Avinash Mehtaf68a0842020-10-28 16:43:28 +0000168 };
169
170 CPU5:cpu@500 {
171 device_type = "cpu";
172 compatible = "arm,armv8";
173 reg = <0x500>;
174 enable-method = "psci";
Usama Arif75edb752021-02-03 15:40:46 +0000175 clocks = <&scmi_dvfs 1>;
Avinash Mehtaf68a0842020-10-28 16:43:28 +0000176 cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
Usama Arifecbc8462021-06-14 12:38:37 +0100177 capacity-dmips-mhz = <912>;
Chris Kayc2d29ba2021-05-18 18:49:51 +0100178 amu = <&amu>;
179 supports-mpmm;
Avinash Mehtaf68a0842020-10-28 16:43:28 +0000180 };
181
182 CPU6:cpu@600 {
183 device_type = "cpu";
184 compatible = "arm,armv8";
185 reg = <0x600>;
186 enable-method = "psci";
Usama Arif75edb752021-02-03 15:40:46 +0000187 clocks = <&scmi_dvfs 1>;
Avinash Mehtaf68a0842020-10-28 16:43:28 +0000188 cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
Usama Arifecbc8462021-06-14 12:38:37 +0100189 capacity-dmips-mhz = <912>;
Chris Kayc2d29ba2021-05-18 18:49:51 +0100190 amu = <&amu>;
191 supports-mpmm;
Avinash Mehtaf68a0842020-10-28 16:43:28 +0000192 };
193
194 CPU7:cpu@700 {
195 device_type = "cpu";
196 compatible = "arm,armv8";
197 reg = <0x700>;
198 enable-method = "psci";
Usama Arif410d50d2021-04-07 11:48:22 +0100199 clocks = <&scmi_dvfs 2>;
Avinash Mehtaf68a0842020-10-28 16:43:28 +0000200 cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
Usama Arifecbc8462021-06-14 12:38:37 +0100201 capacity-dmips-mhz = <1024>;
Chris Kayc2d29ba2021-05-18 18:49:51 +0100202 amu = <&amu>;
203 supports-mpmm;
Avinash Mehtaf68a0842020-10-28 16:43:28 +0000204 };
205
Usama Arifbec5afd2020-04-17 16:13:39 +0100206 };
207
Arunachalam Ganapathy948bb442020-12-14 12:31:32 +0000208 reserved-memory {
209 #address-cells = <2>;
210 #size-cells = <2>;
211 ranges;
212
Anders Delliena6c9b722021-12-08 21:57:21 +0000213 linux,cma {
214 compatible = "shared-dma-pool";
215 reusable;
216 size = <0x0 0x8000000>;
217 linux,cma-default;
218 };
219
Boyan Karatotev13b8e742023-11-14 13:57:56 +0000220 optee@f8e00000 {
Davidson K4662a882022-12-14 17:38:14 +0530221 compatible = "restricted-dma-pool";
Arunachalam Ganapathyac9e1202022-04-11 17:38:17 +0100222 reg = <0x00000000 0xf8e00000 0 0x00200000>;
Arunachalam Ganapathy948bb442020-12-14 12:31:32 +0000223 };
Tudor Cretu77b301a2021-09-24 12:09:53 +0000224
Boyan Karatotev13b8e742023-11-14 13:57:56 +0000225 fwu_mm@fca00000 {
Tudor Cretu77b301a2021-09-24 12:09:53 +0000226 reg = <0x00000000 0xfca00000 0 0x00400000>;
227 no-map;
228 };
Arunachalam Ganapathy948bb442020-12-14 12:31:32 +0000229 };
230
Usama Arifbec5afd2020-04-17 16:13:39 +0100231 psci {
Usama Arif7a64bfa2021-05-27 20:09:17 +0100232 compatible = "arm,psci-1.0", "arm,psci-0.2";
Usama Arifbec5afd2020-04-17 16:13:39 +0100233 method = "smc";
234 };
235
Boyan Karatotev4fef47c2023-11-15 11:29:59 +0000236 cpu-pmu {
237 compatible = "arm,armv8-pmuv3";
238 interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH>;
239 interrupt-affinity = <&CPU0>, <&CPU1>, <&CPU2>, <&CPU3>,
240 <&CPU4>, <&CPU5>, <&CPU6>, <&CPU7>
241 ;
242 };
243
Usama Arifbec5afd2020-04-17 16:13:39 +0100244 sram: sram@6000000 {
245 compatible = "mmio-sram";
246 reg = <0x0 0x06000000 0x0 0x8000>;
247
248 #address-cells = <1>;
249 #size-cells = <1>;
250 ranges = <0 0x0 0x06000000 0x8000>;
251
252 cpu_scp_scmi_mem: scp-shmem@0 {
253 compatible = "arm,scmi-shmem";
254 reg = <0x0 0x80>;
255 };
256 };
257
Boyan Karatotev6ed3bf62023-07-07 13:33:19 +0000258 mbox_db_rx: mhu@MHU_RX_ADDR() {
Usama Arifb315c702021-05-27 20:01:39 +0100259 compatible = "arm,mhuv2-rx","arm,primecell";
Boyan Karatotev6ed3bf62023-07-07 13:33:19 +0000260 reg = <0x0 MHU_RX_ADDR(0x) 0x0 0x1000>;
Boyan Karatotev13b8e742023-11-14 13:57:56 +0000261 clocks = <&soc_refclk>;
Usama Arifbec5afd2020-04-17 16:13:39 +0100262 clock-names = "apb_pclk";
Usama Arifb315c702021-05-27 20:01:39 +0100263 #mbox-cells = <2>;
Boyan Karatotev6ed3bf62023-07-07 13:33:19 +0000264 interrupts = <GIC_SPI INT_MBOX_RX IRQ_TYPE_LEVEL_HIGH>;
Usama Arifbec5afd2020-04-17 16:13:39 +0100265 interrupt-names = "mhu_rx";
266 mhu-protocol = "doorbell";
Usama Arifb315c702021-05-27 20:01:39 +0100267 arm,mhuv2-protocols = <0 1>;
Usama Arifbec5afd2020-04-17 16:13:39 +0100268 };
269
Boyan Karatotev6ed3bf62023-07-07 13:33:19 +0000270 mbox_db_tx: mhu@MHU_TX_ADDR() {
Usama Arifb315c702021-05-27 20:01:39 +0100271 compatible = "arm,mhuv2-tx","arm,primecell";
Boyan Karatotev6ed3bf62023-07-07 13:33:19 +0000272 reg = <0x0 MHU_TX_ADDR(0x) 0x0 0x1000>;
Boyan Karatotev13b8e742023-11-14 13:57:56 +0000273 clocks = <&soc_refclk>;
Usama Arifbec5afd2020-04-17 16:13:39 +0100274 clock-names = "apb_pclk";
Usama Arifb315c702021-05-27 20:01:39 +0100275 #mbox-cells = <2>;
Usama Arifbec5afd2020-04-17 16:13:39 +0100276 interrupt-names = "mhu_tx";
277 mhu-protocol = "doorbell";
Usama Arifb315c702021-05-27 20:01:39 +0100278 arm,mhuv2-protocols = <0 1>;
Usama Arifbec5afd2020-04-17 16:13:39 +0100279 };
280
281 scmi {
282 compatible = "arm,scmi";
Usama Arifbec5afd2020-04-17 16:13:39 +0100283 mbox-names = "tx", "rx";
Usama Arifb315c702021-05-27 20:01:39 +0100284 mboxes = <&mbox_db_tx 0 0 &mbox_db_rx 0 0 >;
Usama Arifbec5afd2020-04-17 16:13:39 +0100285 shmem = <&cpu_scp_scmi_mem &cpu_scp_scmi_mem>;
286 #address-cells = <1>;
287 #size-cells = <0>;
288
Ben Horgan80781a52023-07-26 20:45:27 +0100289 scmi_devpd: protocol@11 {
290 reg = <0x11>;
291 #power-domain-cells = <1>;
292 };
293
Usama Arifbec5afd2020-04-17 16:13:39 +0100294 scmi_dvfs: protocol@13 {
295 reg = <0x13>;
296 #clock-cells = <1>;
297 };
298
299 scmi_clk: protocol@14 {
300 reg = <0x14>;
301 #clock-cells = <1>;
302 };
303 };
304
305 gic: interrupt-controller@2c010000 {
Boyan Karatotev13b8e742023-11-14 13:57:56 +0000306 compatible = "arm,gic-v3";
Usama Arifbec5afd2020-04-17 16:13:39 +0100307 #address-cells = <2>;
308 #interrupt-cells = <3>;
309 #size-cells = <2>;
310 ranges;
311 interrupt-controller;
312 reg = <0x0 0x30000000 0 0x10000>, /* GICD */
Usama Ariffdfd2502021-03-30 16:39:19 +0100313 <0x0 0x30080000 0 0x200000>; /* GICR */
Boyan Karatotev25c4fb72023-08-08 15:37:52 +0100314 interrupts = <GIC_PPI 0x9 IRQ_TYPE_LEVEL_LOW>;
Usama Arifbec5afd2020-04-17 16:13:39 +0100315 };
316
317 timer {
318 compatible = "arm,armv8-timer";
Boyan Karatotev25c4fb72023-08-08 15:37:52 +0100319 interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>,
320 <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>,
321 <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>,
322 <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>;
Usama Arifbec5afd2020-04-17 16:13:39 +0100323 };
324
Boyan Karatotev13b8e742023-11-14 13:57:56 +0000325 soc_refclk: refclk {
Usama Arifbec5afd2020-04-17 16:13:39 +0100326 compatible = "fixed-clock";
327 #clock-cells = <0>;
328 clock-frequency = <100000000>;
329 clock-output-names = "apb_pclk";
330 };
331
332 soc_refclk60mhz: refclk60mhz {
333 compatible = "fixed-clock";
334 #clock-cells = <0>;
335 clock-frequency = <60000000>;
336 clock-output-names = "iofpga_clk";
337 };
338
Boyan Karatotev13b8e742023-11-14 13:57:56 +0000339 soc_uartclk: uartclk {
Usama Arifbec5afd2020-04-17 16:13:39 +0100340 compatible = "fixed-clock";
341 #clock-cells = <0>;
Boyan Karatotev6ed3bf62023-07-07 13:33:19 +0000342 clock-frequency = <UARTCLK_FREQ>;
Usama Arifbec5afd2020-04-17 16:13:39 +0100343 clock-output-names = "uartclk";
344 };
345
Boyan Karatotev13b8e742023-11-14 13:57:56 +0000346 os_uart: serial@2a400000 {
Usama Arifbec5afd2020-04-17 16:13:39 +0100347 compatible = "arm,pl011", "arm,primecell";
annsai017c607f22023-02-20 13:34:57 +0000348 reg = <0x0 0x2A400000 0x0 0x1000>;
Boyan Karatotev25c4fb72023-08-08 15:37:52 +0100349 interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>;
Boyan Karatotev13b8e742023-11-14 13:57:56 +0000350 clocks = <&soc_uartclk>, <&soc_refclk>;
Usama Arifbec5afd2020-04-17 16:13:39 +0100351 clock-names = "uartclk", "apb_pclk";
352 status = "okay";
353 };
354
Boyan Karatotev13b8e742023-11-14 13:57:56 +0000355 rtc@1c170000 {
Jayanth Dodderi Chidanand2858cf52022-09-28 11:41:48 +0100356 compatible = "arm,pl031", "arm,primecell";
357 reg = <0x0 0x1C170000 0x0 0x1000>;
Boyan Karatotev25c4fb72023-08-08 15:37:52 +0100358 interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
Boyan Karatotev13b8e742023-11-14 13:57:56 +0000359 clocks = <&soc_refclk>;
Jayanth Dodderi Chidanand2858cf52022-09-28 11:41:48 +0100360 clock-names = "apb_pclk";
Jayanth Dodderi Chidanand2858cf52022-09-28 11:41:48 +0100361 };
Rupinderjit Singhd2d02982022-09-12 17:25:32 +0100362
Usama Arifbec5afd2020-04-17 16:13:39 +0100363 vencoder {
364 compatible = "drm,virtual-encoder";
Usama Arifbec5afd2020-04-17 16:13:39 +0100365 port {
366 vencoder_in: endpoint {
Avinash Mehtadf71a602020-07-22 16:40:07 +0100367 remote-endpoint = <&dp_pl0_out0>;
Usama Arifbec5afd2020-04-17 16:13:39 +0100368 };
369 };
370
371 display-timings {
Boyan Karatotev13b8e742023-11-14 13:57:56 +0000372 timing-panel {
Usama Arifbec5afd2020-04-17 16:13:39 +0100373 clock-frequency = <25175000>;
374 hactive = <640>;
375 vactive = <480>;
376 hfront-porch = <16>;
377 hback-porch = <48>;
378 hsync-len = <96>;
379 vfront-porch = <10>;
380 vback-porch = <33>;
381 vsync-len = <2>;
382 };
383 };
384
385 };
386
Usama Arifbec5afd2020-04-17 16:13:39 +0100387 ethernet@18000000 {
388 compatible = "smsc,lan91c111";
389 reg = <0x0 0x18000000 0x0 0x10000>;
Boyan Karatotev25c4fb72023-08-08 15:37:52 +0100390 interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>;
Usama Arifbec5afd2020-04-17 16:13:39 +0100391 };
392
393 kmi@1c060000 {
394 compatible = "arm,pl050", "arm,primecell";
395 reg = <0x0 0x001c060000 0x0 0x1000>;
Boyan Karatotev25c4fb72023-08-08 15:37:52 +0100396 interrupts = <GIC_SPI 197 IRQ_TYPE_LEVEL_HIGH>;
Usama Arifbec5afd2020-04-17 16:13:39 +0100397 clocks = <&bp_clock24mhz>, <&bp_clock24mhz>;
398 clock-names = "KMIREFCLK", "apb_pclk";
399 };
400
401 kmi@1c070000 {
402 compatible = "arm,pl050", "arm,primecell";
403 reg = <0x0 0x001c070000 0x0 0x1000>;
Boyan Karatotev25c4fb72023-08-08 15:37:52 +0100404 interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
Usama Arifbec5afd2020-04-17 16:13:39 +0100405 clocks = <&bp_clock24mhz>, <&bp_clock24mhz>;
406 clock-names = "KMIREFCLK", "apb_pclk";
407 };
408
409 bp_clock24mhz: clock24mhz {
410 compatible = "fixed-clock";
411 #clock-cells = <0>;
412 clock-frequency = <24000000>;
413 clock-output-names = "bp:clock24mhz";
414 };
415
416 virtio_block@1c130000 {
417 compatible = "virtio,mmio";
418 reg = <0x0 0x1c130000 0x0 0x200>;
Boyan Karatotev25c4fb72023-08-08 15:37:52 +0100419 /* spec lists this wrong */
420 interrupts = <GIC_SPI 204 IRQ_TYPE_LEVEL_HIGH>;
Usama Arifbec5afd2020-04-17 16:13:39 +0100421 };
422
Usama Arif1cd56dc2020-06-10 16:27:53 +0100423 sysreg: sysreg@1c010000 {
424 compatible = "arm,vexpress-sysreg";
425 reg = <0x0 0x001c010000 0x0 0x1000>;
426 gpio-controller;
427 #gpio-cells = <2>;
428 };
429
430 fixed_3v3: v2m-3v3 {
431 compatible = "regulator-fixed";
432 regulator-name = "3V3";
433 regulator-min-microvolt = <3300000>;
434 regulator-max-microvolt = <3300000>;
435 regulator-always-on;
436 };
437
438 mmci@1c050000 {
439 compatible = "arm,pl180", "arm,primecell";
440 reg = <0x0 0x001c050000 0x0 0x1000>;
Boyan Karatotev25c4fb72023-08-08 15:37:52 +0100441 interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>,
442 <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
Usama Arif1cd56dc2020-06-10 16:27:53 +0100443 cd-gpios = <&sysreg 0 0>;
444 wp-gpios = <&sysreg 1 0>;
445 bus-width = <8>;
446 max-frequency = <12000000>;
447 vmmc-supply = <&fixed_3v3>;
448 clocks = <&bp_clock24mhz>, <&bp_clock24mhz>;
449 clock-names = "mclk", "apb_pclk";
450 };
451
Rupinderjit Singhb2a75b82023-02-03 09:29:57 +0000452 gpu_clk: gpu_clk {
453 compatible = "fixed-clock";
454 #clock-cells = <0>;
455 clock-frequency = <1000000000>;
456 };
457
458 gpu_core_clk: gpu_core_clk {
459 compatible = "fixed-clock";
460 #clock-cells = <0>;
461 clock-frequency = <1000000000>;
462 };
463
Anders Dellien7a849802022-01-01 21:51:21 +0000464 gpu: gpu@2d000000 {
465 compatible = "arm,mali-midgard";
466 reg = <0x0 0x2d000000 0x0 0x200000>;
Boyan Karatotev25c4fb72023-08-08 15:37:52 +0100467 interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>,
468 <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>,
469 <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>;
Anders Dellien7a849802022-01-01 21:51:21 +0000470 interrupt-names = "JOB", "MMU", "GPU";
Ben Horgan80781a52023-07-26 20:45:27 +0100471 clocks = <&gpu_core_clk>;
472 clock-names = "shadercores";
473 power-domains = <&scmi_devpd 9>;
474 scmi-perf-domain = <3>;
Davidson Kce633122022-11-21 17:49:51 +0530475 iommus = <&smmu_700 0x200>;
Anders Dellien7a849802022-01-01 21:51:21 +0000476 };
477
Boyan Karatotev13b8e742023-11-14 13:57:56 +0000478 power_model_simple {
Rupinderjit Singhb2a75b82023-02-03 09:29:57 +0000479 /*
480 * Numbers used are irrelevant to Titan,
481 * it helps suppressing the kernel warnings.
482 */
483 compatible = "arm,mali-simple-power-model";
484 static-coefficient = <2427750>;
485 dynamic-coefficient = <4687>;
486 ts = <20000 2000 (-20) 2>;
487 thermal-zone = "";
488 };
489
Boyan Karatotev13b8e742023-11-14 13:57:56 +0000490 smmu_700: iommu@3f000000 {
Anders Delliena1914132022-01-01 21:56:25 +0000491 #iommu-cells = <1>;
492 compatible = "arm,smmu-v3";
Davidson Kce633122022-11-21 17:49:51 +0530493 reg = <0x0 0x3f000000 0x0 0x5000000>;
Kshitij Sisodiab32a8f42023-08-16 09:46:05 +0100494 interrupts = <GIC_SPI 228 IRQ_TYPE_EDGE_RISING>,
495 <GIC_SPI 229 IRQ_TYPE_EDGE_RISING>,
496 <GIC_SPI 230 IRQ_TYPE_EDGE_RISING>;
497 interrupt-names = "eventq", "cmdq-sync", "gerror";
Davidson Kce633122022-11-21 17:49:51 +0530498 dma-coherent;
Anders Delliena1914132022-01-01 21:56:25 +0000499 };
500
Usama Arifbec5afd2020-04-17 16:13:39 +0100501 dp0: display@2cc00000 {
502 #address-cells = <1>;
503 #size-cells = <0>;
504 compatible = "arm,mali-d71";
505 reg = <0 0x2cc00000 0 0x20000>;
Boyan Karatotev25c4fb72023-08-08 15:37:52 +0100506 interrupts = <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>;
Usama Arifbec5afd2020-04-17 16:13:39 +0100507 interrupt-names = "DPU";
508 clocks = <&scmi_clk 0>;
509 clock-names = "aclk";
Davidson Kce633122022-11-21 17:49:51 +0530510 iommus = <&smmu_700 0x100>;
Ben Horgan80781a52023-07-26 20:45:27 +0100511 power-domains = <&scmi_devpd 10>;
Usama Arifbec5afd2020-04-17 16:13:39 +0100512 pl0: pipeline@0 {
513 reg = <0>;
514 clocks = <&scmi_clk 1>;
515 clock-names = "pxclk";
516 pl_id = <0>;
517 ports {
518 #address-cells = <1>;
519 #size-cells = <0>;
520 port@0 {
521 reg = <0>;
522 dp_pl0_out0: endpoint {
523 remote-endpoint = <&vencoder_in>;
524 };
525 };
526 };
527 };
528
529 pl1: pipeline@1 {
530 reg = <1>;
531 clocks = <&scmi_clk 2>;
532 clock-names = "pxclk";
533 pl_id = <1>;
534 ports {
535 #address-cells = <1>;
536 #size-cells = <0>;
537 port@0 {
538 reg = <0>;
539 };
540 };
541 };
542 };
Arunachalam Ganapathyc44e43d2020-11-17 15:05:01 +0000543
Davidson K1ad2c412023-01-13 14:02:13 +0530544 /*
545 * L3 cache in the DSU is the Memory System Component (MSC)
546 * The MPAM registers are accessed through utility bus in the DSU
547 */
548 msc0 {
549 compatible = "arm,mpam-msc";
Boyan Karatotev6ed3bf62023-07-07 13:33:19 +0000550 reg = <MPAM_ADDR 0x0 0x2000>;
Davidson K1ad2c412023-01-13 14:02:13 +0530551 };
552
Davidson K65361052021-10-13 18:49:41 +0530553 ete0 {
554 compatible = "arm,embedded-trace-extension";
555 cpu = <&CPU0>;
556 };
557
558 ete1 {
559 compatible = "arm,embedded-trace-extension";
560 cpu = <&CPU1>;
561 };
562
563 ete2 {
564 compatible = "arm,embedded-trace-extension";
565 cpu = <&CPU2>;
566 };
567
568 ete3 {
569 compatible = "arm,embedded-trace-extension";
570 cpu = <&CPU3>;
571 };
572
573 ete4 {
574 compatible = "arm,embedded-trace-extension";
575 cpu = <&CPU4>;
576 };
577
578 ete5 {
579 compatible = "arm,embedded-trace-extension";
580 cpu = <&CPU5>;
581 };
582
583 ete6 {
584 compatible = "arm,embedded-trace-extension";
585 cpu = <&CPU6>;
586 };
587
588 ete7 {
589 compatible = "arm,embedded-trace-extension";
590 cpu = <&CPU7>;
591 };
592
Boyan Karatotev13b8e742023-11-14 13:57:56 +0000593 trbe {
Davidson K65361052021-10-13 18:49:41 +0530594 compatible = "arm,trace-buffer-extension";
Boyan Karatotev25c4fb72023-08-08 15:37:52 +0100595 interrupts = <GIC_PPI 2 IRQ_TYPE_LEVEL_LOW>;
Davidson K65361052021-10-13 18:49:41 +0530596 };
Arunachalam Ganapathy63128dc2022-04-11 14:43:15 +0100597
598 trusty {
599 #size-cells = <0x02>;
600 #address-cells = <0x02>;
601 ranges = <0x00>;
602 compatible = "android,trusty-v1";
603
604 virtio {
605 compatible = "android,trusty-virtio-v1";
606 };
607
608 test {
609 compatible = "android,trusty-test-v1";
610 };
611
612 log {
613 compatible = "android,trusty-log-v1";
614 };
615
616 irq {
617 ipi-range = <0x08 0x0f 0x08>;
618 interrupt-ranges = <0x00 0x0f 0x00 0x10 0x1f 0x01 0x20 0x3f 0x02>;
619 interrupt-templates = <0x01 0x00 0x8001 0x01 0x01 0x04 0x8001 0x01 0x00 0x04>;
620 compatible = "android,trusty-irq-v1";
621 };
622 };
Usama Arifbec5afd2020-04-17 16:13:39 +0100623};