blob: da01ada2b6ead4579189e6b6829a457578530dd1 [file] [log] [blame]
Runmin Wang4f5985b2017-04-19 15:55:12 -07001// SPDX-License-Identifier: GPL-2.0
2/*
3 * Copyright (c) 2018, The Linux Foundation. All rights reserved.
4 */
5
6#include "skeleton64.dtsi"
Deepak Katragadda5bbf8142018-06-20 16:12:13 -07007
8#include <dt-bindings/clock/qcom,aop-qmp.h>
9#include <dt-bindings/clock/qcom,camcc-kona.h>
10#include <dt-bindings/clock/qcom,cpucc-kona.h>
11#include <dt-bindings/clock/qcom,dispcc-kona.h>
12#include <dt-bindings/clock/qcom,gcc-kona.h>
13#include <dt-bindings/clock/qcom,gpucc-kona.h>
14#include <dt-bindings/clock/qcom,npucc-kona.h>
15#include <dt-bindings/clock/qcom,rpmh.h>
16#include <dt-bindings/clock/qcom,videocc-kona.h>
Runmin Wang4f5985b2017-04-19 15:55:12 -070017#include <dt-bindings/interrupt-controller/arm-gic.h>
Raghavendra Rao Ananta02957962018-08-06 15:28:34 -070018#include <dt-bindings/soc/qcom,ipcc.h>
Lina Iyerea91c722018-06-20 14:58:05 -060019#include <dt-bindings/soc/qcom,rpmh-rsc.h>
Deepak Katragadda5bbf8142018-06-20 16:12:13 -070020
David Collins54e45302018-06-29 18:46:53 -070021#include "kona-regulators.dtsi"
22
Runmin Wang4f5985b2017-04-19 15:55:12 -070023/ {
24 model = "Qualcomm Technologies, Inc. kona";
25 compatible = "qcom,kona";
26 qcom,msm-id = <356 0x10000>;
27 interrupt-parent = <&intc>;
28
29 cpus {
30 #address-cells = <2>;
31 #size-cells = <0>;
32
33 CPU0: cpu@0 {
34 device_type = "cpu";
35 compatible = "qcom,kryo";
36 reg = <0x0 0x0>;
37 enable-method = "spin-table";
38 cache-size = <0x8000>;
39 cpu-release-addr = <0x0 0x90000000>;
40 next-level-cache = <&L2_0>;
41 L2_0: l2-cache {
42 compatible = "arm,arch-cache";
43 cache-size = <0x20000>;
44 cache-level = <2>;
45 next-level-cache = <&L3_0>;
46
47 L3_0: l3-cache {
48 compatible = "arm,arch-cache";
49 cache-size = <0x400000>;
50 cache-level = <3>;
51 };
52 };
53 };
54
55 CPU1: cpu@100 {
56 device_type = "cpu";
57 compatible = "qcom,kryo";
58 reg = <0x0 0x100>;
59 enable-method = "spin-table";
60 cache-size = <0x8000>;
61 cpu-release-addr = <0x0 0x90000000>;
62 next-level-cache = <&L2_1>;
63 L2_1: l2-cache {
64 compatible = "arm,arch-cache";
65 cache-size = <0x20000>;
66 cache-level = <2>;
67 next-level-cache = <&L3_0>;
68 };
69 };
70
71 CPU2: cpu@200 {
72 device_type = "cpu";
73 compatible = "qcom,kryo";
74 reg = <0x0 0x200>;
75 enable-method = "spin-table";
76 cache-size = <0x8000>;
77 cpu-release-addr = <0x0 0x90000000>;
78 next-level-cache = <&L2_2>;
79 L2_2: l2-cache {
80 compatible = "arm,arch-cache";
81 cache-size = <0x20000>;
82 cache-level = <2>;
83 next-level-cache = <&L3_0>;
84 };
85 };
86
87 CPU3: cpu@300 {
88 device_type = "cpu";
89 compatible = "qcom,kryo";
90 reg = <0x0 0x300>;
91 enable-method = "spin-table";
92 cache-size = <0x8000>;
93 cpu-release-addr = <0x0 0x90000000>;
94 next-level-cache = <&L2_3>;
95 L2_3: l2-cache {
96 compatible = "arm,arch-cache";
97 cache-size = <0x20000>;
98 cache-level = <2>;
99 next-level-cache = <&L3_0>;
100 };
101 };
102
103 CPU4: cpu@400 {
104 device_type = "cpu";
105 compatible = "qcom,kryo";
106 reg = <0x0 0x400>;
107 enable-method = "spin-table";
108 cache-size = <0x10000>;
109 cpu-release-addr = <0x0 0x90000000>;
110 next-level-cache = <&L2_4>;
111 L2_4: l2-cache {
112 compatible = "arm,arch-cache";
113 cache-size = <0x20000>;
114 cache-level = <2>;
115 next-level-cache = <&L3_0>;
116 };
117 };
118
119 CPU5: cpu@500 {
120 device_type = "cpu";
121 compatible = "qcom,kryo";
122 reg = <0x0 0x500>;
123 enable-method = "spin-table";
124 cache-size = <0x10000>;
125 cpu-release-addr = <0x0 0x90000000>;
126 next-level-cache = <&L2_5>;
127 L2_5: l2-cache {
128 compatible = "arm,arch-cache";
129 cache-size = <0x20000>;
130 cache-level = <2>;
131 next-level-cache = <&L3_0>;
132 };
133 };
134
135 CPU6: cpu@600 {
136 device_type = "cpu";
137 compatible = "qcom,kryo";
138 reg = <0x0 0x600>;
139 enable-method = "spin-table";
140 cache-size = <0x10000>;
141 cpu-release-addr = <0x0 0x90000000>;
142 next-level-cache = <&L2_6>;
143 L2_6: l2-cache {
144 compatible = "arm,arch-cache";
145 cache-size = <0x20000>;
146 cache-level = <2>;
147 next-level-cache = <&L3_0>;
148 };
149 };
150
151 CPU7: cpu@700 {
152 device_type = "cpu";
153 compatible = "qcom,kryo";
154 reg = <0x0 0x700>;
155 enable-method = "spin-table";
156 cache-size = <0x10000>;
157 cpu-release-addr = <0x0 0x90000000>;
158 next-level-cache = <&L2_7>;
159 L2_7: l2-cache {
160 compatible = "arm,arch-cache";
161 cache-size = <0x80000>;
162 cache-level = <2>;
163 next-level-cache = <&L3_0>;
164 };
165 };
166
167 cpu-map {
168 cluster0 {
169 core0 {
170 cpu = <&CPU0>;
171 };
172
173 core1 {
174 cpu = <&CPU1>;
175 };
176
177 core2 {
178 cpu = <&CPU2>;
179 };
180
181 core3 {
182 cpu = <&CPU3>;
183 };
184 };
185
186 cluster1 {
187 core0 {
188 cpu = <&CPU4>;
189 };
190
191 core1 {
192 cpu = <&CPU5>;
193 };
194
195 core2 {
196 cpu = <&CPU6>;
197 };
198
199 core3 {
200 cpu = <&CPU7>;
201 };
202 };
203 };
204 };
205
Channagoud Kadabicdd72a02018-09-21 14:46:21 -0700206 cpu_pmu: cpu-pmu {
207 compatible = "arm,armv8-pmuv3";
208 qcom,irq-is-percpu;
209 interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH>;
210 };
211
Runmin Wang4f5985b2017-04-19 15:55:12 -0700212 soc: soc { };
Swathi Sridhara79a9542018-06-21 11:40:44 -0700213
214 reserved-memory {
215 #address-cells = <2>;
216 #size-cells = <2>;
217 ranges;
218
219 hyp_mem: hyp_region@80000000 {
220 no-map;
221 reg = <0x0 0x80000000 0x0 0x600000>;
222 };
223
224 xbl_aop_mem: xbl_aop_region@80700000 {
225 no-map;
226 reg = <0x0 0x80700000 0x0 0x140000>;
227 };
228
229 smem_mem: smem_region@80900000 {
230 no-map;
231 reg = <0x0 0x80900000 0x0 0x200000>;
232 };
233
234 removed_mem: removed_region@80b00000 {
235 no-map;
236 reg = <0x0 0x80b00000 0x0 0xc00000>;
237 };
238
239 qtee_apps_mem: qtee_apps_region@81e00000 {
240 no-map;
241 reg = <0x0 0x81e00000 0x0 0x2600000>;
242 };
243
Lina Iyer32296892018-06-20 17:03:44 -0600244 cmd_db: reserved-memory@85fe0000 {
245 reg = <0x0 0x85fe0000 0x0 0x20000>;
246 compatible = "qcom,cmd-db";
247 no-map;
248 };
249
Swathi Sridhara79a9542018-06-21 11:40:44 -0700250 pil_camera_mem: pil_camera_region@86000000 {
251 no-map;
252 reg = <0x0 0x86000000 0x0 0x500000>;
253 };
254
255 pil_wlan_fw_mem: pil_wlan_fw_region@86500000 {
256 no-map;
257 reg = <0x0 0x86500000 0x0 0x100000>;
258 };
259
260 pil_ipa_fw_mem: pil_ipa_fw_region@86600000 {
261 no-map;
262 reg = <0x0 0x86600000 0x0 0x10000>;
263 };
264
265 pil_ipa_gsi_mem: pil_ipa_gsi_region@86610000 {
266 no-map;
267 reg = <0x0 0x86610000 0x0 0x5000>;
268 };
269
270 pil_gpu_mem: pil_gpu_region@86615000 {
271 no-map;
272 reg = <0x0 0x86615000 0x0 0x2000>;
273 };
274
275 pil_npu_mem: pil_npu_region@86680000 {
276 no-map;
277 reg = <0x0 0x86680000 0x0 0x80000>;
278 };
279
280 pil_video_mem: pil_video_region@86700000 {
281 no-map;
282 reg = <0x0 0x86700000 0x0 0x500000>;
283 };
284
285 pil_cvp_mem: pil_cvp_region@86c00000 {
286 no-map;
287 reg = <0x0 0x86c00000 0x0 0x500000>;
288 };
289
290 pil_cdsp_mem: pil_cdsp_region@87100000 {
291 no-map;
292 reg = <0x0 0x87100000 0x0 0x800000>;
293 };
294
295 pil_slpi_mem: pil_slpi_region@87900000 {
296 no-map;
297 reg = <0x0 0x87900000 0x0 0x1400000>;
298 };
299
300 pil_adsp_mem: pil_adsp_region@88d00000 {
301 no-map;
302 reg = <0x0 0x88d00000 0x0 0x1a00000>;
303 };
304
305 pil_spss_mem: pil_spss_region@8a700000 {
306 no-map;
307 reg = <0x0 0x8a700000 0x0 0x100000>;
308 };
309
310 /* global autoconfigured region for contiguous allocations */
311 linux,cma {
312 compatible = "shared-dma-pool";
313 alloc-ranges = <0x0 0x00000000 0x0 0xffffffff>;
314 reusable;
315 alignment = <0x0 0x400000>;
316 size = <0x0 0x2000000>;
317 linux,cma-default;
318 };
319 };
Runmin Wang4f5985b2017-04-19 15:55:12 -0700320};
321
322&soc {
323 #address-cells = <1>;
324 #size-cells = <1>;
325 ranges = <0 0 0 0xffffffff>;
326 compatible = "simple-bus";
327
328 intc: interrupt-controller@17a00000 {
329 compatible = "arm,gic-v3";
330 #interrupt-cells = <3>;
331 interrupt-controller;
332 #redistributor-regions = <1>;
333 redistributor-stride = <0x0 0x20000>;
334 reg = <0x17a00000 0x10000>, /* GICD */
335 <0x17a60000 0x100000>; /* GICR * 8 */
336 interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
337 };
338
Rishabh Bhatnagar8f0dd4b2018-08-07 11:07:40 -0700339 cache-controller@9200000 {
340 compatible = "qcom,kona-llcc";
341 reg = <0x9200000 0x1d0000> , <0x9600000 0x50000>;
342 reg-names = "llcc_base", "llcc_broadcast_base";
343 };
344
Runmin Wang4f5985b2017-04-19 15:55:12 -0700345 timer {
346 compatible = "arm,armv8-timer";
347 interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
348 <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
349 <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
350 <GIC_PPI 12 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>;
351 clock-frequency = <19200000>;
352 };
353
Rishabh Bhatnagar5c1c1762018-05-29 17:04:46 -0700354 timer@0x17c20000{
Runmin Wang4f5985b2017-04-19 15:55:12 -0700355 #address-cells = <1>;
356 #size-cells = <1>;
357 ranges;
358 compatible = "arm,armv7-timer-mem";
Rishabh Bhatnagar5c1c1762018-05-29 17:04:46 -0700359 reg = <0x17c20000 0x1000>;
Runmin Wang4f5985b2017-04-19 15:55:12 -0700360 clock-frequency = <19200000>;
361
Rishabh Bhatnagar5c1c1762018-05-29 17:04:46 -0700362 frame@0x17c21000 {
Runmin Wang4f5985b2017-04-19 15:55:12 -0700363 frame-number = <0>;
Rishabh Bhatnagar5c1c1762018-05-29 17:04:46 -0700364 interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
Runmin Wang4f5985b2017-04-19 15:55:12 -0700365 <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
Rishabh Bhatnagar5c1c1762018-05-29 17:04:46 -0700366 reg = <0x17c21000 0x1000>,
367 <0x17c22000 0x1000>;
Runmin Wang4f5985b2017-04-19 15:55:12 -0700368 };
369
Rishabh Bhatnagar5c1c1762018-05-29 17:04:46 -0700370 frame@17c23000 {
Runmin Wang4f5985b2017-04-19 15:55:12 -0700371 frame-number = <1>;
Rishabh Bhatnagar5c1c1762018-05-29 17:04:46 -0700372 interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
373 reg = <0x17c23000 0x1000>;
Runmin Wang4f5985b2017-04-19 15:55:12 -0700374 status = "disabled";
375 };
376
Rishabh Bhatnagar5c1c1762018-05-29 17:04:46 -0700377 frame@17c25000 {
Runmin Wang4f5985b2017-04-19 15:55:12 -0700378 frame-number = <2>;
Rishabh Bhatnagar5c1c1762018-05-29 17:04:46 -0700379 interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
380 reg = <0x17c25000 0x1000>;
Runmin Wang4f5985b2017-04-19 15:55:12 -0700381 status = "disabled";
382 };
383
Rishabh Bhatnagar5c1c1762018-05-29 17:04:46 -0700384 frame@17c27000 {
Runmin Wang4f5985b2017-04-19 15:55:12 -0700385 frame-number = <3>;
Rishabh Bhatnagar5c1c1762018-05-29 17:04:46 -0700386 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
387 reg = <0x17c27000 0x1000>;
Runmin Wang4f5985b2017-04-19 15:55:12 -0700388 status = "disabled";
389 };
390
Rishabh Bhatnagar5c1c1762018-05-29 17:04:46 -0700391 frame@17c29000 {
Runmin Wang4f5985b2017-04-19 15:55:12 -0700392 frame-number = <4>;
Rishabh Bhatnagar5c1c1762018-05-29 17:04:46 -0700393 interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
394 reg = <0x17c29000 0x1000>;
Runmin Wang4f5985b2017-04-19 15:55:12 -0700395 status = "disabled";
396 };
397
Rishabh Bhatnagar5c1c1762018-05-29 17:04:46 -0700398 frame@17c2b0000 {
Runmin Wang4f5985b2017-04-19 15:55:12 -0700399 frame-number = <5>;
Rishabh Bhatnagar5c1c1762018-05-29 17:04:46 -0700400 interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
401 reg = <0x17c2b000 0x1000>;
Runmin Wang4f5985b2017-04-19 15:55:12 -0700402 status = "disabled";
403 };
404
Rishabh Bhatnagar5c1c1762018-05-29 17:04:46 -0700405 frame@17c2d000 {
Runmin Wang4f5985b2017-04-19 15:55:12 -0700406 frame-number = <6>;
Rishabh Bhatnagar5c1c1762018-05-29 17:04:46 -0700407 interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
408 reg = <0x17c2d000 0x1000>;
Runmin Wang4f5985b2017-04-19 15:55:12 -0700409 status = "disabled";
410 };
411 };
Deepak Katragadda5bbf8142018-06-20 16:12:13 -0700412
Rishabh Bhatnagar2b6a59c2018-09-06 11:06:16 -0700413qcom,msm-imem@146bf000 {
414 compatible = "qcom,msm-imem";
415 reg = <0x146bf000 0x1000>;
416 ranges = <0x0 0x146bf000 0x1000>;
417 #address-cells = <1>;
418 #size-cells = <1>;
419
420 restart_reason@65c {
421 compatible = "qcom,msm-imem-restart_reason";
422 reg = <0x65c 4>;
423 };
424
425 dload_type@1c {
426 compatible = "qcom,msm-imem-dload-type";
427 reg = <0x1c 0x4>;
428 };
429
430 boot_stats@6b0 {
431 compatible = "qcom,msm-imem-boot_stats";
432 reg = <0x6b0 32>;
433 };
434
435 kaslr_offset@6d0 {
436 compatible = "qcom,msm-imem-kaslr_offset";
437 reg = <0x6d0 12>;
438 };
439
440 pil@94c {
441 compatible = "qcom,msm-imem-pil";
442 reg = <0x94c 200>;
443 };
444 };
445
Lina Iyer8551c792018-06-21 16:06:53 -0600446 pdc: interrupt-controller@b220000 {
447 compatible = "qcom,kona-pdc";
448 reg = <0xb220000 0x30000>;
449 qcom,pdc-ranges = <0 480 29>, <42 522 52>, <94 609 30>;
450 #interrupt-cells = <2>;
451 interrupt-parent = <&intc>;
452 interrupt-controller;
453 };
454
Deepak Katragadda5bbf8142018-06-20 16:12:13 -0700455 clock_rpmh: qcom,rpmhclk {
456 compatible = "qcom,dummycc";
457 clock-output-names = "rpmh_clocks";
458 #clock-cells = <1>;
459 };
460
461 clock_aop: qcom,aopclk {
462 compatible = "qcom,dummycc";
463 clock-output-names = "qdss_clocks";
464 #clock-cells = <1>;
465 };
466
467 clock_gcc: qcom,gcc {
468 compatible = "qcom,dummycc";
469 clock-output-names = "gcc_clocks";
470 #clock-cells = <1>;
471 #reset-cells = <1>;
472 };
473
474 clock_npucc: qcom,npucc {
475 compatible = "qcom,dummycc";
476 clock-output-names = "npucc_clocks";
477 #clock-cells = <1>;
478 #reset-cells = <1>;
479 };
480
481 clock_videocc: qcom,videocc {
482 compatible = "qcom,dummycc";
483 clock-output-names = "videocc_clocks";
484 #clock-cells = <1>;
485 #reset-cells = <1>;
486 };
487
488 clock_camcc: qcom,camcc {
489 compatible = "qcom,dummycc";
490 clock-output-names = "camcc_clocks";
491 #clock-cells = <1>;
492 #reset-cells = <1>;
493 };
494
495 clock_dispcc: qcom,dispcc {
496 compatible = "qcom,dummycc";
497 clock-output-names = "dispcc_clocks";
498 #clock-cells = <1>;
499 #reset-cells = <1>;
500 };
501
502 clock_gpucc: qcom,gpucc {
503 compatible = "qcom,dummycc";
504 clock-output-names = "gpucc_clocks";
505 #clock-cells = <1>;
506 #reset-cells = <1>;
507 };
508
509 clock_cpucc: qcom,cpucc {
510 compatible = "qcom,dummycc";
511 clock-output-names = "cpucc_clocks";
512 #clock-cells = <1>;
513 };
Raghavendra Rao Ananta02957962018-08-06 15:28:34 -0700514
515 ipcc_mproc: qcom,ipcc@408000 {
516 compatible = "qcom,kona-ipcc";
517 reg = <0x408000 0x1000>;
518 interrupts = <GIC_SPI 229 IRQ_TYPE_LEVEL_HIGH>;
519 interrupt-controller;
520 #interrupt-cells = <3>;
521 #mbox-cells = <2>;
522 };
Lina Iyerea91c722018-06-20 14:58:05 -0600523
Raghavendra Rao Ananta5da54b32018-08-09 10:04:50 -0700524 ipcc_self_ping: ipcc-self-ping {
525 compatible = "qcom,ipcc-self-ping";
526 interrupts-extended = <&ipcc_mproc IPCC_CLIENT_APSS
527 IPCC_MPROC_SIGNAL_SMP2P IRQ_TYPE_LEVEL_HIGH>;
528 mboxes = <&ipcc_mproc IPCC_CLIENT_APSS IPCC_MPROC_SIGNAL_SMP2P>;
529 };
530
Lina Iyerea91c722018-06-20 14:58:05 -0600531 apps_rsc: rsc@0x18200000 {
532 label = "apps_rsc";
533 compatible = "qcom,rpmh-rsc";
534 reg = <0x18200000 0x10000>,
535 <0x18210000 0x10000>,
536 <0x18220000 0x10000>;
537 reg-names = "drv-0", "drv-1", "drv-2";
538 interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>,
539 <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>,
540 <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
541 qcom,tcs-offset = <0xd00>;
542 qcom,drv-id = <2>;
543 qcom,tcs-config = <ACTIVE_TCS 2>,
544 <SLEEP_TCS 3>,
545 <WAKE_TCS 3>,
546 <CONTROL_TCS 1>;
547 status = "disabled";
548 };
549
550 disp_rsc: rsc@af20000 {
551 label = "disp_rsc";
552 compatible = "qcom,rpmh-rsc";
553 reg = <0xaf20000 0x10000>;
554 reg-names = "drv-0";
555 interrupts = <GIC_SPI 129 IRQ_TYPE_LEVEL_HIGH>;
556 qcom,tcs-offset = <0x1c00>;
557 qcom,drv-id = <0>;
558 qcom,tcs-config = <ACTIVE_TCS 0>,
559 <SLEEP_TCS 1>,
560 <WAKE_TCS 1>,
561 <CONTROL_TCS 0>;
562 status = "disabled";
563 };
Runmin Wang4f5985b2017-04-19 15:55:12 -0700564};
Swathi Sridhar4008eb42018-07-17 15:34:46 -0700565
Swathi Sridharbbbc80b2018-07-13 10:02:08 -0700566#include "kona-ion.dtsi"
Swathi Sridhar4008eb42018-07-17 15:34:46 -0700567#include "msm-arm-smmu-kona.dtsi"
Rishabh Bhatnagara740b0e2018-07-20 15:08:35 -0700568#include "kona-pinctrl.dtsi"