1// SPDX-License-Identifier: GPL-2.0
2/dts-v1/;
3
4#include <dt-bindings/interconnect/qcom,msm8974.h>
5#include <dt-bindings/interrupt-controller/arm-gic.h>
6#include <dt-bindings/clock/qcom,gcc-msm8974.h>
7#include <dt-bindings/clock/qcom,mmcc-msm8974.h>
8#include <dt-bindings/clock/qcom,rpmcc.h>
9#include <dt-bindings/reset/qcom,gcc-msm8974.h>
10#include <dt-bindings/gpio/gpio.h>
11
12/ {
13	#address-cells = <1>;
14	#size-cells = <1>;
15	interrupt-parent = <&intc>;
16
17	chosen { };
18
19	clocks {
20		xo_board: xo_board {
21			compatible = "fixed-clock";
22			#clock-cells = <0>;
23			clock-frequency = <19200000>;
24		};
25
26		sleep_clk: sleep_clk {
27			compatible = "fixed-clock";
28			#clock-cells = <0>;
29			clock-frequency = <32768>;
30		};
31	};
32
33	cpus {
34		#address-cells = <1>;
35		#size-cells = <0>;
36		interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
37
38		CPU0: cpu@0 {
39			compatible = "qcom,krait";
40			enable-method = "qcom,kpss-acc-v2";
41			device_type = "cpu";
42			reg = <0>;
43			next-level-cache = <&L2>;
44			qcom,acc = <&acc0>;
45			qcom,saw = <&saw0>;
46			cpu-idle-states = <&CPU_SPC>;
47		};
48
49		CPU1: cpu@1 {
50			compatible = "qcom,krait";
51			enable-method = "qcom,kpss-acc-v2";
52			device_type = "cpu";
53			reg = <1>;
54			next-level-cache = <&L2>;
55			qcom,acc = <&acc1>;
56			qcom,saw = <&saw1>;
57			cpu-idle-states = <&CPU_SPC>;
58		};
59
60		CPU2: cpu@2 {
61			compatible = "qcom,krait";
62			enable-method = "qcom,kpss-acc-v2";
63			device_type = "cpu";
64			reg = <2>;
65			next-level-cache = <&L2>;
66			qcom,acc = <&acc2>;
67			qcom,saw = <&saw2>;
68			cpu-idle-states = <&CPU_SPC>;
69		};
70
71		CPU3: cpu@3 {
72			compatible = "qcom,krait";
73			enable-method = "qcom,kpss-acc-v2";
74			device_type = "cpu";
75			reg = <3>;
76			next-level-cache = <&L2>;
77			qcom,acc = <&acc3>;
78			qcom,saw = <&saw3>;
79			cpu-idle-states = <&CPU_SPC>;
80		};
81
82		L2: l2-cache {
83			compatible = "cache";
84			cache-level = <2>;
85			cache-unified;
86			qcom,saw = <&saw_l2>;
87		};
88
89		idle-states {
90			CPU_SPC: cpu-spc {
91				compatible = "qcom,idle-state-spc",
92						"arm,idle-state";
93				entry-latency-us = <150>;
94				exit-latency-us = <200>;
95				min-residency-us = <2000>;
96			};
97		};
98	};
99
100	firmware {
101		scm {
102			compatible = "qcom,scm-msm8974", "qcom,scm";
103			clocks = <&gcc GCC_CE1_CLK>, <&gcc GCC_CE1_AXI_CLK>, <&gcc GCC_CE1_AHB_CLK>;
104			clock-names = "core", "bus", "iface";
105		};
106	};
107
108	memory@0 {
109		device_type = "memory";
110		reg = <0x0 0x0>;
111	};
112
113	pmu {
114		compatible = "qcom,krait-pmu";
115		interrupts = <GIC_PPI 7 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
116	};
117
118	rpm: remoteproc {
119		compatible = "qcom,msm8974-rpm-proc", "qcom,rpm-proc";
120
121		master-stats {
122			compatible = "qcom,rpm-master-stats";
123			qcom,rpm-msg-ram = <&apss_master_stats>,
124					   <&mpss_master_stats>,
125					   <&lpss_master_stats>,
126					   <&pronto_master_stats>;
127			qcom,master-names = "APSS",
128					    "MPSS",
129					    "LPSS",
130					    "PRONTO";
131		};
132
133		smd-edge {
134			interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>;
135			qcom,ipc = <&apcs 8 0>;
136			qcom,smd-edge = <15>;
137
138			rpm_requests: rpm-requests {
139				compatible = "qcom,rpm-msm8974";
140				qcom,smd-channels = "rpm_requests";
141
142				rpmcc: clock-controller {
143					compatible = "qcom,rpmcc-msm8974", "qcom,rpmcc";
144					#clock-cells = <1>;
145					clocks = <&xo_board>;
146					clock-names = "xo";
147				};
148			};
149		};
150	};
151
152	reserved-memory {
153		#address-cells = <1>;
154		#size-cells = <1>;
155		ranges;
156
157		mpss_region: mpss@8000000 {
158			reg = <0x08000000 0x5100000>;
159			no-map;
160		};
161
162		mba_region: mba@d100000 {
163			reg = <0x0d100000 0x100000>;
164			no-map;
165		};
166
167		wcnss_region: wcnss@d200000 {
168			reg = <0x0d200000 0xa00000>;
169			no-map;
170		};
171
172		adsp_region: adsp@dc00000 {
173			reg = <0x0dc00000 0x1900000>;
174			no-map;
175		};
176
177		venus_region: memory@f500000 {
178			reg = <0x0f500000 0x500000>;
179			no-map;
180		};
181
182		smem_region: smem@fa00000 {
183			reg = <0xfa00000 0x200000>;
184			no-map;
185		};
186
187		tz_region: memory@fc00000 {
188			reg = <0x0fc00000 0x160000>;
189			no-map;
190		};
191
192		rfsa_mem: memory@fd60000 {
193			reg = <0x0fd60000 0x20000>;
194			no-map;
195		};
196
197		rmtfs@fd80000 {
198			compatible = "qcom,rmtfs-mem";
199			reg = <0x0fd80000 0x180000>;
200			no-map;
201
202			qcom,client-id = <1>;
203		};
204	};
205
206	smem {
207		compatible = "qcom,smem";
208
209		memory-region = <&smem_region>;
210		qcom,rpm-msg-ram = <&rpm_msg_ram>;
211
212		hwlocks = <&tcsr_mutex 3>;
213	};
214
215	smp2p-adsp {
216		compatible = "qcom,smp2p";
217		qcom,smem = <443>, <429>;
218
219		interrupt-parent = <&intc>;
220		interrupts = <GIC_SPI 158 IRQ_TYPE_EDGE_RISING>;
221
222		qcom,ipc = <&apcs 8 10>;
223
224		qcom,local-pid = <0>;
225		qcom,remote-pid = <2>;
226
227		adsp_smp2p_out: master-kernel {
228			qcom,entry-name = "master-kernel";
229			#qcom,smem-state-cells = <1>;
230		};
231
232		adsp_smp2p_in: slave-kernel {
233			qcom,entry-name = "slave-kernel";
234
235			interrupt-controller;
236			#interrupt-cells = <2>;
237		};
238	};
239
240	smp2p-modem {
241		compatible = "qcom,smp2p";
242		qcom,smem = <435>, <428>;
243
244		interrupt-parent = <&intc>;
245		interrupts = <GIC_SPI 27 IRQ_TYPE_EDGE_RISING>;
246
247		qcom,ipc = <&apcs 8 14>;
248
249		qcom,local-pid = <0>;
250		qcom,remote-pid = <1>;
251
252		modem_smp2p_out: master-kernel {
253			qcom,entry-name = "master-kernel";
254			#qcom,smem-state-cells = <1>;
255		};
256
257		modem_smp2p_in: slave-kernel {
258			qcom,entry-name = "slave-kernel";
259
260			interrupt-controller;
261			#interrupt-cells = <2>;
262		};
263	};
264
265	smp2p-wcnss {
266		compatible = "qcom,smp2p";
267		qcom,smem = <451>, <431>;
268
269		interrupt-parent = <&intc>;
270		interrupts = <GIC_SPI 143 IRQ_TYPE_EDGE_RISING>;
271
272		qcom,ipc = <&apcs 8 18>;
273
274		qcom,local-pid = <0>;
275		qcom,remote-pid = <4>;
276
277		wcnss_smp2p_out: master-kernel {
278			qcom,entry-name = "master-kernel";
279
280			#qcom,smem-state-cells = <1>;
281		};
282
283		wcnss_smp2p_in: slave-kernel {
284			qcom,entry-name = "slave-kernel";
285
286			interrupt-controller;
287			#interrupt-cells = <2>;
288		};
289	};
290
291	smsm {
292		compatible = "qcom,smsm";
293
294		#address-cells = <1>;
295		#size-cells = <0>;
296
297		qcom,ipc-1 = <&apcs 8 13>;
298		qcom,ipc-2 = <&apcs 8 9>;
299		qcom,ipc-3 = <&apcs 8 19>;
300
301		apps_smsm: apps@0 {
302			reg = <0>;
303
304			#qcom,smem-state-cells = <1>;
305		};
306
307		modem_smsm: modem@1 {
308			reg = <1>;
309			interrupts = <GIC_SPI 26 IRQ_TYPE_EDGE_RISING>;
310
311			interrupt-controller;
312			#interrupt-cells = <2>;
313		};
314
315		adsp_smsm: adsp@2 {
316			reg = <2>;
317			interrupts = <GIC_SPI 157 IRQ_TYPE_EDGE_RISING>;
318
319			interrupt-controller;
320			#interrupt-cells = <2>;
321		};
322
323		wcnss_smsm: wcnss@7 {
324			reg = <7>;
325			interrupts = <GIC_SPI 144 IRQ_TYPE_EDGE_RISING>;
326
327			interrupt-controller;
328			#interrupt-cells = <2>;
329		};
330	};
331
332	soc: soc {
333		#address-cells = <1>;
334		#size-cells = <1>;
335		ranges;
336		compatible = "simple-bus";
337
338		intc: interrupt-controller@f9000000 {
339			compatible = "qcom,msm-qgic2";
340			interrupt-controller;
341			#interrupt-cells = <3>;
342			reg = <0xf9000000 0x1000>,
343			      <0xf9002000 0x1000>;
344		};
345
346		apcs: syscon@f9011000 {
347			compatible = "syscon";
348			reg = <0xf9011000 0x1000>;
349		};
350
351		saw_l2: power-manager@f9012000 {
352			compatible = "qcom,msm8974-saw2-v2.1-l2", "qcom,saw2";
353			reg = <0xf9012000 0x1000>;
354		};
355
356		watchdog@f9017000 {
357			compatible = "qcom,apss-wdt-msm8974", "qcom,kpss-wdt";
358			reg = <0xf9017000 0x1000>;
359			interrupts = <GIC_SPI 3 IRQ_TYPE_EDGE_RISING>,
360				     <GIC_SPI 4 IRQ_TYPE_EDGE_RISING>;
361			clocks = <&sleep_clk>;
362		};
363
364		timer@f9020000 {
365			#address-cells = <1>;
366			#size-cells = <1>;
367			ranges;
368			compatible = "arm,armv7-timer-mem";
369			reg = <0xf9020000 0x1000>;
370			clock-frequency = <19200000>;
371
372			frame@f9021000 {
373				frame-number = <0>;
374				interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
375					     <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
376				reg = <0xf9021000 0x1000>,
377				      <0xf9022000 0x1000>;
378			};
379
380			frame@f9023000 {
381				frame-number = <1>;
382				interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
383				reg = <0xf9023000 0x1000>;
384				status = "disabled";
385			};
386
387			frame@f9024000 {
388				frame-number = <2>;
389				interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
390				reg = <0xf9024000 0x1000>;
391				status = "disabled";
392			};
393
394			frame@f9025000 {
395				frame-number = <3>;
396				interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
397				reg = <0xf9025000 0x1000>;
398				status = "disabled";
399			};
400
401			frame@f9026000 {
402				frame-number = <4>;
403				interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
404				reg = <0xf9026000 0x1000>;
405				status = "disabled";
406			};
407
408			frame@f9027000 {
409				frame-number = <5>;
410				interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
411				reg = <0xf9027000 0x1000>;
412				status = "disabled";
413			};
414
415			frame@f9028000 {
416				frame-number = <6>;
417				interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
418				reg = <0xf9028000 0x1000>;
419				status = "disabled";
420			};
421		};
422
423		acc0: power-manager@f9088000 {
424			compatible = "qcom,kpss-acc-v2";
425			reg = <0xf9088000 0x1000>, <0xf9008000 0x1000>;
426		};
427
428		saw0: power-manager@f9089000 {
429			compatible = "qcom,msm8974-saw2-v2.1-cpu", "qcom,saw2";
430			reg = <0xf9089000 0x1000>, <0xf9009000 0x1000>;
431		};
432
433		acc1: power-manager@f9098000 {
434			compatible = "qcom,kpss-acc-v2";
435			reg = <0xf9098000 0x1000>, <0xf9008000 0x1000>;
436		};
437
438		saw1: power-manager@f9099000 {
439			compatible = "qcom,msm8974-saw2-v2.1-cpu", "qcom,saw2";
440			reg = <0xf9099000 0x1000>, <0xf9009000 0x1000>;
441		};
442
443		acc2: power-manager@f90a8000 {
444			compatible = "qcom,kpss-acc-v2";
445			reg = <0xf90a8000 0x1000>, <0xf9008000 0x1000>;
446		};
447
448		saw2: power-manager@f90a9000 {
449			compatible = "qcom,msm8974-saw2-v2.1-cpu", "qcom,saw2";
450			reg = <0xf90a9000 0x1000>, <0xf9009000 0x1000>;
451		};
452
453		acc3: power-manager@f90b8000 {
454			compatible = "qcom,kpss-acc-v2";
455			reg = <0xf90b8000 0x1000>, <0xf9008000 0x1000>;
456		};
457
458		saw3: power-manager@f90b9000 {
459			compatible = "qcom,msm8974-saw2-v2.1-cpu", "qcom,saw2";
460			reg = <0xf90b9000 0x1000>, <0xf9009000 0x1000>;
461		};
462
463		sdhc_1: mmc@f9824900 {
464			compatible = "qcom,msm8974-sdhci", "qcom,sdhci-msm-v4";
465			reg = <0xf9824900 0x11c>, <0xf9824000 0x800>;
466			reg-names = "hc", "core";
467			interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>,
468				     <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>;
469			interrupt-names = "hc_irq", "pwr_irq";
470			clocks = <&gcc GCC_SDCC1_AHB_CLK>,
471				 <&gcc GCC_SDCC1_APPS_CLK>,
472				 <&xo_board>;
473			clock-names = "iface", "core", "xo";
474			bus-width = <8>;
475			non-removable;
476
477			status = "disabled";
478		};
479
480		sdhc_3: mmc@f9864900 {
481			compatible = "qcom,msm8974-sdhci", "qcom,sdhci-msm-v4";
482			reg = <0xf9864900 0x11c>, <0xf9864000 0x800>;
483			reg-names = "hc", "core";
484			interrupts = <GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>,
485				     <GIC_SPI 224 IRQ_TYPE_LEVEL_HIGH>;
486			interrupt-names = "hc_irq", "pwr_irq";
487			clocks = <&gcc GCC_SDCC3_AHB_CLK>,
488				 <&gcc GCC_SDCC3_APPS_CLK>,
489				 <&xo_board>;
490			clock-names = "iface", "core", "xo";
491			bus-width = <4>;
492
493			#address-cells = <1>;
494			#size-cells = <0>;
495
496			status = "disabled";
497		};
498
499		sdhc_2: mmc@f98a4900 {
500			compatible = "qcom,msm8974-sdhci", "qcom,sdhci-msm-v4";
501			reg = <0xf98a4900 0x11c>, <0xf98a4000 0x800>;
502			reg-names = "hc", "core";
503			interrupts = <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>,
504				     <GIC_SPI 221 IRQ_TYPE_LEVEL_HIGH>;
505			interrupt-names = "hc_irq", "pwr_irq";
506			clocks = <&gcc GCC_SDCC2_AHB_CLK>,
507				 <&gcc GCC_SDCC2_APPS_CLK>,
508				 <&xo_board>;
509			clock-names = "iface", "core", "xo";
510			bus-width = <4>;
511
512			#address-cells = <1>;
513			#size-cells = <0>;
514
515			status = "disabled";
516		};
517
518		blsp1_uart1: serial@f991d000 {
519			compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
520			reg = <0xf991d000 0x1000>;
521			interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
522			clocks = <&gcc GCC_BLSP1_UART1_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>;
523			clock-names = "core", "iface";
524			status = "disabled";
525		};
526
527		blsp1_uart2: serial@f991e000 {
528			compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
529			reg = <0xf991e000 0x1000>;
530			interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
531			clocks = <&gcc GCC_BLSP1_UART2_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>;
532			clock-names = "core", "iface";
533			pinctrl-names = "default";
534			pinctrl-0 = <&blsp1_uart2_default>;
535			status = "disabled";
536		};
537
538		blsp1_i2c1: i2c@f9923000 {
539			status = "disabled";
540			compatible = "qcom,i2c-qup-v2.1.1";
541			reg = <0xf9923000 0x1000>;
542			interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
543			clocks = <&gcc GCC_BLSP1_QUP1_I2C_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>;
544			clock-names = "core", "iface";
545			pinctrl-names = "default", "sleep";
546			pinctrl-0 = <&blsp1_i2c1_default>;
547			pinctrl-1 = <&blsp1_i2c1_sleep>;
548			#address-cells = <1>;
549			#size-cells = <0>;
550		};
551
552		blsp1_i2c2: i2c@f9924000 {
553			status = "disabled";
554			compatible = "qcom,i2c-qup-v2.1.1";
555			reg = <0xf9924000 0x1000>;
556			interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
557			clocks = <&gcc GCC_BLSP1_QUP2_I2C_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>;
558			clock-names = "core", "iface";
559			pinctrl-names = "default", "sleep";
560			pinctrl-0 = <&blsp1_i2c2_default>;
561			pinctrl-1 = <&blsp1_i2c2_sleep>;
562			#address-cells = <1>;
563			#size-cells = <0>;
564		};
565
566		blsp1_i2c3: i2c@f9925000 {
567			status = "disabled";
568			compatible = "qcom,i2c-qup-v2.1.1";
569			reg = <0xf9925000 0x1000>;
570			interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
571			clocks = <&gcc GCC_BLSP1_QUP3_I2C_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>;
572			clock-names = "core", "iface";
573			pinctrl-names = "default", "sleep";
574			pinctrl-0 = <&blsp1_i2c3_default>;
575			pinctrl-1 = <&blsp1_i2c3_sleep>;
576			#address-cells = <1>;
577			#size-cells = <0>;
578		};
579
580		blsp1_i2c6: i2c@f9928000 {
581			status = "disabled";
582			compatible = "qcom,i2c-qup-v2.1.1";
583			reg = <0xf9928000 0x1000>;
584			interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
585			clocks = <&gcc GCC_BLSP1_QUP6_I2C_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>;
586			clock-names = "core", "iface";
587			pinctrl-names = "default", "sleep";
588			pinctrl-0 = <&blsp1_i2c6_default>;
589			pinctrl-1 = <&blsp1_i2c6_sleep>;
590			#address-cells = <1>;
591			#size-cells = <0>;
592		};
593
594		blsp2_dma: dma-controller@f9944000 {
595			compatible = "qcom,bam-v1.4.0";
596			reg = <0xf9944000 0x19000>;
597			interrupts = <GIC_SPI 239 IRQ_TYPE_LEVEL_HIGH>;
598			clocks = <&gcc GCC_BLSP2_AHB_CLK>;
599			clock-names = "bam_clk";
600			#dma-cells = <1>;
601			qcom,ee = <0>;
602		};
603
604		blsp2_uart1: serial@f995d000 {
605			compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
606			reg = <0xf995d000 0x1000>;
607			interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>;
608			clocks = <&gcc GCC_BLSP2_UART1_APPS_CLK>, <&gcc GCC_BLSP2_AHB_CLK>;
609			clock-names = "core", "iface";
610			pinctrl-names = "default", "sleep";
611			pinctrl-0 = <&blsp2_uart1_default>;
612			pinctrl-1 = <&blsp2_uart1_sleep>;
613			status = "disabled";
614		};
615
616		blsp2_uart2: serial@f995e000 {
617			compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
618			reg = <0xf995e000 0x1000>;
619			interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
620			clocks = <&gcc GCC_BLSP2_UART2_APPS_CLK>, <&gcc GCC_BLSP2_AHB_CLK>;
621			clock-names = "core", "iface";
622			status = "disabled";
623		};
624
625		blsp2_uart4: serial@f9960000 {
626			compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
627			reg = <0xf9960000 0x1000>;
628			interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>;
629			clocks = <&gcc GCC_BLSP2_UART4_APPS_CLK>, <&gcc GCC_BLSP2_AHB_CLK>;
630			clock-names = "core", "iface";
631			pinctrl-names = "default";
632			pinctrl-0 = <&blsp2_uart4_default>;
633			status = "disabled";
634		};
635
636		blsp2_i2c2: i2c@f9964000 {
637			status = "disabled";
638			compatible = "qcom,i2c-qup-v2.1.1";
639			reg = <0xf9964000 0x1000>;
640			interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>;
641			clocks = <&gcc GCC_BLSP2_QUP2_I2C_APPS_CLK>, <&gcc GCC_BLSP2_AHB_CLK>;
642			clock-names = "core", "iface";
643			pinctrl-names = "default", "sleep";
644			pinctrl-0 = <&blsp2_i2c2_default>;
645			pinctrl-1 = <&blsp2_i2c2_sleep>;
646			#address-cells = <1>;
647			#size-cells = <0>;
648		};
649
650		blsp2_i2c5: i2c@f9967000 {
651			status = "disabled";
652			compatible = "qcom,i2c-qup-v2.1.1";
653			reg = <0xf9967000 0x1000>;
654			interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>;
655			clocks = <&gcc GCC_BLSP2_QUP5_I2C_APPS_CLK>, <&gcc GCC_BLSP2_AHB_CLK>;
656			clock-names = "core", "iface";
657			dmas = <&blsp2_dma 20>, <&blsp2_dma 21>;
658			dma-names = "tx", "rx";
659			pinctrl-names = "default", "sleep";
660			pinctrl-0 = <&blsp2_i2c5_default>;
661			pinctrl-1 = <&blsp2_i2c5_sleep>;
662			#address-cells = <1>;
663			#size-cells = <0>;
664		};
665
666		blsp2_i2c6: i2c@f9968000 {
667			status = "disabled";
668			compatible = "qcom,i2c-qup-v2.1.1";
669			reg = <0xf9968000 0x1000>;
670			interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>;
671			clocks = <&gcc GCC_BLSP2_QUP6_I2C_APPS_CLK>, <&gcc GCC_BLSP2_AHB_CLK>;
672			clock-names = "core", "iface";
673			pinctrl-names = "default", "sleep";
674			pinctrl-0 = <&blsp2_i2c6_default>;
675			pinctrl-1 = <&blsp2_i2c6_sleep>;
676			#address-cells = <1>;
677			#size-cells = <0>;
678		};
679
680		usb: usb@f9a55000 {
681			compatible = "qcom,ci-hdrc";
682			reg = <0xf9a55000 0x200>,
683			      <0xf9a55200 0x200>;
684			interrupts = <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>;
685			clocks = <&gcc GCC_USB_HS_AHB_CLK>,
686				 <&gcc GCC_USB_HS_SYSTEM_CLK>;
687			clock-names = "iface", "core";
688			assigned-clocks = <&gcc GCC_USB_HS_SYSTEM_CLK>;
689			assigned-clock-rates = <75000000>;
690			resets = <&gcc GCC_USB_HS_BCR>;
691			reset-names = "core";
692			phy_type = "ulpi";
693			dr_mode = "otg";
694			ahb-burst-config = <0>;
695			phy-names = "usb-phy";
696			status = "disabled";
697			#reset-cells = <1>;
698
699			ulpi {
700				usb_hs1_phy: phy-0 {
701					compatible = "qcom,usb-hs-phy-msm8974",
702						     "qcom,usb-hs-phy";
703					#phy-cells = <0>;
704					clocks = <&xo_board>, <&gcc GCC_USB2A_PHY_SLEEP_CLK>;
705					clock-names = "ref", "sleep";
706					resets = <&gcc GCC_USB2A_PHY_BCR>, <&usb 0>;
707					reset-names = "phy", "por";
708					status = "disabled";
709				};
710
711				usb_hs2_phy: phy-1 {
712					compatible = "qcom,usb-hs-phy-msm8974",
713						     "qcom,usb-hs-phy";
714					#phy-cells = <0>;
715					clocks = <&xo_board>, <&gcc GCC_USB2B_PHY_SLEEP_CLK>;
716					clock-names = "ref", "sleep";
717					resets = <&gcc GCC_USB2B_PHY_BCR>, <&usb 1>;
718					reset-names = "phy", "por";
719					status = "disabled";
720				};
721			};
722		};
723
724		rng@f9bff000 {
725			compatible = "qcom,prng";
726			reg = <0xf9bff000 0x200>;
727			clocks = <&gcc GCC_PRNG_AHB_CLK>;
728			clock-names = "core";
729		};
730
731		pronto: remoteproc@fb204000 {
732			compatible = "qcom,pronto-v2-pil", "qcom,pronto";
733			reg = <0xfb204000 0x2000>, <0xfb202000 0x1000>, <0xfb21b000 0x3000>;
734			reg-names = "ccu", "dxe", "pmu";
735
736			memory-region = <&wcnss_region>;
737
738			interrupts-extended = <&intc GIC_SPI 149 IRQ_TYPE_EDGE_RISING>,
739					      <&wcnss_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
740					      <&wcnss_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
741					      <&wcnss_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
742					      <&wcnss_smp2p_in 3 IRQ_TYPE_EDGE_RISING>;
743			interrupt-names = "wdog", "fatal", "ready", "handover", "stop-ack";
744
745			qcom,smem-states = <&wcnss_smp2p_out 0>;
746			qcom,smem-state-names = "stop";
747
748			status = "disabled";
749
750			iris {
751				compatible = "qcom,wcn3680";
752
753				clocks = <&rpmcc RPM_SMD_CXO_A2>;
754				clock-names = "xo";
755			};
756
757			smd-edge {
758				interrupts = <GIC_SPI 142 IRQ_TYPE_EDGE_RISING>;
759
760				qcom,ipc = <&apcs 8 17>;
761				qcom,smd-edge = <6>;
762
763				wcnss {
764					compatible = "qcom,wcnss";
765					qcom,smd-channels = "WCNSS_CTRL";
766					status = "disabled";
767
768					qcom,mmio = <&pronto>;
769
770					bluetooth {
771						compatible = "qcom,wcnss-bt";
772					};
773
774					wifi {
775						compatible = "qcom,wcnss-wlan";
776
777						interrupts = <GIC_SPI 145 IRQ_TYPE_EDGE_RISING>,
778							     <GIC_SPI 146 IRQ_TYPE_EDGE_RISING>;
779						interrupt-names = "tx", "rx";
780
781						qcom,smem-states = <&apps_smsm 10>, <&apps_smsm 9>;
782						qcom,smem-state-names = "tx-enable",
783									"tx-rings-empty";
784					};
785				};
786			};
787		};
788
789		sram@fc190000 {
790			compatible = "qcom,msm8974-rpm-stats";
791			reg = <0xfc190000 0x10000>;
792		};
793
794		etf@fc307000 {
795			compatible = "arm,coresight-tmc", "arm,primecell";
796			reg = <0xfc307000 0x1000>;
797
798			clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
799			clock-names = "apb_pclk", "atclk";
800
801			out-ports {
802				port {
803					etf_out: endpoint {
804						remote-endpoint = <&replicator_in>;
805					};
806				};
807			};
808
809			in-ports {
810				port {
811					etf_in: endpoint {
812						remote-endpoint = <&merger_out>;
813					};
814				};
815			};
816		};
817
818		tpiu@fc318000 {
819			compatible = "arm,coresight-tpiu", "arm,primecell";
820			reg = <0xfc318000 0x1000>;
821
822			clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
823			clock-names = "apb_pclk", "atclk";
824
825			in-ports {
826				port {
827					tpiu_in: endpoint {
828						remote-endpoint = <&replicator_out1>;
829					};
830				 };
831			};
832		};
833
834		funnel@fc31a000 {
835			compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
836			reg = <0xfc31a000 0x1000>;
837
838			clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
839			clock-names = "apb_pclk", "atclk";
840
841			in-ports {
842				#address-cells = <1>;
843				#size-cells = <0>;
844
845				/*
846				 * Not described input ports:
847				 * 0 - not-connected
848				 * 1 - connected trought funnel to Multimedia CPU
849				 * 2 - connected to Wireless CPU
850				 * 3 - not-connected
851				 * 4 - not-connected
852				 * 6 - not-connected
853				 * 7 - connected to STM
854				 */
855				port@5 {
856					reg = <5>;
857					funnel1_in5: endpoint {
858						remote-endpoint = <&kpss_out>;
859					};
860				};
861			};
862
863			out-ports {
864				port {
865					funnel1_out: endpoint {
866						remote-endpoint = <&merger_in1>;
867					};
868				};
869			};
870		};
871
872		funnel@fc31b000 {
873			compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
874			reg = <0xfc31b000 0x1000>;
875
876			clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
877			clock-names = "apb_pclk", "atclk";
878
879			in-ports {
880				#address-cells = <1>;
881				#size-cells = <0>;
882
883				/*
884				 * Not described input ports:
885				 * 0 - connected trought funnel to Audio, Modem and
886				 *     Resource and Power Manager CPU's
887				 * 2...7 - not-connected
888				 */
889				port@1 {
890					reg = <1>;
891					merger_in1: endpoint {
892						remote-endpoint = <&funnel1_out>;
893					};
894				};
895			};
896
897			out-ports {
898				port {
899					merger_out: endpoint {
900						remote-endpoint = <&etf_in>;
901					};
902				};
903			};
904		};
905
906		replicator@fc31c000 {
907			compatible = "arm,coresight-dynamic-replicator", "arm,primecell";
908			reg = <0xfc31c000 0x1000>;
909
910			clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
911			clock-names = "apb_pclk", "atclk";
912
913			out-ports {
914				#address-cells = <1>;
915				#size-cells = <0>;
916
917				port@0 {
918					reg = <0>;
919					replicator_out0: endpoint {
920						remote-endpoint = <&etr_in>;
921					};
922				};
923				port@1 {
924					reg = <1>;
925					replicator_out1: endpoint {
926						remote-endpoint = <&tpiu_in>;
927					};
928				};
929			};
930
931			in-ports {
932				port {
933					replicator_in: endpoint {
934						remote-endpoint = <&etf_out>;
935					};
936				};
937			};
938		};
939
940		etr@fc322000 {
941			compatible = "arm,coresight-tmc", "arm,primecell";
942			reg = <0xfc322000 0x1000>;
943
944			clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
945			clock-names = "apb_pclk", "atclk";
946
947			in-ports {
948				port {
949					etr_in: endpoint {
950						remote-endpoint = <&replicator_out0>;
951					};
952				};
953			};
954		};
955
956		etm@fc33c000 {
957			compatible = "arm,coresight-etm4x", "arm,primecell";
958			reg = <0xfc33c000 0x1000>;
959
960			clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
961			clock-names = "apb_pclk", "atclk";
962
963			cpu = <&CPU0>;
964
965			out-ports {
966				port {
967					etm0_out: endpoint {
968						remote-endpoint = <&kpss_in0>;
969					};
970				};
971			};
972		};
973
974		etm@fc33d000 {
975			compatible = "arm,coresight-etm4x", "arm,primecell";
976			reg = <0xfc33d000 0x1000>;
977
978			clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
979			clock-names = "apb_pclk", "atclk";
980
981			cpu = <&CPU1>;
982
983			out-ports {
984				port {
985					etm1_out: endpoint {
986						remote-endpoint = <&kpss_in1>;
987					};
988				};
989			};
990		};
991
992		etm@fc33e000 {
993			compatible = "arm,coresight-etm4x", "arm,primecell";
994			reg = <0xfc33e000 0x1000>;
995
996			clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
997			clock-names = "apb_pclk", "atclk";
998
999			cpu = <&CPU2>;
1000
1001			out-ports {
1002				port {
1003					etm2_out: endpoint {
1004						remote-endpoint = <&kpss_in2>;
1005					};
1006				};
1007			};
1008		};
1009
1010		etm@fc33f000 {
1011			compatible = "arm,coresight-etm4x", "arm,primecell";
1012			reg = <0xfc33f000 0x1000>;
1013
1014			clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
1015			clock-names = "apb_pclk", "atclk";
1016
1017			cpu = <&CPU3>;
1018
1019			out-ports {
1020				port {
1021					etm3_out: endpoint {
1022						remote-endpoint = <&kpss_in3>;
1023					};
1024				};
1025			};
1026		};
1027
1028		/* KPSS funnel, only 4 inputs are used */
1029		funnel@fc345000 {
1030			compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
1031			reg = <0xfc345000 0x1000>;
1032
1033			clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
1034			clock-names = "apb_pclk", "atclk";
1035
1036			in-ports {
1037				#address-cells = <1>;
1038				#size-cells = <0>;
1039
1040				port@0 {
1041					reg = <0>;
1042					kpss_in0: endpoint {
1043						remote-endpoint = <&etm0_out>;
1044					};
1045				};
1046				port@1 {
1047					reg = <1>;
1048					kpss_in1: endpoint {
1049						remote-endpoint = <&etm1_out>;
1050					};
1051				};
1052				port@2 {
1053					reg = <2>;
1054					kpss_in2: endpoint {
1055						remote-endpoint = <&etm2_out>;
1056					};
1057				};
1058				port@3 {
1059					reg = <3>;
1060					kpss_in3: endpoint {
1061						remote-endpoint = <&etm3_out>;
1062					};
1063				};
1064			};
1065
1066			out-ports {
1067				port {
1068					kpss_out: endpoint {
1069						remote-endpoint = <&funnel1_in5>;
1070					};
1071				};
1072			};
1073		};
1074
1075		bimc: interconnect@fc380000 {
1076			reg = <0xfc380000 0x6a000>;
1077			compatible = "qcom,msm8974-bimc";
1078			#interconnect-cells = <1>;
1079			clock-names = "bus", "bus_a";
1080			clocks = <&rpmcc RPM_SMD_BIMC_CLK>,
1081				 <&rpmcc RPM_SMD_BIMC_A_CLK>;
1082		};
1083
1084		gcc: clock-controller@fc400000 {
1085			compatible = "qcom,gcc-msm8974";
1086			#clock-cells = <1>;
1087			#reset-cells = <1>;
1088			#power-domain-cells = <1>;
1089			reg = <0xfc400000 0x4000>;
1090
1091			clocks = <&rpmcc RPM_SMD_XO_CLK_SRC>,
1092				 <&sleep_clk>;
1093			clock-names = "xo",
1094				      "sleep_clk";
1095		};
1096
1097		rpm_msg_ram: sram@fc428000 {
1098			compatible = "qcom,rpm-msg-ram";
1099			reg = <0xfc428000 0x4000>;
1100
1101			#address-cells = <1>;
1102			#size-cells = <1>;
1103			ranges = <0 0xfc428000 0x4000>;
1104
1105			apss_master_stats: sram@150 {
1106				reg = <0x150 0x14>;
1107			};
1108
1109			mpss_master_stats: sram@b50 {
1110				reg = <0xb50 0x14>;
1111			};
1112
1113			lpss_master_stats: sram@1550 {
1114				reg = <0x1550 0x14>;
1115			};
1116
1117			pronto_master_stats: sram@1f50 {
1118				reg = <0x1f50 0x14>;
1119			};
1120		};
1121
1122		snoc: interconnect@fc460000 {
1123			reg = <0xfc460000 0x4000>;
1124			compatible = "qcom,msm8974-snoc";
1125			#interconnect-cells = <1>;
1126			clock-names = "bus", "bus_a";
1127			clocks = <&rpmcc RPM_SMD_SNOC_CLK>,
1128				 <&rpmcc RPM_SMD_SNOC_A_CLK>;
1129		};
1130
1131		pnoc: interconnect@fc468000 {
1132			reg = <0xfc468000 0x4000>;
1133			compatible = "qcom,msm8974-pnoc";
1134			#interconnect-cells = <1>;
1135			clock-names = "bus", "bus_a";
1136			clocks = <&rpmcc RPM_SMD_PNOC_CLK>,
1137				 <&rpmcc RPM_SMD_PNOC_A_CLK>;
1138		};
1139
1140		ocmemnoc: interconnect@fc470000 {
1141			reg = <0xfc470000 0x4000>;
1142			compatible = "qcom,msm8974-ocmemnoc";
1143			#interconnect-cells = <1>;
1144			clock-names = "bus", "bus_a";
1145			clocks = <&rpmcc RPM_SMD_OCMEMGX_CLK>,
1146				 <&rpmcc RPM_SMD_OCMEMGX_A_CLK>;
1147		};
1148
1149		mmssnoc: interconnect@fc478000 {
1150			reg = <0xfc478000 0x4000>;
1151			compatible = "qcom,msm8974-mmssnoc";
1152			#interconnect-cells = <1>;
1153			clock-names = "bus", "bus_a";
1154			clocks = <&mmcc MMSS_S0_AXI_CLK>,
1155				 <&mmcc MMSS_S0_AXI_CLK>;
1156		};
1157
1158		cnoc: interconnect@fc480000 {
1159			reg = <0xfc480000 0x4000>;
1160			compatible = "qcom,msm8974-cnoc";
1161			#interconnect-cells = <1>;
1162			clock-names = "bus", "bus_a";
1163			clocks = <&rpmcc RPM_SMD_CNOC_CLK>,
1164				 <&rpmcc RPM_SMD_CNOC_A_CLK>;
1165		};
1166
1167		tsens: thermal-sensor@fc4a9000 {
1168			compatible = "qcom,msm8974-tsens", "qcom,tsens-v0_1";
1169			reg = <0xfc4a9000 0x1000>, /* TM */
1170			      <0xfc4a8000 0x1000>; /* SROT */
1171			nvmem-cells = <&tsens_mode>,
1172				      <&tsens_base1>, <&tsens_base2>,
1173				      <&tsens_use_backup>,
1174				      <&tsens_mode_backup>,
1175				      <&tsens_base1_backup>, <&tsens_base2_backup>,
1176				      <&tsens_s0_p1>, <&tsens_s0_p2>,
1177				      <&tsens_s1_p1>, <&tsens_s1_p2>,
1178				      <&tsens_s2_p1>, <&tsens_s2_p2>,
1179				      <&tsens_s3_p1>, <&tsens_s3_p2>,
1180				      <&tsens_s4_p1>, <&tsens_s4_p2>,
1181				      <&tsens_s5_p1>, <&tsens_s5_p2>,
1182				      <&tsens_s6_p1>, <&tsens_s6_p2>,
1183				      <&tsens_s7_p1>, <&tsens_s7_p2>,
1184				      <&tsens_s8_p1>, <&tsens_s8_p2>,
1185				      <&tsens_s9_p1>, <&tsens_s9_p2>,
1186				      <&tsens_s10_p1>, <&tsens_s10_p2>,
1187				      <&tsens_s0_p1_backup>, <&tsens_s0_p2_backup>,
1188				      <&tsens_s1_p1_backup>, <&tsens_s1_p2_backup>,
1189				      <&tsens_s2_p1_backup>, <&tsens_s2_p2_backup>,
1190				      <&tsens_s3_p1_backup>, <&tsens_s3_p2_backup>,
1191				      <&tsens_s4_p1_backup>, <&tsens_s4_p2_backup>,
1192				      <&tsens_s5_p1_backup>, <&tsens_s5_p2_backup>,
1193				      <&tsens_s6_p1_backup>, <&tsens_s6_p2_backup>,
1194				      <&tsens_s7_p1_backup>, <&tsens_s7_p2_backup>,
1195				      <&tsens_s8_p1_backup>, <&tsens_s8_p2_backup>,
1196				      <&tsens_s9_p1_backup>, <&tsens_s9_p2_backup>,
1197				      <&tsens_s10_p1_backup>, <&tsens_s10_p2_backup>;
1198			nvmem-cell-names = "mode",
1199					   "base1", "base2",
1200					   "use_backup",
1201					   "mode_backup",
1202					   "base1_backup", "base2_backup",
1203					   "s0_p1", "s0_p2",
1204					   "s1_p1", "s1_p2",
1205					   "s2_p1", "s2_p2",
1206					   "s3_p1", "s3_p2",
1207					   "s4_p1", "s4_p2",
1208					   "s5_p1", "s5_p2",
1209					   "s6_p1", "s6_p2",
1210					   "s7_p1", "s7_p2",
1211					   "s8_p1", "s8_p2",
1212					   "s9_p1", "s9_p2",
1213					   "s10_p1", "s10_p2",
1214					   "s0_p1_backup", "s0_p2_backup",
1215					   "s1_p1_backup", "s1_p2_backup",
1216					   "s2_p1_backup", "s2_p2_backup",
1217					   "s3_p1_backup", "s3_p2_backup",
1218					   "s4_p1_backup", "s4_p2_backup",
1219					   "s5_p1_backup", "s5_p2_backup",
1220					   "s6_p1_backup", "s6_p2_backup",
1221					   "s7_p1_backup", "s7_p2_backup",
1222					   "s8_p1_backup", "s8_p2_backup",
1223					   "s9_p1_backup", "s9_p2_backup",
1224					   "s10_p1_backup", "s10_p2_backup";
1225			#qcom,sensors = <11>;
1226			interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>;
1227			interrupt-names = "uplow";
1228			#thermal-sensor-cells = <1>;
1229		};
1230
1231		restart@fc4ab000 {
1232			compatible = "qcom,pshold";
1233			reg = <0xfc4ab000 0x4>;
1234		};
1235
1236		qfprom: qfprom@fc4bc000 {
1237			compatible = "qcom,msm8974-qfprom", "qcom,qfprom";
1238			reg = <0xfc4bc000 0x2100>;
1239			#address-cells = <1>;
1240			#size-cells = <1>;
1241
1242			tsens_base1: base1@d0 {
1243				reg = <0xd0 0x1>;
1244				bits = <0 8>;
1245			};
1246
1247			tsens_s0_p1: s0-p1@d1 {
1248				reg = <0xd1 0x1>;
1249				bits = <0 6>;
1250			};
1251
1252			tsens_s1_p1: s1-p1@d2 {
1253				reg = <0xd1 0x2>;
1254				bits = <6 6>;
1255			};
1256
1257			tsens_s2_p1: s2-p1@d2 {
1258				reg = <0xd2 0x2>;
1259				bits = <4 6>;
1260			};
1261
1262			tsens_s3_p1: s3-p1@d3 {
1263				reg = <0xd3 0x1>;
1264				bits = <2 6>;
1265			};
1266
1267			tsens_s4_p1: s4-p1@d4 {
1268				reg = <0xd4 0x1>;
1269				bits = <0 6>;
1270			};
1271
1272			tsens_s5_p1: s5-p1@d4 {
1273				reg = <0xd4 0x2>;
1274				bits = <6 6>;
1275			};
1276
1277			tsens_s6_p1: s6-p1@d5 {
1278				reg = <0xd5 0x2>;
1279				bits = <4 6>;
1280			};
1281
1282			tsens_s7_p1: s7-p1@d6 {
1283				reg = <0xd6 0x1>;
1284				bits = <2 6>;
1285			};
1286
1287			tsens_s8_p1: s8-p1@d7 {
1288				reg = <0xd7 0x1>;
1289				bits = <0 6>;
1290			};
1291
1292			tsens_mode: mode@d7 {
1293				reg = <0xd7 0x1>;
1294				bits = <6 2>;
1295			};
1296
1297			tsens_s9_p1: s9-p1@d8 {
1298				reg = <0xd8 0x1>;
1299				bits = <0 6>;
1300			};
1301
1302			tsens_s10_p1: s10_p1@d8 {
1303				reg = <0xd8 0x2>;
1304				bits = <6 6>;
1305			};
1306
1307			tsens_base2: base2@d9 {
1308				reg = <0xd9 0x2>;
1309				bits = <4 8>;
1310			};
1311
1312			tsens_s0_p2: s0-p2@da {
1313				reg = <0xda 0x2>;
1314				bits = <4 6>;
1315			};
1316
1317			tsens_s1_p2: s1-p2@db {
1318				reg = <0xdb 0x1>;
1319				bits = <2 6>;
1320			};
1321
1322			tsens_s2_p2: s2-p2@dc {
1323				reg = <0xdc 0x1>;
1324				bits = <0 6>;
1325			};
1326
1327			tsens_s3_p2: s3-p2@dc {
1328				reg = <0xdc 0x2>;
1329				bits = <6 6>;
1330			};
1331
1332			tsens_s4_p2: s4-p2@dd {
1333				reg = <0xdd 0x2>;
1334				bits = <4 6>;
1335			};
1336
1337			tsens_s5_p2: s5-p2@de {
1338				reg = <0xde 0x2>;
1339				bits = <2 6>;
1340			};
1341
1342			tsens_s6_p2: s6-p2@df {
1343				reg = <0xdf 0x1>;
1344				bits = <0 6>;
1345			};
1346
1347			tsens_s7_p2: s7-p2@e0 {
1348				reg = <0xe0 0x1>;
1349				bits = <0 6>;
1350			};
1351
1352			tsens_s8_p2: s8-p2@e0 {
1353				reg = <0xe0 0x2>;
1354				bits = <6 6>;
1355			};
1356
1357			tsens_s9_p2: s9-p2@e1 {
1358				reg = <0xe1 0x2>;
1359				bits = <4 6>;
1360			};
1361
1362			tsens_s10_p2: s10_p2@e2 {
1363				reg = <0xe2 0x2>;
1364				bits = <2 6>;
1365			};
1366
1367			tsens_s5_p2_backup: s5-p2_backup@e3 {
1368				reg = <0xe3 0x2>;
1369				bits = <0 6>;
1370			};
1371
1372			tsens_mode_backup: mode_backup@e3 {
1373				reg = <0xe3 0x1>;
1374				bits = <6 2>;
1375			};
1376
1377			tsens_s6_p2_backup: s6-p2_backup@e4 {
1378				reg = <0xe4 0x1>;
1379				bits = <0 6>;
1380			};
1381
1382			tsens_s7_p2_backup: s7-p2_backup@e4 {
1383				reg = <0xe4 0x2>;
1384				bits = <6 6>;
1385			};
1386
1387			tsens_s8_p2_backup: s8-p2_backup@e5 {
1388				reg = <0xe5 0x2>;
1389				bits = <4 6>;
1390			};
1391
1392			tsens_s9_p2_backup: s9-p2_backup@e6 {
1393				reg = <0xe6 0x2>;
1394				bits = <2 6>;
1395			};
1396
1397			tsens_s10_p2_backup: s10_p2_backup@e7 {
1398				reg = <0xe7 0x1>;
1399				bits = <0 6>;
1400			};
1401
1402			tsens_base1_backup: base1_backup@440 {
1403				reg = <0x440 0x1>;
1404				bits = <0 8>;
1405			};
1406
1407			tsens_s0_p1_backup: s0-p1_backup@441 {
1408				reg = <0x441 0x1>;
1409				bits = <0 6>;
1410			};
1411
1412			tsens_s1_p1_backup: s1-p1_backup@442 {
1413				reg = <0x441 0x2>;
1414				bits = <6 6>;
1415			};
1416
1417			tsens_s2_p1_backup: s2-p1_backup@442 {
1418				reg = <0x442 0x2>;
1419				bits = <4 6>;
1420			};
1421
1422			tsens_s3_p1_backup: s3-p1_backup@443 {
1423				reg = <0x443 0x1>;
1424				bits = <2 6>;
1425			};
1426
1427			tsens_s4_p1_backup: s4-p1_backup@444 {
1428				reg = <0x444 0x1>;
1429				bits = <0 6>;
1430			};
1431
1432			tsens_s5_p1_backup: s5-p1_backup@444 {
1433				reg = <0x444 0x2>;
1434				bits = <6 6>;
1435			};
1436
1437			tsens_s6_p1_backup: s6-p1_backup@445 {
1438				reg = <0x445 0x2>;
1439				bits = <4 6>;
1440			};
1441
1442			tsens_s7_p1_backup: s7-p1_backup@446 {
1443				reg = <0x446 0x1>;
1444				bits = <2 6>;
1445			};
1446
1447			tsens_use_backup: use_backup@447 {
1448				reg = <0x447 0x1>;
1449				bits = <5 3>;
1450			};
1451
1452			tsens_s8_p1_backup: s8-p1_backup@448 {
1453				reg = <0x448 0x1>;
1454				bits = <0 6>;
1455			};
1456
1457			tsens_s9_p1_backup: s9-p1_backup@448 {
1458				reg = <0x448 0x2>;
1459				bits = <6 6>;
1460			};
1461
1462			tsens_s10_p1_backup: s10_p1_backup@449 {
1463				reg = <0x449 0x2>;
1464				bits = <4 6>;
1465			};
1466
1467			tsens_base2_backup: base2_backup@44a {
1468				reg = <0x44a 0x2>;
1469				bits = <2 8>;
1470			};
1471
1472			tsens_s0_p2_backup: s0-p2_backup@44b {
1473				reg = <0x44b 0x3>;
1474				bits = <2 6>;
1475			};
1476
1477			tsens_s1_p2_backup: s1-p2_backup@44c {
1478				reg = <0x44c 0x1>;
1479				bits = <0 6>;
1480			};
1481
1482			tsens_s2_p2_backup: s2-p2_backup@44c {
1483				reg = <0x44c 0x2>;
1484				bits = <6 6>;
1485			};
1486
1487			tsens_s3_p2_backup: s3-p2_backup@44d {
1488				reg = <0x44d 0x2>;
1489				bits = <4 6>;
1490			};
1491
1492			tsens_s4_p2_backup: s4-p2_backup@44e {
1493				reg = <0x44e 0x1>;
1494				bits = <2 6>;
1495			};
1496		};
1497
1498		spmi_bus: spmi@fc4cf000 {
1499			compatible = "qcom,spmi-pmic-arb";
1500			reg-names = "core", "intr", "cnfg";
1501			reg = <0xfc4cf000 0x1000>,
1502			      <0xfc4cb000 0x1000>,
1503			      <0xfc4ca000 0x1000>;
1504			interrupt-names = "periph_irq";
1505			interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>;
1506			qcom,ee = <0>;
1507			qcom,channel = <0>;
1508			#address-cells = <2>;
1509			#size-cells = <0>;
1510			interrupt-controller;
1511			#interrupt-cells = <4>;
1512		};
1513
1514		bam_dmux_dma: dma-controller@fc834000 {
1515			compatible = "qcom,bam-v1.4.0";
1516			reg = <0xfc834000 0x7000>;
1517			interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
1518			#dma-cells = <1>;
1519			qcom,ee = <0>;
1520
1521			num-channels = <6>;
1522			qcom,num-ees = <1>;
1523			qcom,powered-remotely;
1524		};
1525
1526		remoteproc_mss: remoteproc@fc880000 {
1527			compatible = "qcom,msm8974-mss-pil";
1528			reg = <0xfc880000 0x100>, <0xfc820000 0x020>;
1529			reg-names = "qdsp6", "rmb";
1530
1531			interrupts-extended = <&intc GIC_SPI 24 IRQ_TYPE_EDGE_RISING>,
1532					      <&modem_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
1533					      <&modem_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
1534					      <&modem_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
1535					      <&modem_smp2p_in 3 IRQ_TYPE_EDGE_RISING>;
1536			interrupt-names = "wdog", "fatal", "ready", "handover", "stop-ack";
1537
1538			clocks = <&gcc GCC_MSS_Q6_BIMC_AXI_CLK>,
1539				 <&gcc GCC_MSS_CFG_AHB_CLK>,
1540				 <&gcc GCC_BOOT_ROM_AHB_CLK>,
1541				 <&xo_board>;
1542			clock-names = "iface", "bus", "mem", "xo";
1543
1544			resets = <&gcc GCC_MSS_RESTART>;
1545			reset-names = "mss_restart";
1546
1547			qcom,halt-regs = <&tcsr_mutex 0x1180 0x1200 0x1280>;
1548
1549			qcom,smem-states = <&modem_smp2p_out 0>;
1550			qcom,smem-state-names = "stop";
1551
1552			status = "disabled";
1553
1554			mba {
1555				memory-region = <&mba_region>;
1556			};
1557
1558			mpss {
1559				memory-region = <&mpss_region>;
1560			};
1561
1562			bam_dmux: bam-dmux {
1563				compatible = "qcom,bam-dmux";
1564
1565				interrupt-parent = <&modem_smsm>;
1566				interrupts = <1 IRQ_TYPE_EDGE_BOTH>, <11 IRQ_TYPE_EDGE_BOTH>;
1567				interrupt-names = "pc", "pc-ack";
1568
1569				qcom,smem-states = <&apps_smsm 1>, <&apps_smsm 11>;
1570				qcom,smem-state-names = "pc", "pc-ack";
1571
1572				dmas = <&bam_dmux_dma 4>, <&bam_dmux_dma 5>;
1573				dma-names = "tx", "rx";
1574			};
1575
1576			smd-edge {
1577				interrupts = <GIC_SPI 25 IRQ_TYPE_EDGE_RISING>;
1578
1579				qcom,ipc = <&apcs 8 12>;
1580				qcom,smd-edge = <0>;
1581
1582				label = "modem";
1583			};
1584		};
1585
1586		tcsr_mutex: hwlock@fd484000 {
1587			compatible = "qcom,msm8974-tcsr-mutex", "qcom,tcsr-mutex", "syscon";
1588			reg = <0xfd484000 0x2000>;
1589			#hwlock-cells = <1>;
1590		};
1591
1592		tcsr: syscon@fd4a0000 {
1593			compatible = "qcom,tcsr-msm8974", "syscon";
1594			reg = <0xfd4a0000 0x10000>;
1595		};
1596
1597		tlmm: pinctrl@fd510000 {
1598			compatible = "qcom,msm8974-pinctrl";
1599			reg = <0xfd510000 0x4000>;
1600			gpio-controller;
1601			gpio-ranges = <&tlmm 0 0 146>;
1602			#gpio-cells = <2>;
1603			interrupt-controller;
1604			#interrupt-cells = <2>;
1605			interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
1606
1607			sdc1_off: sdc1-off-state {
1608				clk-pins {
1609					pins = "sdc1_clk";
1610					bias-disable;
1611					drive-strength = <2>;
1612				};
1613
1614				cmd-pins {
1615					pins = "sdc1_cmd";
1616					bias-pull-up;
1617					drive-strength = <2>;
1618				};
1619
1620				data-pins {
1621					pins = "sdc1_data";
1622					bias-pull-up;
1623					drive-strength = <2>;
1624				};
1625			};
1626
1627			sdc2_off: sdc2-off-state {
1628				clk-pins {
1629					pins = "sdc2_clk";
1630					bias-disable;
1631					drive-strength = <2>;
1632				};
1633
1634				cmd-pins {
1635					pins = "sdc2_cmd";
1636					bias-pull-up;
1637					drive-strength = <2>;
1638				};
1639
1640				data-pins {
1641					pins = "sdc2_data";
1642					bias-pull-up;
1643					drive-strength = <2>;
1644				};
1645			};
1646
1647			blsp1_uart2_default: blsp1-uart2-default-state {
1648				rx-pins {
1649					pins = "gpio5";
1650					function = "blsp_uart2";
1651					drive-strength = <2>;
1652					bias-pull-up;
1653				};
1654
1655				tx-pins {
1656					pins = "gpio4";
1657					function = "blsp_uart2";
1658					drive-strength = <4>;
1659					bias-disable;
1660				};
1661			};
1662
1663			blsp2_uart1_default: blsp2-uart1-default-state {
1664				tx-rts-pins {
1665					pins = "gpio41", "gpio44";
1666					function = "blsp_uart7";
1667					drive-strength = <2>;
1668					bias-disable;
1669				};
1670
1671				rx-cts-pins {
1672					pins = "gpio42", "gpio43";
1673					function = "blsp_uart7";
1674					drive-strength = <2>;
1675					bias-pull-up;
1676				};
1677			};
1678
1679			blsp2_uart1_sleep: blsp2-uart1-sleep-state {
1680				pins = "gpio41", "gpio42", "gpio43", "gpio44";
1681				function = "gpio";
1682				drive-strength = <2>;
1683				bias-pull-down;
1684			};
1685
1686			blsp2_uart4_default: blsp2-uart4-default-state {
1687				tx-rts-pins {
1688					pins = "gpio53", "gpio56";
1689					function = "blsp_uart10";
1690					drive-strength = <2>;
1691					bias-disable;
1692				};
1693
1694				rx-cts-pins {
1695					pins = "gpio54", "gpio55";
1696					function = "blsp_uart10";
1697					drive-strength = <2>;
1698					bias-pull-up;
1699				};
1700			};
1701
1702			blsp1_i2c1_default: blsp1-i2c1-default-state {
1703				pins = "gpio2", "gpio3";
1704				function = "blsp_i2c1";
1705				drive-strength = <2>;
1706				bias-disable;
1707			};
1708
1709			blsp1_i2c1_sleep: blsp1-i2c1-sleep-state {
1710				pins = "gpio2", "gpio3";
1711				function = "blsp_i2c1";
1712				drive-strength = <2>;
1713				bias-pull-up;
1714			};
1715
1716			blsp1_i2c2_default: blsp1-i2c2-default-state {
1717				pins = "gpio6", "gpio7";
1718				function = "blsp_i2c2";
1719				drive-strength = <2>;
1720				bias-disable;
1721			};
1722
1723			blsp1_i2c2_sleep: blsp1-i2c2-sleep-state {
1724				pins = "gpio6", "gpio7";
1725				function = "blsp_i2c2";
1726				drive-strength = <2>;
1727				bias-pull-up;
1728			};
1729
1730			blsp1_i2c3_default: blsp1-i2c3-default-state {
1731				pins = "gpio10", "gpio11";
1732				function = "blsp_i2c3";
1733				drive-strength = <2>;
1734				bias-disable;
1735			};
1736
1737			blsp1_i2c3_sleep: blsp1-i2c3-sleep-state {
1738				pins = "gpio10", "gpio11";
1739				function = "blsp_i2c3";
1740				drive-strength = <2>;
1741				bias-pull-up;
1742			};
1743
1744			/* BLSP1_I2C4 info is missing */
1745
1746			/* BLSP1_I2C5 info is missing */
1747
1748			blsp1_i2c6_default: blsp1-i2c6-default-state {
1749				pins = "gpio29", "gpio30";
1750				function = "blsp_i2c6";
1751				drive-strength = <2>;
1752				bias-disable;
1753			};
1754
1755			blsp1_i2c6_sleep: blsp1-i2c6-sleep-state {
1756				pins = "gpio29", "gpio30";
1757				function = "blsp_i2c6";
1758				drive-strength = <2>;
1759				bias-pull-up;
1760			};
1761			/* 6 interfaces per QUP, BLSP2 indexes are numbered (n)+6 */
1762
1763			/* BLSP2_I2C1 info is missing */
1764
1765			blsp2_i2c2_default: blsp2-i2c2-default-state {
1766				pins = "gpio47", "gpio48";
1767				function = "blsp_i2c8";
1768				drive-strength = <2>;
1769				bias-disable;
1770			};
1771
1772			blsp2_i2c2_sleep: blsp2-i2c2-sleep-state {
1773				pins = "gpio47", "gpio48";
1774				function = "blsp_i2c8";
1775				drive-strength = <2>;
1776				bias-pull-up;
1777			};
1778
1779			/* BLSP2_I2C3 info is missing */
1780
1781			/* BLSP2_I2C4 info is missing */
1782
1783			blsp2_i2c5_default: blsp2-i2c5-default-state {
1784				pins = "gpio83", "gpio84";
1785				function = "blsp_i2c11";
1786				drive-strength = <2>;
1787				bias-disable;
1788			};
1789
1790			blsp2_i2c5_sleep: blsp2-i2c5-sleep-state {
1791				pins = "gpio83", "gpio84";
1792				function = "blsp_i2c11";
1793				drive-strength = <2>;
1794				bias-pull-up;
1795			};
1796
1797			blsp2_i2c6_default: blsp2-i2c6-default-state {
1798				pins = "gpio87", "gpio88";
1799				function = "blsp_i2c12";
1800				drive-strength = <2>;
1801				bias-disable;
1802			};
1803
1804			blsp2_i2c6_sleep: blsp2-i2c6-sleep-state {
1805				pins = "gpio87", "gpio88";
1806				function = "blsp_i2c12";
1807				drive-strength = <2>;
1808				bias-pull-up;
1809			};
1810
1811			cci_default: cci-default-state {
1812				cci_i2c0_default: cci-i2c0-default-pins {
1813					pins = "gpio19", "gpio20";
1814					function = "cci_i2c0";
1815					drive-strength = <2>;
1816					bias-disable;
1817				};
1818
1819				cci_i2c1_default: cci-i2c1-default-pins {
1820					pins = "gpio21", "gpio22";
1821					function = "cci_i2c1";
1822					drive-strength = <2>;
1823					bias-disable;
1824				};
1825			};
1826
1827			cci_sleep: cci-sleep-state {
1828				cci_i2c0_sleep: cci-i2c0-sleep-pins {
1829					pins = "gpio19", "gpio20";
1830					function = "gpio";
1831					drive-strength = <2>;
1832					bias-disable;
1833				};
1834
1835				cci_i2c1_sleep: cci-i2c1-sleep-pins {
1836					pins = "gpio21", "gpio22";
1837					function = "gpio";
1838					drive-strength = <2>;
1839					bias-disable;
1840				};
1841			};
1842
1843			spi8_default: spi8_default-state {
1844				mosi-pins {
1845					pins = "gpio45";
1846					function = "blsp_spi8";
1847				};
1848				miso-pins {
1849					pins = "gpio46";
1850					function = "blsp_spi8";
1851				};
1852				cs-pins {
1853					pins = "gpio47";
1854					function = "blsp_spi8";
1855				};
1856				clk-pins {
1857					pins = "gpio48";
1858					function = "blsp_spi8";
1859				};
1860			};
1861		};
1862
1863		mmcc: clock-controller@fd8c0000 {
1864			compatible = "qcom,mmcc-msm8974";
1865			#clock-cells = <1>;
1866			#reset-cells = <1>;
1867			#power-domain-cells = <1>;
1868			reg = <0xfd8c0000 0x6000>;
1869			clocks = <&xo_board>,
1870				 <&gcc GCC_MMSS_GPLL0_CLK_SRC>,
1871				 <&gcc GPLL0_VOTE>,
1872				 <&gcc GPLL1_VOTE>,
1873				 <&rpmcc RPM_SMD_GFX3D_CLK_SRC>,
1874				 <&mdss_dsi0_phy 1>,
1875				 <&mdss_dsi0_phy 0>,
1876				 <&mdss_dsi1_phy 1>,
1877				 <&mdss_dsi1_phy 0>,
1878				 <0>,
1879				 <0>,
1880				 <0>;
1881			clock-names = "xo",
1882				      "mmss_gpll0_vote",
1883				      "gpll0_vote",
1884				      "gpll1_vote",
1885				      "gfx3d_clk_src",
1886				      "dsi0pll",
1887				      "dsi0pllbyte",
1888				      "dsi1pll",
1889				      "dsi1pllbyte",
1890				      "hdmipll",
1891				      "edp_link_clk",
1892				      "edp_vco_div";
1893		};
1894
1895		mdss: display-subsystem@fd900000 {
1896			compatible = "qcom,mdss";
1897			reg = <0xfd900000 0x100>, <0xfd924000 0x1000>;
1898			reg-names = "mdss_phys", "vbif_phys";
1899
1900			power-domains = <&mmcc MDSS_GDSC>;
1901
1902			clocks = <&mmcc MDSS_AHB_CLK>,
1903				 <&mmcc MDSS_AXI_CLK>,
1904				 <&mmcc MDSS_VSYNC_CLK>;
1905			clock-names = "iface", "bus", "vsync";
1906
1907			interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
1908
1909			interrupt-controller;
1910			#interrupt-cells = <1>;
1911
1912			status = "disabled";
1913
1914			#address-cells = <1>;
1915			#size-cells = <1>;
1916			ranges;
1917
1918			mdp: display-controller@fd900000 {
1919				compatible = "qcom,msm8974-mdp5", "qcom,mdp5";
1920				reg = <0xfd900100 0x22000>;
1921				reg-names = "mdp_phys";
1922
1923				interrupt-parent = <&mdss>;
1924				interrupts = <0>;
1925
1926				clocks = <&mmcc MDSS_AHB_CLK>,
1927					 <&mmcc MDSS_AXI_CLK>,
1928					 <&mmcc MDSS_MDP_CLK>,
1929					 <&mmcc MDSS_VSYNC_CLK>;
1930				clock-names = "iface", "bus", "core", "vsync";
1931
1932				interconnects = <&mmssnoc MNOC_MAS_MDP_PORT0 &bimc BIMC_SLV_EBI_CH0>;
1933				interconnect-names = "mdp0-mem";
1934
1935				ports {
1936					#address-cells = <1>;
1937					#size-cells = <0>;
1938
1939					port@0 {
1940						reg = <0>;
1941						mdp5_intf1_out: endpoint {
1942							remote-endpoint = <&mdss_dsi0_in>;
1943						};
1944					};
1945
1946					port@1 {
1947						reg = <1>;
1948						mdp5_intf2_out: endpoint {
1949							remote-endpoint = <&mdss_dsi1_in>;
1950						};
1951					};
1952				};
1953			};
1954
1955			mdss_dsi0: dsi@fd922800 {
1956				compatible = "qcom,msm8974-dsi-ctrl",
1957					     "qcom,mdss-dsi-ctrl";
1958				reg = <0xfd922800 0x1f8>;
1959				reg-names = "dsi_ctrl";
1960
1961				interrupt-parent = <&mdss>;
1962				interrupts = <4>;
1963
1964				assigned-clocks = <&mmcc BYTE0_CLK_SRC>, <&mmcc PCLK0_CLK_SRC>;
1965				assigned-clock-parents = <&mdss_dsi0_phy 0>, <&mdss_dsi0_phy 1>;
1966
1967				clocks = <&mmcc MDSS_MDP_CLK>,
1968					 <&mmcc MDSS_AHB_CLK>,
1969					 <&mmcc MDSS_AXI_CLK>,
1970					 <&mmcc MDSS_BYTE0_CLK>,
1971					 <&mmcc MDSS_PCLK0_CLK>,
1972					 <&mmcc MDSS_ESC0_CLK>,
1973					 <&mmcc MMSS_MISC_AHB_CLK>;
1974				clock-names = "mdp_core",
1975					      "iface",
1976					      "bus",
1977					      "byte",
1978					      "pixel",
1979					      "core",
1980					      "core_mmss";
1981
1982				phys = <&mdss_dsi0_phy>;
1983
1984				status = "disabled";
1985
1986				#address-cells = <1>;
1987				#size-cells = <0>;
1988
1989				ports {
1990					#address-cells = <1>;
1991					#size-cells = <0>;
1992
1993					port@0 {
1994						reg = <0>;
1995						mdss_dsi0_in: endpoint {
1996							remote-endpoint = <&mdp5_intf1_out>;
1997						};
1998					};
1999
2000					port@1 {
2001						reg = <1>;
2002						mdss_dsi0_out: endpoint {
2003						};
2004					};
2005				};
2006			};
2007
2008			mdss_dsi0_phy: phy@fd922a00 {
2009				compatible = "qcom,dsi-phy-28nm-hpm";
2010				reg = <0xfd922a00 0xd4>,
2011				      <0xfd922b00 0x280>,
2012				      <0xfd922d80 0x30>;
2013				reg-names = "dsi_pll",
2014					    "dsi_phy",
2015					    "dsi_phy_regulator";
2016
2017				#clock-cells = <1>;
2018				#phy-cells = <0>;
2019
2020				clocks = <&mmcc MDSS_AHB_CLK>, <&xo_board>;
2021				clock-names = "iface", "ref";
2022
2023				status = "disabled";
2024			};
2025
2026			mdss_dsi1: dsi@fd922e00 {
2027				compatible = "qcom,msm8974-dsi-ctrl",
2028					     "qcom,mdss-dsi-ctrl";
2029				reg = <0xfd922e00 0x1f8>;
2030				reg-names = "dsi_ctrl";
2031
2032				interrupt-parent = <&mdss>;
2033				interrupts = <4>;
2034
2035				assigned-clocks = <&mmcc BYTE1_CLK_SRC>, <&mmcc PCLK1_CLK_SRC>;
2036				assigned-clock-parents = <&mdss_dsi1_phy 0>, <&mdss_dsi1_phy 1>;
2037
2038				clocks = <&mmcc MDSS_MDP_CLK>,
2039					 <&mmcc MDSS_AHB_CLK>,
2040					 <&mmcc MDSS_AXI_CLK>,
2041					 <&mmcc MDSS_BYTE1_CLK>,
2042					 <&mmcc MDSS_PCLK1_CLK>,
2043					 <&mmcc MDSS_ESC1_CLK>,
2044					 <&mmcc MMSS_MISC_AHB_CLK>;
2045				clock-names = "mdp_core",
2046					      "iface",
2047					      "bus",
2048					      "byte",
2049					      "pixel",
2050					      "core",
2051					      "core_mmss";
2052
2053				phys = <&mdss_dsi1_phy>;
2054
2055				status = "disabled";
2056
2057				#address-cells = <1>;
2058				#size-cells = <0>;
2059
2060				ports {
2061					#address-cells = <1>;
2062					#size-cells = <0>;
2063
2064					port@0 {
2065						reg = <0>;
2066						mdss_dsi1_in: endpoint {
2067							remote-endpoint = <&mdp5_intf2_out>;
2068						};
2069					};
2070
2071					port@1 {
2072						reg = <1>;
2073						mdss_dsi1_out: endpoint {
2074						};
2075					};
2076				};
2077			};
2078
2079			mdss_dsi1_phy: phy@fd923000 {
2080				compatible = "qcom,dsi-phy-28nm-hpm";
2081				reg = <0xfd923000 0xd4>,
2082				      <0xfd923100 0x280>,
2083				      <0xfd923380 0x30>;
2084				reg-names = "dsi_pll",
2085					    "dsi_phy",
2086					    "dsi_phy_regulator";
2087
2088				#clock-cells = <1>;
2089				#phy-cells = <0>;
2090
2091				clocks = <&mmcc MDSS_AHB_CLK>, <&xo_board>;
2092				clock-names = "iface", "ref";
2093
2094				status = "disabled";
2095			};
2096		};
2097
2098		cci: cci@fda0c000 {
2099			compatible = "qcom,msm8974-cci";
2100			#address-cells = <1>;
2101			#size-cells = <0>;
2102			reg = <0xfda0c000 0x1000>;
2103			interrupts = <GIC_SPI 50 IRQ_TYPE_EDGE_RISING>;
2104			clocks = <&mmcc CAMSS_TOP_AHB_CLK>,
2105				 <&mmcc CAMSS_CCI_CCI_AHB_CLK>,
2106				 <&mmcc CAMSS_CCI_CCI_CLK>;
2107			clock-names = "camss_top_ahb",
2108				      "cci_ahb",
2109				      "cci";
2110
2111			pinctrl-names = "default", "sleep";
2112			pinctrl-0 = <&cci_default>;
2113			pinctrl-1 = <&cci_sleep>;
2114
2115			status = "disabled";
2116
2117			cci_i2c0: i2c-bus@0 {
2118				reg = <0>;
2119				clock-frequency = <100000>;
2120				#address-cells = <1>;
2121				#size-cells = <0>;
2122			};
2123
2124			cci_i2c1: i2c-bus@1 {
2125				reg = <1>;
2126				clock-frequency = <100000>;
2127				#address-cells = <1>;
2128				#size-cells = <0>;
2129			};
2130		};
2131
2132		gpu: adreno@fdb00000 {
2133			compatible = "qcom,adreno-330.1", "qcom,adreno";
2134			reg = <0xfdb00000 0x10000>;
2135			reg-names = "kgsl_3d0_reg_memory";
2136
2137			interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
2138			interrupt-names = "kgsl_3d0_irq";
2139
2140			clocks = <&mmcc OXILI_GFX3D_CLK>,
2141				 <&mmcc OXILICX_AHB_CLK>,
2142				 <&mmcc OXILICX_AXI_CLK>;
2143			clock-names = "core", "iface", "mem_iface";
2144
2145			sram = <&gmu_sram>;
2146			power-domains = <&mmcc OXILICX_GDSC>;
2147			operating-points-v2 = <&gpu_opp_table>;
2148
2149			interconnects = <&mmssnoc MNOC_MAS_GRAPHICS_3D &bimc BIMC_SLV_EBI_CH0>,
2150					<&ocmemnoc OCMEM_VNOC_MAS_GFX3D &ocmemnoc OCMEM_SLV_OCMEM>;
2151			interconnect-names = "gfx-mem", "ocmem";
2152
2153			// iommus = <&gpu_iommu 0>;
2154
2155			status = "disabled";
2156
2157			gpu_opp_table: opp-table {
2158				compatible = "operating-points-v2";
2159
2160				opp-320000000 {
2161					opp-hz = /bits/ 64 <320000000>;
2162				};
2163
2164				opp-200000000 {
2165					opp-hz = /bits/ 64 <200000000>;
2166				};
2167
2168				opp-27000000 {
2169					opp-hz = /bits/ 64 <27000000>;
2170				};
2171			};
2172		};
2173
2174		sram@fdd00000 {
2175			compatible = "qcom,msm8974-ocmem";
2176			reg = <0xfdd00000 0x2000>,
2177			      <0xfec00000 0x180000>;
2178			reg-names = "ctrl", "mem";
2179			ranges = <0 0xfec00000 0x180000>;
2180			clocks = <&rpmcc RPM_SMD_OCMEMGX_CLK>,
2181				 <&mmcc OCMEMCX_OCMEMNOC_CLK>;
2182			clock-names = "core", "iface";
2183
2184			#address-cells = <1>;
2185			#size-cells = <1>;
2186
2187			gmu_sram: gmu-sram@0 {
2188				reg = <0x0 0x100000>;
2189			};
2190		};
2191
2192		remoteproc_adsp: remoteproc@fe200000 {
2193			compatible = "qcom,msm8974-adsp-pil";
2194			reg = <0xfe200000 0x100>;
2195
2196			interrupts-extended = <&intc GIC_SPI 162 IRQ_TYPE_EDGE_RISING>,
2197					       <&adsp_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
2198					       <&adsp_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
2199					       <&adsp_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
2200					       <&adsp_smp2p_in 3 IRQ_TYPE_EDGE_RISING>;
2201			interrupt-names = "wdog", "fatal", "ready", "handover", "stop-ack";
2202
2203			clocks = <&xo_board>;
2204			clock-names = "xo";
2205
2206			memory-region = <&adsp_region>;
2207
2208			qcom,smem-states = <&adsp_smp2p_out 0>;
2209			qcom,smem-state-names = "stop";
2210
2211			status = "disabled";
2212
2213			smd-edge {
2214				interrupts = <GIC_SPI 156 IRQ_TYPE_EDGE_RISING>;
2215
2216				qcom,ipc = <&apcs 8 8>;
2217				qcom,smd-edge = <1>;
2218				label = "lpass";
2219			};
2220		};
2221
2222		imem: sram@fe805000 {
2223			compatible = "qcom,msm8974-imem", "syscon", "simple-mfd";
2224			reg = <0xfe805000 0x1000>;
2225
2226			reboot-mode {
2227				compatible = "syscon-reboot-mode";
2228				offset = <0x65c>;
2229			};
2230		};
2231	};
2232
2233	thermal-zones {
2234		cpu0-thermal {
2235			polling-delay-passive = <250>;
2236			polling-delay = <1000>;
2237
2238			thermal-sensors = <&tsens 5>;
2239
2240			trips {
2241				cpu_alert0: trip0 {
2242					temperature = <75000>;
2243					hysteresis = <2000>;
2244					type = "passive";
2245				};
2246				cpu_crit0: trip1 {
2247					temperature = <110000>;
2248					hysteresis = <2000>;
2249					type = "critical";
2250				};
2251			};
2252		};
2253
2254		cpu1-thermal {
2255			polling-delay-passive = <250>;
2256			polling-delay = <1000>;
2257
2258			thermal-sensors = <&tsens 6>;
2259
2260			trips {
2261				cpu_alert1: trip0 {
2262					temperature = <75000>;
2263					hysteresis = <2000>;
2264					type = "passive";
2265				};
2266				cpu_crit1: trip1 {
2267					temperature = <110000>;
2268					hysteresis = <2000>;
2269					type = "critical";
2270				};
2271			};
2272		};
2273
2274		cpu2-thermal {
2275			polling-delay-passive = <250>;
2276			polling-delay = <1000>;
2277
2278			thermal-sensors = <&tsens 7>;
2279
2280			trips {
2281				cpu_alert2: trip0 {
2282					temperature = <75000>;
2283					hysteresis = <2000>;
2284					type = "passive";
2285				};
2286				cpu_crit2: trip1 {
2287					temperature = <110000>;
2288					hysteresis = <2000>;
2289					type = "critical";
2290				};
2291			};
2292		};
2293
2294		cpu3-thermal {
2295			polling-delay-passive = <250>;
2296			polling-delay = <1000>;
2297
2298			thermal-sensors = <&tsens 8>;
2299
2300			trips {
2301				cpu_alert3: trip0 {
2302					temperature = <75000>;
2303					hysteresis = <2000>;
2304					type = "passive";
2305				};
2306				cpu_crit3: trip1 {
2307					temperature = <110000>;
2308					hysteresis = <2000>;
2309					type = "critical";
2310				};
2311			};
2312		};
2313
2314		q6-dsp-thermal {
2315			polling-delay-passive = <250>;
2316			polling-delay = <1000>;
2317
2318			thermal-sensors = <&tsens 1>;
2319
2320			trips {
2321				q6_dsp_alert0: trip-point0 {
2322					temperature = <90000>;
2323					hysteresis = <2000>;
2324					type = "hot";
2325				};
2326			};
2327		};
2328
2329		modemtx-thermal {
2330			polling-delay-passive = <250>;
2331			polling-delay = <1000>;
2332
2333			thermal-sensors = <&tsens 2>;
2334
2335			trips {
2336				modemtx_alert0: trip-point0 {
2337					temperature = <90000>;
2338					hysteresis = <2000>;
2339					type = "hot";
2340				};
2341			};
2342		};
2343
2344		video-thermal {
2345			polling-delay-passive = <250>;
2346			polling-delay = <1000>;
2347
2348			thermal-sensors = <&tsens 3>;
2349
2350			trips {
2351				video_alert0: trip-point0 {
2352					temperature = <95000>;
2353					hysteresis = <2000>;
2354					type = "hot";
2355				};
2356			};
2357		};
2358
2359		wlan-thermal {
2360			polling-delay-passive = <250>;
2361			polling-delay = <1000>;
2362
2363			thermal-sensors = <&tsens 4>;
2364
2365			trips {
2366				wlan_alert0: trip-point0 {
2367					temperature = <105000>;
2368					hysteresis = <2000>;
2369					type = "hot";
2370				};
2371			};
2372		};
2373
2374		gpu-top-thermal {
2375			polling-delay-passive = <250>;
2376			polling-delay = <1000>;
2377
2378			thermal-sensors = <&tsens 9>;
2379
2380			trips {
2381				gpu1_alert0: trip-point0 {
2382					temperature = <90000>;
2383					hysteresis = <2000>;
2384					type = "hot";
2385				};
2386			};
2387		};
2388
2389		gpu-bottom-thermal {
2390			polling-delay-passive = <250>;
2391			polling-delay = <1000>;
2392
2393			thermal-sensors = <&tsens 10>;
2394
2395			trips {
2396				gpu2_alert0: trip-point0 {
2397					temperature = <90000>;
2398					hysteresis = <2000>;
2399					type = "hot";
2400				};
2401			};
2402		};
2403	};
2404
2405	timer {
2406		compatible = "arm,armv7-timer";
2407		interrupts = <GIC_PPI 2 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
2408			     <GIC_PPI 3 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
2409			     <GIC_PPI 4 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
2410			     <GIC_PPI 1 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
2411		clock-frequency = <19200000>;
2412	};
2413};
2414