Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid
[cascardo/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@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                 sdhc_1: sdhci@07824000 {
508                         compatible = "qcom,sdhci-msm-v4";
509                         reg = <0x07824900 0x11c>, <0x07824000 0x800>;
510                         reg-names = "hc_mem", "core_mem";
511
512                         interrupts = <0 123 0>, <0 138 0>;
513                         interrupt-names = "hc_irq", "pwr_irq";
514                         clocks = <&gcc GCC_SDCC1_APPS_CLK>,
515                                  <&gcc GCC_SDCC1_AHB_CLK>;
516                         clock-names = "core", "iface";
517                         bus-width = <8>;
518                         non-removable;
519                         status = "disabled";
520                 };
521
522                 sdhc_2: sdhci@07864000 {
523                         compatible = "qcom,sdhci-msm-v4";
524                         reg = <0x07864900 0x11c>, <0x07864000 0x800>;
525                         reg-names = "hc_mem", "core_mem";
526
527                         interrupts = <0 125 0>, <0 221 0>;
528                         interrupt-names = "hc_irq", "pwr_irq";
529                         clocks = <&gcc GCC_SDCC2_APPS_CLK>,
530                                  <&gcc GCC_SDCC2_AHB_CLK>;
531                         clock-names = "core", "iface";
532                         bus-width = <4>;
533                         status = "disabled";
534                 };
535
536                 usb_dev: usb@78d9000 {
537                         compatible = "qcom,ci-hdrc";
538                         reg = <0x78d9000 0x400>;
539                         dr_mode = "peripheral";
540                         interrupts = <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>;
541                         usb-phy = <&usb_otg>;
542                         status = "disabled";
543                 };
544
545                 usb_host: ehci@78d9000 {
546                         compatible = "qcom,ehci-host";
547                         reg = <0x78d9000 0x400>;
548                         interrupts = <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>;
549                         usb-phy = <&usb_otg>;
550                         status = "disabled";
551                 };
552
553                 usb_otg: phy@78d9000 {
554                         compatible = "qcom,usb-otg-snps";
555                         reg = <0x78d9000 0x400>;
556                         interrupts = <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>,
557                                      <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
558
559                         qcom,vdd-levels = <500000 1000000 1320000>;
560                         qcom,phy-init-sequence = <0x44 0x6B 0x24 0x13>;
561                         dr_mode = "peripheral";
562                         qcom,otg-control = <2>; // PMIC
563                         qcom,manual-pullup;
564
565                         clocks = <&gcc GCC_USB_HS_AHB_CLK>,
566                                  <&gcc GCC_USB_HS_SYSTEM_CLK>,
567                                  <&gcc GCC_USB2A_PHY_SLEEP_CLK>;
568                         clock-names = "iface", "core", "sleep";
569
570                         resets = <&gcc GCC_USB2A_PHY_BCR>,
571                                  <&gcc GCC_USB_HS_BCR>;
572                         reset-names = "phy", "link";
573                         status = "disabled";
574                 };
575
576                 intc: interrupt-controller@b000000 {
577                         compatible = "qcom,msm-qgic2";
578                         interrupt-controller;
579                         #interrupt-cells = <3>;
580                         reg = <0x0b000000 0x1000>, <0x0b002000 0x1000>;
581                 };
582
583                 timer@b020000 {
584                         #address-cells = <1>;
585                         #size-cells = <1>;
586                         ranges;
587                         compatible = "arm,armv7-timer-mem";
588                         reg = <0xb020000 0x1000>;
589                         clock-frequency = <19200000>;
590
591                         frame@b021000 {
592                                 frame-number = <0>;
593                                 interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
594                                              <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
595                                 reg = <0xb021000 0x1000>,
596                                       <0xb022000 0x1000>;
597                         };
598
599                         frame@b023000 {
600                                 frame-number = <1>;
601                                 interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
602                                 reg = <0xb023000 0x1000>;
603                                 status = "disabled";
604                         };
605
606                         frame@b024000 {
607                                 frame-number = <2>;
608                                 interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
609                                 reg = <0xb024000 0x1000>;
610                                 status = "disabled";
611                         };
612
613                         frame@b025000 {
614                                 frame-number = <3>;
615                                 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
616                                 reg = <0xb025000 0x1000>;
617                                 status = "disabled";
618                         };
619
620                         frame@b026000 {
621                                 frame-number = <4>;
622                                 interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
623                                 reg = <0xb026000 0x1000>;
624                                 status = "disabled";
625                         };
626
627                         frame@b027000 {
628                                 frame-number = <5>;
629                                 interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
630                                 reg = <0xb027000 0x1000>;
631                                 status = "disabled";
632                         };
633
634                         frame@b028000 {
635                                 frame-number = <6>;
636                                 interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
637                                 reg = <0xb028000 0x1000>;
638                                 status = "disabled";
639                         };
640                 };
641
642                 spmi_bus: spmi@200f000 {
643                         compatible = "qcom,spmi-pmic-arb";
644                         reg = <0x200f000 0x001000>,
645                               <0x2400000 0x400000>,
646                               <0x2c00000 0x400000>,
647                               <0x3800000 0x200000>,
648                               <0x200a000 0x002100>;
649                         reg-names = "core", "chnls", "obsrvr", "intr", "cnfg";
650                         interrupt-names = "periph_irq";
651                         interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>;
652                         qcom,ee = <0>;
653                         qcom,channel = <0>;
654                         #address-cells = <2>;
655                         #size-cells = <0>;
656                         interrupt-controller;
657                         #interrupt-cells = <4>;
658                 };
659
660                 rng@22000 {
661                         compatible = "qcom,prng";
662                         reg = <0x00022000 0x200>;
663                         clocks = <&gcc GCC_PRNG_AHB_CLK>;
664                         clock-names = "core";
665                 };
666
667                 qfprom: qfprom@5c000 {
668                         compatible = "qcom,qfprom";
669                         reg = <0x5c000 0x1000>;
670                         #address-cells = <1>;
671                         #size-cells = <1>;
672                         tsens_caldata: caldata@d0 {
673                                 reg = <0xd0 0x8>;
674                         };
675                         tsens_calsel: calsel@ec {
676                                 reg = <0xec 0x4>;
677                         };
678                 };
679
680                 tsens: thermal-sensor@4a8000 {
681                         compatible = "qcom,msm8916-tsens";
682                         reg = <0x4a8000 0x2000>;
683                         nvmem-cells = <&tsens_caldata>, <&tsens_calsel>;
684                         nvmem-cell-names = "calib", "calib_sel";
685                         #thermal-sensor-cells = <1>;
686                 };
687
688                 mdss: mdss@1a00000 {
689                         compatible = "qcom,mdss";
690                         reg = <0x1a00000 0x1000>,
691                               <0x1ac8000 0x3000>;
692                         reg-names = "mdss_phys", "vbif_phys";
693
694                         power-domains = <&gcc MDSS_GDSC>;
695
696                         clocks = <&gcc GCC_MDSS_AHB_CLK>,
697                                  <&gcc GCC_MDSS_AXI_CLK>,
698                                  <&gcc GCC_MDSS_VSYNC_CLK>;
699                         clock-names = "iface_clk",
700                                       "bus_clk",
701                                       "vsync_clk";
702
703                         interrupts = <0 72 0>;
704
705                         interrupt-controller;
706                         #interrupt-cells = <1>;
707
708                         #address-cells = <1>;
709                         #size-cells = <1>;
710                         ranges;
711
712                         mdp: mdp@1a01000 {
713                                 compatible = "qcom,mdp5";
714                                 reg = <0x1a01000 0x90000>;
715                                 reg-names = "mdp_phys";
716
717                                 interrupt-parent = <&mdss>;
718                                 interrupts = <0 0>;
719
720                                 clocks = <&gcc GCC_MDSS_AHB_CLK>,
721                                          <&gcc GCC_MDSS_AXI_CLK>,
722                                          <&gcc GCC_MDSS_MDP_CLK>,
723                                          <&gcc GCC_MDSS_VSYNC_CLK>;
724                                 clock-names = "iface_clk",
725                                               "bus_clk",
726                                               "core_clk",
727                                               "vsync_clk";
728
729                                 ports {
730                                         #address-cells = <1>;
731                                         #size-cells = <0>;
732
733                                         port@0 {
734                                                 reg = <0>;
735                                                 mdp5_intf1_out: endpoint {
736                                                         remote-endpoint = <&dsi0_in>;
737                                                 };
738                                         };
739                                 };
740                         };
741
742                         dsi0: dsi@1a98000 {
743                                 compatible = "qcom,mdss-dsi-ctrl";
744                                 reg = <0x1a98000 0x25c>;
745                                 reg-names = "dsi_ctrl";
746
747                                 interrupt-parent = <&mdss>;
748                                 interrupts = <4 0>;
749
750                                 assigned-clocks = <&gcc BYTE0_CLK_SRC>,
751                                                   <&gcc PCLK0_CLK_SRC>;
752                                 assigned-clock-parents = <&dsi_phy0 0>,
753                                                          <&dsi_phy0 1>;
754
755                                 clocks = <&gcc GCC_MDSS_MDP_CLK>,
756                                          <&gcc GCC_MDSS_AHB_CLK>,
757                                          <&gcc GCC_MDSS_AXI_CLK>,
758                                          <&gcc GCC_MDSS_BYTE0_CLK>,
759                                          <&gcc GCC_MDSS_PCLK0_CLK>,
760                                          <&gcc GCC_MDSS_ESC0_CLK>;
761                                 clock-names = "mdp_core_clk",
762                                               "iface_clk",
763                                               "bus_clk",
764                                               "byte_clk",
765                                               "pixel_clk",
766                                               "core_clk";
767                                 phys = <&dsi_phy0>;
768                                 phy-names = "dsi-phy";
769
770                                 ports {
771                                         #address-cells = <1>;
772                                         #size-cells = <0>;
773
774                                         port@0 {
775                                                 reg = <0>;
776                                                 dsi0_in: endpoint {
777                                                         remote-endpoint = <&mdp5_intf1_out>;
778                                                 };
779                                         };
780
781                                         port@1 {
782                                                 reg = <1>;
783                                                 dsi0_out: endpoint {
784                                                 };
785                                         };
786                                 };
787                         };
788
789                         dsi_phy0: dsi-phy@1a98300 {
790                                 compatible = "qcom,dsi-phy-28nm-lp";
791                                 reg = <0x1a98300 0xd4>,
792                                       <0x1a98500 0x280>,
793                                       <0x1a98780 0x30>;
794                                 reg-names = "dsi_pll",
795                                             "dsi_phy",
796                                             "dsi_phy_regulator";
797
798                                 #clock-cells = <1>;
799
800                                 clocks = <&gcc GCC_MDSS_AHB_CLK>;
801                                 clock-names = "iface_clk";
802                         };
803                 };
804         };
805
806         smd {
807                 compatible = "qcom,smd";
808
809                 rpm {
810                         interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>;
811                         qcom,ipc = <&apcs 8 0>;
812                         qcom,smd-edge = <15>;
813
814                         rpm_requests {
815                                 compatible = "qcom,rpm-msm8916";
816                                 qcom,smd-channels = "rpm_requests";
817
818                                 rpmcc: qcom,rpmcc {
819                                         compatible = "qcom,rpmcc-msm8916", "qcom,rpmcc";
820                                         #clock-cells = <1>;
821                                 };
822
823                                 smd_rpm_regulators: pm8916-regulators {
824                                         compatible = "qcom,rpm-pm8916-regulators";
825
826                                         pm8916_s1: s1 {};
827                                         pm8916_s3: s3 {};
828                                         pm8916_s4: s4 {};
829
830                                         pm8916_l1: l1 {};
831                                         pm8916_l2: l2 {};
832                                         pm8916_l3: l3 {};
833                                         pm8916_l4: l4 {};
834                                         pm8916_l5: l5 {};
835                                         pm8916_l6: l6 {};
836                                         pm8916_l7: l7 {};
837                                         pm8916_l8: l8 {};
838                                         pm8916_l9: l9 {};
839                                         pm8916_l10: l10 {};
840                                         pm8916_l11: l11 {};
841                                         pm8916_l12: l12 {};
842                                         pm8916_l13: l13 {};
843                                         pm8916_l14: l14 {};
844                                         pm8916_l15: l15 {};
845                                         pm8916_l16: l16 {};
846                                         pm8916_l17: l17 {};
847                                         pm8916_l18: l18 {};
848                                 };
849                         };
850                 };
851         };
852
853         hexagon-smp2p {
854                 compatible = "qcom,smp2p";
855                 qcom,smem = <435>, <428>;
856
857                 interrupts = <0 27 IRQ_TYPE_EDGE_RISING>;
858
859                 qcom,ipc = <&apcs 8 14>;
860
861                 qcom,local-pid = <0>;
862                 qcom,remote-pid = <1>;
863
864                 hexagon_smp2p_out: master-kernel {
865                         qcom,entry-name = "master-kernel";
866
867                         #qcom,smem-state-cells = <1>;
868                 };
869
870                 hexagon_smp2p_in: slave-kernel {
871                         qcom,entry-name = "slave-kernel";
872
873                         interrupt-controller;
874                         #interrupt-cells = <2>;
875                 };
876         };
877
878         wcnss-smp2p {
879                 compatible = "qcom,smp2p";
880                 qcom,smem = <451>, <431>;
881
882                 interrupts = <0 143 IRQ_TYPE_EDGE_RISING>;
883
884                 qcom,ipc = <&apcs 8 18>;
885
886                 qcom,local-pid = <0>;
887                 qcom,remote-pid = <4>;
888
889                 wcnss_smp2p_out: master-kernel {
890                         qcom,entry-name = "master-kernel";
891
892                         #qcom,smem-state-cells = <1>;
893                 };
894
895                 wcnss_smp2p_in: slave-kernel {
896                         qcom,entry-name = "slave-kernel";
897
898                         interrupt-controller;
899                         #interrupt-cells = <2>;
900                 };
901         };
902
903         smsm {
904                 compatible = "qcom,smsm";
905
906                 #address-cells = <1>;
907                 #size-cells = <0>;
908
909                 qcom,ipc-1 = <&apcs 0 13>;
910                 qcom,ipc-6 = <&apcs 0 19>;
911
912                 apps_smsm: apps@0 {
913                         reg = <0>;
914
915                         #qcom,smem-state-cells = <1>;
916                 };
917
918                 hexagon_smsm: hexagon@1 {
919                         reg = <1>;
920                         interrupts = <0 26 IRQ_TYPE_EDGE_RISING>;
921
922                         interrupt-controller;
923                         #interrupt-cells = <2>;
924                 };
925
926                 wcnss_smsm: wcnss@6 {
927                         reg = <6>;
928                         interrupts = <0 144 IRQ_TYPE_EDGE_RISING>;
929
930                         interrupt-controller;
931                         #interrupt-cells = <2>;
932                 };
933         };
934 };
935
936 #include "msm8916-pins.dtsi"