blob: fba904b0d441c96aa5b272cb23466059b552b636 [file] [log] [blame]
Manoj Kumar99529702021-09-15 12:42:49 +05301/*
Patrik Berglund785c7bc2023-02-20 11:52:39 +00002 * Copyright (c) 2021-2023, Arm Limited. All rights reserved.
Manoj Kumar99529702021-09-15 12:42:49 +05303 *
4 * SPDX-License-Identifier: BSD-3-Clause
5 */
6
7/dts-v1/;
8#include "morello.dtsi"
Werner Lewis0d48a312023-04-25 11:29:17 +01009#include "morello-coresight.dtsi"
Manoj Kumar99529702021-09-15 12:42:49 +053010
11/ {
Andre Przywara60b126a2022-03-24 11:55:57 +000012 model = "Arm Morello System Development Platform";
Manoj Kumar99529702021-09-15 12:42:49 +053013
14 chosen {
Andre Przywara48eee8f2022-03-24 16:14:28 +000015 stdout-path = "serial0:115200n8";
Manoj Kumar99529702021-09-15 12:42:49 +053016 };
17
18 reserved-memory {
19 #address-cells = <2>;
20 #size-cells = <2>;
21 ranges;
22
23 secure-firmware@ff000000 {
24 reg = <0 0xff000000 0 0x01000000>;
25 no-map;
26 };
27 };
28
sahilcb397d62023-05-25 13:47:13 +053029 /*
30 * The timings below are just to demonstrate working cpuidle.
31 * These values may be inaccurate.
32 */
33 idle-states {
34 entry-method = "psci";
35
36 cluster_sleep: cluster-sleep {
37 compatible = "arm,idle-state";
38 arm,psci-suspend-param = <0x40000022>;
39 local-timer-stop;
40 entry-latency-us = <500>;
41 exit-latency-us = <1000>;
42 min-residency-us = <2500>;
43 };
44
45 cpu_sleep: cpu-sleep {
46 compatible = "arm,idle-state";
47 arm,psci-suspend-param = <0x40000002>;
48 local-timer-stop;
49 entry-latency-us = <150>;
50 exit-latency-us = <300>;
51 min-residency-us = <200>;
52 };
53 };
54
Manoj Kumar99529702021-09-15 12:42:49 +053055 cpus {
56 #address-cells = <2>;
57 #size-cells = <0>;
Werner Lewis0d48a312023-04-25 11:29:17 +010058 cpu0: cpu0@0 {
Manoj Kumar99529702021-09-15 12:42:49 +053059 compatible = "arm,armv8";
60 reg = <0x0 0x0>;
61 device_type = "cpu";
62 enable-method = "psci";
Anurag Koulb7682b42021-12-03 10:16:47 +000063 clocks = <&scmi_dvfs 0>;
Anurag Koul15c159f2022-09-13 17:22:17 +010064 operating-points = <
65 /* kHz uV */
66 2600000 925000
67 2400000 875000
68 2200000 825000
69 2000000 775000
70 1800000 750000
71 >;
72 #cooling-cells = <2>;
sahilcb397d62023-05-25 13:47:13 +053073 cpu-idle-states = <&cpu_sleep &cluster_sleep>;
Manoj Kumar99529702021-09-15 12:42:49 +053074 };
Werner Lewis0d48a312023-04-25 11:29:17 +010075 cpu1: cpu1@100 {
Manoj Kumar99529702021-09-15 12:42:49 +053076 compatible = "arm,armv8";
77 reg = <0x0 0x100>;
78 device_type = "cpu";
79 enable-method = "psci";
Anurag Koulb7682b42021-12-03 10:16:47 +000080 clocks = <&scmi_dvfs 0>;
Anurag Koul15c159f2022-09-13 17:22:17 +010081 operating-points = <
82 /* kHz uV */
83 2600000 925000
84 2400000 875000
85 2200000 825000
86 2000000 775000
87 1800000 750000
88 >;
89 #cooling-cells = <2>;
sahilcb397d62023-05-25 13:47:13 +053090 cpu-idle-states = <&cpu_sleep &cluster_sleep>;
Manoj Kumar99529702021-09-15 12:42:49 +053091 };
Werner Lewis0d48a312023-04-25 11:29:17 +010092 cpu2: cpu2@10000 {
Manoj Kumar99529702021-09-15 12:42:49 +053093 compatible = "arm,armv8";
94 reg = <0x0 0x10000>;
95 device_type = "cpu";
96 enable-method = "psci";
Anurag Koulb7682b42021-12-03 10:16:47 +000097 clocks = <&scmi_dvfs 1>;
Anurag Koul15c159f2022-09-13 17:22:17 +010098 operating-points = <
99 /* kHz uV */
100 2600000 925000
101 2400000 875000
102 2200000 825000
103 2000000 775000
104 1800000 750000
105 >;
106 #cooling-cells = <2>;
sahilcb397d62023-05-25 13:47:13 +0530107 cpu-idle-states = <&cpu_sleep &cluster_sleep>;
Manoj Kumar99529702021-09-15 12:42:49 +0530108 };
Werner Lewis0d48a312023-04-25 11:29:17 +0100109 cpu3: cpu3@10100 {
Manoj Kumar99529702021-09-15 12:42:49 +0530110 compatible = "arm,armv8";
111 reg = <0x0 0x10100>;
112 device_type = "cpu";
113 enable-method = "psci";
Anurag Koulb7682b42021-12-03 10:16:47 +0000114 clocks = <&scmi_dvfs 1>;
Anurag Koul15c159f2022-09-13 17:22:17 +0100115 operating-points = <
116 /* kHz uV */
117 2600000 925000
118 2400000 875000
119 2200000 825000
120 2000000 775000
121 1800000 750000
122 >;
123 #cooling-cells = <2>;
sahilcb397d62023-05-25 13:47:13 +0530124 cpu-idle-states = <&cpu_sleep &cluster_sleep>;
Manoj Kumar99529702021-09-15 12:42:49 +0530125 };
126 };
127
128 /* The first bank of memory, memory map is actually provided by UEFI. */
129 memory@80000000 {
Manoj Kumar99529702021-09-15 12:42:49 +0530130 device_type = "memory";
131 /* [0x80000000-0xffffffff] */
132 reg = <0x00000000 0x80000000 0x0 0x7F000000>;
133 };
134
135 memory@8080000000 {
Manoj Kumar99529702021-09-15 12:42:49 +0530136 device_type = "memory";
137 /* [0x8080000000-0x83f7ffffff] */
138 reg = <0x00000080 0x80000000 0x3 0x78000000>;
139 };
140
141 smmu_pcie: iommu@4f400000 {
142 compatible = "arm,smmu-v3";
143 reg = <0 0x4f400000 0 0x40000>;
144 interrupts = <GIC_SPI 235 IRQ_TYPE_EDGE_RISING>,
Andre Przywara89d45382022-03-24 11:56:30 +0000145 <GIC_SPI 237 IRQ_TYPE_EDGE_RISING>,
Manoj Kumar99529702021-09-15 12:42:49 +0530146 <GIC_SPI 40 IRQ_TYPE_EDGE_RISING>,
Andre Przywara89d45382022-03-24 11:56:30 +0000147 <GIC_SPI 236 IRQ_TYPE_EDGE_RISING>;
148 interrupt-names = "eventq", "gerror", "priq", "cmdq-sync";
Manoj Kumar99529702021-09-15 12:42:49 +0530149 msi-parent = <&its2 0>;
150 #iommu-cells = <1>;
151 dma-coherent;
152 };
153
154 pcie_ctlr: pcie@28c0000000 {
155 compatible = "pci-host-ecam-generic";
156 device_type = "pci";
157 reg = <0x28 0xC0000000 0 0x10000000>;
158 bus-range = <0 255>;
159 linux,pci-domain = <0>;
160 #address-cells = <3>;
161 #size-cells = <2>;
162 dma-coherent;
163 ranges = <0x01000000 0x00 0x00000000 0x00 0x6F000000 0x00 0x00800000>,
164 <0x02000000 0x00 0x60000000 0x00 0x60000000 0x00 0x0F000000>,
165 <0x42000000 0x09 0x00000000 0x09 0x00000000 0x1F 0xC0000000>;
166 #interrupt-cells = <1>;
167 interrupt-map-mask = <0 0 0 7>;
168 interrupt-map = <0 0 0 1 &gic 0 0 0 169 IRQ_TYPE_LEVEL_HIGH>,
169 <0 0 0 2 &gic 0 0 0 170 IRQ_TYPE_LEVEL_HIGH>,
170 <0 0 0 3 &gic 0 0 0 171 IRQ_TYPE_LEVEL_HIGH>,
171 <0 0 0 4 &gic 0 0 0 172 IRQ_TYPE_LEVEL_HIGH>;
172 msi-map = <0 &its_pcie 0 0x10000>;
173 iommu-map = <0 &smmu_pcie 0 0x10000>;
174 status = "okay";
175 };
176
177 smmu_ccix: iommu@4f000000 {
178 compatible = "arm,smmu-v3";
179 reg = <0 0x4f000000 0 0x40000>;
180 interrupts = <GIC_SPI 228 IRQ_TYPE_EDGE_RISING>,
Andre Przywara89d45382022-03-24 11:56:30 +0000181 <GIC_SPI 230 IRQ_TYPE_EDGE_RISING>,
Manoj Kumar99529702021-09-15 12:42:49 +0530182 <GIC_SPI 41 IRQ_TYPE_EDGE_RISING>,
Andre Przywara89d45382022-03-24 11:56:30 +0000183 <GIC_SPI 229 IRQ_TYPE_EDGE_RISING>;
184 interrupt-names = "eventq", "gerror", "priq", "cmdq-sync";
Manoj Kumar99529702021-09-15 12:42:49 +0530185 msi-parent = <&its1 0>;
186 #iommu-cells = <1>;
187 dma-coherent;
188 };
189
190 ccix_pcie_ctlr: pcie@4fc0000000 {
191 compatible = "pci-host-ecam-generic";
192 device_type = "pci";
193 reg = <0x4F 0xC0000000 0 0x10000000>;
194 bus-range = <0 255>;
195 linux,pci-domain = <1>;
196 #address-cells = <3>;
197 #size-cells = <2>;
198 dma-coherent;
199 ranges = <0x01000000 0x00 0x00000000 0x00 0x7F000000 0x00 0x00800000>,
200 <0x02000000 0x00 0x70000000 0x00 0x70000000 0x00 0x0F000000>,
201 <0x42000000 0x30 0x00000000 0x30 0x00000000 0x1F 0xC0000000>;
202 #interrupt-cells = <1>;
203 interrupt-map-mask = <0 0 0 7>;
204 interrupt-map = <0 0 0 1 &gic 0 0 0 201 IRQ_TYPE_LEVEL_HIGH>,
205 <0 0 0 2 &gic 0 0 0 202 IRQ_TYPE_LEVEL_HIGH>,
206 <0 0 0 3 &gic 0 0 0 203 IRQ_TYPE_LEVEL_HIGH>,
207 <0 0 0 4 &gic 0 0 0 204 IRQ_TYPE_LEVEL_HIGH>;
208 msi-map = <0 &its_ccix 0 0x10000>;
209 iommu-map = <0 &smmu_ccix 0 0x10000>;
210 status = "okay";
211 };
212
213 smmu_dp: iommu@2ce00000 {
214 compatible = "arm,smmu-v3";
215 reg = <0 0x2ce00000 0 0x40000>;
216 interrupts = <GIC_SPI 76 IRQ_TYPE_EDGE_RISING>,
Andre Przywarabe8d7fb2022-03-24 11:57:17 +0000217 <GIC_SPI 80 IRQ_TYPE_EDGE_RISING>,
218 <GIC_SPI 78 IRQ_TYPE_EDGE_RISING>;
219 interrupt-names = "eventq", "gerror", "cmdq-sync";
Manoj Kumar99529702021-09-15 12:42:49 +0530220 #iommu-cells = <1>;
221 };
222
223 dp0: display@2cc00000 {
224 #address-cells = <1>;
225 #size-cells = <0>;
Andre Przywarab473d8c2022-03-24 11:57:37 +0000226 compatible = "arm,mali-d32", "arm,mali-d71";
Manoj Kumar99529702021-09-15 12:42:49 +0530227 reg = <0 0x2cc00000 0 0x20000>;
228 interrupts = <0 69 4>;
229 interrupt-names = "DPU";
230 clocks = <&dpu_aclk>;
231 clock-names = "aclk";
232 iommus = <&smmu_dp 0>, <&smmu_dp 1>, <&smmu_dp 2>, <&smmu_dp 3>,
233 <&smmu_dp 8>;
234
235 pl0: pipeline@0 {
236 reg = <0>;
Anurag Koulb7682b42021-12-03 10:16:47 +0000237 clocks = <&scmi_clk 1>;
Manoj Kumar99529702021-09-15 12:42:49 +0530238 clock-names = "pxclk";
239 pl_id = <0>;
240 ports {
241 #address-cells = <1>;
242 #size-cells = <0>;
243 port@0 {
244 reg = <0>;
245 dp_pl0_out0: endpoint {
246 remote-endpoint = <&tda998x_0_input>;
247 };
248 };
249 };
250 };
251 };
252
253 i2c@1c0f0000 {
254 compatible = "cdns,i2c-r1p14";
255 reg = <0x0 0x1c0f0000 0x0 0x1000>;
256 #address-cells = <1>;
257 #size-cells = <0>;
258 clock-frequency = <100000>;
259 i2c-sda-hold-time-ns = <500>;
260 interrupts = <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>;
261 clocks = <&dpu_aclk>;
262
Faiz Abbas57b7b0c2022-02-10 17:01:39 +0000263 hdmi_tx: hdmi-transmitter@70 {
Manoj Kumar99529702021-09-15 12:42:49 +0530264 compatible = "nxp,tda998x";
265 reg = <0x70>;
266 video-ports = <0x234501>;
Faiz Abbas57b7b0c2022-02-10 17:01:39 +0000267 #sound-dai-cells = <0>;
268 audio-ports = <2 0x03>;
Manoj Kumar99529702021-09-15 12:42:49 +0530269 port {
270 tda998x_0_input: endpoint {
271 remote-endpoint = <&dp_pl0_out0>;
272 };
273 };
274 };
275 };
276
277 dpu_aclk: dpu_aclk {
278 /* 77.1 MHz derived from 24 MHz reference clock */
279 compatible = "fixed-clock";
280 #clock-cells = <0>;
281 clock-frequency = <350000000>;
282 clock-output-names = "aclk";
283 };
284
Patrik Berglund785c7bc2023-02-20 11:52:39 +0000285 gpu@2d000000 {
286 compatible = "arm,mali-bifrost";
287 reg = <0x0 0x2d000000 0x0 0x4000>;
288 interrupts =
289 <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>,
290 <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>,
291 <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>;
292 interrupt-names =
293 "gpu",
294 "job",
295 "mmu";
296 clocks = <&clk_gpu>;
297 clock-names = "clk_mali";
298 status = "okay";
299 };
300
301 clk_gpu: clk_gpu {
302 compatible = "fixed-clock";
303 #clock-cells = <0>;
304 clock-frequency = <650000000>;
305 clock-output-names = "clk_mali";
306 };
307
Anurag Koulb7682b42021-12-03 10:16:47 +0000308 firmware {
309 scmi {
310 compatible = "arm,scmi";
311 mbox-names = "tx", "rx";
Andre Przywara28a21962022-03-24 11:58:10 +0000312 mboxes = <&mailbox 1 0>, <&mailbox 1 1>;
313 shmem = <&cpu_scp_hpri0>, <&cpu_scp_hpri1>;
Anurag Koulb7682b42021-12-03 10:16:47 +0000314 #address-cells = <1>;
315 #size-cells = <0>;
316 scmi_dvfs: protocol@13 {
317 reg = <0x13>;
318 #clock-cells = <1>;
319 };
320 scmi_clk: protocol@14 {
321 reg = <0x14>;
322 #clock-cells = <1>;
323 };
Anurag Koul15c159f2022-09-13 17:22:17 +0100324 scmi_sensor: protocol@15 {
325 reg = <0x15>;
326 #thermal-sensor-cells = <1>;
327 };
328 };
329 };
330
331 thermal-zones {
332 clus0-thermal {
333 polling-delay-passive = <200>; /* ms */
334 polling-delay = <1000>; /* ms */
335
336 thermal-sensors = <&scmi_sensor 0>;
337
338 trips {
339 clus0_alarm: clus0-alarm {
340 temperature = <85000>; /* millicelsius */
341 hysteresis = <1000>; /* millicelsius */
342 type = "passive";
343 };
344 clus0_shutdown: clus0-shutdown {
345 temperature = <90000>; /* millicelsius */
346 hysteresis = <0>; /* millicelsius */
347 type = "critical";
348 };
349 };
350
351 cooling-maps {
352 map0 {
353 trip = <&clus0_alarm>;
354 cooling-device = <&cpu0 4 4>, <&cpu1 4 4>;
355 };
356 };
357 };
358 clus1-thermal {
359 polling-delay-passive = <200>; /* ms */
360 polling-delay = <1000>; /* ms */
361
362 thermal-sensors = <&scmi_sensor 1>;
363 trips {
364 clus1_alarm: clus1-alarm {
365 temperature = <85000>; /* millicelsius */
366 hysteresis = <1000>; /* millicelsius */
367 type = "passive";
368 };
369 clus1_shutdown: clus1-shutdown {
370 temperature = <90000>; /* millicelsius */
371 hysteresis = <0>; /* millicelsius */
372 type = "critical";
373 };
374 };
375
376 cooling-maps {
377 map0 {
378 trip = <&clus1_alarm>;
379 cooling-device = <&cpu2 4 4>, <&cpu3 4 4>;
380 };
381 };
382 };
383 sys-thermal {
384 polling-delay-passive = <200>; /* ms */
385 polling-delay = <1000>; /* ms */
386
387 thermal-sensors = <&scmi_sensor 2>;
388 trips {
389 sys_alarm: sys-alarm {
390 temperature = <85000>; /* millicelsius */
391 hysteresis = <1000>; /* millicelsius */
392 type = "passive";
393 };
394 sys_shutdown: sys-shutdown {
395 temperature = <90000>; /* millicelsius */
396 hysteresis = <0>; /* millicelsius */
397 type = "critical";
398 };
399 };
400
401 cooling-maps {
402 map0 {
403 trip = <&sys_alarm>;
404 cooling-device = <&cpu0 4 4>,
405 <&cpu1 4 4>,
406 <&cpu2 4 4>,
407 <&cpu3 4 4>;
408 };
409 };
Anurag Koulb7682b42021-12-03 10:16:47 +0000410 };
Manoj Kumar99529702021-09-15 12:42:49 +0530411 };
Faiz Abbas57b7b0c2022-02-10 17:01:39 +0000412
413 iofpga_i2s: xlnx-i2s@1c150000 {
414 #sound-dai-cells = <0>;
415 compatible = "xlnx,i2s-transmitter-1.0";
416 #address-cells = <1>;
417 #size-cells = <0>;
418 reg = <0x0 0x1c150000 0x0 0x10000>;
419 xlnx,dwidth = <0x18>;
420 xlnx,num-channels = <1>;
421 };
422
423 audio_formatter: audio-formatter@1c100000 {
424 compatible = "xlnx,audio-formatter-1.0";
425 reg = <0x0 0x1c000000 0x0 0x10000>;
426 #sound-dai-cells = <0>;
427 interrupt-names = "irq_mm2s";
428 interrupts = <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>;
429 clock-names = "s_axi_lite_aclk", "aud_mclk", "m_axis_mm2s_aclk";
430 clocks = <&soc_refclk85mhz>, <&i2s_audclk>, <&soc_refclk85mhz>;
431 };
432
433 sound {
434 compatible = "simple-audio-card";
435 simple-audio-card,format = "i2s";
436 simple-audio-card,bitclock-master = <&audio_master>;
437 simple-audio-card,frame-master = <&audio_master>;
438 audio_master: simple-audio-card,cpu {
439 sound-dai = <&iofpga_i2s>;
440 clocks = <&i2s_audclk>;
441 };
442
443 simple-audio-card,codec {
444 sound-dai = <&hdmi_tx>;
445 };
446
447 simple-audio-card,plat {
448 sound-dai = <&audio_formatter>;
449 };
450 };
451
452 i2s_audclk: i2s_audclk {
453 compatible = "fixed-clock";
454 #clock-cells = <0>;
455 clock-frequency = <12288000>;
456 clock-output-names = "iofpga:i2s_audclk";
457 };
Manoj Kumar99529702021-09-15 12:42:49 +0530458};
459
460&gic {
461 reg = <0x0 0x30000000 0 0x10000>, /* GICD */
462 <0x0 0x300c0000 0 0x80000>; /* GICR */
463 interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
464
Andre Przywaraac167722022-03-24 11:58:46 +0000465 its1: msi-controller@30040000 {
Manoj Kumar99529702021-09-15 12:42:49 +0530466 compatible = "arm,gic-v3-its";
467 msi-controller;
468 #msi-cells = <1>;
469 reg = <0x0 0x30040000 0x0 0x20000>;
470 };
471
Andre Przywaraac167722022-03-24 11:58:46 +0000472 its2: msi-controller@30060000 {
Manoj Kumar99529702021-09-15 12:42:49 +0530473 compatible = "arm,gic-v3-its";
474 msi-controller;
475 #msi-cells = <1>;
476 reg = <0x0 0x30060000 0x0 0x20000>;
477 };
478
Andre Przywaraac167722022-03-24 11:58:46 +0000479 its_ccix: msi-controller@30080000 {
Manoj Kumar99529702021-09-15 12:42:49 +0530480 compatible = "arm,gic-v3-its";
481 msi-controller;
482 #msi-cells = <1>;
483 reg = <0x0 0x30080000 0x0 0x20000>;
484 };
485
Andre Przywaraac167722022-03-24 11:58:46 +0000486 its_pcie: msi-controller@300a0000 {
Manoj Kumar99529702021-09-15 12:42:49 +0530487 compatible = "arm,gic-v3-its";
488 msi-controller;
489 #msi-cells = <1>;
490 reg = <0x0 0x300a0000 0x0 0x20000>;
491 };
492};