]> git.karo-electronics.de Git - karo-tx-linux.git/blob - arch/arm64/boot/dts/qcom/msm8916.dtsi
arm64: dts: exynos: Add clocks to Exynos5433 LPASS module
[karo-tx-linux.git] / arch / arm64 / boot / dts / qcom / msm8916.dtsi
1 /*
2  * Copyright (c) 2013-2015, The Linux Foundation. All rights reserved.
3  *
4  * This program is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License version 2 and
6  * only version 2 as published by the Free Software Foundation.
7  *
8  * This program is distributed in the hope that it will be useful,
9  * but WITHOUT ANY WARRANTY; without even the implied warranty of
10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11  * GNU General Public License for more details.
12  */
13
14 #include <dt-bindings/interrupt-controller/arm-gic.h>
15 #include <dt-bindings/clock/qcom,gcc-msm8916.h>
16 #include <dt-bindings/reset/qcom,gcc-msm8916.h>
17
18 / {
19         model = "Qualcomm Technologies, Inc. MSM8916";
20         compatible = "qcom,msm8916";
21
22         interrupt-parent = <&intc>;
23
24         #address-cells = <2>;
25         #size-cells = <2>;
26
27         aliases {
28                 sdhc1 = &sdhc_1; /* SDC1 eMMC slot */
29                 sdhc2 = &sdhc_2; /* SDC2 SD card slot */
30         };
31
32         chosen { };
33
34         memory {
35                 device_type = "memory";
36                 /* We expect the bootloader to fill in the reg */
37                 reg = <0 0 0 0>;
38         };
39
40         reserved-memory {
41                 #address-cells = <2>;
42                 #size-cells = <2>;
43                 ranges;
44
45                 tz-apps@86000000 {
46                         reg = <0x0 0x86000000 0x0 0x300000>;
47                         no-map;
48                 };
49
50                 smem_mem: smem_region@86300000 {
51                         reg = <0x0 0x86300000 0x0 0x100000>;
52                         no-map;
53                 };
54
55                 hypervisor@86400000 {
56                         reg = <0x0 0x86400000 0x0 0x100000>;
57                         no-map;
58                 };
59
60                 tz@86500000 {
61                         reg = <0x0 0x86500000 0x0 0x180000>;
62                         no-map;
63                 };
64
65                 reserved@8668000 {
66                         reg = <0x0 0x86680000 0x0 0x80000>;
67                         no-map;
68                 };
69
70                 rmtfs@86700000 {
71                         reg = <0x0 0x86700000 0x0 0xe0000>;
72                         no-map;
73                 };
74
75                 rfsa@867e00000 {
76                         reg = <0x0 0x867e0000 0x0 0x20000>;
77                         no-map;
78                 };
79
80                 mpss_mem: mpss@86800000 {
81                         reg = <0x0 0x86800000 0x0 0x2b00000>;
82                         no-map;
83                 };
84
85                 wcnss@89300000 {
86                         reg = <0x0 0x89300000 0x0 0x600000>;
87                         no-map;
88                 };
89
90                 mba_mem: mba@8ea00000 {
91                         no-map;
92                         reg = <0 0x8ea00000 0 0x100000>;
93                 };
94         };
95
96         cpus {
97                 #address-cells = <1>;
98                 #size-cells = <0>;
99
100                 CPU0: cpu@0 {
101                         device_type = "cpu";
102                         compatible = "arm,cortex-a53", "arm,armv8";
103                         reg = <0x0>;
104                         next-level-cache = <&L2_0>;
105                         enable-method = "psci";
106                         cpu-idle-states = <&CPU_SPC>;
107                 };
108
109                 CPU1: cpu@1 {
110                         device_type = "cpu";
111                         compatible = "arm,cortex-a53", "arm,armv8";
112                         reg = <0x1>;
113                         next-level-cache = <&L2_0>;
114                         enable-method = "psci";
115                         cpu-idle-states = <&CPU_SPC>;
116                 };
117
118                 CPU2: cpu@2 {
119                         device_type = "cpu";
120                         compatible = "arm,cortex-a53", "arm,armv8";
121                         reg = <0x2>;
122                         next-level-cache = <&L2_0>;
123                         enable-method = "psci";
124                         cpu-idle-states = <&CPU_SPC>;
125                 };
126
127                 CPU3: cpu@3 {
128                         device_type = "cpu";
129                         compatible = "arm,cortex-a53", "arm,armv8";
130                         reg = <0x3>;
131                         next-level-cache = <&L2_0>;
132                         enable-method = "psci";
133                         cpu-idle-states = <&CPU_SPC>;
134                 };
135
136                 L2_0: l2-cache {
137                       compatible = "cache";
138                       cache-level = <2>;
139                 };
140
141                 idle-states {
142                         CPU_SPC: spc {
143                                 compatible = "arm,idle-state";
144                                 arm,psci-suspend-param = <0x40000002>;
145                                 entry-latency-us = <130>;
146                                 exit-latency-us = <150>;
147                                 min-residency-us = <2000>;
148                                 local-timer-stop;
149                         };
150                 };
151         };
152
153         psci {
154                 compatible = "arm,psci-1.0";
155                 method = "smc";
156         };
157
158         pmu {
159                 compatible = "arm,armv8-pmuv3";
160                 interrupts = <GIC_PPI 7 GIC_CPU_MASK_SIMPLE(4)>;
161         };
162
163         thermal-zones {
164                 cpu-thermal0 {
165                         polling-delay-passive = <250>;
166                         polling-delay = <1000>;
167
168                         thermal-sensors = <&tsens 4>;
169
170                         trips {
171                                 cpu_alert0: trip0 {
172                                         temperature = <75000>;
173                                         hysteresis = <2000>;
174                                         type = "passive";
175                                 };
176                                 cpu_crit0: trip1 {
177                                         temperature = <110000>;
178                                         hysteresis = <2000>;
179                                         type = "critical";
180                                 };
181                         };
182                 };
183
184                 cpu-thermal1 {
185                         polling-delay-passive = <250>;
186                         polling-delay = <1000>;
187
188                         thermal-sensors = <&tsens 3>;
189
190                         trips {
191                                 cpu_alert1: trip0 {
192                                         temperature = <75000>;
193                                         hysteresis = <2000>;
194                                         type = "passive";
195                                 };
196                                 cpu_crit1: trip1 {
197                                         temperature = <110000>;
198                                         hysteresis = <2000>;
199                                         type = "critical";
200                                 };
201                         };
202                 };
203
204         };
205
206         timer {
207                 compatible = "arm,armv8-timer";
208                 interrupts = <GIC_PPI 2 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
209                              <GIC_PPI 3 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
210                              <GIC_PPI 4 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
211                              <GIC_PPI 1 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
212         };
213
214         clocks {
215                 xo_board: xo_board {
216                         compatible = "fixed-clock";
217                         #clock-cells = <0>;
218                         clock-frequency = <19200000>;
219                 };
220
221                 sleep_clk: sleep_clk {
222                         compatible = "fixed-clock";
223                         #clock-cells = <0>;
224                         clock-frequency = <32768>;
225                 };
226         };
227
228         smem {
229                 compatible = "qcom,smem";
230
231                 memory-region = <&smem_mem>;
232                 qcom,rpm-msg-ram = <&rpm_msg_ram>;
233
234                 hwlocks = <&tcsr_mutex 3>;
235         };
236
237         firmware {
238                 scm: scm {
239                         compatible = "qcom,scm";
240                         clocks = <&gcc GCC_CRYPTO_CLK>, <&gcc GCC_CRYPTO_AXI_CLK>, <&gcc GCC_CRYPTO_AHB_CLK>;
241                         clock-names = "core", "bus", "iface";
242                         #reset-cells = <1>;
243                 };
244         };
245
246         soc: soc {
247                 #address-cells = <1>;
248                 #size-cells = <1>;
249                 ranges = <0 0 0 0xffffffff>;
250                 compatible = "simple-bus";
251
252                 restart@4ab000 {
253                         compatible = "qcom,pshold";
254                         reg = <0x4ab000 0x4>;
255                 };
256
257                 msmgpio: pinctrl@1000000 {
258                         compatible = "qcom,msm8916-pinctrl";
259                         reg = <0x1000000 0x300000>;
260                         interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
261                         gpio-controller;
262                         #gpio-cells = <2>;
263                         interrupt-controller;
264                         #interrupt-cells = <2>;
265                 };
266
267                 gcc: clock-controller@1800000 {
268                         compatible = "qcom,gcc-msm8916";
269                         #clock-cells = <1>;
270                         #reset-cells = <1>;
271                         #power-domain-cells = <1>;
272                         reg = <0x1800000 0x80000>;
273                 };
274
275                 tcsr_mutex_regs: syscon@1905000 {
276                         compatible = "syscon";
277                         reg = <0x1905000 0x20000>;
278                 };
279
280                 tcsr: syscon@1937000 {
281                         compatible = "qcom,tcsr-msm8916", "syscon";
282                         reg = <0x1937000 0x30000>;
283                 };
284
285                 tcsr_mutex: hwlock {
286                         compatible = "qcom,tcsr-mutex";
287                         syscon = <&tcsr_mutex_regs 0 0x1000>;
288                         #hwlock-cells = <1>;
289                 };
290
291                 rpm_msg_ram: memory@60000 {
292                         compatible = "qcom,rpm-msg-ram";
293                         reg = <0x60000 0x8000>;
294                 };
295
296                 blsp1_uart1: serial@78af000 {
297                         compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
298                         reg = <0x78af000 0x200>;
299                         interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
300                         clocks = <&gcc GCC_BLSP1_UART1_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>;
301                         clock-names = "core", "iface";
302                         dmas = <&blsp_dma 1>, <&blsp_dma 0>;
303                         dma-names = "rx", "tx";
304                         status = "disabled";
305                 };
306
307                 apcs: syscon@b011000 {
308                         compatible = "syscon";
309                         reg = <0x0b011000 0x1000>;
310                 };
311
312                 blsp1_uart2: serial@78b0000 {
313                         compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
314                         reg = <0x78b0000 0x200>;
315                         interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
316                         clocks = <&gcc GCC_BLSP1_UART2_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>;
317                         clock-names = "core", "iface";
318                         dmas = <&blsp_dma 3>, <&blsp_dma 2>;
319                         dma-names = "rx", "tx";
320                         status = "disabled";
321                 };
322
323                 blsp_dma: dma@7884000 {
324                         compatible = "qcom,bam-v1.7.0";
325                         reg = <0x07884000 0x23000>;
326                         interrupts = <GIC_SPI 238 IRQ_TYPE_LEVEL_HIGH>;
327                         clocks = <&gcc GCC_BLSP1_AHB_CLK>;
328                         clock-names = "bam_clk";
329                         #dma-cells = <1>;
330                         qcom,ee = <0>;
331                         status = "disabled";
332                 };
333
334                 blsp_spi1: spi@78b5000 {
335                         compatible = "qcom,spi-qup-v2.2.1";
336                         reg = <0x078b5000 0x600>;
337                         interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
338                         clocks = <&gcc GCC_BLSP1_QUP1_SPI_APPS_CLK>,
339                                  <&gcc GCC_BLSP1_AHB_CLK>;
340                         clock-names = "core", "iface";
341                         dmas = <&blsp_dma 5>, <&blsp_dma 4>;
342                         dma-names = "rx", "tx";
343                         pinctrl-names = "default", "sleep";
344                         pinctrl-0 = <&spi1_default>;
345                         pinctrl-1 = <&spi1_sleep>;
346                         #address-cells = <1>;
347                         #size-cells = <0>;
348                         status = "disabled";
349                 };
350
351                 blsp_spi2: spi@78b6000 {
352                         compatible = "qcom,spi-qup-v2.2.1";
353                         reg = <0x078b6000 0x600>;
354                         interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
355                         clocks = <&gcc GCC_BLSP1_QUP2_SPI_APPS_CLK>,
356                                  <&gcc GCC_BLSP1_AHB_CLK>;
357                         clock-names = "core", "iface";
358                         dmas = <&blsp_dma 7>, <&blsp_dma 6>;
359                         dma-names = "rx", "tx";
360                         pinctrl-names = "default", "sleep";
361                         pinctrl-0 = <&spi2_default>;
362                         pinctrl-1 = <&spi2_sleep>;
363                         #address-cells = <1>;
364                         #size-cells = <0>;
365                         status = "disabled";
366                 };
367
368                 blsp_spi3: spi@78b7000 {
369                         compatible = "qcom,spi-qup-v2.2.1";
370                         reg = <0x078b7000 0x600>;
371                         interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
372                         clocks = <&gcc GCC_BLSP1_QUP3_SPI_APPS_CLK>,
373                                  <&gcc GCC_BLSP1_AHB_CLK>;
374                         clock-names = "core", "iface";
375                         dmas = <&blsp_dma 9>, <&blsp_dma 8>;
376                         dma-names = "rx", "tx";
377                         pinctrl-names = "default", "sleep";
378                         pinctrl-0 = <&spi3_default>;
379                         pinctrl-1 = <&spi3_sleep>;
380                         #address-cells = <1>;
381                         #size-cells = <0>;
382                         status = "disabled";
383                 };
384
385                 blsp_spi4: spi@78b8000 {
386                         compatible = "qcom,spi-qup-v2.2.1";
387                         reg = <0x078b8000 0x600>;
388                         interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
389                         clocks = <&gcc GCC_BLSP1_QUP4_SPI_APPS_CLK>,
390                                  <&gcc GCC_BLSP1_AHB_CLK>;
391                         clock-names = "core", "iface";
392                         dmas = <&blsp_dma 11>, <&blsp_dma 10>;
393                         dma-names = "rx", "tx";
394                         pinctrl-names = "default", "sleep";
395                         pinctrl-0 = <&spi4_default>;
396                         pinctrl-1 = <&spi4_sleep>;
397                         #address-cells = <1>;
398                         #size-cells = <0>;
399                         status = "disabled";
400                 };
401
402                 blsp_spi5: spi@78b9000 {
403                         compatible = "qcom,spi-qup-v2.2.1";
404                         reg = <0x078b9000 0x600>;
405                         interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>;
406                         clocks = <&gcc GCC_BLSP1_QUP5_SPI_APPS_CLK>,
407                                  <&gcc GCC_BLSP1_AHB_CLK>;
408                         clock-names = "core", "iface";
409                         dmas = <&blsp_dma 13>, <&blsp_dma 12>;
410                         dma-names = "rx", "tx";
411                         pinctrl-names = "default", "sleep";
412                         pinctrl-0 = <&spi5_default>;
413                         pinctrl-1 = <&spi5_sleep>;
414                         #address-cells = <1>;
415                         #size-cells = <0>;
416                         status = "disabled";
417                 };
418
419                 blsp_spi6: spi@78ba000 {
420                         compatible = "qcom,spi-qup-v2.2.1";
421                         reg = <0x078ba000 0x600>;
422                         interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
423                         clocks = <&gcc GCC_BLSP1_QUP6_SPI_APPS_CLK>,
424                                  <&gcc GCC_BLSP1_AHB_CLK>;
425                         clock-names = "core", "iface";
426                         dmas = <&blsp_dma 15>, <&blsp_dma 14>;
427                         dma-names = "rx", "tx";
428                         pinctrl-names = "default", "sleep";
429                         pinctrl-0 = <&spi6_default>;
430                         pinctrl-1 = <&spi6_sleep>;
431                         #address-cells = <1>;
432                         #size-cells = <0>;
433                         status = "disabled";
434                 };
435
436                 blsp_i2c2: i2c@78b6000 {
437                         compatible = "qcom,i2c-qup-v2.2.1";
438                         reg = <0x78b6000 0x1000>;
439                         interrupts = <GIC_SPI 96 0>;
440                         clocks = <&gcc GCC_BLSP1_AHB_CLK>,
441                                 <&gcc GCC_BLSP1_QUP2_I2C_APPS_CLK>;
442                         clock-names = "iface", "core";
443                         pinctrl-names = "default", "sleep";
444                         pinctrl-0 = <&i2c2_default>;
445                         pinctrl-1 = <&i2c2_sleep>;
446                         #address-cells = <1>;
447                         #size-cells = <0>;
448                         status = "disabled";
449                 };
450
451                 blsp_i2c4: i2c@78b8000 {
452                         compatible = "qcom,i2c-qup-v2.2.1";
453                         reg = <0x78b8000 0x1000>;
454                         interrupts = <GIC_SPI 98 0>;
455                         clocks = <&gcc GCC_BLSP1_AHB_CLK>,
456                                 <&gcc GCC_BLSP1_QUP4_I2C_APPS_CLK>;
457                         clock-names = "iface", "core";
458                         pinctrl-names = "default", "sleep";
459                         pinctrl-0 = <&i2c4_default>;
460                         pinctrl-1 = <&i2c4_sleep>;
461                         #address-cells = <1>;
462                         #size-cells = <0>;
463                         status = "disabled";
464                 };
465
466                 blsp_i2c6: i2c@78ba000 {
467                         compatible = "qcom,i2c-qup-v2.2.1";
468                         reg = <0x78ba000 0x1000>;
469                         interrupts = <GIC_SPI 100 0>;
470                         clocks = <&gcc GCC_BLSP1_AHB_CLK>,
471                                 <&gcc GCC_BLSP1_QUP6_I2C_APPS_CLK>;
472                         clock-names = "iface", "core";
473                         pinctrl-names = "default", "sleep";
474                         pinctrl-0 = <&i2c6_default>;
475                         pinctrl-1 = <&i2c6_sleep>;
476                         #address-cells = <1>;
477                         #size-cells = <0>;
478                         status = "disabled";
479                 };
480
481                 lpass: lpass@07708000 {
482                         status = "disabled";
483                         compatible = "qcom,lpass-cpu-apq8016";
484                         clocks = <&gcc GCC_ULTAUDIO_AHBFABRIC_IXFABRIC_CLK>,
485                                  <&gcc GCC_ULTAUDIO_PCNOC_MPORT_CLK>,
486                                  <&gcc GCC_ULTAUDIO_PCNOC_SWAY_CLK>,
487                                  <&gcc GCC_ULTAUDIO_LPAIF_PRI_I2S_CLK>,
488                                  <&gcc GCC_ULTAUDIO_LPAIF_SEC_I2S_CLK>,
489                                  <&gcc GCC_ULTAUDIO_LPAIF_SEC_I2S_CLK>,
490                                  <&gcc GCC_ULTAUDIO_LPAIF_AUX_I2S_CLK>;
491
492                         clock-names = "ahbix-clk",
493                                         "pcnoc-mport-clk",
494                                         "pcnoc-sway-clk",
495                                         "mi2s-bit-clk0",
496                                         "mi2s-bit-clk1",
497                                         "mi2s-bit-clk2",
498                                         "mi2s-bit-clk3";
499                         #sound-dai-cells = <1>;
500
501                         interrupts = <0 160 0>;
502                         interrupt-names = "lpass-irq-lpaif";
503                         reg = <0x07708000 0x10000>;
504                         reg-names = "lpass-lpaif";
505                 };
506
507                 lpass_codec: codec{
508                         compatible = "qcom,msm8916-wcd-digital-codec";
509                         reg = <0x0771c000 0x400>;
510                         clocks = <&gcc GCC_ULTAUDIO_AHBFABRIC_IXFABRIC_CLK>,
511                                  <&gcc GCC_CODEC_DIGCODEC_CLK>;
512                         clock-names = "ahbix-clk", "mclk";
513                         #sound-dai-cells = <1>;
514                 };
515
516                 sdhc_1: sdhci@07824000 {
517                         compatible = "qcom,sdhci-msm-v4";
518                         reg = <0x07824900 0x11c>, <0x07824000 0x800>;
519                         reg-names = "hc_mem", "core_mem";
520
521                         interrupts = <0 123 0>, <0 138 0>;
522                         interrupt-names = "hc_irq", "pwr_irq";
523                         clocks = <&gcc GCC_SDCC1_APPS_CLK>,
524                                  <&gcc GCC_SDCC1_AHB_CLK>,
525                                  <&xo_board>;
526                         clock-names = "core", "iface", "xo";
527                         mmc-ddr-1_8v;
528                         bus-width = <8>;
529                         non-removable;
530                         status = "disabled";
531                 };
532
533                 sdhc_2: sdhci@07864000 {
534                         compatible = "qcom,sdhci-msm-v4";
535                         reg = <0x07864900 0x11c>, <0x07864000 0x800>;
536                         reg-names = "hc_mem", "core_mem";
537
538                         interrupts = <0 125 0>, <0 221 0>;
539                         interrupt-names = "hc_irq", "pwr_irq";
540                         clocks = <&gcc GCC_SDCC2_APPS_CLK>,
541                                  <&gcc GCC_SDCC2_AHB_CLK>,
542                                  <&xo_board>;
543                         clock-names = "core", "iface", "xo";
544                         bus-width = <4>;
545                         status = "disabled";
546                 };
547
548                 usb_dev: usb@78d9000 {
549                         compatible = "qcom,ci-hdrc";
550                         reg = <0x78d9000 0x400>;
551                         dr_mode = "peripheral";
552                         interrupts = <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>;
553                         usb-phy = <&usb_otg>;
554                         status = "disabled";
555                 };
556
557                 usb_host: ehci@78d9000 {
558                         compatible = "qcom,ehci-host";
559                         reg = <0x78d9000 0x400>;
560                         interrupts = <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>;
561                         usb-phy = <&usb_otg>;
562                         status = "disabled";
563                 };
564
565                 usb_otg: phy@78d9000 {
566                         compatible = "qcom,usb-otg-snps";
567                         reg = <0x78d9000 0x400>;
568                         interrupts = <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>,
569                                      <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
570
571                         qcom,vdd-levels = <500000 1000000 1320000>;
572                         qcom,phy-init-sequence = <0x44 0x6B 0x24 0x13>;
573                         dr_mode = "peripheral";
574                         qcom,otg-control = <2>; // PMIC
575                         qcom,manual-pullup;
576
577                         clocks = <&gcc GCC_USB_HS_AHB_CLK>,
578                                  <&gcc GCC_USB_HS_SYSTEM_CLK>,
579                                  <&gcc GCC_USB2A_PHY_SLEEP_CLK>;
580                         clock-names = "iface", "core", "sleep";
581
582                         resets = <&gcc GCC_USB2A_PHY_BCR>,
583                                  <&gcc GCC_USB_HS_BCR>;
584                         reset-names = "phy", "link";
585                         status = "disabled";
586                 };
587
588                 intc: interrupt-controller@b000000 {
589                         compatible = "qcom,msm-qgic2";
590                         interrupt-controller;
591                         #interrupt-cells = <3>;
592                         reg = <0x0b000000 0x1000>, <0x0b002000 0x1000>;
593                 };
594
595                 timer@b020000 {
596                         #address-cells = <1>;
597                         #size-cells = <1>;
598                         ranges;
599                         compatible = "arm,armv7-timer-mem";
600                         reg = <0xb020000 0x1000>;
601                         clock-frequency = <19200000>;
602
603                         frame@b021000 {
604                                 frame-number = <0>;
605                                 interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
606                                              <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
607                                 reg = <0xb021000 0x1000>,
608                                       <0xb022000 0x1000>;
609                         };
610
611                         frame@b023000 {
612                                 frame-number = <1>;
613                                 interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
614                                 reg = <0xb023000 0x1000>;
615                                 status = "disabled";
616                         };
617
618                         frame@b024000 {
619                                 frame-number = <2>;
620                                 interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
621                                 reg = <0xb024000 0x1000>;
622                                 status = "disabled";
623                         };
624
625                         frame@b025000 {
626                                 frame-number = <3>;
627                                 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
628                                 reg = <0xb025000 0x1000>;
629                                 status = "disabled";
630                         };
631
632                         frame@b026000 {
633                                 frame-number = <4>;
634                                 interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
635                                 reg = <0xb026000 0x1000>;
636                                 status = "disabled";
637                         };
638
639                         frame@b027000 {
640                                 frame-number = <5>;
641                                 interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
642                                 reg = <0xb027000 0x1000>;
643                                 status = "disabled";
644                         };
645
646                         frame@b028000 {
647                                 frame-number = <6>;
648                                 interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
649                                 reg = <0xb028000 0x1000>;
650                                 status = "disabled";
651                         };
652                 };
653
654                 spmi_bus: spmi@200f000 {
655                         compatible = "qcom,spmi-pmic-arb";
656                         reg = <0x200f000 0x001000>,
657                               <0x2400000 0x400000>,
658                               <0x2c00000 0x400000>,
659                               <0x3800000 0x200000>,
660                               <0x200a000 0x002100>;
661                         reg-names = "core", "chnls", "obsrvr", "intr", "cnfg";
662                         interrupt-names = "periph_irq";
663                         interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>;
664                         qcom,ee = <0>;
665                         qcom,channel = <0>;
666                         #address-cells = <2>;
667                         #size-cells = <0>;
668                         interrupt-controller;
669                         #interrupt-cells = <4>;
670                 };
671
672                 rng@22000 {
673                         compatible = "qcom,prng";
674                         reg = <0x00022000 0x200>;
675                         clocks = <&gcc GCC_PRNG_AHB_CLK>;
676                         clock-names = "core";
677                 };
678
679                 qfprom: qfprom@5c000 {
680                         compatible = "qcom,qfprom";
681                         reg = <0x5c000 0x1000>;
682                         #address-cells = <1>;
683                         #size-cells = <1>;
684                         tsens_caldata: caldata@d0 {
685                                 reg = <0xd0 0x8>;
686                         };
687                         tsens_calsel: calsel@ec {
688                                 reg = <0xec 0x4>;
689                         };
690                 };
691
692                 tsens: thermal-sensor@4a8000 {
693                         compatible = "qcom,msm8916-tsens";
694                         reg = <0x4a8000 0x2000>;
695                         nvmem-cells = <&tsens_caldata>, <&tsens_calsel>;
696                         nvmem-cell-names = "calib", "calib_sel";
697                         #thermal-sensor-cells = <1>;
698                 };
699
700                 mdss: mdss@1a00000 {
701                         compatible = "qcom,mdss";
702                         reg = <0x1a00000 0x1000>,
703                               <0x1ac8000 0x3000>;
704                         reg-names = "mdss_phys", "vbif_phys";
705
706                         power-domains = <&gcc MDSS_GDSC>;
707
708                         clocks = <&gcc GCC_MDSS_AHB_CLK>,
709                                  <&gcc GCC_MDSS_AXI_CLK>,
710                                  <&gcc GCC_MDSS_VSYNC_CLK>;
711                         clock-names = "iface_clk",
712                                       "bus_clk",
713                                       "vsync_clk";
714
715                         interrupts = <0 72 0>;
716
717                         interrupt-controller;
718                         #interrupt-cells = <1>;
719
720                         #address-cells = <1>;
721                         #size-cells = <1>;
722                         ranges;
723
724                         mdp: mdp@1a01000 {
725                                 compatible = "qcom,mdp5";
726                                 reg = <0x1a01000 0x90000>;
727                                 reg-names = "mdp_phys";
728
729                                 interrupt-parent = <&mdss>;
730                                 interrupts = <0 0>;
731
732                                 clocks = <&gcc GCC_MDSS_AHB_CLK>,
733                                          <&gcc GCC_MDSS_AXI_CLK>,
734                                          <&gcc GCC_MDSS_MDP_CLK>,
735                                          <&gcc GCC_MDSS_VSYNC_CLK>;
736                                 clock-names = "iface_clk",
737                                               "bus_clk",
738                                               "core_clk",
739                                               "vsync_clk";
740
741                                 ports {
742                                         #address-cells = <1>;
743                                         #size-cells = <0>;
744
745                                         port@0 {
746                                                 reg = <0>;
747                                                 mdp5_intf1_out: endpoint {
748                                                         remote-endpoint = <&dsi0_in>;
749                                                 };
750                                         };
751                                 };
752                         };
753
754                         dsi0: dsi@1a98000 {
755                                 compatible = "qcom,mdss-dsi-ctrl";
756                                 reg = <0x1a98000 0x25c>;
757                                 reg-names = "dsi_ctrl";
758
759                                 interrupt-parent = <&mdss>;
760                                 interrupts = <4 0>;
761
762                                 assigned-clocks = <&gcc BYTE0_CLK_SRC>,
763                                                   <&gcc PCLK0_CLK_SRC>;
764                                 assigned-clock-parents = <&dsi_phy0 0>,
765                                                          <&dsi_phy0 1>;
766
767                                 clocks = <&gcc GCC_MDSS_MDP_CLK>,
768                                          <&gcc GCC_MDSS_AHB_CLK>,
769                                          <&gcc GCC_MDSS_AXI_CLK>,
770                                          <&gcc GCC_MDSS_BYTE0_CLK>,
771                                          <&gcc GCC_MDSS_PCLK0_CLK>,
772                                          <&gcc GCC_MDSS_ESC0_CLK>;
773                                 clock-names = "mdp_core_clk",
774                                               "iface_clk",
775                                               "bus_clk",
776                                               "byte_clk",
777                                               "pixel_clk",
778                                               "core_clk";
779                                 phys = <&dsi_phy0>;
780                                 phy-names = "dsi-phy";
781
782                                 ports {
783                                         #address-cells = <1>;
784                                         #size-cells = <0>;
785
786                                         port@0 {
787                                                 reg = <0>;
788                                                 dsi0_in: endpoint {
789                                                         remote-endpoint = <&mdp5_intf1_out>;
790                                                 };
791                                         };
792
793                                         port@1 {
794                                                 reg = <1>;
795                                                 dsi0_out: endpoint {
796                                                 };
797                                         };
798                                 };
799                         };
800
801                         dsi_phy0: dsi-phy@1a98300 {
802                                 compatible = "qcom,dsi-phy-28nm-lp";
803                                 reg = <0x1a98300 0xd4>,
804                                       <0x1a98500 0x280>,
805                                       <0x1a98780 0x30>;
806                                 reg-names = "dsi_pll",
807                                             "dsi_phy",
808                                             "dsi_phy_regulator";
809
810                                 #clock-cells = <1>;
811
812                                 clocks = <&gcc GCC_MDSS_AHB_CLK>;
813                                 clock-names = "iface_clk";
814                         };
815                 };
816
817
818                 hexagon@4080000 {
819                         compatible = "qcom,q6v5-pil";
820                         reg = <0x04080000 0x100>,
821                               <0x04020000 0x040>;
822
823                         reg-names = "qdsp6", "rmb";
824
825                         interrupts-extended = <&intc 0 24 1>,
826                                               <&hexagon_smp2p_in 0 0>,
827                                               <&hexagon_smp2p_in 1 0>,
828                                               <&hexagon_smp2p_in 2 0>,
829                                               <&hexagon_smp2p_in 3 0>;
830                         interrupt-names = "wdog", "fatal", "ready",
831                                           "handover", "stop-ack";
832
833                         clocks = <&gcc GCC_MSS_CFG_AHB_CLK>,
834                                  <&gcc GCC_MSS_Q6_BIMC_AXI_CLK>,
835                                  <&gcc GCC_BOOT_ROM_AHB_CLK>;
836                         clock-names = "iface", "bus", "mem";
837
838                         qcom,smem-states = <&hexagon_smp2p_out 0>;
839                         qcom,smem-state-names = "stop";
840
841                         resets = <&scm 0>;
842                         reset-names = "mss_restart";
843
844                         mx-supply = <&pm8916_l3>;
845                         pll-supply = <&pm8916_l7>;
846
847                         qcom,halt-regs = <&tcsr 0x18000 0x19000 0x1a000>;
848
849                         status = "disabled";
850
851                         mba {
852                                 memory-region = <&mba_mem>;
853                         };
854
855                         mpss {
856                                 memory-region = <&mpss_mem>;
857                         };
858                 };
859         };
860
861         smd {
862                 compatible = "qcom,smd";
863
864                 rpm {
865                         interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>;
866                         qcom,ipc = <&apcs 8 0>;
867                         qcom,smd-edge = <15>;
868
869                         rpm_requests {
870                                 compatible = "qcom,rpm-msm8916";
871                                 qcom,smd-channels = "rpm_requests";
872
873                                 rpmcc: qcom,rpmcc {
874                                         compatible = "qcom,rpmcc-msm8916", "qcom,rpmcc";
875                                         #clock-cells = <1>;
876                                 };
877
878                                 smd_rpm_regulators: pm8916-regulators {
879                                         compatible = "qcom,rpm-pm8916-regulators";
880
881                                         pm8916_s1: s1 {};
882                                         pm8916_s3: s3 {};
883                                         pm8916_s4: s4 {};
884
885                                         pm8916_l1: l1 {};
886                                         pm8916_l2: l2 {};
887                                         pm8916_l3: l3 {};
888                                         pm8916_l4: l4 {};
889                                         pm8916_l5: l5 {};
890                                         pm8916_l6: l6 {};
891                                         pm8916_l7: l7 {};
892                                         pm8916_l8: l8 {};
893                                         pm8916_l9: l9 {};
894                                         pm8916_l10: l10 {};
895                                         pm8916_l11: l11 {};
896                                         pm8916_l12: l12 {};
897                                         pm8916_l13: l13 {};
898                                         pm8916_l14: l14 {};
899                                         pm8916_l15: l15 {};
900                                         pm8916_l16: l16 {};
901                                         pm8916_l17: l17 {};
902                                         pm8916_l18: l18 {};
903                                 };
904                         };
905                 };
906
907                 hexagon {
908                         interrupts = <0 25 IRQ_TYPE_EDGE_RISING>;
909
910                         qcom,smd-edge = <0>;
911                         qcom,ipc = <&apcs 8 12>;
912                         qcom,remote-pid = <1>;
913                 };
914         };
915
916         hexagon-smp2p {
917                 compatible = "qcom,smp2p";
918                 qcom,smem = <435>, <428>;
919
920                 interrupts = <0 27 IRQ_TYPE_EDGE_RISING>;
921
922                 qcom,ipc = <&apcs 8 14>;
923
924                 qcom,local-pid = <0>;
925                 qcom,remote-pid = <1>;
926
927                 hexagon_smp2p_out: master-kernel {
928                         qcom,entry-name = "master-kernel";
929
930                         #qcom,smem-state-cells = <1>;
931                 };
932
933                 hexagon_smp2p_in: slave-kernel {
934                         qcom,entry-name = "slave-kernel";
935
936                         interrupt-controller;
937                         #interrupt-cells = <2>;
938                 };
939         };
940
941         wcnss-smp2p {
942                 compatible = "qcom,smp2p";
943                 qcom,smem = <451>, <431>;
944
945                 interrupts = <0 143 IRQ_TYPE_EDGE_RISING>;
946
947                 qcom,ipc = <&apcs 8 18>;
948
949                 qcom,local-pid = <0>;
950                 qcom,remote-pid = <4>;
951
952                 wcnss_smp2p_out: master-kernel {
953                         qcom,entry-name = "master-kernel";
954
955                         #qcom,smem-state-cells = <1>;
956                 };
957
958                 wcnss_smp2p_in: slave-kernel {
959                         qcom,entry-name = "slave-kernel";
960
961                         interrupt-controller;
962                         #interrupt-cells = <2>;
963                 };
964         };
965
966         smsm {
967                 compatible = "qcom,smsm";
968
969                 #address-cells = <1>;
970                 #size-cells = <0>;
971
972                 qcom,ipc-1 = <&apcs 0 13>;
973                 qcom,ipc-6 = <&apcs 0 19>;
974
975                 apps_smsm: apps@0 {
976                         reg = <0>;
977
978                         #qcom,smem-state-cells = <1>;
979                 };
980
981                 hexagon_smsm: hexagon@1 {
982                         reg = <1>;
983                         interrupts = <0 26 IRQ_TYPE_EDGE_RISING>;
984
985                         interrupt-controller;
986                         #interrupt-cells = <2>;
987                 };
988
989                 wcnss_smsm: wcnss@6 {
990                         reg = <6>;
991                         interrupts = <0 144 IRQ_TYPE_EDGE_RISING>;
992
993                         interrupt-controller;
994                         #interrupt-cells = <2>;
995                 };
996         };
997 };
998
999 #include "msm8916-pins.dtsi"