Linux 6.7-rc7
[linux-modified.git] / arch / arm64 / boot / dts / qcom / qcm2290.dtsi
1 // SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
2 /*
3  * Copyright (c) 2023, Linaro Ltd
4  *
5  * Based on sm6115.dtsi and previous efforts by Shawn Guo & Loic Poulain.
6  */
7
8 #include <dt-bindings/clock/qcom,gcc-qcm2290.h>
9 #include <dt-bindings/clock/qcom,rpmcc.h>
10 #include <dt-bindings/dma/qcom-gpi.h>
11 #include <dt-bindings/firmware/qcom,scm.h>
12 #include <dt-bindings/gpio/gpio.h>
13 #include <dt-bindings/interrupt-controller/arm-gic.h>
14 #include <dt-bindings/power/qcom-rpmpd.h>
15
16 / {
17         interrupt-parent = <&intc>;
18
19         #address-cells = <2>;
20         #size-cells = <2>;
21
22         chosen { };
23
24         clocks {
25                 xo_board: xo-board {
26                         compatible = "fixed-clock";
27                         #clock-cells = <0>;
28                 };
29
30                 sleep_clk: sleep-clk {
31                         compatible = "fixed-clock";
32                         clock-frequency = <32764>;
33                         #clock-cells = <0>;
34                 };
35         };
36
37         cpus {
38                 #address-cells = <2>;
39                 #size-cells = <0>;
40
41                 CPU0: cpu@0 {
42                         device_type = "cpu";
43                         compatible = "arm,cortex-a53";
44                         reg = <0x0 0x0>;
45                         clocks = <&cpufreq_hw 0>;
46                         capacity-dmips-mhz = <1024>;
47                         dynamic-power-coefficient = <100>;
48                         enable-method = "psci";
49                         next-level-cache = <&L2_0>;
50                         qcom,freq-domain = <&cpufreq_hw 0>;
51                         power-domains = <&CPU_PD0>;
52                         power-domain-names = "psci";
53                         L2_0: l2-cache {
54                                 compatible = "cache";
55                                 cache-level = <2>;
56                                 cache-unified;
57                         };
58                 };
59
60                 CPU1: cpu@1 {
61                         device_type = "cpu";
62                         compatible = "arm,cortex-a53";
63                         reg = <0x0 0x1>;
64                         clocks = <&cpufreq_hw 0>;
65                         capacity-dmips-mhz = <1024>;
66                         dynamic-power-coefficient = <100>;
67                         enable-method = "psci";
68                         next-level-cache = <&L2_0>;
69                         qcom,freq-domain = <&cpufreq_hw 0>;
70                         power-domains = <&CPU_PD1>;
71                         power-domain-names = "psci";
72                 };
73
74                 CPU2: cpu@2 {
75                         device_type = "cpu";
76                         compatible = "arm,cortex-a53";
77                         reg = <0x0 0x2>;
78                         clocks = <&cpufreq_hw 0>;
79                         capacity-dmips-mhz = <1024>;
80                         dynamic-power-coefficient = <100>;
81                         enable-method = "psci";
82                         next-level-cache = <&L2_0>;
83                         qcom,freq-domain = <&cpufreq_hw 0>;
84                         power-domains = <&CPU_PD2>;
85                         power-domain-names = "psci";
86                 };
87
88                 CPU3: cpu@3 {
89                         device_type = "cpu";
90                         compatible = "arm,cortex-a53";
91                         reg = <0x0 0x3>;
92                         clocks = <&cpufreq_hw 0>;
93                         capacity-dmips-mhz = <1024>;
94                         dynamic-power-coefficient = <100>;
95                         enable-method = "psci";
96                         next-level-cache = <&L2_0>;
97                         qcom,freq-domain = <&cpufreq_hw 0>;
98                         power-domains = <&CPU_PD3>;
99                         power-domain-names = "psci";
100                 };
101
102                 cpu-map {
103                         cluster0 {
104                                 core0 {
105                                         cpu = <&CPU0>;
106                                 };
107
108                                 core1 {
109                                         cpu = <&CPU1>;
110                                 };
111
112                                 core2 {
113                                         cpu = <&CPU2>;
114                                 };
115
116                                 core3 {
117                                         cpu = <&CPU3>;
118                                 };
119                         };
120                 };
121
122                 domain-idle-states {
123                         CLUSTER_SLEEP: cluster-sleep-0 {
124                                 compatible = "domain-idle-state";
125                                 arm,psci-suspend-param = <0x41000043>;
126                                 entry-latency-us = <800>;
127                                 exit-latency-us = <2118>;
128                                 min-residency-us = <7376>;
129                         };
130                 };
131
132                 idle-states {
133                         entry-method = "psci";
134
135                         CPU_SLEEP: cpu-sleep-0 {
136                                 compatible = "arm,idle-state";
137                                 idle-state-name = "power-collapse";
138                                 arm,psci-suspend-param = <0x40000003>;
139                                 entry-latency-us = <290>;
140                                 exit-latency-us = <376>;
141                                 min-residency-us = <1182>;
142                                 local-timer-stop;
143                         };
144                 };
145         };
146
147         firmware {
148                 scm: scm {
149                         compatible = "qcom,scm-qcm2290", "qcom,scm";
150                         clocks = <&rpmcc RPM_SMD_CE1_CLK>;
151                         clock-names = "core";
152                         #reset-cells = <1>;
153                 };
154         };
155
156         memory@40000000 {
157                 device_type = "memory";
158                 /* We expect the bootloader to fill in the size */
159                 reg = <0 0x40000000 0 0>;
160         };
161
162         pmu {
163                 compatible = "arm,armv8-pmuv3";
164                 interrupts = <GIC_PPI 6 IRQ_TYPE_LEVEL_HIGH>;
165         };
166
167         psci {
168                 compatible = "arm,psci-1.0";
169                 method = "smc";
170
171                 CPU_PD0: power-domain-cpu0 {
172                         #power-domain-cells = <0>;
173                         power-domains = <&CLUSTER_PD>;
174                         domain-idle-states = <&CPU_SLEEP>;
175                 };
176
177                 CPU_PD1: power-domain-cpu1 {
178                         #power-domain-cells = <0>;
179                         power-domains = <&CLUSTER_PD>;
180                         domain-idle-states = <&CPU_SLEEP>;
181                 };
182
183                 CPU_PD2: power-domain-cpu2 {
184                         #power-domain-cells = <0>;
185                         power-domains = <&CLUSTER_PD>;
186                         domain-idle-states = <&CPU_SLEEP>;
187                 };
188
189                 CPU_PD3: power-domain-cpu3 {
190                         #power-domain-cells = <0>;
191                         power-domains = <&CLUSTER_PD>;
192                         domain-idle-states = <&CPU_SLEEP>;
193                 };
194
195                 CLUSTER_PD: power-domain-cpu-cluster {
196                         #power-domain-cells = <0>;
197                         domain-idle-states = <&CLUSTER_SLEEP>;
198                 };
199         };
200
201         rpm: remoteproc {
202                 compatible = "qcom,qcm2290-rpm-proc", "qcom,rpm-proc";
203
204                 glink-edge {
205                         compatible = "qcom,glink-rpm";
206                         interrupts = <GIC_SPI 194 IRQ_TYPE_EDGE_RISING>;
207                         qcom,rpm-msg-ram = <&rpm_msg_ram>;
208                         mboxes = <&apcs_glb 0>;
209
210                         rpm_requests: rpm-requests {
211                                 compatible = "qcom,rpm-qcm2290";
212                                 qcom,glink-channels = "rpm_requests";
213
214                                 rpmcc: clock-controller {
215                                         compatible = "qcom,rpmcc-qcm2290", "qcom,rpmcc";
216                                         clocks = <&xo_board>;
217                                         clock-names = "xo";
218                                         #clock-cells = <1>;
219                                 };
220
221                                 rpmpd: power-controller {
222                                         compatible = "qcom,qcm2290-rpmpd";
223                                         #power-domain-cells = <1>;
224                                         operating-points-v2 = <&rpmpd_opp_table>;
225
226                                         rpmpd_opp_table: opp-table {
227                                                 compatible = "operating-points-v2";
228
229                                                 rpmpd_opp_min_svs: opp1 {
230                                                         opp-level = <RPM_SMD_LEVEL_MIN_SVS>;
231                                                 };
232
233                                                 rpmpd_opp_low_svs: opp2 {
234                                                         opp-level = <RPM_SMD_LEVEL_LOW_SVS>;
235                                                 };
236
237                                                 rpmpd_opp_svs: opp3 {
238                                                         opp-level = <RPM_SMD_LEVEL_SVS>;
239                                                 };
240
241                                                 rpmpd_opp_svs_plus: opp4 {
242                                                         opp-level = <RPM_SMD_LEVEL_SVS_PLUS>;
243                                                 };
244
245                                                 rpmpd_opp_nom: opp5 {
246                                                         opp-level = <RPM_SMD_LEVEL_NOM>;
247                                                 };
248
249                                                 rpmpd_opp_nom_plus: opp6 {
250                                                         opp-level = <RPM_SMD_LEVEL_NOM_PLUS>;
251                                                 };
252
253                                                 rpmpd_opp_turbo: opp7 {
254                                                         opp-level = <RPM_SMD_LEVEL_TURBO>;
255                                                 };
256
257                                                 rpmpd_opp_turbo_plus: opp8 {
258                                                         opp-level = <RPM_SMD_LEVEL_TURBO_NO_CPR>;
259                                                 };
260                                         };
261                                 };
262                         };
263                 };
264         };
265
266         reserved_memory: reserved-memory {
267                 #address-cells = <2>;
268                 #size-cells = <2>;
269                 ranges;
270
271                 hyp_mem: hyp@45700000 {
272                         reg = <0x0 0x45700000 0x0 0x600000>;
273                         no-map;
274                 };
275
276                 xbl_aop_mem: xbl-aop@45e00000 {
277                         reg = <0x0 0x45e00000 0x0 0x140000>;
278                         no-map;
279                 };
280
281                 sec_apps_mem: sec-apps@45fff000 {
282                         reg = <0x0 0x45fff000 0x0 0x1000>;
283                         no-map;
284                 };
285
286                 smem_mem: smem@46000000 {
287                         compatible = "qcom,smem";
288                         reg = <0x0 0x46000000 0x0 0x200000>;
289                         no-map;
290
291                         hwlocks = <&tcsr_mutex 3>;
292                         qcom,rpm-msg-ram = <&rpm_msg_ram>;
293                 };
294
295                 pil_modem_mem: modem@4ab00000 {
296                         reg = <0x0 0x4ab00000 0x0 0x6900000>;
297                         no-map;
298                 };
299
300                 pil_video_mem: video@51400000 {
301                         reg = <0x0 0x51400000 0x0 0x500000>;
302                         no-map;
303                 };
304
305                 wlan_msa_mem: wlan-msa@51900000 {
306                         reg = <0x0 0x51900000 0x0 0x100000>;
307                         no-map;
308                 };
309
310                 pil_adsp_mem: adsp@51a00000 {
311                         reg = <0x0 0x51a00000 0x0 0x1c00000>;
312                         no-map;
313                 };
314
315                 pil_ipa_fw_mem: ipa-fw@53600000 {
316                         reg = <0x0 0x53600000 0x0 0x10000>;
317                         no-map;
318                 };
319
320                 pil_ipa_gsi_mem: ipa-gsi@53610000 {
321                         reg = <0x0 0x53610000 0x0 0x5000>;
322                         no-map;
323                 };
324
325                 pil_gpu_mem: zap@53615000 {
326                         compatible = "shared-dma-pool";
327                         reg = <0x0 0x53615000 0x0 0x2000>;
328                         no-map;
329                 };
330
331                 cont_splash_memory: framebuffer@5c000000 {
332                         reg = <0x0 0x5c000000 0x0 0x00f00000>;
333                         no-map;
334                 };
335
336                 dfps_data_memory: dpfs-data@5cf00000 {
337                         reg = <0x0 0x5cf00000 0x0 0x0100000>;
338                         no-map;
339                 };
340
341                 removed_mem: reserved@60000000 {
342                         reg = <0x0 0x60000000 0x0 0x3900000>;
343                         no-map;
344                 };
345
346                 rmtfs_mem: memory@89b01000 {
347                         compatible = "qcom,rmtfs-mem";
348                         reg = <0x0 0x89b01000 0x0 0x200000>;
349                         no-map;
350
351                         qcom,client-id = <1>;
352                         qcom,vmid = <QCOM_SCM_VMID_MSS_MSA QCOM_SCM_VMID_NAV>;
353                 };
354         };
355
356         smp2p-adsp {
357                 compatible = "qcom,smp2p";
358                 qcom,smem = <443>, <429>;
359
360                 interrupts = <GIC_SPI 279 IRQ_TYPE_EDGE_RISING>;
361
362                 mboxes = <&apcs_glb 10>;
363
364                 qcom,local-pid = <0>;
365                 qcom,remote-pid = <2>;
366
367                 adsp_smp2p_out: master-kernel {
368                         qcom,entry-name = "master-kernel";
369                         #qcom,smem-state-cells = <1>;
370                 };
371
372                 adsp_smp2p_in: slave-kernel {
373                         qcom,entry-name = "slave-kernel";
374                         interrupt-controller;
375                         #interrupt-cells = <2>;
376                 };
377         };
378
379         smp2p-mpss {
380                 compatible = "qcom,smp2p";
381                 qcom,smem = <435>, <428>;
382
383                 interrupts = <GIC_SPI 70 IRQ_TYPE_EDGE_RISING>;
384
385                 mboxes = <&apcs_glb 14>;
386
387                 qcom,local-pid = <0>;
388                 qcom,remote-pid = <1>;
389
390                 modem_smp2p_out: master-kernel {
391                         qcom,entry-name = "master-kernel";
392                         #qcom,smem-state-cells = <1>;
393                 };
394
395                 modem_smp2p_in: slave-kernel {
396                         qcom,entry-name = "slave-kernel";
397                         interrupt-controller;
398                         #interrupt-cells = <2>;
399                 };
400
401                 wlan_smp2p_in: wlan-wpss-to-ap {
402                         qcom,entry-name = "wlan";
403                         interrupt-controller;
404                         #interrupt-cells = <2>;
405                 };
406         };
407
408         soc: soc@0 {
409                 compatible = "simple-bus";
410                 #address-cells = <2>;
411                 #size-cells = <2>;
412                 ranges = <0 0 0 0 0x10 0>;
413                 dma-ranges = <0 0 0 0 0x10 0>;
414
415                 tcsr_mutex: hwlock@340000 {
416                         compatible = "qcom,tcsr-mutex";
417                         reg = <0x0 0x00340000 0x0 0x20000>;
418                         #hwlock-cells = <1>;
419                 };
420
421                 tlmm: pinctrl@500000 {
422                         compatible = "qcom,qcm2290-tlmm";
423                         reg = <0x0 0x00500000 0x0 0x300000>;
424                         interrupts = <GIC_SPI 227 IRQ_TYPE_LEVEL_HIGH>;
425                         gpio-controller;
426                         gpio-ranges = <&tlmm 0 0 127>;
427                         #gpio-cells = <2>;
428                         interrupt-controller;
429                         #interrupt-cells = <2>;
430
431                         qup_i2c0_default: qup-i2c0-default-state {
432                                 pins = "gpio0", "gpio1";
433                                 function = "qup0";
434                                 drive-strength = <2>;
435                                 bias-pull-up;
436                         };
437
438                         qup_i2c1_default: qup-i2c1-default-state {
439                                 pins = "gpio4", "gpio5";
440                                 function = "qup1";
441                                 drive-strength = <2>;
442                                 bias-pull-up;
443                         };
444
445                         qup_i2c2_default: qup-i2c2-default-state {
446                                 pins = "gpio6", "gpio7";
447                                 function = "qup2";
448                                 drive-strength = <2>;
449                                 bias-pull-up;
450                         };
451
452                         qup_i2c3_default: qup-i2c3-default-state {
453                                 pins = "gpio8", "gpio9";
454                                 function = "qup3";
455                                 drive-strength = <2>;
456                                 bias-pull-up;
457                         };
458
459                         qup_i2c4_default: qup-i2c4-default-state {
460                                 pins = "gpio12", "gpio13";
461                                 function = "qup4";
462                                 drive-strength = <2>;
463                                 bias-pull-up;
464                         };
465
466                         qup_i2c5_default: qup-i2c5-default-state {
467                                 pins = "gpio14", "gpio15";
468                                 function = "qup5";
469                                 drive-strength = <2>;
470                                 bias-pull-up;
471                         };
472
473                         qup_spi0_default: qup-spi0-default-state {
474                                 pins = "gpio0", "gpio1","gpio2", "gpio3";
475                                 function = "qup0";
476                                 drive-strength = <2>;
477                                 bias-pull-up;
478                         };
479
480                         qup_spi1_default: qup-spi1-default-state {
481                                 pins = "gpio4", "gpio5", "gpio69", "gpio70";
482                                 function = "qup1";
483                                 drive-strength = <2>;
484                                 bias-pull-up;
485                         };
486
487                         qup_spi2_default: qup-spi2-default-state {
488                                 pins = "gpio6", "gpio7", "gpio71", "gpio80";
489                                 function = "qup2";
490                                 drive-strength = <2>;
491                                 bias-pull-up;
492                         };
493
494                         qup_spi3_default: qup-spi3-default-state {
495                                 pins = "gpio8", "gpio9", "gpio10", "gpio11";
496                                 function = "qup3";
497                                 drive-strength = <2>;
498                                 bias-pull-up;
499                         };
500
501                         qup_spi4_default: qup-spi4-default-state {
502                                 pins = "gpio12", "gpio13", "gpio96", "gpio97";
503                                 function = "qup4";
504                                 drive-strength = <2>;
505                                 bias-pull-up;
506                         };
507
508                         qup_spi5_default: qup-spi5-default-state {
509                                 pins = "gpio14", "gpio15", "gpio16", "gpio17";
510                                 function = "qup5";
511                                 drive-strength = <2>;
512                                 bias-pull-up;
513                         };
514
515                         qup_uart0_default: qup-uart0-default-state {
516                                 pins = "gpio0", "gpio1", "gpio2", "gpio3";
517                                 function = "qup0";
518                                 drive-strength = <2>;
519                                 bias-disable;
520                         };
521
522                         qup_uart4_default: qup-uart4-default-state {
523                                 pins = "gpio12", "gpio13";
524                                 function = "qup4";
525                                 drive-strength = <2>;
526                                 bias-disable;
527                         };
528
529                         sdc1_state_on: sdc1-on-state {
530                                 clk-pins {
531                                         pins = "sdc1_clk";
532                                         drive-strength = <16>;
533                                         bias-disable;
534                                 };
535
536                                 cmd-pins {
537                                         pins = "sdc1_cmd";
538                                         drive-strength = <10>;
539                                         bias-pull-up;
540                                 };
541
542                                 data-pins {
543                                         pins = "sdc1_data";
544                                         drive-strength = <10>;
545                                         bias-pull-up;
546                                 };
547
548                                 rclk-pins {
549                                         pins = "sdc1_rclk";
550                                         bias-pull-down;
551                                 };
552                         };
553
554                         sdc1_state_off: sdc1-off-state {
555                                 clk-pins {
556                                         pins = "sdc1_clk";
557                                         drive-strength = <2>;
558                                         bias-disable;
559                                 };
560
561                                 cmd-pins {
562                                         pins = "sdc1_cmd";
563                                         drive-strength = <2>;
564                                         bias-pull-up;
565                                 };
566
567                                 data-pins {
568                                         pins = "sdc1_data";
569                                         drive-strength = <2>;
570                                         bias-pull-up;
571                                 };
572
573                                 rclk-pins {
574                                         pins = "sdc1_rclk";
575                                         bias-pull-down;
576                                 };
577                         };
578
579                         sdc2_state_on: sdc2-on-state {
580                                 clk-pins {
581                                         pins = "sdc2_clk";
582                                         drive-strength = <16>;
583                                         bias-disable;
584                                 };
585
586                                 cmd-pins {
587                                         pins = "sdc2_cmd";
588                                         drive-strength = <10>;
589                                         bias-pull-up;
590                                 };
591
592                                 data-pins {
593                                         pins = "sdc2_data";
594                                         drive-strength = <10>;
595                                         bias-pull-up;
596                                 };
597                         };
598
599                         sdc2_state_off: sdc2-off-state {
600                                 clk-pins {
601                                         pins = "sdc2_clk";
602                                         drive-strength = <2>;
603                                         bias-disable;
604                                 };
605
606                                 cmd-pins {
607                                         pins = "sdc2_cmd";
608                                         drive-strength = <2>;
609                                         bias-pull-up;
610                                 };
611
612                                 data-pins {
613                                         pins = "sdc2_data";
614                                         drive-strength = <2>;
615                                         bias-pull-up;
616                                 };
617                         };
618                 };
619
620                 gcc: clock-controller@1400000 {
621                         compatible = "qcom,gcc-qcm2290";
622                         reg = <0x0 0x01400000 0x0 0x1f0000>;
623                         clocks = <&rpmcc RPM_SMD_XO_CLK_SRC>, <&sleep_clk>;
624                         clock-names = "bi_tcxo", "sleep_clk";
625                         #clock-cells = <1>;
626                         #reset-cells = <1>;
627                         #power-domain-cells = <1>;
628                 };
629
630                 usb_hsphy: phy@1613000 {
631                         compatible = "qcom,qcm2290-qusb2-phy";
632                         reg = <0x0 0x01613000 0x0 0x180>;
633
634                         clocks = <&gcc GCC_AHB2PHY_USB_CLK>,
635                                  <&rpmcc RPM_SMD_XO_CLK_SRC>;
636                         clock-names = "cfg_ahb", "ref";
637
638                         resets = <&gcc GCC_QUSB2PHY_PRIM_BCR>;
639                         nvmem-cells = <&qusb2_hstx_trim>;
640                         #phy-cells = <0>;
641
642                         status = "disabled";
643                 };
644
645                 usb_qmpphy: phy@1615000 {
646                         compatible = "qcom,qcm2290-qmp-usb3-phy";
647                         reg = <0x0 0x01615000 0x0 0x1000>;
648
649                         clocks = <&gcc GCC_AHB2PHY_USB_CLK>,
650                                  <&gcc GCC_USB3_PRIM_CLKREF_CLK>,
651                                  <&gcc GCC_USB3_PRIM_PHY_COM_AUX_CLK>,
652                                  <&gcc GCC_USB3_PRIM_PHY_PIPE_CLK>;
653                         clock-names = "cfg_ahb",
654                                       "ref",
655                                       "com_aux",
656                                       "pipe";
657
658                         resets = <&gcc GCC_USB3_PHY_PRIM_SP0_BCR>,
659                                  <&gcc GCC_USB3PHY_PHY_PRIM_SP0_BCR>;
660                         reset-names = "phy",
661                                       "phy_phy";
662
663                         #clock-cells = <0>;
664                         clock-output-names = "usb3_phy_pipe_clk_src";
665
666                         #phy-cells = <0>;
667
668                         status = "disabled";
669                 };
670
671                 qfprom@1b44000 {
672                         compatible = "qcom,qcm2290-qfprom", "qcom,qfprom";
673                         reg = <0x0 0x01b44000 0x0 0x3000>;
674                         #address-cells = <1>;
675                         #size-cells = <1>;
676
677                         qusb2_hstx_trim: hstx-trim@25b {
678                                 reg = <0x25b 0x1>;
679                                 bits = <1 4>;
680                         };
681                 };
682
683                 spmi_bus: spmi@1c40000 {
684                         compatible = "qcom,spmi-pmic-arb";
685                         reg = <0x0 0x01c40000 0x0 0x1100>,
686                               <0x0 0x01e00000 0x0 0x2000000>,
687                               <0x0 0x03e00000 0x0 0x100000>,
688                               <0x0 0x03f00000 0x0 0xa0000>,
689                               <0x0 0x01c0a000 0x0 0x26000>;
690                         reg-names = "core",
691                                     "chnls",
692                                     "obsrvr",
693                                     "intr",
694                                     "cnfg";
695                         interrupts = <GIC_SPI 183 IRQ_TYPE_LEVEL_HIGH>;
696                         interrupt-names = "periph_irq";
697                         qcom,ee = <0>;
698                         qcom,channel = <0>;
699                         #address-cells = <2>;
700                         #size-cells = <0>;
701                         interrupt-controller;
702                         #interrupt-cells = <4>;
703                 };
704
705                 tsens0: thermal-sensor@4411000 {
706                         compatible = "qcom,qcm2290-tsens", "qcom,tsens-v2";
707                         reg = <0x0 0x04411000 0x0 0x1ff>,
708                               <0x0 0x04410000 0x0 0x8>;
709                         #qcom,sensors = <10>;
710                         interrupts = <GIC_SPI 275 IRQ_TYPE_LEVEL_HIGH>,
711                                      <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>;
712                         interrupt-names = "uplow", "critical";
713                         #thermal-sensor-cells = <1>;
714                 };
715
716                 rng: rng@4453000 {
717                         compatible = "qcom,prng-ee";
718                         reg = <0x0 0x04453000 0x0 0x1000>;
719                         clocks = <&rpmcc RPM_SMD_HWKM_CLK>;
720                         clock-names = "core";
721                 };
722
723                 rpm_msg_ram: sram@45f0000 {
724                         compatible = "qcom,rpm-msg-ram";
725                         reg = <0x0 0x045f0000 0x0 0x7000>;
726                 };
727
728                 sram@4690000 {
729                         compatible = "qcom,rpm-stats";
730                         reg = <0x0 0x04690000 0x0 0x10000>;
731                 };
732
733                 sdhc_1: mmc@4744000 {
734                         compatible = "qcom,qcm2290-sdhci", "qcom,sdhci-msm-v5";
735                         reg = <0x0 0x04744000 0x0 0x1000>,
736                               <0x0 0x04745000 0x0 0x1000>,
737                               <0x0 0x04748000 0x0 0x8000>;
738                         reg-names = "hc",
739                                     "cqhci",
740                                     "ice";
741
742                         interrupts = <GIC_SPI 348 IRQ_TYPE_LEVEL_HIGH>,
743                                      <GIC_SPI 352 IRQ_TYPE_LEVEL_HIGH>;
744                         interrupt-names = "hc_irq", "pwr_irq";
745
746                         clocks = <&gcc GCC_SDCC1_AHB_CLK>,
747                                  <&gcc GCC_SDCC1_APPS_CLK>,
748                                  <&rpmcc RPM_SMD_XO_CLK_SRC>,
749                                  <&gcc GCC_SDCC1_ICE_CORE_CLK>;
750                         clock-names = "iface",
751                                       "core",
752                                       "xo",
753                                       "ice";
754
755                         resets = <&gcc GCC_SDCC1_BCR>;
756
757                         power-domains = <&rpmpd QCM2290_VDDCX>;
758                         iommus = <&apps_smmu 0xc0 0x0>;
759
760                         qcom,dll-config = <0x000f642c>;
761                         qcom,ddr-config = <0x80040868>;
762                         bus-width = <8>;
763
764                         status = "disabled";
765                 };
766
767                 sdhc_2: mmc@4784000 {
768                         compatible = "qcom,qcm2290-sdhci", "qcom,sdhci-msm-v5";
769                         reg = <0x0 0x04784000 0x0 0x1000>;
770                         reg-names = "hc";
771
772                         interrupts = <GIC_SPI 350 IRQ_TYPE_LEVEL_HIGH>,
773                                      <GIC_SPI 353 IRQ_TYPE_LEVEL_HIGH>;
774                         interrupt-names = "hc_irq", "pwr_irq";
775
776                         clocks = <&gcc GCC_SDCC2_AHB_CLK>,
777                                  <&gcc GCC_SDCC2_APPS_CLK>,
778                                  <&rpmcc RPM_SMD_XO_CLK_SRC>;
779                         clock-names = "iface",
780                                       "core",
781                                       "xo";
782
783                         resets = <&gcc GCC_SDCC2_BCR>;
784
785                         power-domains = <&rpmpd QCM2290_VDDCX>;
786                         operating-points-v2 = <&sdhc2_opp_table>;
787                         iommus = <&apps_smmu 0xa0 0x0>;
788
789                         qcom,dll-config = <0x0007642c>;
790                         qcom,ddr-config = <0x80040868>;
791                         bus-width = <4>;
792
793                         status = "disabled";
794
795                         sdhc2_opp_table: opp-table {
796                                 compatible = "operating-points-v2";
797
798                                 opp-100000000 {
799                                         opp-hz = /bits/ 64 <100000000>;
800                                         required-opps = <&rpmpd_opp_low_svs>;
801                                 };
802
803                                 opp-202000000 {
804                                         opp-hz = /bits/ 64 <202000000>;
805                                         required-opps = <&rpmpd_opp_svs_plus>;
806                                 };
807                         };
808                 };
809
810                 gpi_dma0: dma-controller@4a00000 {
811                         compatible = "qcom,qcm2290-gpi-dma", "qcom,sm6350-gpi-dma";
812                         reg = <0x0 0x04a00000 0x0 0x60000>;
813                         interrupts = <GIC_SPI 335 IRQ_TYPE_LEVEL_HIGH>,
814                                      <GIC_SPI 336 IRQ_TYPE_LEVEL_HIGH>,
815                                      <GIC_SPI 337 IRQ_TYPE_LEVEL_HIGH>,
816                                      <GIC_SPI 338 IRQ_TYPE_LEVEL_HIGH>,
817                                      <GIC_SPI 339 IRQ_TYPE_LEVEL_HIGH>,
818                                      <GIC_SPI 340 IRQ_TYPE_LEVEL_HIGH>,
819                                      <GIC_SPI 341 IRQ_TYPE_LEVEL_HIGH>,
820                                      <GIC_SPI 342 IRQ_TYPE_LEVEL_HIGH>,
821                                      <GIC_SPI 343 IRQ_TYPE_LEVEL_HIGH>,
822                                      <GIC_SPI 344 IRQ_TYPE_LEVEL_HIGH>;
823                         dma-channels = <10>;
824                         dma-channel-mask = <0x1f>;
825                         iommus = <&apps_smmu 0xf6 0x0>;
826                         #dma-cells = <3>;
827                         status = "disabled";
828                 };
829
830                 qupv3_id_0: geniqup@4ac0000 {
831                         compatible = "qcom,geni-se-qup";
832                         reg = <0x0 0x04ac0000 0x0 0x2000>;
833                         clocks = <&gcc GCC_QUPV3_WRAP_0_M_AHB_CLK>,
834                                  <&gcc GCC_QUPV3_WRAP_0_S_AHB_CLK>;
835                         clock-names = "m-ahb", "s-ahb";
836                         iommus = <&apps_smmu 0xe3 0x0>;
837                         #address-cells = <2>;
838                         #size-cells = <2>;
839                         ranges;
840                         status = "disabled";
841
842                         i2c0: i2c@4a80000 {
843                                 compatible = "qcom,geni-i2c";
844                                 reg = <0x0 0x04a80000 0x0 0x4000>;
845                                 interrupts = <GIC_SPI 327 IRQ_TYPE_LEVEL_HIGH>;
846                                 clocks = <&gcc GCC_QUPV3_WRAP0_S0_CLK>;
847                                 clock-names = "se";
848                                 pinctrl-0 = <&qup_i2c0_default>;
849                                 pinctrl-names = "default";
850                                 dmas = <&gpi_dma0 0 0 QCOM_GPI_I2C>,
851                                        <&gpi_dma0 1 0 QCOM_GPI_I2C>;
852                                 dma-names = "tx", "rx";
853                                 #address-cells = <1>;
854                                 #size-cells = <0>;
855                                 status = "disabled";
856                         };
857
858                         spi0: spi@4a80000 {
859                                 compatible = "qcom,geni-spi";
860                                 reg = <0x0 0x04a80000 0x0 0x4000>;
861                                 interrupts = <GIC_SPI 327 IRQ_TYPE_LEVEL_HIGH>;
862                                 clocks = <&gcc GCC_QUPV3_WRAP0_S0_CLK>;
863                                 clock-names = "se";
864                                 pinctrl-0 = <&qup_spi0_default>;
865                                 pinctrl-names = "default";
866                                 dmas = <&gpi_dma0 0 0 QCOM_GPI_SPI>,
867                                        <&gpi_dma0 1 0 QCOM_GPI_SPI>;
868                                 dma-names = "tx", "rx";
869                                 #address-cells = <1>;
870                                 #size-cells = <0>;
871                                 status = "disabled";
872                         };
873
874                         uart0: serial@4a80000 {
875                                 compatible = "qcom,geni-uart";
876                                 reg = <0x0 0x04a80000 0x0 0x4000>;
877                                 interrupts = <GIC_SPI 327 IRQ_TYPE_LEVEL_HIGH>;
878                                 clocks = <&gcc GCC_QUPV3_WRAP0_S0_CLK>;
879                                 clock-names = "se";
880                                 pinctrl-0 = <&qup_uart0_default>;
881                                 pinctrl-names = "default";
882                                 status = "disabled";
883                         };
884
885                         i2c1: i2c@4a84000 {
886                                 compatible = "qcom,geni-i2c";
887                                 reg = <0x0 0x04a84000 0x0 0x4000>;
888                                 interrupts = <GIC_SPI 328 IRQ_TYPE_LEVEL_HIGH>;
889                                 clocks = <&gcc GCC_QUPV3_WRAP0_S1_CLK>;
890                                 clock-names = "se";
891                                 pinctrl-0 = <&qup_i2c1_default>;
892                                 pinctrl-names = "default";
893                                 dmas = <&gpi_dma0 0 1 QCOM_GPI_I2C>,
894                                        <&gpi_dma0 1 1 QCOM_GPI_I2C>;
895                                 dma-names = "tx", "rx";
896                                 #address-cells = <1>;
897                                 #size-cells = <0>;
898                                 status = "disabled";
899                         };
900
901                         spi1: spi@4a84000 {
902                                 compatible = "qcom,geni-spi";
903                                 reg = <0x0 0x04a84000 0x0 0x4000>;
904                                 interrupts = <GIC_SPI 328 IRQ_TYPE_LEVEL_HIGH>;
905                                 clocks = <&gcc GCC_QUPV3_WRAP0_S1_CLK>;
906                                 clock-names = "se";
907                                 pinctrl-0 = <&qup_spi1_default>;
908                                 pinctrl-names = "default";
909                                 dmas = <&gpi_dma0 0 1 QCOM_GPI_SPI>,
910                                        <&gpi_dma0 1 1 QCOM_GPI_SPI>;
911                                 dma-names = "tx", "rx";
912                                 #address-cells = <1>;
913                                 #size-cells = <0>;
914                                 status = "disabled";
915                         };
916
917                         i2c2: i2c@4a88000 {
918                                 compatible = "qcom,geni-i2c";
919                                 reg = <0x0 0x04a88000 0x0 0x4000>;
920                                 interrupts = <GIC_SPI 329 IRQ_TYPE_LEVEL_HIGH>;
921                                 clocks = <&gcc GCC_QUPV3_WRAP0_S2_CLK>;
922                                 clock-names = "se";
923                                 pinctrl-0 = <&qup_i2c2_default>;
924                                 pinctrl-names = "default";
925                                 dmas = <&gpi_dma0 0 2 QCOM_GPI_I2C>,
926                                        <&gpi_dma0 1 2 QCOM_GPI_I2C>;
927                                 dma-names = "tx", "rx";
928                                 #address-cells = <1>;
929                                 #size-cells = <0>;
930                                 status = "disabled";
931                         };
932
933                         spi2: spi@4a88000 {
934                                 compatible = "qcom,geni-spi";
935                                 reg = <0x0 0x04a88000 0x0 0x4000>;
936                                 interrupts = <GIC_SPI 329 IRQ_TYPE_LEVEL_HIGH>;
937                                 clocks = <&gcc GCC_QUPV3_WRAP0_S2_CLK>;
938                                 clock-names = "se";
939                                 pinctrl-0 = <&qup_spi2_default>;
940                                 pinctrl-names = "default";
941                                 dmas = <&gpi_dma0 0 2 QCOM_GPI_SPI>,
942                                        <&gpi_dma0 1 2 QCOM_GPI_SPI>;
943                                 dma-names = "tx", "rx";
944                                 #address-cells = <1>;
945                                 #size-cells = <0>;
946                                 status = "disabled";
947                         };
948
949                         i2c3: i2c@4a8c000 {
950                                 compatible = "qcom,geni-i2c";
951                                 reg = <0x0 0x04a8c000 0x0 0x4000>;
952                                 interrupts = <GIC_SPI 330 IRQ_TYPE_LEVEL_HIGH>;
953                                 clocks = <&gcc GCC_QUPV3_WRAP0_S3_CLK>;
954                                 clock-names = "se";
955                                 pinctrl-0 = <&qup_i2c3_default>;
956                                 pinctrl-names = "default";
957                                 dmas = <&gpi_dma0 0 3 QCOM_GPI_I2C>,
958                                        <&gpi_dma0 1 3 QCOM_GPI_I2C>;
959                                 dma-names = "tx", "rx";
960                                 #address-cells = <1>;
961                                 #size-cells = <0>;
962                                 status = "disabled";
963                         };
964
965                         spi3: spi@4a8c000 {
966                                 compatible = "qcom,geni-spi";
967                                 reg = <0x0 0x04a8c000 0x0 0x4000>;
968                                 interrupts = <GIC_SPI 330 IRQ_TYPE_LEVEL_HIGH>;
969                                 clocks = <&gcc GCC_QUPV3_WRAP0_S3_CLK>;
970                                 clock-names = "se";
971                                 pinctrl-0 = <&qup_spi3_default>;
972                                 pinctrl-names = "default";
973                                 dmas = <&gpi_dma0 0 3 QCOM_GPI_SPI>,
974                                        <&gpi_dma0 1 3 QCOM_GPI_SPI>;
975                                 dma-names = "tx", "rx";
976                                 #address-cells = <1>;
977                                 #size-cells = <0>;
978                                 status = "disabled";
979                         };
980
981                         i2c4: i2c@4a90000 {
982                                 compatible = "qcom,geni-i2c";
983                                 reg = <0x0 0x04a90000 0x0 0x4000>;
984                                 interrupts = <GIC_SPI 331 IRQ_TYPE_LEVEL_HIGH>;
985                                 clocks = <&gcc GCC_QUPV3_WRAP0_S4_CLK>;
986                                 clock-names = "se";
987                                 pinctrl-0 = <&qup_i2c4_default>;
988                                 pinctrl-names = "default";
989                                 dmas = <&gpi_dma0 0 4 QCOM_GPI_I2C>,
990                                        <&gpi_dma0 1 4 QCOM_GPI_I2C>;
991                                 dma-names = "tx", "rx";
992                                 #address-cells = <1>;
993                                 #size-cells = <0>;
994                                 status = "disabled";
995                         };
996
997                         spi4: spi@4a90000 {
998                                 compatible = "qcom,geni-spi";
999                                 reg = <0x0 0x04a90000 0x0 0x4000>;
1000                                 interrupts = <GIC_SPI 331 IRQ_TYPE_LEVEL_HIGH>;
1001                                 clock-names = "se";
1002                                 clocks = <&gcc GCC_QUPV3_WRAP0_S4_CLK>;
1003                                 pinctrl-names = "default";
1004                                 pinctrl-0 = <&qup_spi4_default>;
1005                                 dmas = <&gpi_dma0 0 4 QCOM_GPI_SPI>,
1006                                        <&gpi_dma0 1 4 QCOM_GPI_SPI>;
1007                                 dma-names = "tx", "rx";
1008                                 #address-cells = <1>;
1009                                 #size-cells = <0>;
1010                                 status = "disabled";
1011                         };
1012
1013                         uart4: serial@4a90000 {
1014                                 compatible = "qcom,geni-uart";
1015                                 reg = <0x0 0x04a90000 0x0 0x4000>;
1016                                 interrupts = <GIC_SPI 331 IRQ_TYPE_LEVEL_HIGH>;
1017                                 clocks = <&gcc GCC_QUPV3_WRAP0_S4_CLK>;
1018                                 clock-names = "se";
1019                                 pinctrl-0 = <&qup_uart4_default>;
1020                                 pinctrl-names = "default";
1021                                 status = "disabled";
1022                         };
1023
1024                         i2c5: i2c@4a94000 {
1025                                 compatible = "qcom,geni-i2c";
1026                                 reg = <0x0 0x04a94000 0x0 0x4000>;
1027                                 interrupts = <GIC_SPI 332 IRQ_TYPE_LEVEL_HIGH>;
1028                                 clocks = <&gcc GCC_QUPV3_WRAP0_S5_CLK>;
1029                                 clock-names = "se";
1030                                 pinctrl-0 = <&qup_i2c5_default>;
1031                                 pinctrl-names = "default";
1032                                 dmas = <&gpi_dma0 0 5 QCOM_GPI_I2C>,
1033                                        <&gpi_dma0 1 5 QCOM_GPI_I2C>;
1034                                 dma-names = "tx", "rx";
1035                                 #address-cells = <1>;
1036                                 #size-cells = <0>;
1037                                 status = "disabled";
1038                         };
1039
1040                         spi5: spi@4a94000 {
1041                                 compatible = "qcom,geni-spi";
1042                                 reg = <0x0 0x04a94000 0x0 0x4000>;
1043                                 interrupts = <GIC_SPI 332 IRQ_TYPE_LEVEL_HIGH>;
1044                                 clocks = <&gcc GCC_QUPV3_WRAP0_S5_CLK>;
1045                                 clock-names = "se";
1046                                 pinctrl-0 = <&qup_spi5_default>;
1047                                 pinctrl-names = "default";
1048                                 dmas = <&gpi_dma0 0 5 QCOM_GPI_SPI>,
1049                                        <&gpi_dma0 1 5 QCOM_GPI_SPI>;
1050                                 dma-names = "tx", "rx";
1051                                 #address-cells = <1>;
1052                                 #size-cells = <0>;
1053                                 status = "disabled";
1054                         };
1055                 };
1056
1057                 usb: usb@4ef8800 {
1058                         compatible = "qcom,qcm2290-dwc3", "qcom,dwc3";
1059                         reg = <0x0 0x04ef8800 0x0 0x400>;
1060                         interrupts = <GIC_SPI 260 IRQ_TYPE_LEVEL_HIGH>,
1061                                      <GIC_SPI 422 IRQ_TYPE_LEVEL_HIGH>;
1062                         interrupt-names = "hs_phy_irq", "ss_phy_irq";
1063
1064                         clocks = <&gcc GCC_CFG_NOC_USB3_PRIM_AXI_CLK>,
1065                                  <&gcc GCC_USB30_PRIM_MASTER_CLK>,
1066                                  <&gcc GCC_SYS_NOC_USB3_PRIM_AXI_CLK>,
1067                                  <&gcc GCC_USB30_PRIM_SLEEP_CLK>,
1068                                  <&gcc GCC_USB30_PRIM_MOCK_UTMI_CLK>,
1069                                  <&gcc GCC_USB3_PRIM_CLKREF_CLK>;
1070                         clock-names = "cfg_noc",
1071                                       "core",
1072                                       "iface",
1073                                       "sleep",
1074                                       "mock_utmi",
1075                                       "xo";
1076
1077                         assigned-clocks = <&gcc GCC_USB30_PRIM_MOCK_UTMI_CLK>,
1078                                           <&gcc GCC_USB30_PRIM_MASTER_CLK>;
1079                         assigned-clock-rates = <19200000>, <133333333>;
1080
1081                         resets = <&gcc GCC_USB30_PRIM_BCR>;
1082                         power-domains = <&gcc GCC_USB30_PRIM_GDSC>;
1083                         wakeup-source;
1084
1085                         #address-cells = <2>;
1086                         #size-cells = <2>;
1087                         ranges;
1088
1089                         status = "disabled";
1090
1091                         usb_dwc3: usb@4e00000 {
1092                                 compatible = "snps,dwc3";
1093                                 reg = <0x0 0x04e00000 0x0 0xcd00>;
1094                                 interrupts = <GIC_SPI 255 IRQ_TYPE_LEVEL_HIGH>;
1095                                 phys = <&usb_hsphy>, <&usb_qmpphy>;
1096                                 phy-names = "usb2-phy", "usb3-phy";
1097                                 iommus = <&apps_smmu 0x120 0x0>;
1098                                 snps,dis_u2_susphy_quirk;
1099                                 snps,dis_enblslpm_quirk;
1100                                 snps,has-lpm-erratum;
1101                                 snps,hird-threshold = /bits/ 8 <0x10>;
1102                                 snps,usb3_lpm_capable;
1103                                 maximum-speed = "super-speed";
1104                                 dr_mode = "otg";
1105                         };
1106                 };
1107
1108                 remoteproc_mpss: remoteproc@6080000 {
1109                         compatible = "qcom,qcm2290-mpss-pas", "qcom,sm6115-mpss-pas";
1110                         reg = <0x0 0x06080000 0x0 0x100>;
1111
1112                         interrupts-extended = <&intc GIC_SPI 307 IRQ_TYPE_EDGE_RISING>,
1113                                               <&modem_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
1114                                               <&modem_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
1115                                               <&modem_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
1116                                               <&modem_smp2p_in 3 IRQ_TYPE_EDGE_RISING>,
1117                                               <&modem_smp2p_in 7 IRQ_TYPE_EDGE_RISING>;
1118                         interrupt-names = "wdog",
1119                                           "fatal",
1120                                           "ready",
1121                                           "handover",
1122                                           "stop-ack",
1123                                           "shutdown-ack";
1124
1125                         clocks = <&rpmcc RPM_SMD_XO_CLK_SRC>;
1126                         clock-names = "xo";
1127
1128                         power-domains = <&rpmpd QCM2290_VDDCX>;
1129
1130                         memory-region = <&pil_modem_mem>;
1131
1132                         qcom,smem-states = <&modem_smp2p_out 0>;
1133                         qcom,smem-state-names = "stop";
1134
1135                         status = "disabled";
1136
1137                         glink-edge {
1138                                 interrupts = <GIC_SPI 68 IRQ_TYPE_EDGE_RISING>;
1139                                 label = "mpss";
1140                                 qcom,remote-pid = <1>;
1141                                 mboxes = <&apcs_glb 12>;
1142                         };
1143                 };
1144
1145                 remoteproc_adsp: remoteproc@ab00000 {
1146                         compatible = "qcom,qcm2290-adsp-pas", "qcom,sm6115-adsp-pas";
1147                         reg = <0x0 0x0ab00000 0x0 0x100>;
1148
1149                         interrupts-extended = <&intc GIC_SPI 282 IRQ_TYPE_EDGE_RISING>,
1150                                               <&adsp_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
1151                                               <&adsp_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
1152                                               <&adsp_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
1153                                               <&adsp_smp2p_in 3 IRQ_TYPE_EDGE_RISING>;
1154                         interrupt-names = "wdog",
1155                                           "fatal",
1156                                           "ready",
1157                                           "handover",
1158                                           "stop-ack";
1159
1160                         clocks = <&rpmcc RPM_SMD_XO_CLK_SRC>;
1161                         clock-names = "xo";
1162
1163                         power-domains = <&rpmpd QCM2290_VDD_LPI_CX>,
1164                                         <&rpmpd QCM2290_VDD_LPI_MX>;
1165
1166                         memory-region = <&pil_adsp_mem>;
1167
1168                         qcom,smem-states = <&adsp_smp2p_out 0>;
1169                         qcom,smem-state-names = "stop";
1170
1171                         status = "disabled";
1172
1173                         glink-edge {
1174                                 interrupts = <GIC_SPI 277 IRQ_TYPE_EDGE_RISING>;
1175                                 label = "lpass";
1176                                 qcom,remote-pid = <2>;
1177                                 mboxes = <&apcs_glb 8>;
1178                         };
1179                 };
1180
1181                 apps_smmu: iommu@c600000 {
1182                         compatible = "qcom,qcm2290-smmu-500", "qcom,smmu-500", "arm,mmu-500";
1183                         reg = <0x0 0x0c600000 0x0 0x80000>;
1184                         #iommu-cells = <2>;
1185                         #global-interrupts = <1>;
1186
1187                         interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>,
1188                                      <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>,
1189                                      <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>,
1190                                      <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>,
1191                                      <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>,
1192                                      <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>,
1193                                      <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>,
1194                                      <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>,
1195                                      <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>,
1196                                      <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>,
1197                                      <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>,
1198                                      <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>,
1199                                      <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>,
1200                                      <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>,
1201                                      <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>,
1202                                      <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>,
1203                                      <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>,
1204                                      <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>,
1205                                      <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>,
1206                                      <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>,
1207                                      <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>,
1208                                      <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>,
1209                                      <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>,
1210                                      <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>,
1211                                      <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>,
1212                                      <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>,
1213                                      <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>,
1214                                      <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>,
1215                                      <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>,
1216                                      <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>,
1217                                      <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>,
1218                                      <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>,
1219                                      <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>,
1220                                      <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>,
1221                                      <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>,
1222                                      <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>,
1223                                      <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>,
1224                                      <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>,
1225                                      <GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>,
1226                                      <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>,
1227                                      <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>,
1228                                      <GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>,
1229                                      <GIC_SPI 128 IRQ_TYPE_LEVEL_HIGH>,
1230                                      <GIC_SPI 129 IRQ_TYPE_LEVEL_HIGH>,
1231                                      <GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>,
1232                                      <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>,
1233                                      <GIC_SPI 132 IRQ_TYPE_LEVEL_HIGH>,
1234                                      <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>,
1235                                      <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>,
1236                                      <GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH>,
1237                                      <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>,
1238                                      <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>,
1239                                      <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>,
1240                                      <GIC_SPI 139 IRQ_TYPE_LEVEL_HIGH>,
1241                                      <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>,
1242                                      <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>,
1243                                      <GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>,
1244                                      <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>,
1245                                      <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>,
1246                                      <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>,
1247                                      <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>,
1248                                      <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>,
1249                                      <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>,
1250                                      <GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>,
1251                                      <GIC_SPI 150 IRQ_TYPE_LEVEL_HIGH>;
1252                 };
1253
1254                 wifi: wifi@c800000 {
1255                         compatible = "qcom,wcn3990-wifi";
1256                         reg = <0x0 0x0c800000 0x0 0x800000>;
1257                         reg-names = "membase";
1258                         memory-region = <&wlan_msa_mem>;
1259                         interrupts = <GIC_SPI 358 IRQ_TYPE_LEVEL_HIGH>,
1260                                      <GIC_SPI 359 IRQ_TYPE_LEVEL_HIGH>,
1261                                      <GIC_SPI 360 IRQ_TYPE_LEVEL_HIGH>,
1262                                      <GIC_SPI 361 IRQ_TYPE_LEVEL_HIGH>,
1263                                      <GIC_SPI 362 IRQ_TYPE_LEVEL_HIGH>,
1264                                      <GIC_SPI 363 IRQ_TYPE_LEVEL_HIGH>,
1265                                      <GIC_SPI 364 IRQ_TYPE_LEVEL_HIGH>,
1266                                      <GIC_SPI 365 IRQ_TYPE_LEVEL_HIGH>,
1267                                      <GIC_SPI 366 IRQ_TYPE_LEVEL_HIGH>,
1268                                      <GIC_SPI 367 IRQ_TYPE_LEVEL_HIGH>,
1269                                      <GIC_SPI 368 IRQ_TYPE_LEVEL_HIGH>,
1270                                      <GIC_SPI 369 IRQ_TYPE_LEVEL_HIGH>;
1271                         iommus = <&apps_smmu 0x1a0 0x1>;
1272                         qcom,msa-fixed-perm;
1273                         status = "disabled";
1274                 };
1275
1276                 watchdog@f017000 {
1277                         compatible = "qcom,apss-wdt-qcm2290", "qcom,kpss-wdt";
1278                         reg = <0x0 0x0f017000 0x0 0x1000>;
1279                         interrupts = <GIC_SPI 3 IRQ_TYPE_EDGE_RISING>,
1280                                      <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
1281                         clocks = <&sleep_clk>;
1282                 };
1283
1284                 apcs_glb: mailbox@f111000 {
1285                         compatible = "qcom,qcm2290-apcs-hmss-global";
1286                         reg = <0x0 0x0f111000 0x0 0x1000>;
1287                         #mbox-cells = <1>;
1288                 };
1289
1290                 timer@f120000 {
1291                         compatible = "arm,armv7-timer-mem";
1292                         reg = <0x0 0x0f120000 0x0 0x1000>;
1293                         #address-cells = <1>;
1294                         #size-cells = <1>;
1295                         ranges = <0 0x0 0x0f121000 0x8000>;
1296
1297                         frame@0 {
1298                                 reg = <0x0 0x1000>,
1299                                       <0x1000 0x1000>;
1300                                 interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
1301                                              <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
1302                                 frame-number = <0>;
1303                         };
1304
1305                         frame@2000 {
1306                                 reg = <0x2000 0x1000>;
1307                                 interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
1308                                 frame-number = <1>;
1309                                 status = "disabled";
1310                         };
1311
1312                         frame@3000 {
1313                                 reg = <0x3000 0x1000>;
1314                                 interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
1315                                 frame-number = <2>;
1316                                 status = "disabled";
1317                         };
1318
1319                         frame@4000 {
1320                                 reg = <0x4000 0x1000>;
1321                                 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
1322                                 frame-number = <3>;
1323                                 status = "disabled";
1324                         };
1325
1326                         frame@5000 {
1327                                 reg = <0x5000 0x1000>;
1328                                 interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
1329                                 frame-number = <4>;
1330                                 status = "disabled";
1331                         };
1332
1333                         frame@6000 {
1334                                 reg = <0x6000 0x1000>;
1335                                 interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
1336                                 frame-number = <5>;
1337                                 status = "disabled";
1338                         };
1339
1340                         frame@7000 {
1341                                 reg = <0x7000 0x1000>;
1342                                 interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
1343                                 frame-number = <6>;
1344                                 status = "disabled";
1345                         };
1346                 };
1347
1348                 intc: interrupt-controller@f200000 {
1349                         compatible = "arm,gic-v3";
1350                         reg = <0x0 0x0f200000 0x0 0x10000>,
1351                               <0x0 0x0f300000 0x0 0x100000>;
1352                         interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
1353                         #interrupt-cells = <3>;
1354                         interrupt-controller;
1355                         interrupt-parent = <&intc>;
1356                         #redistributor-regions = <1>;
1357                         redistributor-stride = <0x0 0x20000>;
1358                 };
1359
1360                 cpufreq_hw: cpufreq@f521000 {
1361                         compatible = "qcom,qcm2290-cpufreq-hw", "qcom,cpufreq-hw";
1362                         reg = <0x0 0x0f521000 0x0 0x1000>;
1363                         reg-names = "freq-domain0";
1364                         interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
1365                         interrupt-names = "dcvsh-irq-0";
1366                         clocks = <&rpmcc RPM_SMD_XO_CLK_SRC>, <&gcc GPLL0>;
1367                         clock-names = "xo", "alternate";
1368
1369                         #freq-domain-cells = <1>;
1370                         #clock-cells = <1>;
1371                 };
1372         };
1373
1374         thermal-zones {
1375                 mapss-thermal {
1376                         polling-delay-passive = <0>;
1377                         polling-delay = <0>;
1378
1379                         thermal-sensors = <&tsens0 0>;
1380
1381                         trips {
1382                                 mapss_alert0: trip-point0 {
1383                                         temperature = <90000>;
1384                                         hysteresis = <2000>;
1385                                         type = "passive";
1386                                 };
1387
1388                                 mapss_alert1: trip-point1 {
1389                                         temperature = <95000>;
1390                                         hysteresis = <2000>;
1391                                         type = "passive";
1392                                 };
1393
1394                                 mapss_crit: mapss-crit {
1395                                         temperature = <110000>;
1396                                         hysteresis = <1000>;
1397                                         type = "critical";
1398                                 };
1399                         };
1400                 };
1401
1402                 video-thermal {
1403                         polling-delay-passive = <0>;
1404                         polling-delay = <0>;
1405
1406                         thermal-sensors = <&tsens0 1>;
1407
1408                         trips {
1409                                 video_alert0: trip-point0 {
1410                                         temperature = <90000>;
1411                                         hysteresis = <2000>;
1412                                         type = "passive";
1413                                 };
1414
1415                                 video_alert1: trip-point1 {
1416                                         temperature = <95000>;
1417                                         hysteresis = <2000>;
1418                                         type = "passive";
1419                                 };
1420
1421                                 video_crit: video-crit {
1422                                         temperature = <110000>;
1423                                         hysteresis = <1000>;
1424                                         type = "critical";
1425                                 };
1426                         };
1427                 };
1428
1429                 wlan-thermal {
1430                         polling-delay-passive = <0>;
1431                         polling-delay = <0>;
1432
1433                         thermal-sensors = <&tsens0 2>;
1434
1435                         trips {
1436                                 wlan_alert0: trip-point0 {
1437                                         temperature = <90000>;
1438                                         hysteresis = <2000>;
1439                                         type = "passive";
1440                                 };
1441
1442                                 wlan_alert1: trip-point1 {
1443                                         temperature = <95000>;
1444                                         hysteresis = <2000>;
1445                                         type = "passive";
1446                                 };
1447
1448                                 wlan_crit: wlan-crit {
1449                                         temperature = <110000>;
1450                                         hysteresis = <1000>;
1451                                         type = "critical";
1452                                 };
1453                         };
1454                 };
1455
1456                 cpuss0-thermal {
1457                         polling-delay-passive = <0>;
1458                         polling-delay = <0>;
1459
1460                         thermal-sensors = <&tsens0 3>;
1461
1462                         trips {
1463                                 cpuss0_alert0: trip-point0 {
1464                                         temperature = <90000>;
1465                                         hysteresis = <2000>;
1466                                         type = "passive";
1467                                 };
1468
1469                                 cpuss0_alert1: trip-point1 {
1470                                         temperature = <95000>;
1471                                         hysteresis = <2000>;
1472                                         type = "passive";
1473                                 };
1474
1475                                 cpuss0_crit: cpuss0-crit {
1476                                         temperature = <110000>;
1477                                         hysteresis = <1000>;
1478                                         type = "critical";
1479                                 };
1480                         };
1481                 };
1482
1483                 cpuss1-thermal {
1484                         polling-delay-passive = <0>;
1485                         polling-delay = <0>;
1486
1487                         thermal-sensors = <&tsens0 4>;
1488
1489                         trips {
1490                                 cpuss1_alert0: trip-point0 {
1491                                         temperature = <90000>;
1492                                         hysteresis = <2000>;
1493                                         type = "passive";
1494                                 };
1495
1496                                 cpuss1_alert1: trip-point1 {
1497                                         temperature = <95000>;
1498                                         hysteresis = <2000>;
1499                                         type = "passive";
1500                                 };
1501
1502                                 cpuss1_crit: cpuss1-crit {
1503                                         temperature = <110000>;
1504                                         hysteresis = <1000>;
1505                                         type = "critical";
1506                                 };
1507                         };
1508                 };
1509
1510                 mdm0-thermal {
1511                         polling-delay-passive = <0>;
1512                         polling-delay = <0>;
1513
1514                         thermal-sensors = <&tsens0 5>;
1515
1516                         trips {
1517                                 mdm0_alert0: trip-point0 {
1518                                         temperature = <90000>;
1519                                         hysteresis = <2000>;
1520                                         type = "passive";
1521                                 };
1522
1523                                 mdm0_alert1: trip-point1 {
1524                                         temperature = <95000>;
1525                                         hysteresis = <2000>;
1526                                         type = "passive";
1527                                 };
1528
1529                                 mdm0_crit: mdm0-crit {
1530                                         temperature = <110000>;
1531                                         hysteresis = <1000>;
1532                                         type = "critical";
1533                                 };
1534                         };
1535                 };
1536
1537                 mdm1-thermal {
1538                         polling-delay-passive = <0>;
1539                         polling-delay = <0>;
1540
1541                         thermal-sensors = <&tsens0 6>;
1542
1543                         trips {
1544                                 mdm1_alert0: trip-point0 {
1545                                         temperature = <90000>;
1546                                         hysteresis = <2000>;
1547                                         type = "passive";
1548                                 };
1549
1550                                 mdm1_alert1: trip-point1 {
1551                                         temperature = <95000>;
1552                                         hysteresis = <2000>;
1553                                         type = "passive";
1554                                 };
1555
1556                                 mdm1_crit: mdm1-crit {
1557                                         temperature = <110000>;
1558                                         hysteresis = <1000>;
1559                                         type = "critical";
1560                                 };
1561                         };
1562                 };
1563
1564                 gpu-thermal {
1565                         polling-delay-passive = <0>;
1566                         polling-delay = <0>;
1567
1568                         thermal-sensors = <&tsens0 7>;
1569
1570                         trips {
1571                                 gpu_alert0: trip-point0 {
1572                                         temperature = <90000>;
1573                                         hysteresis = <2000>;
1574                                         type = "passive";
1575                                 };
1576
1577                                 gpu_alert1: trip-point1 {
1578                                         temperature = <95000>;
1579                                         hysteresis = <2000>;
1580                                         type = "passive";
1581                                 };
1582
1583                                 gpu_crit: gpu-crit {
1584                                         temperature = <110000>;
1585                                         hysteresis = <1000>;
1586                                         type = "critical";
1587                                 };
1588                         };
1589                 };
1590
1591                 hm-center-thermal {
1592                         polling-delay-passive = <0>;
1593                         polling-delay = <0>;
1594
1595                         thermal-sensors = <&tsens0 8>;
1596
1597                         trips {
1598                                 hm_center_alert0: trip-point0 {
1599                                         temperature = <90000>;
1600                                         hysteresis = <2000>;
1601                                         type = "passive";
1602                                 };
1603
1604                                 hm_center_alert1: trip-point1 {
1605                                         temperature = <95000>;
1606                                         hysteresis = <2000>;
1607                                         type = "passive";
1608                                 };
1609
1610                                 hm_center_crit: hm-center-crit {
1611                                         temperature = <110000>;
1612                                         hysteresis = <1000>;
1613                                         type = "critical";
1614                                 };
1615                         };
1616                 };
1617
1618                 camera-thermal {
1619                         polling-delay-passive = <0>;
1620                         polling-delay = <0>;
1621
1622                         thermal-sensors = <&tsens0 9>;
1623
1624                         trips {
1625                                 camera_alert0: trip-point0 {
1626                                         temperature = <90000>;
1627                                         hysteresis = <2000>;
1628                                         type = "passive";
1629                                 };
1630
1631                                 camera_alert1: trip-point1 {
1632                                         temperature = <95000>;
1633                                         hysteresis = <2000>;
1634                                         type = "passive";
1635                                 };
1636
1637                                 camera_crit: camera-crit {
1638                                         temperature = <110000>;
1639                                         hysteresis = <1000>;
1640                                         type = "critical";
1641                                 };
1642                         };
1643                 };
1644         };
1645
1646         timer {
1647                 compatible = "arm,armv8-timer";
1648                 interrupts = <GIC_PPI 1 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
1649                              <GIC_PPI 2 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
1650                              <GIC_PPI 3 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
1651                              <GIC_PPI 0 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
1652         };
1653 };