blob: 5d8474af6871990b9151c14b20c41f805904f79d [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
Can Guob04bed52018-07-10 19:27:32 -070029 aliases {
30 ufshc1 = &ufshc_mem; /* Embedded UFS slot */
31 };
32
Runmin Wang4f5985b2017-04-19 15:55:12 -070033 cpus {
34 #address-cells = <2>;
35 #size-cells = <0>;
36
37 CPU0: cpu@0 {
38 device_type = "cpu";
39 compatible = "qcom,kryo";
40 reg = <0x0 0x0>;
41 enable-method = "spin-table";
42 cache-size = <0x8000>;
43 cpu-release-addr = <0x0 0x90000000>;
44 next-level-cache = <&L2_0>;
45 L2_0: l2-cache {
46 compatible = "arm,arch-cache";
47 cache-size = <0x20000>;
48 cache-level = <2>;
49 next-level-cache = <&L3_0>;
50
51 L3_0: l3-cache {
52 compatible = "arm,arch-cache";
53 cache-size = <0x400000>;
54 cache-level = <3>;
55 };
56 };
57 };
58
59 CPU1: cpu@100 {
60 device_type = "cpu";
61 compatible = "qcom,kryo";
62 reg = <0x0 0x100>;
63 enable-method = "spin-table";
64 cache-size = <0x8000>;
65 cpu-release-addr = <0x0 0x90000000>;
66 next-level-cache = <&L2_1>;
67 L2_1: l2-cache {
68 compatible = "arm,arch-cache";
69 cache-size = <0x20000>;
70 cache-level = <2>;
71 next-level-cache = <&L3_0>;
72 };
73 };
74
75 CPU2: cpu@200 {
76 device_type = "cpu";
77 compatible = "qcom,kryo";
78 reg = <0x0 0x200>;
79 enable-method = "spin-table";
80 cache-size = <0x8000>;
81 cpu-release-addr = <0x0 0x90000000>;
82 next-level-cache = <&L2_2>;
83 L2_2: l2-cache {
84 compatible = "arm,arch-cache";
85 cache-size = <0x20000>;
86 cache-level = <2>;
87 next-level-cache = <&L3_0>;
88 };
89 };
90
91 CPU3: cpu@300 {
92 device_type = "cpu";
93 compatible = "qcom,kryo";
94 reg = <0x0 0x300>;
95 enable-method = "spin-table";
96 cache-size = <0x8000>;
97 cpu-release-addr = <0x0 0x90000000>;
98 next-level-cache = <&L2_3>;
99 L2_3: l2-cache {
100 compatible = "arm,arch-cache";
101 cache-size = <0x20000>;
102 cache-level = <2>;
103 next-level-cache = <&L3_0>;
104 };
105 };
106
107 CPU4: cpu@400 {
108 device_type = "cpu";
109 compatible = "qcom,kryo";
110 reg = <0x0 0x400>;
111 enable-method = "spin-table";
112 cache-size = <0x10000>;
113 cpu-release-addr = <0x0 0x90000000>;
114 next-level-cache = <&L2_4>;
115 L2_4: l2-cache {
116 compatible = "arm,arch-cache";
117 cache-size = <0x20000>;
118 cache-level = <2>;
119 next-level-cache = <&L3_0>;
120 };
121 };
122
123 CPU5: cpu@500 {
124 device_type = "cpu";
125 compatible = "qcom,kryo";
126 reg = <0x0 0x500>;
127 enable-method = "spin-table";
128 cache-size = <0x10000>;
129 cpu-release-addr = <0x0 0x90000000>;
130 next-level-cache = <&L2_5>;
131 L2_5: l2-cache {
132 compatible = "arm,arch-cache";
133 cache-size = <0x20000>;
134 cache-level = <2>;
135 next-level-cache = <&L3_0>;
136 };
137 };
138
139 CPU6: cpu@600 {
140 device_type = "cpu";
141 compatible = "qcom,kryo";
142 reg = <0x0 0x600>;
143 enable-method = "spin-table";
144 cache-size = <0x10000>;
145 cpu-release-addr = <0x0 0x90000000>;
146 next-level-cache = <&L2_6>;
147 L2_6: l2-cache {
148 compatible = "arm,arch-cache";
149 cache-size = <0x20000>;
150 cache-level = <2>;
151 next-level-cache = <&L3_0>;
152 };
153 };
154
155 CPU7: cpu@700 {
156 device_type = "cpu";
157 compatible = "qcom,kryo";
158 reg = <0x0 0x700>;
159 enable-method = "spin-table";
160 cache-size = <0x10000>;
161 cpu-release-addr = <0x0 0x90000000>;
162 next-level-cache = <&L2_7>;
163 L2_7: l2-cache {
164 compatible = "arm,arch-cache";
165 cache-size = <0x80000>;
166 cache-level = <2>;
167 next-level-cache = <&L3_0>;
168 };
169 };
170
171 cpu-map {
172 cluster0 {
173 core0 {
174 cpu = <&CPU0>;
175 };
176
177 core1 {
178 cpu = <&CPU1>;
179 };
180
181 core2 {
182 cpu = <&CPU2>;
183 };
184
185 core3 {
186 cpu = <&CPU3>;
187 };
188 };
189
190 cluster1 {
191 core0 {
192 cpu = <&CPU4>;
193 };
194
195 core1 {
196 cpu = <&CPU5>;
197 };
198
199 core2 {
200 cpu = <&CPU6>;
201 };
202
203 core3 {
204 cpu = <&CPU7>;
205 };
206 };
207 };
208 };
209
Channagoud Kadabicdd72a02018-09-21 14:46:21 -0700210 cpu_pmu: cpu-pmu {
211 compatible = "arm,armv8-pmuv3";
212 qcom,irq-is-percpu;
213 interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH>;
214 };
215
Runmin Wang4f5985b2017-04-19 15:55:12 -0700216 soc: soc { };
Swathi Sridhara79a9542018-06-21 11:40:44 -0700217
218 reserved-memory {
219 #address-cells = <2>;
220 #size-cells = <2>;
221 ranges;
222
223 hyp_mem: hyp_region@80000000 {
224 no-map;
225 reg = <0x0 0x80000000 0x0 0x600000>;
226 };
227
228 xbl_aop_mem: xbl_aop_region@80700000 {
229 no-map;
230 reg = <0x0 0x80700000 0x0 0x140000>;
231 };
232
233 smem_mem: smem_region@80900000 {
234 no-map;
235 reg = <0x0 0x80900000 0x0 0x200000>;
236 };
237
238 removed_mem: removed_region@80b00000 {
239 no-map;
240 reg = <0x0 0x80b00000 0x0 0xc00000>;
241 };
242
243 qtee_apps_mem: qtee_apps_region@81e00000 {
244 no-map;
245 reg = <0x0 0x81e00000 0x0 0x2600000>;
246 };
247
Lina Iyer32296892018-06-20 17:03:44 -0600248 cmd_db: reserved-memory@85fe0000 {
249 reg = <0x0 0x85fe0000 0x0 0x20000>;
250 compatible = "qcom,cmd-db";
251 no-map;
252 };
253
Swathi Sridhara79a9542018-06-21 11:40:44 -0700254 pil_camera_mem: pil_camera_region@86000000 {
Swathi Sridhar2f971562018-10-02 15:43:09 -0700255 compatible = "removed-dma-pool";
Swathi Sridhara79a9542018-06-21 11:40:44 -0700256 no-map;
257 reg = <0x0 0x86000000 0x0 0x500000>;
258 };
259
260 pil_wlan_fw_mem: pil_wlan_fw_region@86500000 {
Swathi Sridhar2f971562018-10-02 15:43:09 -0700261 compatible = "removed-dma-pool";
Swathi Sridhara79a9542018-06-21 11:40:44 -0700262 no-map;
263 reg = <0x0 0x86500000 0x0 0x100000>;
264 };
265
266 pil_ipa_fw_mem: pil_ipa_fw_region@86600000 {
Swathi Sridhar2f971562018-10-02 15:43:09 -0700267 compatible = "removed-dma-pool";
Swathi Sridhara79a9542018-06-21 11:40:44 -0700268 no-map;
269 reg = <0x0 0x86600000 0x0 0x10000>;
270 };
271
272 pil_ipa_gsi_mem: pil_ipa_gsi_region@86610000 {
Swathi Sridhar2f971562018-10-02 15:43:09 -0700273 compatible = "removed-dma-pool";
Swathi Sridhara79a9542018-06-21 11:40:44 -0700274 no-map;
275 reg = <0x0 0x86610000 0x0 0x5000>;
276 };
277
278 pil_gpu_mem: pil_gpu_region@86615000 {
Swathi Sridhar2f971562018-10-02 15:43:09 -0700279 compatible = "removed-dma-pool";
Swathi Sridhara79a9542018-06-21 11:40:44 -0700280 no-map;
281 reg = <0x0 0x86615000 0x0 0x2000>;
282 };
283
284 pil_npu_mem: pil_npu_region@86680000 {
Swathi Sridhar2f971562018-10-02 15:43:09 -0700285 compatible = "removed-dma-pool";
Swathi Sridhara79a9542018-06-21 11:40:44 -0700286 no-map;
287 reg = <0x0 0x86680000 0x0 0x80000>;
288 };
289
290 pil_video_mem: pil_video_region@86700000 {
Swathi Sridhar2f971562018-10-02 15:43:09 -0700291 compatible = "removed-dma-pool";
Swathi Sridhara79a9542018-06-21 11:40:44 -0700292 no-map;
293 reg = <0x0 0x86700000 0x0 0x500000>;
294 };
295
296 pil_cvp_mem: pil_cvp_region@86c00000 {
Swathi Sridhar2f971562018-10-02 15:43:09 -0700297 compatible = "removed-dma-pool";
Swathi Sridhara79a9542018-06-21 11:40:44 -0700298 no-map;
299 reg = <0x0 0x86c00000 0x0 0x500000>;
300 };
301
302 pil_cdsp_mem: pil_cdsp_region@87100000 {
Swathi Sridhar2f971562018-10-02 15:43:09 -0700303 compatible = "removed-dma-pool";
Swathi Sridhara79a9542018-06-21 11:40:44 -0700304 no-map;
305 reg = <0x0 0x87100000 0x0 0x800000>;
306 };
307
308 pil_slpi_mem: pil_slpi_region@87900000 {
Swathi Sridhar2f971562018-10-02 15:43:09 -0700309 compatible = "removed-dma-pool";
Swathi Sridhara79a9542018-06-21 11:40:44 -0700310 no-map;
311 reg = <0x0 0x87900000 0x0 0x1400000>;
312 };
313
314 pil_adsp_mem: pil_adsp_region@88d00000 {
Swathi Sridhar2f971562018-10-02 15:43:09 -0700315 compatible = "removed-dma-pool";
Swathi Sridhara79a9542018-06-21 11:40:44 -0700316 no-map;
317 reg = <0x0 0x88d00000 0x0 0x1a00000>;
318 };
319
320 pil_spss_mem: pil_spss_region@8a700000 {
Swathi Sridhar2f971562018-10-02 15:43:09 -0700321 compatible = "removed-dma-pool";
Swathi Sridhara79a9542018-06-21 11:40:44 -0700322 no-map;
323 reg = <0x0 0x8a700000 0x0 0x100000>;
324 };
325
326 /* global autoconfigured region for contiguous allocations */
327 linux,cma {
328 compatible = "shared-dma-pool";
329 alloc-ranges = <0x0 0x00000000 0x0 0xffffffff>;
330 reusable;
331 alignment = <0x0 0x400000>;
332 size = <0x0 0x2000000>;
333 linux,cma-default;
334 };
335 };
Runmin Wang4f5985b2017-04-19 15:55:12 -0700336};
337
338&soc {
339 #address-cells = <1>;
340 #size-cells = <1>;
341 ranges = <0 0 0 0xffffffff>;
342 compatible = "simple-bus";
343
344 intc: interrupt-controller@17a00000 {
345 compatible = "arm,gic-v3";
346 #interrupt-cells = <3>;
347 interrupt-controller;
348 #redistributor-regions = <1>;
349 redistributor-stride = <0x0 0x20000>;
350 reg = <0x17a00000 0x10000>, /* GICD */
351 <0x17a60000 0x100000>; /* GICR * 8 */
352 interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
353 };
354
Rishabh Bhatnagarfd73eb12018-09-04 15:00:46 -0700355 qcom,chd_silver {
356 compatible = "qcom,core-hang-detect";
357 label = "silver";
358 qcom,threshold-arr = <0x18000058 0x18010058
359 0x18020058 0x18030058>;
360 qcom,config-arr = <0x18000060 0x18010060
361 0x18020060 0x18030060>;
362 };
363
364 qcom,chd_gold {
365 compatible = "qcom,core-hang-detect";
366 label = "gold";
367 qcom,threshold-arr = <0x18040058 0x18050058
368 0x18060058 0x18070058>;
369 qcom,config-arr = <0x18040060 0x18050060
370 0x18060060 0x18070060>;
371 };
372
Rishabh Bhatnagar8f0dd4b2018-08-07 11:07:40 -0700373 cache-controller@9200000 {
374 compatible = "qcom,kona-llcc";
375 reg = <0x9200000 0x1d0000> , <0x9600000 0x50000>;
376 reg-names = "llcc_base", "llcc_broadcast_base";
Channagoud Kadabia13ed0a2018-09-26 16:10:35 -0700377 interrupts = <GIC_SPI 582 IRQ_TYPE_LEVEL_HIGH>;
Rishabh Bhatnagar8f0dd4b2018-08-07 11:07:40 -0700378 };
379
Maria Neptune5a1428b2018-08-29 13:25:19 -0700380 arch_timer: timer {
Runmin Wang4f5985b2017-04-19 15:55:12 -0700381 compatible = "arm,armv8-timer";
382 interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
383 <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
384 <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
385 <GIC_PPI 12 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>;
386 clock-frequency = <19200000>;
387 };
388
Maria Neptune5a1428b2018-08-29 13:25:19 -0700389 memtimer: timer@17c20000 {
Runmin Wang4f5985b2017-04-19 15:55:12 -0700390 #address-cells = <1>;
391 #size-cells = <1>;
392 ranges;
393 compatible = "arm,armv7-timer-mem";
Rishabh Bhatnagar5c1c1762018-05-29 17:04:46 -0700394 reg = <0x17c20000 0x1000>;
Runmin Wang4f5985b2017-04-19 15:55:12 -0700395 clock-frequency = <19200000>;
396
Maria Neptune5a1428b2018-08-29 13:25:19 -0700397 frame@17c21000 {
Runmin Wang4f5985b2017-04-19 15:55:12 -0700398 frame-number = <0>;
Rishabh Bhatnagar5c1c1762018-05-29 17:04:46 -0700399 interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
Runmin Wang4f5985b2017-04-19 15:55:12 -0700400 <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
Rishabh Bhatnagar5c1c1762018-05-29 17:04:46 -0700401 reg = <0x17c21000 0x1000>,
402 <0x17c22000 0x1000>;
Runmin Wang4f5985b2017-04-19 15:55:12 -0700403 };
404
Rishabh Bhatnagar5c1c1762018-05-29 17:04:46 -0700405 frame@17c23000 {
Runmin Wang4f5985b2017-04-19 15:55:12 -0700406 frame-number = <1>;
Rishabh Bhatnagar5c1c1762018-05-29 17:04:46 -0700407 interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
408 reg = <0x17c23000 0x1000>;
Runmin Wang4f5985b2017-04-19 15:55:12 -0700409 status = "disabled";
410 };
411
Rishabh Bhatnagar5c1c1762018-05-29 17:04:46 -0700412 frame@17c25000 {
Runmin Wang4f5985b2017-04-19 15:55:12 -0700413 frame-number = <2>;
Rishabh Bhatnagar5c1c1762018-05-29 17:04:46 -0700414 interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
415 reg = <0x17c25000 0x1000>;
Runmin Wang4f5985b2017-04-19 15:55:12 -0700416 status = "disabled";
417 };
418
Rishabh Bhatnagar5c1c1762018-05-29 17:04:46 -0700419 frame@17c27000 {
Runmin Wang4f5985b2017-04-19 15:55:12 -0700420 frame-number = <3>;
Rishabh Bhatnagar5c1c1762018-05-29 17:04:46 -0700421 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
422 reg = <0x17c27000 0x1000>;
Runmin Wang4f5985b2017-04-19 15:55:12 -0700423 status = "disabled";
424 };
425
Rishabh Bhatnagar5c1c1762018-05-29 17:04:46 -0700426 frame@17c29000 {
Runmin Wang4f5985b2017-04-19 15:55:12 -0700427 frame-number = <4>;
Rishabh Bhatnagar5c1c1762018-05-29 17:04:46 -0700428 interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
429 reg = <0x17c29000 0x1000>;
Runmin Wang4f5985b2017-04-19 15:55:12 -0700430 status = "disabled";
431 };
432
Maria Neptune5a1428b2018-08-29 13:25:19 -0700433 frame@17c2b000 {
Runmin Wang4f5985b2017-04-19 15:55:12 -0700434 frame-number = <5>;
Rishabh Bhatnagar5c1c1762018-05-29 17:04:46 -0700435 interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
436 reg = <0x17c2b000 0x1000>;
Runmin Wang4f5985b2017-04-19 15:55:12 -0700437 status = "disabled";
438 };
439
Rishabh Bhatnagar5c1c1762018-05-29 17:04:46 -0700440 frame@17c2d000 {
Runmin Wang4f5985b2017-04-19 15:55:12 -0700441 frame-number = <6>;
Rishabh Bhatnagar5c1c1762018-05-29 17:04:46 -0700442 interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
443 reg = <0x17c2d000 0x1000>;
Runmin Wang4f5985b2017-04-19 15:55:12 -0700444 status = "disabled";
445 };
446 };
Deepak Katragadda5bbf8142018-06-20 16:12:13 -0700447
Rishabh Bhatnagarf35ba022018-09-18 15:17:22 -0700448 qcom,msm-imem@146bf000 {
Rishabh Bhatnagar2b6a59c2018-09-06 11:06:16 -0700449 compatible = "qcom,msm-imem";
450 reg = <0x146bf000 0x1000>;
451 ranges = <0x0 0x146bf000 0x1000>;
452 #address-cells = <1>;
453 #size-cells = <1>;
454
455 restart_reason@65c {
456 compatible = "qcom,msm-imem-restart_reason";
Maria Neptune5a1428b2018-08-29 13:25:19 -0700457 reg = <0x65c 0x4>;
Rishabh Bhatnagar2b6a59c2018-09-06 11:06:16 -0700458 };
459
460 dload_type@1c {
461 compatible = "qcom,msm-imem-dload-type";
462 reg = <0x1c 0x4>;
463 };
464
465 boot_stats@6b0 {
466 compatible = "qcom,msm-imem-boot_stats";
Maria Neptune5a1428b2018-08-29 13:25:19 -0700467 reg = <0x6b0 0x20>;
Rishabh Bhatnagar2b6a59c2018-09-06 11:06:16 -0700468 };
469
470 kaslr_offset@6d0 {
471 compatible = "qcom,msm-imem-kaslr_offset";
Maria Neptune5a1428b2018-08-29 13:25:19 -0700472 reg = <0x6d0 0xc>;
Rishabh Bhatnagar2b6a59c2018-09-06 11:06:16 -0700473 };
474
475 pil@94c {
476 compatible = "qcom,msm-imem-pil";
Maria Neptune5a1428b2018-08-29 13:25:19 -0700477 reg = <0x94c 0xc8>;
Rishabh Bhatnagar2b6a59c2018-09-06 11:06:16 -0700478 };
479 };
480
Rishabh Bhatnagar19ddb35e2018-09-18 15:53:03 -0700481 mdm0: qcom,mdm0 {
482 compatible = "qcom,ext-sdx50m";
483 cell-index = <0>;
484 #address-cells = <0>;
485 interrupt-parent = <&mdm0>;
486 #interrupt-cells = <1>;
487 interrupt-map-mask = <0xffffffff>;
488 interrupt-names =
489 "err_fatal_irq",
490 "status_irq",
491 "mdm2ap_vddmin_irq";
492 /* modem attributes */
493 qcom,ramdump-delay-ms = <3000>;
494 qcom,ramdump-timeout-ms = <120000>;
495 qcom,vddmin-modes = "normal";
496 qcom,vddmin-drive-strength = <8>;
497 qcom,sfr-query;
498 qcom,sysmon-id = <20>;
499 qcom,ssctl-instance-id = <0x10>;
500 qcom,support-shutdown;
501 qcom,pil-force-shutdown;
502 qcom,esoc-skip-restart-for-mdm-crash;
503 pinctrl-names = "default", "mdm_active", "mdm_suspend";
504 pinctrl-0 = <&ap2mdm_pon_reset_default>;
505 pinctrl-1 = <&ap2mdm_active &mdm2ap_active>;
506 pinctrl-2 = <&ap2mdm_sleep &mdm2ap_sleep>;
507 interrupt-map = <0 &tlmm 1 0x3
508 1 &tlmm 3 0x3>;
509 qcom,mdm2ap-errfatal-gpio = <&tlmm 1 0x00>;
510 qcom,ap2mdm-errfatal-gpio = <&tlmm 57 0x00>;
511 qcom,mdm2ap-status-gpio = <&tlmm 3 0x00>;
512 qcom,ap2mdm-status-gpio = <&tlmm 56 0x00>;
513 qcom,ap2mdm-soft-reset-gpio = <&tlmm 145 0x00>;
514 qcom,mdm-link-info = "0306_02.01.00";
515 status = "ok";
516 };
517
Lina Iyer8551c792018-06-21 16:06:53 -0600518 pdc: interrupt-controller@b220000 {
519 compatible = "qcom,kona-pdc";
520 reg = <0xb220000 0x30000>;
521 qcom,pdc-ranges = <0 480 29>, <42 522 52>, <94 609 30>;
522 #interrupt-cells = <2>;
523 interrupt-parent = <&intc>;
524 interrupt-controller;
525 };
526
David Collinsa6d833b2018-09-25 14:44:32 -0700527 clock_xo: bi_tcxo {
528 compatible = "fixed-clock";
529 #clock-cells = <0>;
530 clock-frequency = <19200000>;
531 clock-output-names = "bi_tcxo";
532 };
533
Deepak Katragadda5bbf8142018-06-20 16:12:13 -0700534 clock_rpmh: qcom,rpmhclk {
535 compatible = "qcom,dummycc";
536 clock-output-names = "rpmh_clocks";
537 #clock-cells = <1>;
538 };
539
540 clock_aop: qcom,aopclk {
541 compatible = "qcom,dummycc";
542 clock-output-names = "qdss_clocks";
543 #clock-cells = <1>;
544 };
545
Vivek Aknurwar7e9ecb92018-09-07 14:27:58 -0700546 clock_gcc: qcom,gcc@100000 {
547 compatible = "qcom,gcc-kona";
548 reg = <0x100000 0x1f0000>;
549 reg-names = "cc_base";
550 vdd_cx-supply = <&VDD_CX_LEVEL>;
551 vdd_cx_ao-supply = <&VDD_CX_LEVEL_AO>;
552 vdd_mm-supply = <&VDD_MMCX_LEVEL>;
Deepak Katragadda5bbf8142018-06-20 16:12:13 -0700553 #clock-cells = <1>;
554 #reset-cells = <1>;
555 };
556
557 clock_npucc: qcom,npucc {
558 compatible = "qcom,dummycc";
559 clock-output-names = "npucc_clocks";
560 #clock-cells = <1>;
561 #reset-cells = <1>;
562 };
563
564 clock_videocc: qcom,videocc {
565 compatible = "qcom,dummycc";
566 clock-output-names = "videocc_clocks";
567 #clock-cells = <1>;
568 #reset-cells = <1>;
569 };
570
571 clock_camcc: qcom,camcc {
572 compatible = "qcom,dummycc";
573 clock-output-names = "camcc_clocks";
574 #clock-cells = <1>;
575 #reset-cells = <1>;
576 };
577
578 clock_dispcc: qcom,dispcc {
579 compatible = "qcom,dummycc";
580 clock-output-names = "dispcc_clocks";
581 #clock-cells = <1>;
582 #reset-cells = <1>;
583 };
584
585 clock_gpucc: qcom,gpucc {
586 compatible = "qcom,dummycc";
587 clock-output-names = "gpucc_clocks";
588 #clock-cells = <1>;
589 #reset-cells = <1>;
590 };
591
592 clock_cpucc: qcom,cpucc {
593 compatible = "qcom,dummycc";
594 clock-output-names = "cpucc_clocks";
595 #clock-cells = <1>;
596 };
Raghavendra Rao Ananta02957962018-08-06 15:28:34 -0700597
David Collinsa86302c2018-09-17 14:16:50 -0700598 /* GCC GDSCs */
599 pcie_0_gdsc: qcom,gdsc@16b004 {
600 compatible = "qcom,gdsc";
601 reg = <0x16b004 0x4>;
602 regulator-name = "pcie_0_gdsc";
603 };
604
605 pcie_1_gdsc: qcom,gdsc@18d004 {
606 compatible = "qcom,gdsc";
607 reg = <0x18d004 0x4>;
608 regulator-name = "pcie_1_gdsc";
609 };
610
611 pcie_2_gdsc: qcom,gdsc@106004 {
612 compatible = "qcom,gdsc";
613 reg = <0x106004 0x4>;
614 regulator-name = "pcie_2_gdsc";
615 };
616
617 ufs_card_gdsc: qcom,gdsc@175004 {
618 compatible = "qcom,gdsc";
619 reg = <0x175004 0x4>;
620 regulator-name = "ufs_card_gdsc";
621 };
622
623 ufs_phy_gdsc: qcom,gdsc@177004 {
624 compatible = "qcom,gdsc";
625 reg = <0x177004 0x4>;
626 regulator-name = "ufs_phy_gdsc";
627 };
628
629 usb30_prim_gdsc: qcom,gdsc@10f004 {
630 compatible = "qcom,gdsc";
631 reg = <0x10f004 0x4>;
632 regulator-name = "usb30_prim_gdsc";
633 };
634
635 usb30_sec_gdsc: qcom,gdsc@110004 {
636 compatible = "qcom,gdsc";
637 reg = <0x110004 0x4>;
638 regulator-name = "usb30_sec_gdsc";
639 };
640
641 hlos1_vote_mmnoc_mmu_tbu_hf0_gdsc: qcom,gdsc@17d050 {
642 compatible = "qcom,gdsc";
643 reg = <0x17d050 0x4>;
644 regulator-name = "hlos1_vote_mmnoc_mmu_tbu_hf0_gdsc";
645 qcom,no-status-check-on-disable;
646 qcom,gds-timeout = <500>;
647 };
648
649 hlos1_vote_mmnoc_mmu_tbu_hf1_gdsc: qcom,gdsc@17d058 {
650 compatible = "qcom,gdsc";
651 reg = <0x17d058 0x4>;
652 regulator-name = "hlos1_vote_mmnoc_mmu_tbu_hf1_gdsc";
653 qcom,no-status-check-on-disable;
654 qcom,gds-timeout = <500>;
655 };
656
657 hlos1_vote_mmnoc_mmu_tbu_sf0_gdsc: qcom,gdsc@17d054 {
658 compatible = "qcom,gdsc";
659 reg = <0x17d054 0x4>;
660 regulator-name = "hlos1_vote_mmnoc_mmu_tbu_sf0_gdsc";
661 qcom,no-status-check-on-disable;
662 qcom,gds-timeout = <500>;
663 };
664
665 hlos1_vote_mmnoc_mmu_tbu_sf1_gdsc: qcom,gdsc@17d06c {
666 compatible = "qcom,gdsc";
667 reg = <0x17d06c 0x4>;
668 regulator-name = "hlos1_vote_mmnoc_mmu_tbu_sf1_gdsc";
669 qcom,no-status-check-on-disable;
670 qcom,gds-timeout = <500>;
671 };
672
673 /* CAM_CC GDSCs */
674 bps_gdsc: qcom,gdsc@ad07004 {
675 compatible = "qcom,gdsc";
676 reg = <0xad07004 0x4>;
677 regulator-name = "bps_gdsc";
678 clock-names = "ahb_clk";
679 clocks = <&clock_gcc GCC_CAMERA_AHB_CLK>;
680 parent-supply = <&VDD_MMCX_LEVEL>;
681 vdd_parent-supply = <&VDD_MMCX_LEVEL>;
682 qcom,support-hw-trigger;
683 };
684
685 ife_0_gdsc: qcom,gdsc@ad0a004 {
686 compatible = "qcom,gdsc";
687 reg = <0xad0a004 0x4>;
688 regulator-name = "ife_0_gdsc";
689 clock-names = "ahb_clk";
690 clocks = <&clock_gcc GCC_CAMERA_AHB_CLK>;
691 parent-supply = <&VDD_MMCX_LEVEL>;
692 vdd_parent-supply = <&VDD_MMCX_LEVEL>;
693 };
694
695 ife_1_gdsc: qcom,gdsc@ad0b004 {
696 compatible = "qcom,gdsc";
697 reg = <0xad0b004 0x4>;
698 regulator-name = "ife_1_gdsc";
699 clock-names = "ahb_clk";
700 clocks = <&clock_gcc GCC_CAMERA_AHB_CLK>;
701 parent-supply = <&VDD_MMCX_LEVEL>;
702 vdd_parent-supply = <&VDD_MMCX_LEVEL>;
703 };
704
705 ipe_0_gdsc: qcom,gdsc@ad08004 {
706 compatible = "qcom,gdsc";
707 reg = <0xad08004 0x4>;
708 regulator-name = "ipe_0_gdsc";
709 clock-names = "ahb_clk";
710 clocks = <&clock_gcc GCC_CAMERA_AHB_CLK>;
711 parent-supply = <&VDD_MMCX_LEVEL>;
712 vdd_parent-supply = <&VDD_MMCX_LEVEL>;
713 qcom,support-hw-trigger;
714 };
715
716 sbi_gdsc: qcom,gdsc@ad09004 {
717 compatible = "qcom,gdsc";
718 reg = <0xad09004 0x4>;
719 regulator-name = "sbi_gdsc";
720 clock-names = "ahb_clk";
721 clocks = <&clock_gcc GCC_CAMERA_AHB_CLK>;
722 parent-supply = <&VDD_MMCX_LEVEL>;
723 vdd_parent-supply = <&VDD_MMCX_LEVEL>;
724 };
725
726 titan_top_gdsc: qcom,gdsc@ad0c144 {
727 compatible = "qcom,gdsc";
728 reg = <0xad0c144 0x4>;
729 regulator-name = "titan_top_gdsc";
730 clock-names = "ahb_clk";
731 clocks = <&clock_gcc GCC_CAMERA_AHB_CLK>;
732 parent-supply = <&VDD_MMCX_LEVEL>;
733 vdd_parent-supply = <&VDD_MMCX_LEVEL>;
734 };
735
736 /* DISP_CC GDSC */
737 mdss_core_gdsc: qcom,gdsc@af03000 {
738 compatible = "qcom,gdsc";
739 reg = <0xaf03000 0x4>;
740 regulator-name = "mdss_core_gdsc";
741 clock-names = "ahb_clk";
742 clocks = <&clock_gcc GCC_DISP_AHB_CLK>;
743 parent-supply = <&VDD_MMCX_LEVEL>;
744 vdd_parent-supply = <&VDD_MMCX_LEVEL>;
745 qcom,support-hw-trigger;
746 };
747
748 /* GPU_CC GDSCs */
749 gpu_cx_hw_ctrl: syscon@3d91540 {
750 compatible = "syscon";
751 reg = <0x3d91540 0x4>;
752 };
753
754 gpu_cx_gdsc: qcom,gdsc@3d9106c {
755 compatible = "qcom,gdsc";
756 reg = <0x3d9106c 0x4>;
757 regulator-name = "gpu_cx_gdsc";
758 hw-ctrl-addr = <&gpu_cx_hw_ctrl>;
759 parent-supply = <&VDD_CX_LEVEL>;
760 qcom,no-status-check-on-disable;
761 qcom,clk-dis-wait-val = <8>;
762 qcom,gds-timeout = <500>;
763 };
764
765 gpu_gx_domain_addr: syscon@0x3d91508 {
766 compatible = "syscon";
767 reg = <0x3d91508 0x4>;
768 };
769
770 gpu_gx_sw_reset: syscon@0x3d91008 {
771 compatible = "syscon";
772 reg = <0x3d91008 0x4>;
773 };
774
775 gpu_gx_gdsc: qcom,gdsc@3d9100c {
776 compatible = "qcom,gdsc";
777 reg = <0x3d9100c 0x4>;
778 regulator-name = "gpu_gx_gdsc";
779 domain-addr = <&gpu_gx_domain_addr>;
780 sw-reset = <&gpu_gx_sw_reset>;
781 parent-supply = <&VDD_GFX_LEVEL>;
782 vdd_parent-supply = <&VDD_GFX_LEVEL>;
783 qcom,reset-aon-logic;
784 };
785
786 /* NPU GDSC */
787 npu_core_gdsc: qcom,gdsc@9981004 {
788 compatible = "qcom,gdsc";
789 reg = <0x9981004 0x4>;
790 regulator-name = "npu_core_gdsc";
791 clock-names = "ahb_clk";
792 clocks = <&clock_gcc GCC_NPU_CFG_AHB_CLK>;
793 };
794
795 /* VIDEO_CC GDSCs */
796 mvs0_gdsc: qcom,gdsc@abf0d18 {
797 compatible = "qcom,gdsc";
798 reg = <0xabf0d18 0x4>;
799 regulator-name = "mvs0_gdsc";
800 clock-names = "ahb_clk";
801 clocks = <&clock_gcc GCC_VIDEO_AHB_CLK>;
802 parent-supply = <&VDD_MMCX_LEVEL>;
803 vdd_parent-supply = <&VDD_MMCX_LEVEL>;
804 };
805
806 mvs0c_gdsc: qcom,gdsc@abf0bf8 {
807 compatible = "qcom,gdsc";
808 reg = <0xabf0bf8 0x4>;
809 regulator-name = "mvs0c_gdsc";
810 clock-names = "ahb_clk";
811 clocks = <&clock_gcc GCC_VIDEO_AHB_CLK>;
812 parent-supply = <&VDD_MMCX_LEVEL>;
813 vdd_parent-supply = <&VDD_MMCX_LEVEL>;
814 };
815
816 mvs1_gdsc: qcom,gdsc@abf0d98 {
817 compatible = "qcom,gdsc";
818 reg = <0xabf0d98 0x4>;
819 regulator-name = "mvs1_gdsc";
820 clock-names = "ahb_clk";
821 clocks = <&clock_gcc GCC_VIDEO_AHB_CLK>;
822 parent-supply = <&VDD_MMCX_LEVEL>;
823 vdd_parent-supply = <&VDD_MMCX_LEVEL>;
824 };
825
826 mvs1c_gdsc: qcom,gdsc@abf0c98 {
827 compatible = "qcom,gdsc";
828 reg = <0xabf0c98 0x4>;
829 regulator-name = "mvs1c_gdsc";
830 clock-names = "ahb_clk";
831 clocks = <&clock_gcc GCC_VIDEO_AHB_CLK>;
832 parent-supply = <&VDD_MMCX_LEVEL>;
833 vdd_parent-supply = <&VDD_MMCX_LEVEL>;
834 };
835
Can Guob04bed52018-07-10 19:27:32 -0700836 ufsphy_mem: ufsphy_mem@1d87000 {
837 reg = <0x1d87000 0xe00>; /* PHY regs */
838 reg-names = "phy_mem";
839 #phy-cells = <0>;
840
841 lanes-per-direction = <2>;
842
843 clock-names = "ref_clk_src",
844 "ref_clk",
845 "ref_aux_clk";
846 clocks = <&clock_rpmh RPMH_CXO_CLK>,
Vivek Aknurwarec5c93d2018-08-28 14:52:33 -0700847 <&clock_gcc GCC_UFS_1X_CLKREF_EN>,
Can Guob04bed52018-07-10 19:27:32 -0700848 <&clock_gcc GCC_UFS_PHY_PHY_AUX_CLK>;
849
850 status = "disabled";
851 };
852
853 ufshc_mem: ufshc@1d84000 {
854 compatible = "qcom,ufshc";
855 reg = <0x1d84000 0x3000>;
856 interrupts = <GIC_SPI 265 IRQ_TYPE_LEVEL_HIGH>;
857 phys = <&ufsphy_mem>;
858 phy-names = "ufsphy";
859
860 lanes-per-direction = <2>;
861 dev-ref-clk-freq = <0>; /* 19.2 MHz */
862
863 clock-names =
864 "core_clk",
865 "bus_aggr_clk",
866 "iface_clk",
867 "core_clk_unipro",
868 "core_clk_ice",
869 "ref_clk",
870 "tx_lane0_sync_clk",
871 "rx_lane0_sync_clk",
872 "rx_lane1_sync_clk";
873 clocks =
874 <&clock_gcc GCC_UFS_PHY_AXI_CLK>,
875 <&clock_gcc GCC_AGGRE_UFS_PHY_AXI_CLK>,
876 <&clock_gcc GCC_UFS_PHY_AHB_CLK>,
877 <&clock_gcc GCC_UFS_PHY_UNIPRO_CORE_CLK>,
878 <&clock_gcc GCC_UFS_PHY_ICE_CORE_CLK>,
879 <&clock_rpmh RPMH_CXO_CLK>,
880 <&clock_gcc GCC_UFS_PHY_TX_SYMBOL_0_CLK>,
881 <&clock_gcc GCC_UFS_PHY_RX_SYMBOL_0_CLK>,
882 <&clock_gcc GCC_UFS_PHY_RX_SYMBOL_1_CLK>;
883 freq-table-hz =
884 <37500000 300000000>,
885 <0 0>,
886 <0 0>,
887 <37500000 300000000>,
888 <75000000 300000000>,
889 <0 0>,
890 <0 0>,
891 <0 0>,
892 <0 0>;
893
894 qcom,msm-bus,name = "ufshc_mem";
895 qcom,msm-bus,num-cases = <22>;
896 qcom,msm-bus,num-paths = <2>;
897 qcom,msm-bus,vectors-KBps =
898 /*
899 * During HS G3 UFS runs at nominal voltage corner, vote
900 * higher bandwidth to push other buses in the data path
901 * to run at nominal to achieve max throughput.
902 * 4GBps pushes BIMC to run at nominal.
903 * 200MBps pushes CNOC to run at nominal.
904 * Vote for half of this bandwidth for HS G3 1-lane.
905 * For max bandwidth, vote high enough to push the buses
906 * to run in turbo voltage corner.
907 */
908 <123 512 0 0>, <1 757 0 0>, /* No vote */
909 <123 512 922 0>, <1 757 1000 0>, /* PWM G1 */
910 <123 512 1844 0>, <1 757 1000 0>, /* PWM G2 */
911 <123 512 3688 0>, <1 757 1000 0>, /* PWM G3 */
912 <123 512 7376 0>, <1 757 1000 0>, /* PWM G4 */
913 <123 512 1844 0>, <1 757 1000 0>, /* PWM G1 L2 */
914 <123 512 3688 0>, <1 757 1000 0>, /* PWM G2 L2 */
915 <123 512 7376 0>, <1 757 1000 0>, /* PWM G3 L2 */
916 <123 512 14752 0>, <1 757 1000 0>, /* PWM G4 L2 */
917 <123 512 127796 0>, <1 757 1000 0>, /* HS G1 RA */
918 <123 512 255591 0>, <1 757 1000 0>, /* HS G2 RA */
919 <123 512 2097152 0>, <1 757 102400 0>, /* HS G3 RA */
920 <123 512 255591 0>, <1 757 1000 0>, /* HS G1 RA L2 */
921 <123 512 511181 0>, <1 757 1000 0>, /* HS G2 RA L2 */
922 <123 512 4194304 0>, <1 757 204800 0>, /* HS G3 RA L2 */
923 <123 512 149422 0>, <1 757 1000 0>, /* HS G1 RB */
924 <123 512 298189 0>, <1 757 1000 0>, /* HS G2 RB */
925 <123 512 2097152 0>, <1 757 102400 0>, /* HS G3 RB */
926 <123 512 298189 0>, <1 757 1000 0>, /* HS G1 RB L2 */
927 <123 512 596378 0>, <1 757 1000 0>, /* HS G2 RB L2 */
928 /* As UFS working in HS G3 RB L2 mode, aggregated
929 * bandwidth (AB) should take care of providing
930 * optimum throughput requested. However, as tested,
931 * in order to scale up CNOC clock, instantaneous
932 * bindwidth (IB) needs to be given a proper value too.
933 */
934 <123 512 4194304 0>, <1 757 204800 409600>, /* HS G3 RB L2 */
935 <123 512 7643136 0>, <1 757 307200 0>; /* Max. bandwidth */
936
937 qcom,bus-vector-names = "MIN",
938 "PWM_G1_L1", "PWM_G2_L1", "PWM_G3_L1", "PWM_G4_L1",
939 "PWM_G1_L2", "PWM_G2_L2", "PWM_G3_L2", "PWM_G4_L2",
940 "HS_RA_G1_L1", "HS_RA_G2_L1", "HS_RA_G3_L1",
941 "HS_RA_G1_L2", "HS_RA_G2_L2", "HS_RA_G3_L2",
942 "HS_RB_G1_L1", "HS_RB_G2_L1", "HS_RB_G3_L1",
943 "HS_RB_G1_L2", "HS_RB_G2_L2", "HS_RB_G3_L2",
944 "MAX";
945
946 /* PM QoS */
947 qcom,pm-qos-cpu-groups = <0x0f 0xf0>;
948 qcom,pm-qos-cpu-group-latency-us = <44 44>;
949 qcom,pm-qos-default-cpu = <0>;
950
951 pinctrl-names = "dev-reset-assert", "dev-reset-deassert";
952 pinctrl-0 = <&ufs_dev_reset_assert>;
953 pinctrl-1 = <&ufs_dev_reset_deassert>;
954
955 resets = <&clock_gcc GCC_UFS_PHY_BCR>;
956 reset-names = "core_reset";
957
958 status = "disabled";
959 };
960
Raghavendra Rao Ananta02957962018-08-06 15:28:34 -0700961 ipcc_mproc: qcom,ipcc@408000 {
962 compatible = "qcom,kona-ipcc";
963 reg = <0x408000 0x1000>;
964 interrupts = <GIC_SPI 229 IRQ_TYPE_LEVEL_HIGH>;
965 interrupt-controller;
966 #interrupt-cells = <3>;
967 #mbox-cells = <2>;
968 };
Lina Iyerea91c722018-06-20 14:58:05 -0600969
Raghavendra Rao Ananta5da54b32018-08-09 10:04:50 -0700970 ipcc_self_ping: ipcc-self-ping {
971 compatible = "qcom,ipcc-self-ping";
972 interrupts-extended = <&ipcc_mproc IPCC_CLIENT_APSS
973 IPCC_MPROC_SIGNAL_SMP2P IRQ_TYPE_LEVEL_HIGH>;
974 mboxes = <&ipcc_mproc IPCC_CLIENT_APSS IPCC_MPROC_SIGNAL_SMP2P>;
975 };
976
Maria Neptune5a1428b2018-08-29 13:25:19 -0700977 apps_rsc: rsc@18200000 {
Lina Iyerea91c722018-06-20 14:58:05 -0600978 label = "apps_rsc";
979 compatible = "qcom,rpmh-rsc";
980 reg = <0x18200000 0x10000>,
981 <0x18210000 0x10000>,
982 <0x18220000 0x10000>;
983 reg-names = "drv-0", "drv-1", "drv-2";
984 interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>,
985 <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>,
986 <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
987 qcom,tcs-offset = <0xd00>;
988 qcom,drv-id = <2>;
989 qcom,tcs-config = <ACTIVE_TCS 2>,
990 <SLEEP_TCS 3>,
991 <WAKE_TCS 3>,
992 <CONTROL_TCS 1>;
993 status = "disabled";
994 };
995
996 disp_rsc: rsc@af20000 {
997 label = "disp_rsc";
998 compatible = "qcom,rpmh-rsc";
999 reg = <0xaf20000 0x10000>;
1000 reg-names = "drv-0";
1001 interrupts = <GIC_SPI 129 IRQ_TYPE_LEVEL_HIGH>;
1002 qcom,tcs-offset = <0x1c00>;
1003 qcom,drv-id = <0>;
1004 qcom,tcs-config = <ACTIVE_TCS 0>,
1005 <SLEEP_TCS 1>,
1006 <WAKE_TCS 1>,
1007 <CONTROL_TCS 0>;
1008 status = "disabled";
1009 };
Chris Lew86f6bde2018-09-06 16:40:39 -07001010
1011 tcsr_mutex_block: syscon@1f40000 {
1012 compatible = "syscon";
1013 reg = <0x1f40000 0x20000>;
1014 };
1015
1016 tcsr_mutex: hwlock {
1017 compatible = "qcom,tcsr-mutex";
1018 syscon = <&tcsr_mutex_block 0 0x1000>;
1019 #hwlock-cells = <1>;
1020 };
1021
1022 smem: qcom,smem {
1023 compatible = "qcom,smem";
1024 memory-region = <&smem_mem>;
1025 hwlocks = <&tcsr_mutex 3>;
1026 };
Runmin Wang4f5985b2017-04-19 15:55:12 -07001027};
Swathi Sridhar4008eb42018-07-17 15:34:46 -07001028
Swathi Sridharbbbc80b2018-07-13 10:02:08 -07001029#include "kona-ion.dtsi"
Swathi Sridhar4008eb42018-07-17 15:34:46 -07001030#include "msm-arm-smmu-kona.dtsi"
Rishabh Bhatnagara740b0e2018-07-20 15:08:35 -07001031#include "kona-pinctrl.dtsi"
Chris Lew86f6bde2018-09-06 16:40:39 -07001032#include "kona-smp2p.dtsi"
Hemant Kumar5f58bad2018-08-31 14:25:23 -07001033#include "kona-usb.dtsi"