blob: 735d429a55619712c6e9f01c9ca5375756bb8b5c [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
Leo Yan9add6712024-04-24 10:03:50 +01007/* If SCMI power domain control is enabled */
8#if TC_SCMI_PD_CTRL_EN
9#define GPU_SCMI_PD_IDX (PLAT_MAX_CPUS_PER_CLUSTER + 1)
10#define DPU_SCMI_PD_IDX (PLAT_MAX_CPUS_PER_CLUSTER + 2)
11#endif /* TC_SCMI_PD_CTRL_EN */
12
13/* Use SCMI controlled clocks */
14#if TC_DPU_USE_SCMI_CLK
15#define DPU_CLK_ATTR1 \
16 clocks = <&scmi_clk 0>; \
17 clock-names = "aclk"
18
19#define DPU_CLK_ATTR2 \
20 clocks = <&scmi_clk 1>; \
21 clock-names = "pxclk"
22
23#define DPU_CLK_ATTR3 \
24 clocks = <&scmi_clk 2>; \
25 clock-names = "pxclk" \
26/* Use fixed clocks */
27#else /* !TC_DPU_USE_SCMI_CLK */
28#define DPU_CLK_ATTR1 \
29 clocks = <&dpu_aclk>; \
30 clock-names = "aclk"
31
32#define DPU_CLK_ATTR2 \
33 clocks = <&dpu_pixel_clk>, <&dpu_aclk>; \
34 clock-names = "pxclk", "aclk"
35
36#define DPU_CLK_ATTR3 DPU_CLK_ATTR2
37#endif /* !TC_DPU_USE_SCMI_CLK */
Kshitij Sisodiab32a8f42023-08-16 09:46:05 +010038
Usama Arifbec5afd2020-04-17 16:13:39 +010039/ {
Usama Ariff1513622021-04-09 17:07:41 +010040 compatible = "arm,tc";
Usama Arifbec5afd2020-04-17 16:13:39 +010041 interrupt-parent = <&gic>;
42 #address-cells = <2>;
43 #size-cells = <2>;
44
45 aliases {
Boyan Karatotev13b8e742023-11-14 13:57:56 +000046 serial0 = &os_uart;
Usama Arifbec5afd2020-04-17 16:13:39 +010047 };
48
49 chosen {
Ben Horgan7160e0d2023-12-11 16:01:10 +000050 /*
51 * Add some dummy entropy for Linux so it
52 * doesn't delay the boot waiting for it.
53 */
54 rng-seed = <0x01 0x02 0x04 0x05 0x06 0x07 0x08 \
55 0x01 0x02 0x04 0x05 0x06 0x07 0x08 \
56 0x01 0x02 0x04 0x05 0x06 0x07 0x08 \
57 0x01 0x02 0x04 0x05 0x06 0x07 0x08 \
58 0x01 0x02 0x04 0x05 0x06 0x07 0x08 \
59 0x01 0x02 0x04 0x05 0x06 0x07 0x08 \
60 0x01 0x02 0x04 0x05 0x06 0x07 0x08 \
61 0x01 0x02 0x04 0x05 0x06 0x07 0x08 >;
Usama Arifbec5afd2020-04-17 16:13:39 +010062 };
63
64 cpus {
65 #address-cells = <1>;
66 #size-cells = <0>;
67
68 cpu-map {
69 cluster0 {
70 core0 {
71 cpu = <&CPU0>;
72 };
73 core1 {
74 cpu = <&CPU1>;
75 };
76 core2 {
77 cpu = <&CPU2>;
78 };
79 core3 {
80 cpu = <&CPU3>;
81 };
Avinash Mehtaf68a0842020-10-28 16:43:28 +000082 core4 {
83 cpu = <&CPU4>;
84 };
85 core5 {
86 cpu = <&CPU5>;
87 };
88 core6 {
89 cpu = <&CPU6>;
90 };
91 core7 {
92 cpu = <&CPU7>;
93 };
Usama Arifbec5afd2020-04-17 16:13:39 +010094 };
95 };
96
Usama Arif57900782020-08-12 17:14:37 +010097 /*
98 * The timings below are just to demonstrate working cpuidle.
99 * These values may be inaccurate.
100 */
101 idle-states {
Boyan Karatotev13b8e742023-11-14 13:57:56 +0000102 entry-method = "psci";
Usama Arif57900782020-08-12 17:14:37 +0100103
104 CPU_SLEEP_0: cpu-sleep-0 {
105 compatible = "arm,idle-state";
106 arm,psci-suspend-param = <0x0010000>;
107 local-timer-stop;
108 entry-latency-us = <300>;
109 exit-latency-us = <1200>;
110 min-residency-us = <2000>;
111 };
112 CLUSTER_SLEEP_0: cluster-sleep-0 {
113 compatible = "arm,idle-state";
114 arm,psci-suspend-param = <0x1010000>;
115 local-timer-stop;
116 entry-latency-us = <400>;
117 exit-latency-us = <1200>;
118 min-residency-us = <2500>;
119 };
120 };
121
Chris Kayc2d29ba2021-05-18 18:49:51 +0100122 amus {
123 amu: amu-0 {
124 #address-cells = <1>;
125 #size-cells = <0>;
126
127 mpmm_gear0: counter@0 {
128 reg = <0>;
Chris Kayc2d29ba2021-05-18 18:49:51 +0100129 enable-at-el3;
130 };
131
132 mpmm_gear1: counter@1 {
133 reg = <1>;
Chris Kayc2d29ba2021-05-18 18:49:51 +0100134 enable-at-el3;
135 };
136
137 mpmm_gear2: counter@2 {
138 reg = <2>;
Chris Kayc2d29ba2021-05-18 18:49:51 +0100139 enable-at-el3;
140 };
141 };
142 };
143
Usama Arifbec5afd2020-04-17 16:13:39 +0100144 CPU0:cpu@0 {
145 device_type = "cpu";
146 compatible = "arm,armv8";
147 reg = <0x0>;
148 enable-method = "psci";
149 clocks = <&scmi_dvfs 0>;
Usama Arif57900782020-08-12 17:14:37 +0100150 cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
Boyan Karatotev192ad5d2023-12-12 15:59:01 +0000151 capacity-dmips-mhz = <LIT_CAPACITY>;
Chris Kayc2d29ba2021-05-18 18:49:51 +0100152 amu = <&amu>;
153 supports-mpmm;
Usama Arifbec5afd2020-04-17 16:13:39 +0100154 };
155
156 CPU1:cpu@100 {
157 device_type = "cpu";
158 compatible = "arm,armv8";
159 reg = <0x100>;
160 enable-method = "psci";
161 clocks = <&scmi_dvfs 0>;
Usama Arif57900782020-08-12 17:14:37 +0100162 cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
Boyan Karatotev192ad5d2023-12-12 15:59:01 +0000163 capacity-dmips-mhz = <LIT_CAPACITY>;
Chris Kayc2d29ba2021-05-18 18:49:51 +0100164 amu = <&amu>;
165 supports-mpmm;
Usama Arifbec5afd2020-04-17 16:13:39 +0100166 };
167
168 CPU2:cpu@200 {
169 device_type = "cpu";
170 compatible = "arm,armv8";
171 reg = <0x200>;
172 enable-method = "psci";
Usama Arif57900782020-08-12 17:14:37 +0100173 cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
Chris Kayc2d29ba2021-05-18 18:49:51 +0100174 amu = <&amu>;
175 supports-mpmm;
Usama Arifbec5afd2020-04-17 16:13:39 +0100176 };
177
178 CPU3:cpu@300 {
179 device_type = "cpu";
180 compatible = "arm,armv8";
181 reg = <0x300>;
182 enable-method = "psci";
Usama Arif57900782020-08-12 17:14:37 +0100183 cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
Chris Kayc2d29ba2021-05-18 18:49:51 +0100184 amu = <&amu>;
185 supports-mpmm;
Usama Arifbec5afd2020-04-17 16:13:39 +0100186 };
187
Avinash Mehtaf68a0842020-10-28 16:43:28 +0000188 CPU4:cpu@400 {
189 device_type = "cpu";
190 compatible = "arm,armv8";
191 reg = <0x400>;
192 enable-method = "psci";
Usama Arif75edb752021-02-03 15:40:46 +0000193 clocks = <&scmi_dvfs 1>;
Avinash Mehtaf68a0842020-10-28 16:43:28 +0000194 cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
Boyan Karatotev192ad5d2023-12-12 15:59:01 +0000195 capacity-dmips-mhz = <MID_CAPACITY>;
Chris Kayc2d29ba2021-05-18 18:49:51 +0100196 amu = <&amu>;
197 supports-mpmm;
Avinash Mehtaf68a0842020-10-28 16:43:28 +0000198 };
199
200 CPU5:cpu@500 {
201 device_type = "cpu";
202 compatible = "arm,armv8";
203 reg = <0x500>;
204 enable-method = "psci";
Usama Arif75edb752021-02-03 15:40:46 +0000205 clocks = <&scmi_dvfs 1>;
Avinash Mehtaf68a0842020-10-28 16:43:28 +0000206 cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
Boyan Karatotev192ad5d2023-12-12 15:59:01 +0000207 capacity-dmips-mhz = <MID_CAPACITY>;
Chris Kayc2d29ba2021-05-18 18:49:51 +0100208 amu = <&amu>;
209 supports-mpmm;
Avinash Mehtaf68a0842020-10-28 16:43:28 +0000210 };
211
212 CPU6:cpu@600 {
213 device_type = "cpu";
214 compatible = "arm,armv8";
215 reg = <0x600>;
216 enable-method = "psci";
Avinash Mehtaf68a0842020-10-28 16:43:28 +0000217 cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
Chris Kayc2d29ba2021-05-18 18:49:51 +0100218 amu = <&amu>;
219 supports-mpmm;
Avinash Mehtaf68a0842020-10-28 16:43:28 +0000220 };
221
222 CPU7:cpu@700 {
223 device_type = "cpu";
224 compatible = "arm,armv8";
225 reg = <0x700>;
226 enable-method = "psci";
Avinash Mehtaf68a0842020-10-28 16:43:28 +0000227 cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
Boyan Karatotev192ad5d2023-12-12 15:59:01 +0000228 amu = <&amu>;
229 supports-mpmm;
230 };
Usama Arifbec5afd2020-04-17 16:13:39 +0100231 };
232
Arunachalam Ganapathy948bb442020-12-14 12:31:32 +0000233 reserved-memory {
234 #address-cells = <2>;
235 #size-cells = <2>;
236 ranges;
237
Anders Delliena6c9b722021-12-08 21:57:21 +0000238 linux,cma {
239 compatible = "shared-dma-pool";
240 reusable;
241 size = <0x0 0x8000000>;
242 linux,cma-default;
243 };
244
Boyan Karatotev88309be2023-12-04 16:12:08 +0000245 optee {
Davidson K4662a882022-12-14 17:38:14 +0530246 compatible = "restricted-dma-pool";
Boyan Karatotev88309be2023-12-04 16:12:08 +0000247 reg = <0x0 TC_NS_OPTEE_BASE 0x0 TC_NS_OPTEE_SIZE>;
Arunachalam Ganapathy948bb442020-12-14 12:31:32 +0000248 };
Tudor Cretu77b301a2021-09-24 12:09:53 +0000249
Arunachalam Ganapathy948bb442020-12-14 12:31:32 +0000250 };
251
Boyan Karatoteva439dfd2023-12-04 16:09:14 +0000252 memory {
253 device_type = "memory";
254 reg = <0x0 TC_NS_DRAM1_BASE 0x0 TC_NS_DRAM1_SIZE>,
255 <HI(PLAT_ARM_DRAM2_BASE) LO(PLAT_ARM_DRAM2_BASE)
256 HI(TC_NS_DRAM2_SIZE) LO(TC_NS_DRAM2_SIZE)>;
257 };
258
Usama Arifbec5afd2020-04-17 16:13:39 +0100259 psci {
Usama Arif7a64bfa2021-05-27 20:09:17 +0100260 compatible = "arm,psci-1.0", "arm,psci-0.2";
Usama Arifbec5afd2020-04-17 16:13:39 +0100261 method = "smc";
262 };
263
Jagdish Gediya9247a602024-04-24 15:20:21 +0100264 cpu-pmu-little {
265 compatible = LIT_CPU_PMU_COMPATIBLE;
266 interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH &ppi_partition_little>;
267 status = "okay";
268 };
269
270 cpu-pmu-mid {
271 compatible = MID_CPU_PMU_COMPATIBLE;
272 interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH &ppi_partition_mid>;
273 status = "okay";
274 };
275
276 cpu-pmu-big {
277 compatible = BIG_CPU_PMU_COMPATIBLE;
278 interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH &ppi_partition_big>;
279 status = "okay";
Boyan Karatotev4fef47c2023-11-15 11:29:59 +0000280 };
281
Usama Arifbec5afd2020-04-17 16:13:39 +0100282 sram: sram@6000000 {
283 compatible = "mmio-sram";
Boyan Karatoteva439dfd2023-12-04 16:09:14 +0000284 reg = <0x0 PLAT_ARM_NSRAM_BASE 0x0 PLAT_ARM_NSRAM_SIZE>;
Usama Arifbec5afd2020-04-17 16:13:39 +0100285
286 #address-cells = <1>;
287 #size-cells = <1>;
Boyan Karatoteva439dfd2023-12-04 16:09:14 +0000288 ranges = <0 0x0 PLAT_ARM_NSRAM_BASE PLAT_ARM_NSRAM_SIZE>;
Usama Arifbec5afd2020-04-17 16:13:39 +0100289
Boyan Karatotev102554c2024-04-19 12:27:46 +0100290 cpu_scp_scmi_a2p: scp-shmem@0 {
Usama Arifbec5afd2020-04-17 16:13:39 +0100291 compatible = "arm,scmi-shmem";
292 reg = <0x0 0x80>;
293 };
294 };
295
Leo Yanbd7dc052024-04-15 09:05:34 +0100296 mbox_db_rx: mhu@MHU_RX_ADDR {
Boyan Karatotevcd2b4cc2024-04-24 10:09:18 +0100297 compatible = MHU_RX_COMPAT;
298 reg = <0x0 ADDRESSIFY(MHU_RX_ADDR) 0x0 MHU_OFFSET>;
Boyan Karatotev13b8e742023-11-14 13:57:56 +0000299 clocks = <&soc_refclk>;
Usama Arifbec5afd2020-04-17 16:13:39 +0100300 clock-names = "apb_pclk";
Boyan Karatotevcd2b4cc2024-04-24 10:09:18 +0100301 #mbox-cells = <MHU_MBOX_CELLS>;
Jagdish Gediyabd6755d2024-04-23 12:06:47 +0100302 interrupts = <GIC_SPI MHU_RX_INT_NUM IRQ_TYPE_LEVEL_HIGH 0>;
Boyan Karatotevcd2b4cc2024-04-24 10:09:18 +0100303 interrupt-names = MHU_RX_INT_NAME;
Usama Arifbec5afd2020-04-17 16:13:39 +0100304 };
305
Leo Yanbd7dc052024-04-15 09:05:34 +0100306 mbox_db_tx: mhu@MHU_TX_ADDR {
Boyan Karatotevcd2b4cc2024-04-24 10:09:18 +0100307 compatible = MHU_TX_COMPAT;
308 reg = <0x0 ADDRESSIFY(MHU_TX_ADDR) 0x0 MHU_OFFSET>;
Boyan Karatotev13b8e742023-11-14 13:57:56 +0000309 clocks = <&soc_refclk>;
Usama Arifbec5afd2020-04-17 16:13:39 +0100310 clock-names = "apb_pclk";
Boyan Karatotevcd2b4cc2024-04-24 10:09:18 +0100311 #mbox-cells = <MHU_MBOX_CELLS>;
312 interrupt-names = MHU_TX_INT_NAME;
Usama Arifbec5afd2020-04-17 16:13:39 +0100313 };
314
Boyan Karatotevfdeb95f2024-04-19 13:59:11 +0100315 firmware {
316 scmi {
317 compatible = "arm,scmi";
318 mbox-names = "tx", "rx";
Boyan Karatotevfdeb95f2024-04-19 13:59:11 +0100319 #address-cells = <1>;
320 #size-cells = <0>;
Usama Arifbec5afd2020-04-17 16:13:39 +0100321
Kshitij Sisodia090a6aa2023-11-22 17:03:45 +0000322#if TC_SCMI_PD_CTRL_EN
Boyan Karatotevfdeb95f2024-04-19 13:59:11 +0100323 scmi_devpd: protocol@11 {
324 reg = <0x11>;
325 #power-domain-cells = <1>;
326 };
Kshitij Sisodia090a6aa2023-11-22 17:03:45 +0000327#endif /* TC_SCMI_PD_CTRL_EN */
Ben Horgan80781a52023-07-26 20:45:27 +0100328
Boyan Karatotevfdeb95f2024-04-19 13:59:11 +0100329 scmi_dvfs: protocol@13 {
330 reg = <0x13>;
331 #clock-cells = <1>;
332 };
Usama Arifbec5afd2020-04-17 16:13:39 +0100333
Boyan Karatotevfdeb95f2024-04-19 13:59:11 +0100334 scmi_clk: protocol@14 {
335 reg = <0x14>;
336 #clock-cells = <1>;
337 };
Usama Arifbec5afd2020-04-17 16:13:39 +0100338 };
339 };
340
Boyan Karatotev95562762023-11-15 11:54:33 +0000341 gic: interrupt-controller@GIC_CTRL_ADDR {
Boyan Karatotev13b8e742023-11-14 13:57:56 +0000342 compatible = "arm,gic-v3";
Usama Arifbec5afd2020-04-17 16:13:39 +0100343 #address-cells = <2>;
Jagdish Gediyabd6755d2024-04-23 12:06:47 +0100344 #interrupt-cells = <4>;
Usama Arifbec5afd2020-04-17 16:13:39 +0100345 #size-cells = <2>;
346 ranges;
347 interrupt-controller;
348 reg = <0x0 0x30000000 0 0x10000>, /* GICD */
Boyan Karatotev95562762023-11-15 11:54:33 +0000349 <0x0 0x30080000 0 GIC_GICR_OFFSET>; /* GICR */
Jagdish Gediyabd6755d2024-04-23 12:06:47 +0100350 interrupts = <GIC_PPI 0x9 IRQ_TYPE_LEVEL_LOW 0>;
Usama Arifbec5afd2020-04-17 16:13:39 +0100351 };
352
353 timer {
354 compatible = "arm,armv8-timer";
Jagdish Gediyabd6755d2024-04-23 12:06:47 +0100355 interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW 0>,
356 <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW 0>,
357 <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW 0>,
358 <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW 0>;
Usama Arifbec5afd2020-04-17 16:13:39 +0100359 };
360
Jagdish Gediyac71080f2024-04-23 13:46:41 +0100361 spe-pmu-mid {
362 compatible = "arm,statistical-profiling-extension-v1";
363 interrupts = <GIC_PPI 1 IRQ_TYPE_LEVEL_HIGH &ppi_partition_mid>;
364 status = "disabled";
365 };
366
367 spe-pmu-big {
368 compatible = "arm,statistical-profiling-extension-v1";
369 interrupts = <GIC_PPI 1 IRQ_TYPE_LEVEL_HIGH &ppi_partition_big>;
370 status = "disabled";
371 };
372
Boyan Karatotev13b8e742023-11-14 13:57:56 +0000373 soc_refclk: refclk {
Usama Arifbec5afd2020-04-17 16:13:39 +0100374 compatible = "fixed-clock";
375 #clock-cells = <0>;
Boyan Karatotev95562762023-11-15 11:54:33 +0000376 clock-frequency = <1000000000>;
Usama Arifbec5afd2020-04-17 16:13:39 +0100377 clock-output-names = "apb_pclk";
378 };
379
380 soc_refclk60mhz: refclk60mhz {
381 compatible = "fixed-clock";
382 #clock-cells = <0>;
383 clock-frequency = <60000000>;
384 clock-output-names = "iofpga_clk";
385 };
386
Boyan Karatotev13b8e742023-11-14 13:57:56 +0000387 soc_uartclk: uartclk {
Usama Arifbec5afd2020-04-17 16:13:39 +0100388 compatible = "fixed-clock";
389 #clock-cells = <0>;
Boyan Karatotev6ed3bf62023-07-07 13:33:19 +0000390 clock-frequency = <UARTCLK_FREQ>;
Usama Arifbec5afd2020-04-17 16:13:39 +0100391 clock-output-names = "uartclk";
392 };
393
Boyan Karatotev95562762023-11-15 11:54:33 +0000394 /* soc_uart0 on FPGA, ap_ns_uart on FVP */
Boyan Karatotev13b8e742023-11-14 13:57:56 +0000395 os_uart: serial@2a400000 {
Usama Arifbec5afd2020-04-17 16:13:39 +0100396 compatible = "arm,pl011", "arm,primecell";
Boyan Karatotev95562762023-11-15 11:54:33 +0000397 reg = <0x0 0x2A400000 0x0 UART_OFFSET>;
Jagdish Gediyabd6755d2024-04-23 12:06:47 +0100398 interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH 0>;
Boyan Karatotev13b8e742023-11-14 13:57:56 +0000399 clocks = <&soc_uartclk>, <&soc_refclk>;
Usama Arifbec5afd2020-04-17 16:13:39 +0100400 clock-names = "uartclk", "apb_pclk";
401 status = "okay";
402 };
Leo Yan9add6712024-04-24 10:03:50 +0100403
404#if !TC_DPU_USE_SCMI_CLK
405 dpu_aclk: dpu_aclk {
406 compatible = "fixed-clock";
407 #clock-cells = <0>;
408 clock-frequency = <VENCODER_TIMING_CLK>;
409 clock-output-names = "fpga:dpu_aclk";
410 };
411
412 dpu_pixel_clk: dpu-pixel-clk {
413 compatible = "fixed-clock";
414 #clock-cells = <0>;
415 clock-frequency = <VENCODER_TIMING_CLK>;
416 clock-output-names = "pxclk";
417 };
418#endif /* !TC_DPU_USE_SCMI_CLK */
Usama Arifbec5afd2020-04-17 16:13:39 +0100419
420 vencoder {
421 compatible = "drm,virtual-encoder";
Usama Arifbec5afd2020-04-17 16:13:39 +0100422 port {
423 vencoder_in: endpoint {
Avinash Mehtadf71a602020-07-22 16:40:07 +0100424 remote-endpoint = <&dp_pl0_out0>;
Usama Arifbec5afd2020-04-17 16:13:39 +0100425 };
426 };
427
428 display-timings {
Boyan Karatotev13b8e742023-11-14 13:57:56 +0000429 timing-panel {
Boyan Karatotev95562762023-11-15 11:54:33 +0000430 VENCODER_TIMING;
Usama Arifbec5afd2020-04-17 16:13:39 +0100431 };
432 };
433
434 };
435
Jackson Cooper-Driver61418972024-04-24 10:27:58 +0100436 ethernet: ethernet@ETHERNET_ADDR {
437 reg = <0x0 ADDRESSIFY(ETHERNET_ADDR) 0x0 0x10000>;
438 interrupts = <GIC_SPI ETHERNET_INT IRQ_TYPE_LEVEL_HIGH 0>;
Boyan Karatotev95562762023-11-15 11:54:33 +0000439
Boyan Karatotev95562762023-11-15 11:54:33 +0000440 reg-io-width = <2>;
441 smsc,irq-push-pull;
Usama Arifbec5afd2020-04-17 16:13:39 +0100442 };
443
Usama Arifbec5afd2020-04-17 16:13:39 +0100444 bp_clock24mhz: clock24mhz {
445 compatible = "fixed-clock";
446 #clock-cells = <0>;
447 clock-frequency = <24000000>;
448 clock-output-names = "bp:clock24mhz";
449 };
450
Jackson Cooper-Driver61418972024-04-24 10:27:58 +0100451 sysreg: sysreg@SYS_REGS_ADDR {
Usama Arif1cd56dc2020-06-10 16:27:53 +0100452 compatible = "arm,vexpress-sysreg";
Jackson Cooper-Driver61418972024-04-24 10:27:58 +0100453 reg = <0x0 ADDRESSIFY(SYS_REGS_ADDR) 0x0 0x1000>;
Usama Arif1cd56dc2020-06-10 16:27:53 +0100454 gpio-controller;
455 #gpio-cells = <2>;
456 };
457
458 fixed_3v3: v2m-3v3 {
459 compatible = "regulator-fixed";
460 regulator-name = "3V3";
461 regulator-min-microvolt = <3300000>;
462 regulator-max-microvolt = <3300000>;
463 regulator-always-on;
464 };
465
Jackson Cooper-Driver61418972024-04-24 10:27:58 +0100466 mmci: mmci@MMC_ADDR {
Usama Arif1cd56dc2020-06-10 16:27:53 +0100467 compatible = "arm,pl180", "arm,primecell";
Jackson Cooper-Driver61418972024-04-24 10:27:58 +0100468 reg = <0x0 ADDRESSIFY(MMC_ADDR) 0x0 0x1000>;
469 interrupts = <GIC_SPI MMC_INT_0 IRQ_TYPE_LEVEL_HIGH 0>,
470 <GIC_SPI MMC_INT_1 IRQ_TYPE_LEVEL_HIGH 0>;
Usama Arif1cd56dc2020-06-10 16:27:53 +0100471 wp-gpios = <&sysreg 1 0>;
Boyan Karatotev95562762023-11-15 11:54:33 +0000472 bus-width = <4>;
473 max-frequency = <25000000>;
Usama Arif1cd56dc2020-06-10 16:27:53 +0100474 vmmc-supply = <&fixed_3v3>;
475 clocks = <&bp_clock24mhz>, <&bp_clock24mhz>;
476 clock-names = "mclk", "apb_pclk";
477 };
478
Rupinderjit Singhb2a75b82023-02-03 09:29:57 +0000479 gpu_clk: gpu_clk {
480 compatible = "fixed-clock";
481 #clock-cells = <0>;
482 clock-frequency = <1000000000>;
483 };
484
485 gpu_core_clk: gpu_core_clk {
486 compatible = "fixed-clock";
487 #clock-cells = <0>;
488 clock-frequency = <1000000000>;
489 };
490
Anders Dellien7a849802022-01-01 21:51:21 +0000491 gpu: gpu@2d000000 {
492 compatible = "arm,mali-midgard";
493 reg = <0x0 0x2d000000 0x0 0x200000>;
Ben Horgan80781a52023-07-26 20:45:27 +0100494 clocks = <&gpu_core_clk>;
495 clock-names = "shadercores";
Kshitij Sisodia090a6aa2023-11-22 17:03:45 +0000496#if TC_SCMI_PD_CTRL_EN
Boyan Karatotev192ad5d2023-12-12 15:59:01 +0000497 power-domains = <&scmi_devpd GPU_SCMI_PD_IDX>;
Ben Horgan80781a52023-07-26 20:45:27 +0100498 scmi-perf-domain = <3>;
Kshitij Sisodia090a6aa2023-11-22 17:03:45 +0000499#endif /* TC_SCMI_PD_CTRL_EN */
500
Angel Rodriguez Garcia62c12032023-12-21 10:11:13 +0000501 pbha {
502 int-id-override = <0 0x22>, <2 0x23>, <4 0x23>, <7 0x22>,
503 <8 0x22>, <9 0x22>, <10 0x22>, <11 0x22>,
504 <12 0x22>, <13 0x22>, <16 0x22>, <17 0x32>,
505 <18 0x32>, <19 0x22>, <20 0x22>, <21 0x32>,
506 <22 0x32>, <24 0x22>, <28 0x32>;
507 propagate-bits = <0x0f>;
508 };
Anders Dellien7a849802022-01-01 21:51:21 +0000509 };
510
Boyan Karatotev13b8e742023-11-14 13:57:56 +0000511 power_model_simple {
Rupinderjit Singhb2a75b82023-02-03 09:29:57 +0000512 /*
513 * Numbers used are irrelevant to Titan,
514 * it helps suppressing the kernel warnings.
515 */
516 compatible = "arm,mali-simple-power-model";
517 static-coefficient = <2427750>;
518 dynamic-coefficient = <4687>;
519 ts = <20000 2000 (-20) 2>;
520 thermal-zone = "";
521 };
522
Ben Horgan303c3ce2024-06-04 13:22:53 +0100523 smmu_600: smmu@2ce00000 {
524 compatible = "arm,smmu-v3";
525 reg = <0 0x2ce00000 0 0x20000>;
Jagdish Gediyabd6755d2024-04-23 12:06:47 +0100526 interrupts = <GIC_SPI 75 IRQ_TYPE_EDGE_RISING 0>,
527 <GIC_SPI 74 IRQ_TYPE_EDGE_RISING 0>,
528 <GIC_SPI 76 IRQ_TYPE_EDGE_RISING 0>,
529 <GIC_SPI 77 IRQ_TYPE_EDGE_RISING 0>;
Ben Horgan303c3ce2024-06-04 13:22:53 +0100530 interrupt-names = "eventq", "priq", "cmdq-sync", "gerror";
531 #iommu-cells = <1>;
532 status = "disabled";
533 };
534
Boyan Karatotev13b8e742023-11-14 13:57:56 +0000535 smmu_700: iommu@3f000000 {
Anders Delliena1914132022-01-01 21:56:25 +0000536 #iommu-cells = <1>;
537 compatible = "arm,smmu-v3";
Davidson Kce633122022-11-21 17:49:51 +0530538 reg = <0x0 0x3f000000 0x0 0x5000000>;
Jagdish Gediyabd6755d2024-04-23 12:06:47 +0100539 interrupts = <GIC_SPI 228 IRQ_TYPE_EDGE_RISING 0>,
540 <GIC_SPI 229 IRQ_TYPE_EDGE_RISING 0>,
541 <GIC_SPI 230 IRQ_TYPE_EDGE_RISING 0>;
Kshitij Sisodiab32a8f42023-08-16 09:46:05 +0100542 interrupt-names = "eventq", "cmdq-sync", "gerror";
Davidson Kce633122022-11-21 17:49:51 +0530543 dma-coherent;
Leo Yan983fd452024-06-04 12:51:12 +0100544 status = "disabled";
Anders Delliena1914132022-01-01 21:56:25 +0000545 };
546
Jackson Cooper-Driverce5b9032024-06-04 13:15:00 +0100547 smmu_700_dpu: iommu@4002a00000 {
548 #iommu-cells = <1>;
549 compatible = "arm,smmu-v3";
550 reg = <HI(0x4002a00000) LO(0x4002a00000) 0x0 0x5000000>;
Jagdish Gediyabd6755d2024-04-23 12:06:47 +0100551 interrupts = <GIC_SPI 481 IRQ_TYPE_EDGE_RISING 0>,
552 <GIC_SPI 482 IRQ_TYPE_EDGE_RISING 0>,
553 <GIC_SPI 483 IRQ_TYPE_EDGE_RISING 0>;
Jackson Cooper-Driverce5b9032024-06-04 13:15:00 +0100554 interrupt-names = "eventq", "cmdq-sync", "gerror";
555 dma-coherent;
556 status = "disabled";
557 };
558
Leo Yanbd7dc052024-04-15 09:05:34 +0100559 dp0: display@DPU_ADDR {
Usama Arifbec5afd2020-04-17 16:13:39 +0100560 #address-cells = <1>;
561 #size-cells = <0>;
562 compatible = "arm,mali-d71";
Leo Yanbd7dc052024-04-15 09:05:34 +0100563 reg = <HI(ADDRESSIFY(DPU_ADDR)) LO(ADDRESSIFY(DPU_ADDR)) 0 0x20000>;
Jagdish Gediyabd6755d2024-04-23 12:06:47 +0100564 interrupts = <GIC_SPI DPU_IRQ IRQ_TYPE_LEVEL_HIGH 0>;
Usama Arifbec5afd2020-04-17 16:13:39 +0100565 interrupt-names = "DPU";
Boyan Karatotev95562762023-11-15 11:54:33 +0000566 DPU_CLK_ATTR1;
Kshitij Sisodia090a6aa2023-11-22 17:03:45 +0000567
Usama Arifbec5afd2020-04-17 16:13:39 +0100568 pl0: pipeline@0 {
569 reg = <0>;
Boyan Karatotev95562762023-11-15 11:54:33 +0000570 DPU_CLK_ATTR2;
Usama Arifbec5afd2020-04-17 16:13:39 +0100571 pl_id = <0>;
572 ports {
573 #address-cells = <1>;
574 #size-cells = <0>;
575 port@0 {
576 reg = <0>;
577 dp_pl0_out0: endpoint {
578 remote-endpoint = <&vencoder_in>;
579 };
580 };
581 };
582 };
583
584 pl1: pipeline@1 {
585 reg = <1>;
Boyan Karatotev95562762023-11-15 11:54:33 +0000586 DPU_CLK_ATTR3;
Usama Arifbec5afd2020-04-17 16:13:39 +0100587 pl_id = <1>;
588 ports {
589 #address-cells = <1>;
590 #size-cells = <0>;
591 port@0 {
592 reg = <0>;
593 };
594 };
595 };
596 };
Arunachalam Ganapathyc44e43d2020-11-17 15:05:01 +0000597
Davidson K1ad2c412023-01-13 14:02:13 +0530598 /*
599 * L3 cache in the DSU is the Memory System Component (MSC)
600 * The MPAM registers are accessed through utility bus in the DSU
601 */
602 msc0 {
603 compatible = "arm,mpam-msc";
Boyan Karatotev6ed3bf62023-07-07 13:33:19 +0000604 reg = <MPAM_ADDR 0x0 0x2000>;
Davidson K1ad2c412023-01-13 14:02:13 +0530605 };
606
Davidson K65361052021-10-13 18:49:41 +0530607 ete0 {
608 compatible = "arm,embedded-trace-extension";
609 cpu = <&CPU0>;
610 };
611
612 ete1 {
613 compatible = "arm,embedded-trace-extension";
614 cpu = <&CPU1>;
615 };
616
617 ete2 {
618 compatible = "arm,embedded-trace-extension";
619 cpu = <&CPU2>;
620 };
621
622 ete3 {
623 compatible = "arm,embedded-trace-extension";
624 cpu = <&CPU3>;
625 };
626
627 ete4 {
628 compatible = "arm,embedded-trace-extension";
629 cpu = <&CPU4>;
630 };
631
632 ete5 {
633 compatible = "arm,embedded-trace-extension";
634 cpu = <&CPU5>;
635 };
636
637 ete6 {
638 compatible = "arm,embedded-trace-extension";
639 cpu = <&CPU6>;
640 };
641
642 ete7 {
643 compatible = "arm,embedded-trace-extension";
644 cpu = <&CPU7>;
645 };
646
Boyan Karatotev13b8e742023-11-14 13:57:56 +0000647 trbe {
Davidson K65361052021-10-13 18:49:41 +0530648 compatible = "arm,trace-buffer-extension";
Jagdish Gediyabd6755d2024-04-23 12:06:47 +0100649 interrupts = <GIC_PPI 2 IRQ_TYPE_LEVEL_LOW 0>;
Davidson K65361052021-10-13 18:49:41 +0530650 };
Arunachalam Ganapathy63128dc2022-04-11 14:43:15 +0100651
652 trusty {
653 #size-cells = <0x02>;
654 #address-cells = <0x02>;
655 ranges = <0x00>;
656 compatible = "android,trusty-v1";
657
658 virtio {
659 compatible = "android,trusty-virtio-v1";
660 };
661
662 test {
663 compatible = "android,trusty-test-v1";
664 };
665
666 log {
667 compatible = "android,trusty-log-v1";
668 };
669
670 irq {
671 ipi-range = <0x08 0x0f 0x08>;
672 interrupt-ranges = <0x00 0x0f 0x00 0x10 0x1f 0x01 0x20 0x3f 0x02>;
673 interrupt-templates = <0x01 0x00 0x8001 0x01 0x01 0x04 0x8001 0x01 0x00 0x04>;
674 compatible = "android,trusty-irq-v1";
675 };
676 };
Boyan Karatotevd2ca2872023-11-28 16:08:52 +0000677
678 /* used in U-boot, Linux doesn't care */
679 arm_ffa {
680 compatible = "arm,ffa";
681 method = "smc";
682 };
Usama Arifbec5afd2020-04-17 16:13:39 +0100683};