Merge tag 'perf-core-2023-04-27' of git://git.kernel.org/pub/scm/linux/kernel/git...
[linux-2.6-microblaze.git] / arch / arm64 / boot / dts / qcom / ipq6018.dtsi
1 // SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
2 /*
3  * IPQ6018 SoC device tree source
4  *
5  * Copyright (c) 2019, The Linux Foundation. All rights reserved.
6  */
7
8 #include <dt-bindings/interrupt-controller/arm-gic.h>
9 #include <dt-bindings/clock/qcom,gcc-ipq6018.h>
10 #include <dt-bindings/reset/qcom,gcc-ipq6018.h>
11 #include <dt-bindings/clock/qcom,apss-ipq.h>
12
13 / {
14         #address-cells = <2>;
15         #size-cells = <2>;
16         interrupt-parent = <&intc>;
17
18         clocks {
19                 sleep_clk: sleep-clk {
20                         compatible = "fixed-clock";
21                         clock-frequency = <32000>;
22                         #clock-cells = <0>;
23                 };
24
25                 xo: xo {
26                         compatible = "fixed-clock";
27                         clock-frequency = <24000000>;
28                         #clock-cells = <0>;
29                 };
30         };
31
32         cpus: cpus {
33                 #address-cells = <1>;
34                 #size-cells = <0>;
35
36                 CPU0: cpu@0 {
37                         device_type = "cpu";
38                         compatible = "arm,cortex-a53";
39                         reg = <0x0>;
40                         enable-method = "psci";
41                         next-level-cache = <&L2_0>;
42                         clocks = <&apcs_glb APCS_ALIAS0_CORE_CLK>;
43                         clock-names = "cpu";
44                         operating-points-v2 = <&cpu_opp_table>;
45                         cpu-supply = <&ipq6018_s2>;
46                 };
47
48                 CPU1: cpu@1 {
49                         device_type = "cpu";
50                         compatible = "arm,cortex-a53";
51                         enable-method = "psci";
52                         reg = <0x1>;
53                         next-level-cache = <&L2_0>;
54                         clocks = <&apcs_glb APCS_ALIAS0_CORE_CLK>;
55                         clock-names = "cpu";
56                         operating-points-v2 = <&cpu_opp_table>;
57                         cpu-supply = <&ipq6018_s2>;
58                 };
59
60                 CPU2: cpu@2 {
61                         device_type = "cpu";
62                         compatible = "arm,cortex-a53";
63                         enable-method = "psci";
64                         reg = <0x2>;
65                         next-level-cache = <&L2_0>;
66                         clocks = <&apcs_glb APCS_ALIAS0_CORE_CLK>;
67                         clock-names = "cpu";
68                         operating-points-v2 = <&cpu_opp_table>;
69                         cpu-supply = <&ipq6018_s2>;
70                 };
71
72                 CPU3: cpu@3 {
73                         device_type = "cpu";
74                         compatible = "arm,cortex-a53";
75                         enable-method = "psci";
76                         reg = <0x3>;
77                         next-level-cache = <&L2_0>;
78                         clocks = <&apcs_glb APCS_ALIAS0_CORE_CLK>;
79                         clock-names = "cpu";
80                         operating-points-v2 = <&cpu_opp_table>;
81                         cpu-supply = <&ipq6018_s2>;
82                 };
83
84                 L2_0: l2-cache {
85                         compatible = "cache";
86                         cache-level = <0x2>;
87                 };
88         };
89
90         firmware {
91                 scm {
92                         compatible = "qcom,scm-ipq6018", "qcom,scm";
93                 };
94         };
95
96         cpu_opp_table: opp-table-cpu {
97                 compatible = "operating-points-v2";
98                 opp-shared;
99
100                 opp-864000000 {
101                         opp-hz = /bits/ 64 <864000000>;
102                         opp-microvolt = <725000>;
103                         clock-latency-ns = <200000>;
104                 };
105
106                 opp-1056000000 {
107                         opp-hz = /bits/ 64 <1056000000>;
108                         opp-microvolt = <787500>;
109                         clock-latency-ns = <200000>;
110                 };
111
112                 opp-1320000000 {
113                         opp-hz = /bits/ 64 <1320000000>;
114                         opp-microvolt = <862500>;
115                         clock-latency-ns = <200000>;
116                 };
117
118                 opp-1440000000 {
119                         opp-hz = /bits/ 64 <1440000000>;
120                         opp-microvolt = <925000>;
121                         clock-latency-ns = <200000>;
122                 };
123
124                 opp-1608000000 {
125                         opp-hz = /bits/ 64 <1608000000>;
126                         opp-microvolt = <987500>;
127                         clock-latency-ns = <200000>;
128                 };
129
130                 opp-1800000000 {
131                         opp-hz = /bits/ 64 <1800000000>;
132                         opp-microvolt = <1062500>;
133                         clock-latency-ns = <200000>;
134                 };
135         };
136
137         pmuv8: pmu {
138                 compatible = "arm,cortex-a53-pmu";
139                 interrupts = <GIC_PPI 7 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
140         };
141
142         psci: psci {
143                 compatible = "arm,psci-1.0";
144                 method = "smc";
145         };
146
147         reserved-memory {
148                 #address-cells = <2>;
149                 #size-cells = <2>;
150                 ranges;
151
152                 rpm_msg_ram: memory@60000 {
153                         reg = <0x0 0x00060000 0x0 0x6000>;
154                         no-map;
155                 };
156
157                 tz: memory@4a600000 {
158                         reg = <0x0 0x4a600000 0x0 0x00400000>;
159                         no-map;
160                 };
161
162                 smem_region: memory@4aa00000 {
163                         reg = <0x0 0x4aa00000 0x0 0x00100000>;
164                         no-map;
165                 };
166
167                 q6_region: memory@4ab00000 {
168                         reg = <0x0 0x4ab00000 0x0 0x05500000>;
169                         no-map;
170                 };
171         };
172
173         rpm-glink {
174                 compatible = "qcom,glink-rpm";
175                 interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>;
176                 qcom,rpm-msg-ram = <&rpm_msg_ram>;
177                 mboxes = <&apcs_glb 0>;
178
179                 rpm_requests: rpm-requests {
180                         compatible = "qcom,rpm-ipq6018";
181                         qcom,glink-channels = "rpm_requests";
182
183                         regulators {
184                                 compatible = "qcom,rpm-mp5496-regulators";
185
186                                 ipq6018_s2: s2 {
187                                         regulator-min-microvolt = <725000>;
188                                         regulator-max-microvolt = <1062500>;
189                                         regulator-always-on;
190                                 };
191                         };
192                 };
193         };
194
195         smem {
196                 compatible = "qcom,smem";
197                 memory-region = <&smem_region>;
198                 hwlocks = <&tcsr_mutex 0>;
199         };
200
201         soc: soc {
202                 #address-cells = <2>;
203                 #size-cells = <2>;
204                 ranges = <0 0 0 0 0x0 0xffffffff>;
205                 dma-ranges;
206                 compatible = "simple-bus";
207
208                 qusb_phy_1: qusb@59000 {
209                         compatible = "qcom,ipq6018-qusb2-phy";
210                         reg = <0x0 0x00059000 0x0 0x180>;
211                         #phy-cells = <0>;
212
213                         clocks = <&gcc GCC_USB1_PHY_CFG_AHB_CLK>,
214                                  <&xo>;
215                         clock-names = "cfg_ahb", "ref";
216
217                         resets = <&gcc GCC_QUSB2_1_PHY_BCR>;
218                         status = "disabled";
219                 };
220
221                 ssphy_0: ssphy@78000 {
222                         compatible = "qcom,ipq6018-qmp-usb3-phy";
223                         reg = <0x0 0x00078000 0x0 0x1c4>;
224                         #address-cells = <2>;
225                         #size-cells = <2>;
226                         ranges;
227
228                         clocks = <&gcc GCC_USB0_AUX_CLK>,
229                                  <&gcc GCC_USB0_PHY_CFG_AHB_CLK>, <&xo>;
230                         clock-names = "aux", "cfg_ahb", "ref";
231
232                         resets = <&gcc GCC_USB0_PHY_BCR>,
233                                  <&gcc GCC_USB3PHY_0_PHY_BCR>;
234                         reset-names = "phy","common";
235                         status = "disabled";
236
237                         usb0_ssphy: phy@78200 {
238                                 reg = <0x0 0x00078200 0x0 0x130>, /* Tx */
239                                       <0x0 0x00078400 0x0 0x200>, /* Rx */
240                                       <0x0 0x00078800 0x0 0x1f8>, /* PCS */
241                                       <0x0 0x00078600 0x0 0x044>; /* PCS misc */
242                                 #phy-cells = <0>;
243                                 #clock-cells = <0>;
244                                 clocks = <&gcc GCC_USB0_PIPE_CLK>;
245                                 clock-names = "pipe0";
246                                 clock-output-names = "gcc_usb0_pipe_clk_src";
247                         };
248                 };
249
250                 qusb_phy_0: qusb@79000 {
251                         compatible = "qcom,ipq6018-qusb2-phy";
252                         reg = <0x0 0x00079000 0x0 0x180>;
253                         #phy-cells = <0>;
254
255                         clocks = <&gcc GCC_USB0_PHY_CFG_AHB_CLK>,
256                                 <&xo>;
257                         clock-names = "cfg_ahb", "ref";
258
259                         resets = <&gcc GCC_QUSB2_0_PHY_BCR>;
260                         status = "disabled";
261                 };
262
263                 pcie_phy: phy@84000 {
264                         compatible = "qcom,ipq6018-qmp-pcie-phy";
265                         reg = <0x0 0x00084000 0x0 0x1bc>; /* Serdes PLL */
266                         status = "disabled";
267                         #address-cells = <2>;
268                         #size-cells = <2>;
269                         ranges;
270
271                         clocks = <&gcc GCC_PCIE0_AUX_CLK>,
272                                 <&gcc GCC_PCIE0_AHB_CLK>;
273                         clock-names = "aux", "cfg_ahb";
274
275                         resets = <&gcc GCC_PCIE0_PHY_BCR>,
276                                 <&gcc GCC_PCIE0PHY_PHY_BCR>;
277                         reset-names = "phy",
278                                       "common";
279
280                         pcie_phy0: phy@84200 {
281                                 reg = <0x0 0x00084200 0x0 0x16c>, /* Serdes Tx */
282                                       <0x0 0x00084400 0x0 0x200>, /* Serdes Rx */
283                                       <0x0 0x00084800 0x0 0x1f0>, /* PCS: Lane0, COM, PCIE */
284                                       <0x0 0x00084c00 0x0 0xf4>; /* pcs_misc */
285                                 #phy-cells = <0>;
286
287                                 clocks = <&gcc GCC_PCIE0_PIPE_CLK>;
288                                 clock-names = "pipe0";
289                                 clock-output-names = "gcc_pcie0_pipe_clk_src";
290                                 #clock-cells = <0>;
291                         };
292                 };
293
294                 mdio: mdio@90000 {
295                         #address-cells = <1>;
296                         #size-cells = <0>;
297                         compatible = "qcom,ipq6018-mdio", "qcom,ipq4019-mdio";
298                         reg = <0x0 0x00090000 0x0 0x64>;
299                         clocks = <&gcc GCC_MDIO_AHB_CLK>;
300                         clock-names = "gcc_mdio_ahb_clk";
301                         status = "disabled";
302                 };
303
304                 prng: qrng@e1000 {
305                         compatible = "qcom,prng-ee";
306                         reg = <0x0 0x000e3000 0x0 0x1000>;
307                         clocks = <&gcc GCC_PRNG_AHB_CLK>;
308                         clock-names = "core";
309                 };
310
311                 cryptobam: dma-controller@704000 {
312                         compatible = "qcom,bam-v1.7.0";
313                         reg = <0x0 0x00704000 0x0 0x20000>;
314                         interrupts = <GIC_SPI 207 IRQ_TYPE_LEVEL_HIGH>;
315                         clocks = <&gcc GCC_CRYPTO_AHB_CLK>;
316                         clock-names = "bam_clk";
317                         #dma-cells = <1>;
318                         qcom,ee = <1>;
319                         qcom,controlled-remotely;
320                 };
321
322                 crypto: crypto@73a000 {
323                         compatible = "qcom,crypto-v5.1";
324                         reg = <0x0 0x0073a000 0x0 0x6000>;
325                         clocks = <&gcc GCC_CRYPTO_AHB_CLK>,
326                                  <&gcc GCC_CRYPTO_AXI_CLK>,
327                                  <&gcc GCC_CRYPTO_CLK>;
328                         clock-names = "iface", "bus", "core";
329                         dmas = <&cryptobam 2>, <&cryptobam 3>;
330                         dma-names = "rx", "tx";
331                 };
332
333                 tlmm: pinctrl@1000000 {
334                         compatible = "qcom,ipq6018-pinctrl";
335                         reg = <0x0 0x01000000 0x0 0x300000>;
336                         interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
337                         gpio-controller;
338                         #gpio-cells = <2>;
339                         gpio-ranges = <&tlmm 0 0 80>;
340                         interrupt-controller;
341                         #interrupt-cells = <2>;
342
343                         serial_3_pins: serial3-state {
344                                 pins = "gpio44", "gpio45";
345                                 function = "blsp2_uart";
346                                 drive-strength = <8>;
347                                 bias-pull-down;
348                         };
349
350                         qpic_pins: qpic-state {
351                                 pins = "gpio1", "gpio3", "gpio4",
352                                         "gpio5", "gpio6", "gpio7",
353                                         "gpio8", "gpio10", "gpio11",
354                                         "gpio12", "gpio13", "gpio14",
355                                         "gpio15", "gpio17";
356                                 function = "qpic_pad";
357                                 drive-strength = <8>;
358                                 bias-disable;
359                         };
360                 };
361
362                 gcc: gcc@1800000 {
363                         compatible = "qcom,gcc-ipq6018";
364                         reg = <0x0 0x01800000 0x0 0x80000>;
365                         clocks = <&xo>, <&sleep_clk>;
366                         clock-names = "xo", "sleep_clk";
367                         #clock-cells = <1>;
368                         #reset-cells = <1>;
369                 };
370
371                 tcsr_mutex: hwlock@1905000 {
372                         compatible = "qcom,ipq6018-tcsr-mutex", "qcom,tcsr-mutex";
373                         reg = <0x0 0x01905000 0x0 0x1000>;
374                         #hwlock-cells = <1>;
375                 };
376
377                 tcsr: syscon@1937000 {
378                         compatible = "qcom,tcsr-ipq6018", "syscon";
379                         reg = <0x0 0x01937000 0x0 0x21000>;
380                 };
381
382                 usb2: usb@70f8800 {
383                         compatible = "qcom,ipq6018-dwc3", "qcom,dwc3";
384                         reg = <0x0 0x070f8800 0x0 0x400>;
385                         #address-cells = <2>;
386                         #size-cells = <2>;
387                         ranges;
388                         clocks = <&gcc GCC_USB1_MASTER_CLK>,
389                                  <&gcc GCC_USB1_SLEEP_CLK>,
390                                  <&gcc GCC_USB1_MOCK_UTMI_CLK>;
391                         clock-names = "core",
392                                       "sleep",
393                                       "mock_utmi";
394
395                         assigned-clocks = <&gcc GCC_USB1_MASTER_CLK>,
396                                           <&gcc GCC_USB1_MOCK_UTMI_CLK>;
397                         assigned-clock-rates = <133330000>,
398                                                <24000000>;
399                         resets = <&gcc GCC_USB1_BCR>;
400                         status = "disabled";
401
402                         dwc_1: usb@7000000 {
403                                 compatible = "snps,dwc3";
404                                 reg = <0x0 0x07000000 0x0 0xcd00>;
405                                 interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>;
406                                 phys = <&qusb_phy_1>;
407                                 phy-names = "usb2-phy";
408                                 tx-fifo-resize;
409                                 snps,is-utmi-l1-suspend;
410                                 snps,hird-threshold = /bits/ 8 <0x0>;
411                                 snps,dis_u2_susphy_quirk;
412                                 snps,dis_u3_susphy_quirk;
413                                 dr_mode = "host";
414                         };
415                 };
416
417                 blsp_dma: dma-controller@7884000 {
418                         compatible = "qcom,bam-v1.7.0";
419                         reg = <0x0 0x07884000 0x0 0x2b000>;
420                         interrupts = <GIC_SPI 238 IRQ_TYPE_LEVEL_HIGH>;
421                         clocks = <&gcc GCC_BLSP1_AHB_CLK>;
422                         clock-names = "bam_clk";
423                         #dma-cells = <1>;
424                         qcom,ee = <0>;
425                 };
426
427                 blsp1_uart3: serial@78b1000 {
428                         compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
429                         reg = <0x0 0x078b1000 0x0 0x200>;
430                         interrupts = <GIC_SPI 306 IRQ_TYPE_LEVEL_HIGH>;
431                         clocks = <&gcc GCC_BLSP1_UART3_APPS_CLK>,
432                                  <&gcc GCC_BLSP1_AHB_CLK>;
433                         clock-names = "core", "iface";
434                         status = "disabled";
435                 };
436
437                 blsp1_spi1: spi@78b5000 {
438                         compatible = "qcom,spi-qup-v2.2.1";
439                         #address-cells = <1>;
440                         #size-cells = <0>;
441                         reg = <0x0 0x078b5000 0x0 0x600>;
442                         interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
443                         spi-max-frequency = <50000000>;
444                         clocks = <&gcc GCC_BLSP1_QUP1_SPI_APPS_CLK>,
445                                  <&gcc GCC_BLSP1_AHB_CLK>;
446                         clock-names = "core", "iface";
447                         dmas = <&blsp_dma 12>, <&blsp_dma 13>;
448                         dma-names = "tx", "rx";
449                         status = "disabled";
450                 };
451
452                 blsp1_spi2: spi@78b6000 {
453                         compatible = "qcom,spi-qup-v2.2.1";
454                         #address-cells = <1>;
455                         #size-cells = <0>;
456                         reg = <0x0 0x078b6000 0x0 0x600>;
457                         interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
458                         spi-max-frequency = <50000000>;
459                         clocks = <&gcc GCC_BLSP1_QUP2_SPI_APPS_CLK>,
460                                  <&gcc GCC_BLSP1_AHB_CLK>;
461                         clock-names = "core", "iface";
462                         dmas = <&blsp_dma 14>, <&blsp_dma 15>;
463                         dma-names = "tx", "rx";
464                         status = "disabled";
465                 };
466
467                 blsp1_i2c2: i2c@78b6000 {
468                         compatible = "qcom,i2c-qup-v2.2.1";
469                         #address-cells = <1>;
470                         #size-cells = <0>;
471                         reg = <0x0 0x078b6000 0x0 0x600>;
472                         interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
473                         clocks = <&gcc GCC_BLSP1_QUP2_I2C_APPS_CLK>,
474                                  <&gcc GCC_BLSP1_AHB_CLK>;
475                         clock-names = "core", "iface";
476                         clock-frequency = <400000>;
477                         dmas = <&blsp_dma 14>, <&blsp_dma 15>;
478                         dma-names = "tx", "rx";
479                         status = "disabled";
480                 };
481
482                 blsp1_i2c3: i2c@78b7000 {
483                         compatible = "qcom,i2c-qup-v2.2.1";
484                         #address-cells = <1>;
485                         #size-cells = <0>;
486                         reg = <0x0 0x078b7000 0x0 0x600>;
487                         interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
488                         clocks = <&gcc GCC_BLSP1_QUP3_I2C_APPS_CLK>,
489                                  <&gcc GCC_BLSP1_AHB_CLK>;
490                         clock-names = "core", "iface";
491                         clock-frequency = <400000>;
492                         dmas = <&blsp_dma 16>, <&blsp_dma 17>;
493                         dma-names = "tx", "rx";
494                         status = "disabled";
495                 };
496
497                 qpic_bam: dma-controller@7984000 {
498                         compatible = "qcom,bam-v1.7.0";
499                         reg = <0x0 0x07984000 0x0 0x1a000>;
500                         interrupts = <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>;
501                         clocks = <&gcc GCC_QPIC_AHB_CLK>;
502                         clock-names = "bam_clk";
503                         #dma-cells = <1>;
504                         qcom,ee = <0>;
505                         status = "disabled";
506                 };
507
508                 qpic_nand: nand-controller@79b0000 {
509                         compatible = "qcom,ipq6018-nand";
510                         reg = <0x0 0x079b0000 0x0 0x10000>;
511                         #address-cells = <1>;
512                         #size-cells = <0>;
513                         clocks = <&gcc GCC_QPIC_CLK>,
514                                  <&gcc GCC_QPIC_AHB_CLK>;
515                         clock-names = "core", "aon";
516
517                         dmas = <&qpic_bam 0>,
518                                <&qpic_bam 1>,
519                                <&qpic_bam 2>;
520                         dma-names = "tx", "rx", "cmd";
521                         pinctrl-0 = <&qpic_pins>;
522                         pinctrl-names = "default";
523                         status = "disabled";
524                 };
525
526                 usb3: usb@8af8800 {
527                         compatible = "qcom,ipq6018-dwc3", "qcom,dwc3";
528                         reg = <0x0 0x08af8800 0x0 0x400>;
529                         #address-cells = <2>;
530                         #size-cells = <2>;
531                         ranges;
532
533                         clocks = <&gcc GCC_SYS_NOC_USB0_AXI_CLK>,
534                                 <&gcc GCC_USB0_MASTER_CLK>,
535                                 <&gcc GCC_USB0_SLEEP_CLK>,
536                                 <&gcc GCC_USB0_MOCK_UTMI_CLK>;
537                         clock-names = "cfg_noc",
538                                 "core",
539                                 "sleep",
540                                 "mock_utmi";
541
542                         assigned-clocks = <&gcc GCC_SYS_NOC_USB0_AXI_CLK>,
543                                           <&gcc GCC_USB0_MASTER_CLK>,
544                                           <&gcc GCC_USB0_MOCK_UTMI_CLK>;
545                         assigned-clock-rates = <133330000>,
546                                                <133330000>,
547                                                <20000000>;
548
549                         resets = <&gcc GCC_USB0_BCR>;
550                         status = "disabled";
551
552                         dwc_0: usb@8a00000 {
553                                 compatible = "snps,dwc3";
554                                 reg = <0x0 0x08a00000 0x0 0xcd00>;
555                                 interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
556                                 phys = <&qusb_phy_0>, <&usb0_ssphy>;
557                                 phy-names = "usb2-phy", "usb3-phy";
558                                 clocks = <&xo>;
559                                 clock-names = "ref";
560                                 tx-fifo-resize;
561                                 snps,is-utmi-l1-suspend;
562                                 snps,hird-threshold = /bits/ 8 <0x0>;
563                                 snps,dis_u2_susphy_quirk;
564                                 snps,dis_u3_susphy_quirk;
565                                 dr_mode = "host";
566                         };
567                 };
568
569                 intc: interrupt-controller@b000000 {
570                         compatible = "qcom,msm-qgic2";
571                         #address-cells = <2>;
572                         #size-cells = <2>;
573                         interrupt-controller;
574                         #interrupt-cells = <0x3>;
575                         reg = <0x0 0x0b000000 0x0 0x1000>,  /*GICD*/
576                               <0x0 0x0b002000 0x0 0x1000>,  /*GICC*/
577                               <0x0 0x0b001000 0x0 0x1000>,  /*GICH*/
578                               <0x0 0x0b004000 0x0 0x1000>;  /*GICV*/
579                         interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
580                         ranges = <0 0 0 0xb00a000 0 0xffd>;
581
582                         v2m@0 {
583                                 compatible = "arm,gic-v2m-frame";
584                                 msi-controller;
585                                 reg = <0x0 0x0 0x0 0xffd>;
586                         };
587                 };
588
589                 watchdog@b017000 {
590                         compatible = "qcom,kpss-wdt";
591                         interrupts = <GIC_SPI 3 IRQ_TYPE_EDGE_RISING>;
592                         reg = <0x0 0x0b017000 0x0 0x40>;
593                         clocks = <&sleep_clk>;
594                         timeout-sec = <10>;
595                 };
596
597                 apcs_glb: mailbox@b111000 {
598                         compatible = "qcom,ipq6018-apcs-apps-global";
599                         reg = <0x0 0x0b111000 0x0 0x1000>;
600                         #clock-cells = <1>;
601                         clocks = <&a53pll>, <&xo>;
602                         clock-names = "pll", "xo";
603                         #mbox-cells = <1>;
604                 };
605
606                 a53pll: clock@b116000 {
607                         compatible = "qcom,ipq6018-a53pll";
608                         reg = <0x0 0x0b116000 0x0 0x40>;
609                         #clock-cells = <0>;
610                         clocks = <&xo>;
611                         clock-names = "xo";
612                 };
613
614                 timer@b120000 {
615                         #address-cells = <1>;
616                         #size-cells = <1>;
617                         ranges = <0 0 0 0x10000000>;
618                         compatible = "arm,armv7-timer-mem";
619                         reg = <0x0 0x0b120000 0x0 0x1000>;
620
621                         frame@b120000 {
622                                 frame-number = <0>;
623                                 interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
624                                              <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
625                                 reg = <0x0b121000 0x1000>,
626                                       <0x0b122000 0x1000>;
627                         };
628
629                         frame@b123000 {
630                                 frame-number = <1>;
631                                 interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
632                                 reg = <0x0b123000 0x1000>;
633                                 status = "disabled";
634                         };
635
636                         frame@b124000 {
637                                 frame-number = <2>;
638                                 interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
639                                 reg = <0x0b124000 0x1000>;
640                                 status = "disabled";
641                         };
642
643                         frame@b125000 {
644                                 frame-number = <3>;
645                                 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
646                                 reg = <0x0b125000 0x1000>;
647                                 status = "disabled";
648                         };
649
650                         frame@b126000 {
651                                 frame-number = <4>;
652                                 interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
653                                 reg = <0x0b126000 0x1000>;
654                                 status = "disabled";
655                         };
656
657                         frame@b127000 {
658                                 frame-number = <5>;
659                                 interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
660                                 reg = <0x0b127000 0x1000>;
661                                 status = "disabled";
662                         };
663
664                         frame@b128000 {
665                                 frame-number = <6>;
666                                 interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
667                                 reg = <0x0b128000 0x1000>;
668                                 status = "disabled";
669                         };
670                 };
671
672                 q6v5_wcss: remoteproc@cd00000 {
673                         compatible = "qcom,ipq6018-wcss-pil";
674                         reg = <0x0 0x0cd00000 0x0 0x4040>,
675                               <0x0 0x004ab000 0x0 0x20>;
676                         reg-names = "qdsp6",
677                                     "rmb";
678                         interrupts-extended = <&intc GIC_SPI 325 IRQ_TYPE_EDGE_RISING>,
679                                               <&wcss_smp2p_in 0 0>,
680                                               <&wcss_smp2p_in 1 0>,
681                                               <&wcss_smp2p_in 2 0>,
682                                               <&wcss_smp2p_in 3 0>;
683                         interrupt-names = "wdog",
684                                           "fatal",
685                                           "ready",
686                                           "handover",
687                                           "stop-ack";
688
689                         resets = <&gcc GCC_WCSSAON_RESET>,
690                                  <&gcc GCC_WCSS_BCR>,
691                                  <&gcc GCC_WCSS_Q6_BCR>;
692
693                         reset-names = "wcss_aon_reset",
694                                       "wcss_reset",
695                                       "wcss_q6_reset";
696
697                         clocks = <&gcc GCC_PRNG_AHB_CLK>;
698                         clock-names = "prng";
699
700                         qcom,halt-regs = <&tcsr 0x18000 0x1b000 0xe000>;
701
702                         qcom,smem-states = <&wcss_smp2p_out 0>,
703                                            <&wcss_smp2p_out 1>;
704                         qcom,smem-state-names = "shutdown",
705                                                 "stop";
706
707                         memory-region = <&q6_region>;
708
709                         glink-edge {
710                                 interrupts = <GIC_SPI 321 IRQ_TYPE_EDGE_RISING>;
711                                 label = "rtr";
712                                 qcom,remote-pid = <1>;
713                                 mboxes = <&apcs_glb 8>;
714
715                                 qrtr_requests {
716                                         qcom,glink-channels = "IPCRTR";
717                                 };
718                         };
719                 };
720
721                 pcie0: pci@20000000 {
722                         compatible = "qcom,pcie-ipq6018";
723                         reg = <0x0 0x20000000 0x0 0xf1d>,
724                               <0x0 0x20000f20 0x0 0xa8>,
725                               <0x0 0x20001000 0x0 0x1000>,
726                               <0x0 0x80000 0x0 0x4000>,
727                               <0x0 0x20100000 0x0 0x1000>;
728                         reg-names = "dbi", "elbi", "atu", "parf", "config";
729
730                         device_type = "pci";
731                         linux,pci-domain = <0>;
732                         bus-range = <0x00 0xff>;
733                         num-lanes = <1>;
734                         max-link-speed = <3>;
735                         #address-cells = <3>;
736                         #size-cells = <2>;
737
738                         phys = <&pcie_phy0>;
739                         phy-names = "pciephy";
740
741                         ranges = <0x81000000 0x0 0x00000000 0x0 0x20200000 0x0 0x10000>,
742                                  <0x82000000 0x0 0x20220000 0x0 0x20220000 0x0 0xfde0000>;
743
744                         interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
745                         interrupt-names = "msi";
746
747                         #interrupt-cells = <1>;
748                         interrupt-map-mask = <0 0 0 0x7>;
749                         interrupt-map = <0 0 0 1 &intc 0 75 IRQ_TYPE_LEVEL_HIGH>, /* int_a */
750                                         <0 0 0 2 &intc 0 78 IRQ_TYPE_LEVEL_HIGH>, /* int_b */
751                                         <0 0 0 3 &intc 0 79 IRQ_TYPE_LEVEL_HIGH>, /* int_c */
752                                         <0 0 0 4 &intc 0 83 IRQ_TYPE_LEVEL_HIGH>; /* int_d */
753
754                         clocks = <&gcc GCC_SYS_NOC_PCIE0_AXI_CLK>,
755                                  <&gcc GCC_PCIE0_AXI_M_CLK>,
756                                  <&gcc GCC_PCIE0_AXI_S_CLK>,
757                                  <&gcc GCC_PCIE0_AXI_S_BRIDGE_CLK>,
758                                  <&gcc PCIE0_RCHNG_CLK>;
759                         clock-names = "iface",
760                                       "axi_m",
761                                       "axi_s",
762                                       "axi_bridge",
763                                       "rchng";
764
765                         resets = <&gcc GCC_PCIE0_PIPE_ARES>,
766                                  <&gcc GCC_PCIE0_SLEEP_ARES>,
767                                  <&gcc GCC_PCIE0_CORE_STICKY_ARES>,
768                                  <&gcc GCC_PCIE0_AXI_MASTER_ARES>,
769                                  <&gcc GCC_PCIE0_AXI_SLAVE_ARES>,
770                                  <&gcc GCC_PCIE0_AHB_ARES>,
771                                  <&gcc GCC_PCIE0_AXI_MASTER_STICKY_ARES>,
772                                  <&gcc GCC_PCIE0_AXI_SLAVE_STICKY_ARES>;
773                         reset-names = "pipe",
774                                       "sleep",
775                                       "sticky",
776                                       "axi_m",
777                                       "axi_s",
778                                       "ahb",
779                                       "axi_m_sticky",
780                                       "axi_s_sticky";
781
782                         status = "disabled";
783                 };
784         };
785
786         timer {
787                 compatible = "arm,armv8-timer";
788                 interrupts = <GIC_PPI 2 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
789                              <GIC_PPI 3 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
790                              <GIC_PPI 4 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
791                              <GIC_PPI 1 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
792         };
793
794         wcss: wcss-smp2p {
795                 compatible = "qcom,smp2p";
796                 qcom,smem = <435>, <428>;
797
798                 interrupt-parent = <&intc>;
799                 interrupts = <GIC_SPI 322 IRQ_TYPE_EDGE_RISING>;
800
801                 mboxes = <&apcs_glb 9>;
802
803                 qcom,local-pid = <0>;
804                 qcom,remote-pid = <1>;
805
806                 wcss_smp2p_out: master-kernel {
807                         qcom,entry-name = "master-kernel";
808                         #qcom,smem-state-cells = <1>;
809                 };
810
811                 wcss_smp2p_in: slave-kernel {
812                         qcom,entry-name = "slave-kernel";
813                         interrupt-controller;
814                         #interrupt-cells = <2>;
815                 };
816         };
817 };