blob: 92afb7687136e53839171469c52d314e84cccfac [file] [log] [blame]
Usama Arifbec5afd2020-04-17 16:13:39 +01001/*
Usama Ariffdfd2502021-03-30 16:39:19 +01002 * Copyright (c) 2020-2021, 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
9/ {
10 compatible = "arm,tc0";
11 interrupt-parent = <&gic>;
12 #address-cells = <2>;
13 #size-cells = <2>;
14
15 aliases {
16 serial0 = &soc_uart0;
17 };
18
19 chosen {
Nikos Nikoleris35800bd2021-01-21 13:50:25 +000020 stdout-path = "serial0:115200n8";
Usama Arifbec5afd2020-04-17 16:13:39 +010021 };
22
23 cpus {
24 #address-cells = <1>;
25 #size-cells = <0>;
26
27 cpu-map {
28 cluster0 {
29 core0 {
30 cpu = <&CPU0>;
31 };
32 core1 {
33 cpu = <&CPU1>;
34 };
35 core2 {
36 cpu = <&CPU2>;
37 };
38 core3 {
39 cpu = <&CPU3>;
40 };
Avinash Mehtaf68a0842020-10-28 16:43:28 +000041 core4 {
42 cpu = <&CPU4>;
43 };
44 core5 {
45 cpu = <&CPU5>;
46 };
47 core6 {
48 cpu = <&CPU6>;
49 };
50 core7 {
51 cpu = <&CPU7>;
52 };
Usama Arifbec5afd2020-04-17 16:13:39 +010053 };
54 };
55
Usama Arif57900782020-08-12 17:14:37 +010056 /*
57 * The timings below are just to demonstrate working cpuidle.
58 * These values may be inaccurate.
59 */
60 idle-states {
61 entry-method = "arm,psci";
62
63 CPU_SLEEP_0: cpu-sleep-0 {
64 compatible = "arm,idle-state";
65 arm,psci-suspend-param = <0x0010000>;
66 local-timer-stop;
67 entry-latency-us = <300>;
68 exit-latency-us = <1200>;
69 min-residency-us = <2000>;
70 };
71 CLUSTER_SLEEP_0: cluster-sleep-0 {
72 compatible = "arm,idle-state";
73 arm,psci-suspend-param = <0x1010000>;
74 local-timer-stop;
75 entry-latency-us = <400>;
76 exit-latency-us = <1200>;
77 min-residency-us = <2500>;
78 };
79 };
80
Usama Arifbec5afd2020-04-17 16:13:39 +010081 CPU0:cpu@0 {
82 device_type = "cpu";
83 compatible = "arm,armv8";
84 reg = <0x0>;
85 enable-method = "psci";
86 clocks = <&scmi_dvfs 0>;
Usama Arif57900782020-08-12 17:14:37 +010087 cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
Usama Arifecbc8462021-06-14 12:38:37 +010088 capacity-dmips-mhz = <406>;
Usama Arifbec5afd2020-04-17 16:13:39 +010089 };
90
91 CPU1:cpu@100 {
92 device_type = "cpu";
93 compatible = "arm,armv8";
94 reg = <0x100>;
95 enable-method = "psci";
96 clocks = <&scmi_dvfs 0>;
Usama Arif57900782020-08-12 17:14:37 +010097 cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
Usama Arifecbc8462021-06-14 12:38:37 +010098 capacity-dmips-mhz = <406>;
Usama Arifbec5afd2020-04-17 16:13:39 +010099 };
100
101 CPU2:cpu@200 {
102 device_type = "cpu";
103 compatible = "arm,armv8";
104 reg = <0x200>;
105 enable-method = "psci";
106 clocks = <&scmi_dvfs 0>;
Usama Arif57900782020-08-12 17:14:37 +0100107 cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
Usama Arifecbc8462021-06-14 12:38:37 +0100108 capacity-dmips-mhz = <406>;
Usama Arifbec5afd2020-04-17 16:13:39 +0100109 };
110
111 CPU3:cpu@300 {
112 device_type = "cpu";
113 compatible = "arm,armv8";
114 reg = <0x300>;
115 enable-method = "psci";
116 clocks = <&scmi_dvfs 0>;
Usama Arif57900782020-08-12 17:14:37 +0100117 cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
Usama Arifecbc8462021-06-14 12:38:37 +0100118 capacity-dmips-mhz = <406>;
Usama Arifbec5afd2020-04-17 16:13:39 +0100119 };
120
Avinash Mehtaf68a0842020-10-28 16:43:28 +0000121 CPU4:cpu@400 {
122 device_type = "cpu";
123 compatible = "arm,armv8";
124 reg = <0x400>;
125 enable-method = "psci";
Usama Arif75edb752021-02-03 15:40:46 +0000126 clocks = <&scmi_dvfs 1>;
Avinash Mehtaf68a0842020-10-28 16:43:28 +0000127 cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
Usama Arifecbc8462021-06-14 12:38:37 +0100128 capacity-dmips-mhz = <912>;
Avinash Mehtaf68a0842020-10-28 16:43:28 +0000129 };
130
131 CPU5:cpu@500 {
132 device_type = "cpu";
133 compatible = "arm,armv8";
134 reg = <0x500>;
135 enable-method = "psci";
Usama Arif75edb752021-02-03 15:40:46 +0000136 clocks = <&scmi_dvfs 1>;
Avinash Mehtaf68a0842020-10-28 16:43:28 +0000137 cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
Usama Arifecbc8462021-06-14 12:38:37 +0100138 capacity-dmips-mhz = <912>;
Avinash Mehtaf68a0842020-10-28 16:43:28 +0000139 };
140
141 CPU6:cpu@600 {
142 device_type = "cpu";
143 compatible = "arm,armv8";
144 reg = <0x600>;
145 enable-method = "psci";
Usama Arif75edb752021-02-03 15:40:46 +0000146 clocks = <&scmi_dvfs 1>;
Avinash Mehtaf68a0842020-10-28 16:43:28 +0000147 cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
Usama Arifecbc8462021-06-14 12:38:37 +0100148 capacity-dmips-mhz = <912>;
Avinash Mehtaf68a0842020-10-28 16:43:28 +0000149 };
150
151 CPU7:cpu@700 {
152 device_type = "cpu";
153 compatible = "arm,armv8";
154 reg = <0x700>;
155 enable-method = "psci";
Usama Arif410d50d2021-04-07 11:48:22 +0100156 clocks = <&scmi_dvfs 2>;
Avinash Mehtaf68a0842020-10-28 16:43:28 +0000157 cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
Usama Arifecbc8462021-06-14 12:38:37 +0100158 capacity-dmips-mhz = <1024>;
Avinash Mehtaf68a0842020-10-28 16:43:28 +0000159 };
160
Usama Arifbec5afd2020-04-17 16:13:39 +0100161 };
162
163 memory@80000000 {
164 device_type = "memory";
Arunachalam Ganapathy81da5582020-09-22 12:47:33 +0100165 reg = <0x0 0x80000000 0x0 0x7d000000>;
Usama Arifbec5afd2020-04-17 16:13:39 +0100166 };
167
Arunachalam Ganapathy948bb442020-12-14 12:31:32 +0000168 reserved-memory {
169 #address-cells = <2>;
170 #size-cells = <2>;
171 ranges;
172
173 optee@0xfce00000 {
174 reg = <0x00000000 0xfce00000 0 0x00200000>;
175 no-map;
176 };
177 };
178
Usama Arifbec5afd2020-04-17 16:13:39 +0100179 psci {
Usama Arif7a64bfa2021-05-27 20:09:17 +0100180 compatible = "arm,psci-1.0", "arm,psci-0.2";
Usama Arifbec5afd2020-04-17 16:13:39 +0100181 method = "smc";
182 };
183
184 sram: sram@6000000 {
185 compatible = "mmio-sram";
186 reg = <0x0 0x06000000 0x0 0x8000>;
187
188 #address-cells = <1>;
189 #size-cells = <1>;
190 ranges = <0 0x0 0x06000000 0x8000>;
191
192 cpu_scp_scmi_mem: scp-shmem@0 {
193 compatible = "arm,scmi-shmem";
194 reg = <0x0 0x80>;
195 };
196 };
197
198 mbox_db_rx: mhu@45010000 {
Usama Arifb315c702021-05-27 20:01:39 +0100199 compatible = "arm,mhuv2-rx","arm,primecell";
Usama Arifbec5afd2020-04-17 16:13:39 +0100200 reg = <0x0 0x45010000 0x0 0x1000>;
201 clocks = <&soc_refclk100mhz>;
202 clock-names = "apb_pclk";
Usama Arifb315c702021-05-27 20:01:39 +0100203 #mbox-cells = <2>;
Usama Arif884f40d2020-08-18 12:56:44 +0100204 interrupts = <0 317 4>;
Usama Arifbec5afd2020-04-17 16:13:39 +0100205 interrupt-names = "mhu_rx";
206 mhu-protocol = "doorbell";
Usama Arifb315c702021-05-27 20:01:39 +0100207 arm,mhuv2-protocols = <0 1>;
Usama Arifbec5afd2020-04-17 16:13:39 +0100208 };
209
210 mbox_db_tx: mhu@45000000 {
Usama Arifb315c702021-05-27 20:01:39 +0100211 compatible = "arm,mhuv2-tx","arm,primecell";
Usama Arifbec5afd2020-04-17 16:13:39 +0100212 reg = <0x0 0x45000000 0x0 0x1000>;
213 clocks = <&soc_refclk100mhz>;
214 clock-names = "apb_pclk";
Usama Arifb315c702021-05-27 20:01:39 +0100215 #mbox-cells = <2>;
Usama Arifbec5afd2020-04-17 16:13:39 +0100216 interrupt-names = "mhu_tx";
217 mhu-protocol = "doorbell";
Usama Arifb315c702021-05-27 20:01:39 +0100218 arm,mhuv2-protocols = <0 1>;
Usama Arifbec5afd2020-04-17 16:13:39 +0100219 };
220
221 scmi {
222 compatible = "arm,scmi";
Usama Arifbec5afd2020-04-17 16:13:39 +0100223 mbox-names = "tx", "rx";
Usama Arifb315c702021-05-27 20:01:39 +0100224 mboxes = <&mbox_db_tx 0 0 &mbox_db_rx 0 0 >;
Usama Arifbec5afd2020-04-17 16:13:39 +0100225 shmem = <&cpu_scp_scmi_mem &cpu_scp_scmi_mem>;
226 #address-cells = <1>;
227 #size-cells = <0>;
228
229 scmi_dvfs: protocol@13 {
230 reg = <0x13>;
231 #clock-cells = <1>;
232 };
233
234 scmi_clk: protocol@14 {
235 reg = <0x14>;
236 #clock-cells = <1>;
237 };
238 };
239
240 gic: interrupt-controller@2c010000 {
241 compatible = "arm,gic-600", "arm,gic-v3";
242 #address-cells = <2>;
243 #interrupt-cells = <3>;
244 #size-cells = <2>;
245 ranges;
246 interrupt-controller;
247 reg = <0x0 0x30000000 0 0x10000>, /* GICD */
Usama Ariffdfd2502021-03-30 16:39:19 +0100248 <0x0 0x30080000 0 0x200000>; /* GICR */
Usama Arifbec5afd2020-04-17 16:13:39 +0100249 interrupts = <0x1 0x9 0x4>;
250 };
251
252 timer {
253 compatible = "arm,armv8-timer";
254 interrupts = <0x1 13 0x8>,
255 <0x1 14 0x8>,
256 <0x1 11 0x8>,
257 <0x1 10 0x8>;
258 };
259
260 soc_refclk100mhz: refclk100mhz {
261 compatible = "fixed-clock";
262 #clock-cells = <0>;
263 clock-frequency = <100000000>;
264 clock-output-names = "apb_pclk";
265 };
266
267 soc_refclk60mhz: refclk60mhz {
268 compatible = "fixed-clock";
269 #clock-cells = <0>;
270 clock-frequency = <60000000>;
271 clock-output-names = "iofpga_clk";
272 };
273
274 soc_uartclk: uartclk {
275 compatible = "fixed-clock";
276 #clock-cells = <0>;
277 clock-frequency = <50000000>;
278 clock-output-names = "uartclk";
279 };
280
281 soc_uart0: uart@7ff80000 {
282 compatible = "arm,pl011", "arm,primecell";
283 reg = <0x0 0x7ff80000 0x0 0x1000>;
284 interrupts = <0x0 116 0x4>;
285 clocks = <&soc_uartclk>, <&soc_refclk100mhz>;
286 clock-names = "uartclk", "apb_pclk";
287 status = "okay";
288 };
289
290 vencoder {
291 compatible = "drm,virtual-encoder";
292
293 port {
294 vencoder_in: endpoint {
Avinash Mehtadf71a602020-07-22 16:40:07 +0100295 remote-endpoint = <&dp_pl0_out0>;
Usama Arifbec5afd2020-04-17 16:13:39 +0100296 };
297 };
298
299 display-timings {
300 panel-timing {
301 clock-frequency = <25175000>;
302 hactive = <640>;
303 vactive = <480>;
304 hfront-porch = <16>;
305 hback-porch = <48>;
306 hsync-len = <96>;
307 vfront-porch = <10>;
308 vback-porch = <33>;
309 vsync-len = <2>;
310 };
311 };
312
313 };
314
315 hdlcd: hdlcd@7ff60000 {
316 compatible = "arm,hdlcd";
317 reg = <0x0 0x7ff60000 0x0 0x1000>;
318 interrupts = <0x0 117 0x4>;
319 clocks = <&fake_hdlcd_clk>;
320 clock-names = "pxlclk";
Avinash Mehtadf71a602020-07-22 16:40:07 +0100321 status = "disabled";
Usama Arifbec5afd2020-04-17 16:13:39 +0100322
323 port {
324 hdlcd_out: endpoint {
325 remote-endpoint = <&vencoder_in>;
326 };
327 };
328 };
329
330 fake_hdlcd_clk: fake-hdlcd-clk {
331 compatible = "fixed-clock";
332 #clock-cells = <0>;
333 clock-frequency = <25175000>;
334 clock-output-names = "pxlclk";
335 };
336
337 ethernet@18000000 {
338 compatible = "smsc,lan91c111";
339 reg = <0x0 0x18000000 0x0 0x10000>;
340 interrupts = <0 109 4>;
341 };
342
343 kmi@1c060000 {
344 compatible = "arm,pl050", "arm,primecell";
345 reg = <0x0 0x001c060000 0x0 0x1000>;
346 interrupts = <0 197 4>;
347 clocks = <&bp_clock24mhz>, <&bp_clock24mhz>;
348 clock-names = "KMIREFCLK", "apb_pclk";
349 };
350
351 kmi@1c070000 {
352 compatible = "arm,pl050", "arm,primecell";
353 reg = <0x0 0x001c070000 0x0 0x1000>;
354 interrupts = <0 103 4>;
355 clocks = <&bp_clock24mhz>, <&bp_clock24mhz>;
356 clock-names = "KMIREFCLK", "apb_pclk";
357 };
358
359 bp_clock24mhz: clock24mhz {
360 compatible = "fixed-clock";
361 #clock-cells = <0>;
362 clock-frequency = <24000000>;
363 clock-output-names = "bp:clock24mhz";
364 };
365
366 virtio_block@1c130000 {
367 compatible = "virtio,mmio";
368 reg = <0x0 0x1c130000 0x0 0x200>;
369 interrupts = <0 204 4>;
370 };
371
Usama Arif1cd56dc2020-06-10 16:27:53 +0100372 sysreg: sysreg@1c010000 {
373 compatible = "arm,vexpress-sysreg";
374 reg = <0x0 0x001c010000 0x0 0x1000>;
375 gpio-controller;
376 #gpio-cells = <2>;
377 };
378
379 fixed_3v3: v2m-3v3 {
380 compatible = "regulator-fixed";
381 regulator-name = "3V3";
382 regulator-min-microvolt = <3300000>;
383 regulator-max-microvolt = <3300000>;
384 regulator-always-on;
385 };
386
387 mmci@1c050000 {
388 compatible = "arm,pl180", "arm,primecell";
389 reg = <0x0 0x001c050000 0x0 0x1000>;
390 interrupts = <0 107 0x4>,
391 <0 108 0x4>;
392 cd-gpios = <&sysreg 0 0>;
393 wp-gpios = <&sysreg 1 0>;
394 bus-width = <8>;
395 max-frequency = <12000000>;
396 vmmc-supply = <&fixed_3v3>;
397 clocks = <&bp_clock24mhz>, <&bp_clock24mhz>;
398 clock-names = "mclk", "apb_pclk";
399 };
400
Usama Arifbec5afd2020-04-17 16:13:39 +0100401 dp0: display@2cc00000 {
402 #address-cells = <1>;
403 #size-cells = <0>;
404 compatible = "arm,mali-d71";
405 reg = <0 0x2cc00000 0 0x20000>;
406 interrupts = <0 69 4>;
407 interrupt-names = "DPU";
408 clocks = <&scmi_clk 0>;
409 clock-names = "aclk";
Usama Arifbec5afd2020-04-17 16:13:39 +0100410 pl0: pipeline@0 {
411 reg = <0>;
412 clocks = <&scmi_clk 1>;
413 clock-names = "pxclk";
414 pl_id = <0>;
415 ports {
416 #address-cells = <1>;
417 #size-cells = <0>;
418 port@0 {
419 reg = <0>;
420 dp_pl0_out0: endpoint {
421 remote-endpoint = <&vencoder_in>;
422 };
423 };
424 };
425 };
426
427 pl1: pipeline@1 {
428 reg = <1>;
429 clocks = <&scmi_clk 2>;
430 clock-names = "pxclk";
431 pl_id = <1>;
432 ports {
433 #address-cells = <1>;
434 #size-cells = <0>;
435 port@0 {
436 reg = <0>;
437 };
438 };
439 };
440 };
Arunachalam Ganapathyc44e43d2020-11-17 15:05:01 +0000441
442 ffa {
443 compatible = "arm,ffa";
444 conduit = "smc";
445 mem_share_buffer = "tx";
446 };
447
448 firmware {
449 optee {
450 compatible = "linaro,optee-tz";
451 method = "ffa";
452 };
453 };
Usama Arifbec5afd2020-04-17 16:13:39 +0100454};