blob: c17b0b33177bd7e95d729edc837d6219f9fbfda4 [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 {
Anders Dellien1509a272021-06-08 09:27:17 +010020 bootargs = "console=ttyAMA0 debug user_debug=31 earlycon=pl011,0x7ff80000 loglevel=9 androidboot.hardware=total_compute androidboot.boot_devices=1c050000.mmci ip=dhcp androidboot.selinux=permissive allow_mismatched_32bit_el0";
Nikos Nikoleris35800bd2021-01-21 13:50:25 +000021 stdout-path = "serial0:115200n8";
Usama Arifbec5afd2020-04-17 16:13:39 +010022 };
23
24 cpus {
25 #address-cells = <1>;
26 #size-cells = <0>;
27
28 cpu-map {
29 cluster0 {
30 core0 {
31 cpu = <&CPU0>;
32 };
33 core1 {
34 cpu = <&CPU1>;
35 };
36 core2 {
37 cpu = <&CPU2>;
38 };
39 core3 {
40 cpu = <&CPU3>;
41 };
Avinash Mehtaf68a0842020-10-28 16:43:28 +000042 core4 {
43 cpu = <&CPU4>;
44 };
45 core5 {
46 cpu = <&CPU5>;
47 };
48 core6 {
49 cpu = <&CPU6>;
50 };
51 core7 {
52 cpu = <&CPU7>;
53 };
Usama Arifbec5afd2020-04-17 16:13:39 +010054 };
55 };
56
Usama Arif57900782020-08-12 17:14:37 +010057 /*
58 * The timings below are just to demonstrate working cpuidle.
59 * These values may be inaccurate.
60 */
61 idle-states {
62 entry-method = "arm,psci";
63
64 CPU_SLEEP_0: cpu-sleep-0 {
65 compatible = "arm,idle-state";
66 arm,psci-suspend-param = <0x0010000>;
67 local-timer-stop;
68 entry-latency-us = <300>;
69 exit-latency-us = <1200>;
70 min-residency-us = <2000>;
71 };
72 CLUSTER_SLEEP_0: cluster-sleep-0 {
73 compatible = "arm,idle-state";
74 arm,psci-suspend-param = <0x1010000>;
75 local-timer-stop;
76 entry-latency-us = <400>;
77 exit-latency-us = <1200>;
78 min-residency-us = <2500>;
79 };
80 };
81
Usama Arifbec5afd2020-04-17 16:13:39 +010082 CPU0:cpu@0 {
83 device_type = "cpu";
84 compatible = "arm,armv8";
85 reg = <0x0>;
86 enable-method = "psci";
87 clocks = <&scmi_dvfs 0>;
Usama Arif57900782020-08-12 17:14:37 +010088 cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
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 Arifbec5afd2020-04-17 16:13:39 +010098 };
99
100 CPU2:cpu@200 {
101 device_type = "cpu";
102 compatible = "arm,armv8";
103 reg = <0x200>;
104 enable-method = "psci";
105 clocks = <&scmi_dvfs 0>;
Usama Arif57900782020-08-12 17:14:37 +0100106 cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
Usama Arifbec5afd2020-04-17 16:13:39 +0100107 };
108
109 CPU3:cpu@300 {
110 device_type = "cpu";
111 compatible = "arm,armv8";
112 reg = <0x300>;
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 Arifbec5afd2020-04-17 16:13:39 +0100116 };
117
Avinash Mehtaf68a0842020-10-28 16:43:28 +0000118 CPU4:cpu@400 {
119 device_type = "cpu";
120 compatible = "arm,armv8";
121 reg = <0x400>;
122 enable-method = "psci";
Usama Arif75edb752021-02-03 15:40:46 +0000123 clocks = <&scmi_dvfs 1>;
Avinash Mehtaf68a0842020-10-28 16:43:28 +0000124 cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
125 };
126
127 CPU5:cpu@500 {
128 device_type = "cpu";
129 compatible = "arm,armv8";
130 reg = <0x500>;
131 enable-method = "psci";
Usama Arif75edb752021-02-03 15:40:46 +0000132 clocks = <&scmi_dvfs 1>;
Avinash Mehtaf68a0842020-10-28 16:43:28 +0000133 cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
134 };
135
136 CPU6:cpu@600 {
137 device_type = "cpu";
138 compatible = "arm,armv8";
139 reg = <0x600>;
140 enable-method = "psci";
Usama Arif75edb752021-02-03 15:40:46 +0000141 clocks = <&scmi_dvfs 1>;
Avinash Mehtaf68a0842020-10-28 16:43:28 +0000142 cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
143 };
144
145 CPU7:cpu@700 {
146 device_type = "cpu";
147 compatible = "arm,armv8";
148 reg = <0x700>;
149 enable-method = "psci";
Usama Arif410d50d2021-04-07 11:48:22 +0100150 clocks = <&scmi_dvfs 2>;
Avinash Mehtaf68a0842020-10-28 16:43:28 +0000151 cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
152 };
153
Usama Arifbec5afd2020-04-17 16:13:39 +0100154 };
155
156 memory@80000000 {
157 device_type = "memory";
Arunachalam Ganapathy81da5582020-09-22 12:47:33 +0100158 reg = <0x0 0x80000000 0x0 0x7d000000>;
Usama Arifbec5afd2020-04-17 16:13:39 +0100159 };
160
Arunachalam Ganapathy948bb442020-12-14 12:31:32 +0000161 reserved-memory {
162 #address-cells = <2>;
163 #size-cells = <2>;
164 ranges;
165
166 optee@0xfce00000 {
167 reg = <0x00000000 0xfce00000 0 0x00200000>;
168 no-map;
169 };
170 };
171
Usama Arifbec5afd2020-04-17 16:13:39 +0100172 psci {
173 compatible = "arm,psci-1.0", "arm,psci-0.2", "arm,psci";
174 method = "smc";
175 };
176
177 sram: sram@6000000 {
178 compatible = "mmio-sram";
179 reg = <0x0 0x06000000 0x0 0x8000>;
180
181 #address-cells = <1>;
182 #size-cells = <1>;
183 ranges = <0 0x0 0x06000000 0x8000>;
184
185 cpu_scp_scmi_mem: scp-shmem@0 {
186 compatible = "arm,scmi-shmem";
187 reg = <0x0 0x80>;
188 };
189 };
190
191 mbox_db_rx: mhu@45010000 {
192 compatible = "arm,mhuv2","arm,primecell";
193 reg = <0x0 0x45010000 0x0 0x1000>;
194 clocks = <&soc_refclk100mhz>;
195 clock-names = "apb_pclk";
196 #mbox-cells = <1>;
Usama Arif884f40d2020-08-18 12:56:44 +0100197 interrupts = <0 317 4>;
Usama Arifbec5afd2020-04-17 16:13:39 +0100198 interrupt-names = "mhu_rx";
199 mhu-protocol = "doorbell";
200 };
201
202 mbox_db_tx: mhu@45000000 {
203 compatible = "arm,mhuv2","arm,primecell";
204 reg = <0x0 0x45000000 0x0 0x1000>;
205 clocks = <&soc_refclk100mhz>;
206 clock-names = "apb_pclk";
207 #mbox-cells = <1>;
208 interrupt-names = "mhu_tx";
209 mhu-protocol = "doorbell";
210 };
211
212 scmi {
213 compatible = "arm,scmi";
214 method = "mailbox-doorbell";
215 mbox-names = "tx", "rx";
216 mboxes = <&mbox_db_tx 0 &mbox_db_rx 0>;
217 shmem = <&cpu_scp_scmi_mem &cpu_scp_scmi_mem>;
218 #address-cells = <1>;
219 #size-cells = <0>;
220
221 scmi_dvfs: protocol@13 {
222 reg = <0x13>;
223 #clock-cells = <1>;
224 };
225
226 scmi_clk: protocol@14 {
227 reg = <0x14>;
228 #clock-cells = <1>;
229 };
230 };
231
232 gic: interrupt-controller@2c010000 {
233 compatible = "arm,gic-600", "arm,gic-v3";
234 #address-cells = <2>;
235 #interrupt-cells = <3>;
236 #size-cells = <2>;
237 ranges;
238 interrupt-controller;
239 reg = <0x0 0x30000000 0 0x10000>, /* GICD */
Usama Ariffdfd2502021-03-30 16:39:19 +0100240 <0x0 0x30080000 0 0x200000>; /* GICR */
Usama Arifbec5afd2020-04-17 16:13:39 +0100241 interrupts = <0x1 0x9 0x4>;
242 };
243
244 timer {
245 compatible = "arm,armv8-timer";
246 interrupts = <0x1 13 0x8>,
247 <0x1 14 0x8>,
248 <0x1 11 0x8>,
249 <0x1 10 0x8>;
250 };
251
252 soc_refclk100mhz: refclk100mhz {
253 compatible = "fixed-clock";
254 #clock-cells = <0>;
255 clock-frequency = <100000000>;
256 clock-output-names = "apb_pclk";
257 };
258
259 soc_refclk60mhz: refclk60mhz {
260 compatible = "fixed-clock";
261 #clock-cells = <0>;
262 clock-frequency = <60000000>;
263 clock-output-names = "iofpga_clk";
264 };
265
266 soc_uartclk: uartclk {
267 compatible = "fixed-clock";
268 #clock-cells = <0>;
269 clock-frequency = <50000000>;
270 clock-output-names = "uartclk";
271 };
272
273 soc_uart0: uart@7ff80000 {
274 compatible = "arm,pl011", "arm,primecell";
275 reg = <0x0 0x7ff80000 0x0 0x1000>;
276 interrupts = <0x0 116 0x4>;
277 clocks = <&soc_uartclk>, <&soc_refclk100mhz>;
278 clock-names = "uartclk", "apb_pclk";
279 status = "okay";
280 };
281
282 vencoder {
283 compatible = "drm,virtual-encoder";
284
285 port {
286 vencoder_in: endpoint {
Avinash Mehtadf71a602020-07-22 16:40:07 +0100287 remote-endpoint = <&dp_pl0_out0>;
Usama Arifbec5afd2020-04-17 16:13:39 +0100288 };
289 };
290
291 display-timings {
292 panel-timing {
293 clock-frequency = <25175000>;
294 hactive = <640>;
295 vactive = <480>;
296 hfront-porch = <16>;
297 hback-porch = <48>;
298 hsync-len = <96>;
299 vfront-porch = <10>;
300 vback-porch = <33>;
301 vsync-len = <2>;
302 };
303 };
304
305 };
306
307 hdlcd: hdlcd@7ff60000 {
308 compatible = "arm,hdlcd";
309 reg = <0x0 0x7ff60000 0x0 0x1000>;
310 interrupts = <0x0 117 0x4>;
311 clocks = <&fake_hdlcd_clk>;
312 clock-names = "pxlclk";
Avinash Mehtadf71a602020-07-22 16:40:07 +0100313 status = "disabled";
Usama Arifbec5afd2020-04-17 16:13:39 +0100314
315 port {
316 hdlcd_out: endpoint {
317 remote-endpoint = <&vencoder_in>;
318 };
319 };
320 };
321
322 fake_hdlcd_clk: fake-hdlcd-clk {
323 compatible = "fixed-clock";
324 #clock-cells = <0>;
325 clock-frequency = <25175000>;
326 clock-output-names = "pxlclk";
327 };
328
329 ethernet@18000000 {
330 compatible = "smsc,lan91c111";
331 reg = <0x0 0x18000000 0x0 0x10000>;
332 interrupts = <0 109 4>;
333 };
334
335 kmi@1c060000 {
336 compatible = "arm,pl050", "arm,primecell";
337 reg = <0x0 0x001c060000 0x0 0x1000>;
338 interrupts = <0 197 4>;
339 clocks = <&bp_clock24mhz>, <&bp_clock24mhz>;
340 clock-names = "KMIREFCLK", "apb_pclk";
341 };
342
343 kmi@1c070000 {
344 compatible = "arm,pl050", "arm,primecell";
345 reg = <0x0 0x001c070000 0x0 0x1000>;
346 interrupts = <0 103 4>;
347 clocks = <&bp_clock24mhz>, <&bp_clock24mhz>;
348 clock-names = "KMIREFCLK", "apb_pclk";
349 };
350
351 bp_clock24mhz: clock24mhz {
352 compatible = "fixed-clock";
353 #clock-cells = <0>;
354 clock-frequency = <24000000>;
355 clock-output-names = "bp:clock24mhz";
356 };
357
358 virtio_block@1c130000 {
359 compatible = "virtio,mmio";
360 reg = <0x0 0x1c130000 0x0 0x200>;
361 interrupts = <0 204 4>;
362 };
363
Usama Arif1cd56dc2020-06-10 16:27:53 +0100364 sysreg: sysreg@1c010000 {
365 compatible = "arm,vexpress-sysreg";
366 reg = <0x0 0x001c010000 0x0 0x1000>;
367 gpio-controller;
368 #gpio-cells = <2>;
369 };
370
371 fixed_3v3: v2m-3v3 {
372 compatible = "regulator-fixed";
373 regulator-name = "3V3";
374 regulator-min-microvolt = <3300000>;
375 regulator-max-microvolt = <3300000>;
376 regulator-always-on;
377 };
378
379 mmci@1c050000 {
380 compatible = "arm,pl180", "arm,primecell";
381 reg = <0x0 0x001c050000 0x0 0x1000>;
382 interrupts = <0 107 0x4>,
383 <0 108 0x4>;
384 cd-gpios = <&sysreg 0 0>;
385 wp-gpios = <&sysreg 1 0>;
386 bus-width = <8>;
387 max-frequency = <12000000>;
388 vmmc-supply = <&fixed_3v3>;
389 clocks = <&bp_clock24mhz>, <&bp_clock24mhz>;
390 clock-names = "mclk", "apb_pclk";
391 };
392
Usama Arifbec5afd2020-04-17 16:13:39 +0100393 dp0: display@2cc00000 {
394 #address-cells = <1>;
395 #size-cells = <0>;
396 compatible = "arm,mali-d71";
397 reg = <0 0x2cc00000 0 0x20000>;
398 interrupts = <0 69 4>;
399 interrupt-names = "DPU";
400 clocks = <&scmi_clk 0>;
401 clock-names = "aclk";
Usama Arifbec5afd2020-04-17 16:13:39 +0100402 pl0: pipeline@0 {
403 reg = <0>;
404 clocks = <&scmi_clk 1>;
405 clock-names = "pxclk";
406 pl_id = <0>;
407 ports {
408 #address-cells = <1>;
409 #size-cells = <0>;
410 port@0 {
411 reg = <0>;
412 dp_pl0_out0: endpoint {
413 remote-endpoint = <&vencoder_in>;
414 };
415 };
416 };
417 };
418
419 pl1: pipeline@1 {
420 reg = <1>;
421 clocks = <&scmi_clk 2>;
422 clock-names = "pxclk";
423 pl_id = <1>;
424 ports {
425 #address-cells = <1>;
426 #size-cells = <0>;
427 port@0 {
428 reg = <0>;
429 };
430 };
431 };
432 };
Arunachalam Ganapathyc44e43d2020-11-17 15:05:01 +0000433
434 ffa {
435 compatible = "arm,ffa";
436 conduit = "smc";
437 mem_share_buffer = "tx";
438 };
439
440 firmware {
441 optee {
442 compatible = "linaro,optee-tz";
443 method = "ffa";
444 };
445 };
Usama Arifbec5afd2020-04-17 16:13:39 +0100446};