blob: 5438474052d4099a9aeb38083717d402ae5b1a97 [file] [log] [blame]
Usama Arifbec5afd2020-04-17 16:13:39 +01001/*
2 * Copyright (c) 2020, Arm Limited. All rights reserved.
3 *
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 {
20 stdout-path = "soc_uart0:115200n8";
21 };
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 };
41 };
42 };
43
Usama Arif57900782020-08-12 17:14:37 +010044 /*
45 * The timings below are just to demonstrate working cpuidle.
46 * These values may be inaccurate.
47 */
48 idle-states {
49 entry-method = "arm,psci";
50
51 CPU_SLEEP_0: cpu-sleep-0 {
52 compatible = "arm,idle-state";
53 arm,psci-suspend-param = <0x0010000>;
54 local-timer-stop;
55 entry-latency-us = <300>;
56 exit-latency-us = <1200>;
57 min-residency-us = <2000>;
58 };
59 CLUSTER_SLEEP_0: cluster-sleep-0 {
60 compatible = "arm,idle-state";
61 arm,psci-suspend-param = <0x1010000>;
62 local-timer-stop;
63 entry-latency-us = <400>;
64 exit-latency-us = <1200>;
65 min-residency-us = <2500>;
66 };
67 };
68
Usama Arifbec5afd2020-04-17 16:13:39 +010069 CPU0:cpu@0 {
70 device_type = "cpu";
71 compatible = "arm,armv8";
72 reg = <0x0>;
73 enable-method = "psci";
74 clocks = <&scmi_dvfs 0>;
Usama Arif57900782020-08-12 17:14:37 +010075 cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
Usama Arifbec5afd2020-04-17 16:13:39 +010076 };
77
78 CPU1:cpu@100 {
79 device_type = "cpu";
80 compatible = "arm,armv8";
81 reg = <0x100>;
82 enable-method = "psci";
83 clocks = <&scmi_dvfs 0>;
Usama Arif57900782020-08-12 17:14:37 +010084 cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
Usama Arifbec5afd2020-04-17 16:13:39 +010085 };
86
87 CPU2:cpu@200 {
88 device_type = "cpu";
89 compatible = "arm,armv8";
90 reg = <0x200>;
91 enable-method = "psci";
92 clocks = <&scmi_dvfs 0>;
Usama Arif57900782020-08-12 17:14:37 +010093 cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
Usama Arifbec5afd2020-04-17 16:13:39 +010094 };
95
96 CPU3:cpu@300 {
97 device_type = "cpu";
98 compatible = "arm,armv8";
99 reg = <0x300>;
100 enable-method = "psci";
101 clocks = <&scmi_dvfs 0>;
Usama Arif57900782020-08-12 17:14:37 +0100102 cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
Usama Arifbec5afd2020-04-17 16:13:39 +0100103 };
104
105 };
106
107 memory@80000000 {
108 device_type = "memory";
Arunachalam Ganapathy81da5582020-09-22 12:47:33 +0100109 reg = <0x0 0x80000000 0x0 0x7d000000>;
Usama Arifbec5afd2020-04-17 16:13:39 +0100110 };
111
Arunachalam Ganapathy948bb442020-12-14 12:31:32 +0000112 reserved-memory {
113 #address-cells = <2>;
114 #size-cells = <2>;
115 ranges;
116
117 optee@0xfce00000 {
118 reg = <0x00000000 0xfce00000 0 0x00200000>;
119 no-map;
120 };
121 };
122
Usama Arifbec5afd2020-04-17 16:13:39 +0100123 psci {
124 compatible = "arm,psci-1.0", "arm,psci-0.2", "arm,psci";
125 method = "smc";
126 };
127
128 sram: sram@6000000 {
129 compatible = "mmio-sram";
130 reg = <0x0 0x06000000 0x0 0x8000>;
131
132 #address-cells = <1>;
133 #size-cells = <1>;
134 ranges = <0 0x0 0x06000000 0x8000>;
135
136 cpu_scp_scmi_mem: scp-shmem@0 {
137 compatible = "arm,scmi-shmem";
138 reg = <0x0 0x80>;
139 };
140 };
141
142 mbox_db_rx: mhu@45010000 {
143 compatible = "arm,mhuv2","arm,primecell";
144 reg = <0x0 0x45010000 0x0 0x1000>;
145 clocks = <&soc_refclk100mhz>;
146 clock-names = "apb_pclk";
147 #mbox-cells = <1>;
Usama Arif884f40d2020-08-18 12:56:44 +0100148 interrupts = <0 317 4>;
Usama Arifbec5afd2020-04-17 16:13:39 +0100149 interrupt-names = "mhu_rx";
150 mhu-protocol = "doorbell";
151 };
152
153 mbox_db_tx: mhu@45000000 {
154 compatible = "arm,mhuv2","arm,primecell";
155 reg = <0x0 0x45000000 0x0 0x1000>;
156 clocks = <&soc_refclk100mhz>;
157 clock-names = "apb_pclk";
158 #mbox-cells = <1>;
159 interrupt-names = "mhu_tx";
160 mhu-protocol = "doorbell";
161 };
162
163 scmi {
164 compatible = "arm,scmi";
165 method = "mailbox-doorbell";
166 mbox-names = "tx", "rx";
167 mboxes = <&mbox_db_tx 0 &mbox_db_rx 0>;
168 shmem = <&cpu_scp_scmi_mem &cpu_scp_scmi_mem>;
169 #address-cells = <1>;
170 #size-cells = <0>;
171
172 scmi_dvfs: protocol@13 {
173 reg = <0x13>;
174 #clock-cells = <1>;
175 };
176
177 scmi_clk: protocol@14 {
178 reg = <0x14>;
179 #clock-cells = <1>;
180 };
181 };
182
183 gic: interrupt-controller@2c010000 {
184 compatible = "arm,gic-600", "arm,gic-v3";
185 #address-cells = <2>;
186 #interrupt-cells = <3>;
187 #size-cells = <2>;
188 ranges;
189 interrupt-controller;
190 reg = <0x0 0x30000000 0 0x10000>, /* GICD */
191 <0x0 0x30140000 0 0x200000>; /* GICR */
192 interrupts = <0x1 0x9 0x4>;
193 };
194
195 timer {
196 compatible = "arm,armv8-timer";
197 interrupts = <0x1 13 0x8>,
198 <0x1 14 0x8>,
199 <0x1 11 0x8>,
200 <0x1 10 0x8>;
201 };
202
203 soc_refclk100mhz: refclk100mhz {
204 compatible = "fixed-clock";
205 #clock-cells = <0>;
206 clock-frequency = <100000000>;
207 clock-output-names = "apb_pclk";
208 };
209
210 soc_refclk60mhz: refclk60mhz {
211 compatible = "fixed-clock";
212 #clock-cells = <0>;
213 clock-frequency = <60000000>;
214 clock-output-names = "iofpga_clk";
215 };
216
217 soc_uartclk: uartclk {
218 compatible = "fixed-clock";
219 #clock-cells = <0>;
220 clock-frequency = <50000000>;
221 clock-output-names = "uartclk";
222 };
223
224 soc_uart0: uart@7ff80000 {
225 compatible = "arm,pl011", "arm,primecell";
226 reg = <0x0 0x7ff80000 0x0 0x1000>;
227 interrupts = <0x0 116 0x4>;
228 clocks = <&soc_uartclk>, <&soc_refclk100mhz>;
229 clock-names = "uartclk", "apb_pclk";
230 status = "okay";
231 };
232
233 vencoder {
234 compatible = "drm,virtual-encoder";
235
236 port {
237 vencoder_in: endpoint {
Avinash Mehtadf71a602020-07-22 16:40:07 +0100238 remote-endpoint = <&dp_pl0_out0>;
Usama Arifbec5afd2020-04-17 16:13:39 +0100239 };
240 };
241
242 display-timings {
243 panel-timing {
244 clock-frequency = <25175000>;
245 hactive = <640>;
246 vactive = <480>;
247 hfront-porch = <16>;
248 hback-porch = <48>;
249 hsync-len = <96>;
250 vfront-porch = <10>;
251 vback-porch = <33>;
252 vsync-len = <2>;
253 };
254 };
255
256 };
257
258 hdlcd: hdlcd@7ff60000 {
259 compatible = "arm,hdlcd";
260 reg = <0x0 0x7ff60000 0x0 0x1000>;
261 interrupts = <0x0 117 0x4>;
262 clocks = <&fake_hdlcd_clk>;
263 clock-names = "pxlclk";
Avinash Mehtadf71a602020-07-22 16:40:07 +0100264 status = "disabled";
Usama Arifbec5afd2020-04-17 16:13:39 +0100265
266 port {
267 hdlcd_out: endpoint {
268 remote-endpoint = <&vencoder_in>;
269 };
270 };
271 };
272
273 fake_hdlcd_clk: fake-hdlcd-clk {
274 compatible = "fixed-clock";
275 #clock-cells = <0>;
276 clock-frequency = <25175000>;
277 clock-output-names = "pxlclk";
278 };
279
280 ethernet@18000000 {
281 compatible = "smsc,lan91c111";
282 reg = <0x0 0x18000000 0x0 0x10000>;
283 interrupts = <0 109 4>;
284 };
285
286 kmi@1c060000 {
287 compatible = "arm,pl050", "arm,primecell";
288 reg = <0x0 0x001c060000 0x0 0x1000>;
289 interrupts = <0 197 4>;
290 clocks = <&bp_clock24mhz>, <&bp_clock24mhz>;
291 clock-names = "KMIREFCLK", "apb_pclk";
292 };
293
294 kmi@1c070000 {
295 compatible = "arm,pl050", "arm,primecell";
296 reg = <0x0 0x001c070000 0x0 0x1000>;
297 interrupts = <0 103 4>;
298 clocks = <&bp_clock24mhz>, <&bp_clock24mhz>;
299 clock-names = "KMIREFCLK", "apb_pclk";
300 };
301
302 bp_clock24mhz: clock24mhz {
303 compatible = "fixed-clock";
304 #clock-cells = <0>;
305 clock-frequency = <24000000>;
306 clock-output-names = "bp:clock24mhz";
307 };
308
309 virtio_block@1c130000 {
310 compatible = "virtio,mmio";
311 reg = <0x0 0x1c130000 0x0 0x200>;
312 interrupts = <0 204 4>;
313 };
314
Usama Arif1cd56dc2020-06-10 16:27:53 +0100315 sysreg: sysreg@1c010000 {
316 compatible = "arm,vexpress-sysreg";
317 reg = <0x0 0x001c010000 0x0 0x1000>;
318 gpio-controller;
319 #gpio-cells = <2>;
320 };
321
322 fixed_3v3: v2m-3v3 {
323 compatible = "regulator-fixed";
324 regulator-name = "3V3";
325 regulator-min-microvolt = <3300000>;
326 regulator-max-microvolt = <3300000>;
327 regulator-always-on;
328 };
329
330 mmci@1c050000 {
331 compatible = "arm,pl180", "arm,primecell";
332 reg = <0x0 0x001c050000 0x0 0x1000>;
333 interrupts = <0 107 0x4>,
334 <0 108 0x4>;
335 cd-gpios = <&sysreg 0 0>;
336 wp-gpios = <&sysreg 1 0>;
337 bus-width = <8>;
338 max-frequency = <12000000>;
339 vmmc-supply = <&fixed_3v3>;
340 clocks = <&bp_clock24mhz>, <&bp_clock24mhz>;
341 clock-names = "mclk", "apb_pclk";
342 };
343
Usama Arifbec5afd2020-04-17 16:13:39 +0100344 dp0: display@2cc00000 {
345 #address-cells = <1>;
346 #size-cells = <0>;
347 compatible = "arm,mali-d71";
348 reg = <0 0x2cc00000 0 0x20000>;
349 interrupts = <0 69 4>;
350 interrupt-names = "DPU";
351 clocks = <&scmi_clk 0>;
352 clock-names = "aclk";
Usama Arifbec5afd2020-04-17 16:13:39 +0100353 pl0: pipeline@0 {
354 reg = <0>;
355 clocks = <&scmi_clk 1>;
356 clock-names = "pxclk";
357 pl_id = <0>;
358 ports {
359 #address-cells = <1>;
360 #size-cells = <0>;
361 port@0 {
362 reg = <0>;
363 dp_pl0_out0: endpoint {
364 remote-endpoint = <&vencoder_in>;
365 };
366 };
367 };
368 };
369
370 pl1: pipeline@1 {
371 reg = <1>;
372 clocks = <&scmi_clk 2>;
373 clock-names = "pxclk";
374 pl_id = <1>;
375 ports {
376 #address-cells = <1>;
377 #size-cells = <0>;
378 port@0 {
379 reg = <0>;
380 };
381 };
382 };
383 };
Arunachalam Ganapathyc44e43d2020-11-17 15:05:01 +0000384
385 ffa {
386 compatible = "arm,ffa";
387 conduit = "smc";
388 mem_share_buffer = "tx";
389 };
390
391 firmware {
392 optee {
393 compatible = "linaro,optee-tz";
394 method = "ffa";
395 };
396 };
Usama Arifbec5afd2020-04-17 16:13:39 +0100397};