1// SPDX-License-Identifier: GPL-2.0-only
2
3#include <dt-bindings/clock/qcom,gcc-msm8917.h>
4#include <dt-bindings/clock/qcom,rpmcc.h>
5#include <dt-bindings/interrupt-controller/arm-gic.h>
6#include <dt-bindings/power/qcom-rpmpd.h>
7#include <dt-bindings/thermal/thermal.h>
8
9/ {
10	interrupt-parent = <&intc>;
11
12	#address-cells = <2>;
13	#size-cells = <2>;
14
15	chosen { };
16
17	clocks {
18		sleep_clk: sleep-clk {
19			compatible = "fixed-clock";
20			#clock-cells = <0>;
21		};
22
23		xo_board: xo-board {
24			compatible = "fixed-clock";
25			#clock-cells = <0>;
26		};
27	};
28
29	cpus {
30		#address-cells = <1>;
31		#size-cells = <0>;
32
33		cpu0: cpu@100 {
34			compatible = "arm,cortex-a53";
35			reg = <0x100>;
36			device_type = "cpu";
37			next-level-cache = <&l2_0>;
38			enable-method = "psci";
39			clocks = <&apcs>;
40			operating-points-v2 = <&cpu_opp_table>;
41			#cooling-cells = <2>;
42			power-domains = <&cpu_pd0>;
43			power-domain-names = "psci";
44
45			l2_0: l2-cache {
46				compatible = "cache";
47				cache-level = <2>;
48				cache-unified;
49			};
50		};
51
52		cpu1: cpu@101 {
53			compatible = "arm,cortex-a53";
54			reg = <0x101>;
55			device_type = "cpu";
56			next-level-cache = <&l2_0>;
57			enable-method = "psci";
58			clocks = <&apcs>;
59			operating-points-v2 = <&cpu_opp_table>;
60			#cooling-cells = <2>;
61			power-domains = <&cpu_pd1>;
62			power-domain-names = "psci";
63		};
64
65		cpu2: cpu@102 {
66			compatible = "arm,cortex-a53";
67			reg = <0x102>;
68			device_type = "cpu";
69			next-level-cache = <&l2_0>;
70			enable-method = "psci";
71			clocks = <&apcs>;
72			operating-points-v2 = <&cpu_opp_table>;
73			#cooling-cells = <2>;
74			power-domains = <&cpu_pd2>;
75			power-domain-names = "psci";
76		};
77
78		cpu3: cpu@103 {
79			compatible = "arm,cortex-a53";
80			reg = <0x103>;
81			device_type = "cpu";
82			next-level-cache = <&l2_0>;
83			enable-method = "psci";
84			clocks = <&apcs>;
85			operating-points-v2 = <&cpu_opp_table>;
86			#cooling-cells = <2>;
87			power-domains = <&cpu_pd3>;
88			power-domain-names = "psci";
89		};
90
91		cpu-map {
92			cluster0 {
93				core0 {
94					cpu = <&cpu0>;
95				};
96
97				core1 {
98					cpu = <&cpu1>;
99				};
100
101				core2 {
102					cpu = <&cpu2>;
103				};
104
105				core3 {
106					cpu = <&cpu3>;
107				};
108			};
109		};
110
111		domain-idle-states {
112			cluster_sleep_0: cluster-sleep-0 {
113				compatible = "domain-idle-state";
114				arm,psci-suspend-param = <0x41000053>;
115				entry-latency-us = <700>;
116				exit-latency-us = <1000>;
117				min-residency-us = <6500>;
118			};
119		};
120
121		idle-states {
122			entry-method = "psci";
123
124			cpu_sleep_0: cpu-sleep-0 {
125				compatible = "arm,idle-state";
126				idle-state-name = "standalone-power-collapse";
127				arm,psci-suspend-param = <0x40000003>;
128				entry-latency-us = <125>;
129				exit-latency-us = <180>;
130				min-residency-us = <595>;
131				local-timer-stop;
132			};
133		};
134
135		cpu_opp_table: opp-table-cpu {
136			compatible = "operating-points-v2";
137			opp-shared;
138
139			opp-960000000 {
140				opp-hz = /bits/ 64 <960000000>;
141			};
142
143			opp-1094400000 {
144				opp-hz = /bits/ 64 <1094400000>;
145			};
146
147			opp-1248000000 {
148				opp-hz = /bits/ 64 <1248000000>;
149			};
150
151			opp-1401600000 {
152				opp-hz = /bits/ 64 <1401600000>;
153			};
154		};
155	};
156
157	firmware {
158		scm: scm {
159			compatible = "qcom,scm-msm8916", "qcom,scm";
160			clocks = <&gcc GCC_CRYPTO_CLK>,
161				 <&gcc GCC_CRYPTO_AXI_CLK>,
162				 <&gcc GCC_CRYPTO_AHB_CLK>;
163			clock-names = "core", "bus", "iface";
164			#reset-cells = <1>;
165
166			qcom,dload-mode = <&tcsr 0x6100>;
167		};
168	};
169
170	memory@80000000 {
171		/* We expect the bootloader to fill in the reg */
172		reg = <0 0x80000000 0 0>;
173		device_type = "memory";
174	};
175
176	pmu {
177		compatible = "arm,cortex-a53-pmu";
178		interrupts = <GIC_PPI 7 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
179	};
180
181	psci {
182		compatible = "arm,psci-1.0";
183		method = "smc";
184
185		cluster_pd: power-domain-cluster {
186			#power-domain-cells = <0>;
187			domain-idle-states = <&cluster_sleep_0>;
188		};
189
190		cpu_pd0: power-domain-cpu0 {
191			#power-domain-cells = <0>;
192			power-domains = <&cluster_pd>;
193			domain-idle-states = <&cpu_sleep_0>;
194		};
195
196		cpu_pd1: power-domain-cpu1 {
197			#power-domain-cells = <0>;
198			power-domains = <&cluster_pd>;
199			domain-idle-states = <&cpu_sleep_0>;
200		};
201
202		cpu_pd2: power-domain-cpu2 {
203			#power-domain-cells = <0>;
204			power-domains = <&cluster_pd>;
205			domain-idle-states = <&cpu_sleep_0>;
206		};
207
208		cpu_pd3: power-domain-cpu3 {
209			#power-domain-cells = <0>;
210			power-domains = <&cluster_pd>;
211			domain-idle-states = <&cpu_sleep_0>;
212		};
213	};
214
215	rpm: remoteproc {
216		compatible = "qcom,msm8917-rpm-proc", "qcom,rpm-proc";
217
218		smd-edge {
219			interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>;
220			qcom,ipc = <&apcs 8 0>;
221			qcom,smd-edge = <15>;
222
223			rpm_requests: rpm-requests {
224				compatible = "qcom,rpm-msm8917", "qcom,smd-rpm";
225				qcom,smd-channels = "rpm_requests";
226
227				rpmcc: clock-controller {
228					compatible = "qcom,rpmcc-msm8917", "qcom,rpmcc";
229					#clock-cells = <1>;
230					clocks = <&xo_board>;
231					clock-names = "xo";
232				};
233
234				rpmpd: power-controller {
235					compatible = "qcom,msm8917-rpmpd";
236					#power-domain-cells = <1>;
237					operating-points-v2 = <&rpmpd_opp_table>;
238
239					rpmpd_opp_table: opp-table {
240						compatible = "operating-points-v2";
241
242						rpmpd_opp_ret: opp1 {
243							opp-level = <RPM_SMD_LEVEL_RETENTION>;
244						};
245
246						rpmpd_opp_ret_plus: opp2 {
247							opp-level = <RPM_SMD_LEVEL_RETENTION_PLUS>;
248						};
249
250						rpmpd_opp_min_svs: opp3 {
251							opp-level = <RPM_SMD_LEVEL_MIN_SVS>;
252						};
253
254						rpmpd_opp_low_svs: opp4 {
255							opp-level = <RPM_SMD_LEVEL_LOW_SVS>;
256						};
257
258						rpmpd_opp_svs: opp5 {
259							opp-level = <RPM_SMD_LEVEL_SVS>;
260						};
261
262						rpmpd_opp_svs_plus: opp6 {
263							opp-level = <RPM_SMD_LEVEL_SVS_PLUS>;
264						};
265
266						rpmpd_opp_nom: opp7 {
267							opp-level = <RPM_SMD_LEVEL_NOM>;
268						};
269
270						rpmpd_opp_nom_plus: opp8 {
271							opp-level = <RPM_SMD_LEVEL_NOM_PLUS>;
272						};
273
274						rpmpd_opp_turbo: opp9 {
275							opp-level = <RPM_SMD_LEVEL_TURBO>;
276						};
277					};
278				};
279			};
280		};
281	};
282
283	reserved-memory {
284		ranges;
285		#address-cells = <2>;
286		#size-cells = <2>;
287
288		qseecom_mem: qseecom@85b00000 {
289			reg = <0x0 0x85b00000 0x0 0x800000>;
290			no-map;
291		};
292
293		smem@86300000 {
294			compatible = "qcom,smem";
295			reg = <0x0 0x86300000 0x0 0x100000>;
296			no-map;
297
298			hwlocks = <&tcsr_mutex 3>;
299			qcom,rpm-msg-ram = <&rpm_msg_ram>;
300		};
301
302		reserved@86400000 {
303			reg = <0x0 0x86400000 0x0 0x400000>;
304			no-map;
305		};
306
307		rmtfs@92100000 {
308			compatible = "qcom,rmtfs-mem";
309			reg = <0x0 0x92100000 0x0 0x180000>;
310			no-map;
311
312			qcom,client-id = <1>;
313		};
314
315		adsp_mem: adsp {
316			size = <0x0 0x1100000>;
317			alignment = <0x0 0x100000>;
318			alloc-ranges = <0x0 0x86800000 0x0 0x8000000>;
319			no-map;
320			status = "disabled";
321		};
322
323		mba_mem: mba {
324			size = <0x0 0x100000>;
325			alignment = <0x0 0x100000>;
326			alloc-ranges = <0x0 0x86800000 0x0 0x8000000>;
327			no-map;
328			status = "disabled";
329		};
330
331		venus_mem: venus {
332			size = <0x0 0x400000>;
333			alignment = <0x0 0x100000>;
334			alloc-ranges = <0x0 0x86800000 0x0 0x8000000>;
335			no-map;
336			status = "disabled";
337		};
338
339		wcnss_mem: wcnss {
340			size = <0x0 0x700000>;
341			alignment = <0x0 0x100000>;
342			alloc-ranges = <0x0 0x86800000 0x0 0x8000000>;
343			no-map;
344			status = "disabled";
345		};
346	};
347
348	smp2p-adsp {
349		compatible = "qcom,smp2p";
350		qcom,smem = <443>, <429>;
351
352		interrupts = <GIC_SPI 291 IRQ_TYPE_EDGE_RISING>;
353
354		mboxes = <&apcs 10>;
355
356		qcom,local-pid = <0>;
357		qcom,remote-pid = <2>;
358
359		adsp_smp2p_out: master-kernel {
360			qcom,entry-name = "master-kernel";
361
362			#qcom,smem-state-cells = <1>;
363		};
364
365		adsp_smp2p_in: slave-kernel {
366			qcom,entry-name = "slave-kernel";
367
368			interrupt-controller;
369			#interrupt-cells = <2>;
370		};
371	};
372
373	smp2p-modem {
374		compatible = "qcom,smp2p";
375		qcom,smem = <435>, <428>;
376
377		interrupts = <GIC_SPI 27 IRQ_TYPE_EDGE_RISING>;
378
379		mboxes = <&apcs 14>;
380
381		qcom,local-pid = <0>;
382		qcom,remote-pid = <1>;
383
384		modem_smp2p_out: master-kernel {
385			qcom,entry-name = "master-kernel";
386
387			#qcom,smem-state-cells = <1>;
388		};
389
390		modem_smp2p_in: slave-kernel {
391			qcom,entry-name = "slave-kernel";
392
393			interrupt-controller;
394			#interrupt-cells = <2>;
395		};
396	};
397
398	smp2p-wcnss {
399		compatible = "qcom,smp2p";
400		qcom,smem = <451>, <431>;
401
402		interrupts = <GIC_SPI 143 IRQ_TYPE_EDGE_RISING>;
403
404		mboxes = <&apcs 18>;
405
406		qcom,local-pid = <0>;
407		qcom,remote-pid = <4>;
408
409		wcnss_smp2p_out: master-kernel {
410			qcom,entry-name = "master-kernel";
411
412			#qcom,smem-state-cells = <1>;
413		};
414
415		wcnss_smp2p_in: slave-kernel {
416			qcom,entry-name = "slave-kernel";
417
418			interrupt-controller;
419			#interrupt-cells = <2>;
420		};
421	};
422
423	smsm {
424		compatible = "qcom,smsm";
425
426		#address-cells = <1>;
427		#size-cells = <0>;
428
429		mboxes = <0>, <&apcs 13>, <0>, <&apcs 19>;
430
431		apps_smsm: apps@0 {
432			reg = <0>;
433
434			#qcom,smem-state-cells = <1>;
435		};
436
437		hexagon_smsm: hexagon@1 {
438			reg = <1>;
439			interrupts = <GIC_SPI 26 IRQ_TYPE_EDGE_RISING>;
440
441			interrupt-controller;
442			#interrupt-cells = <2>;
443		};
444
445		wcnss_smsm: wcnss@6 {
446			reg = <6>;
447			interrupts = <GIC_SPI 144 IRQ_TYPE_EDGE_RISING>;
448
449			interrupt-controller;
450			#interrupt-cells = <2>;
451		};
452	};
453
454	soc: soc@0 {
455		compatible = "simple-bus";
456		ranges = <0 0 0 0xffffffff>;
457		#address-cells = <1>;
458		#size-cells = <1>;
459
460		rpm_msg_ram: sram@60000 {
461			compatible = "qcom,rpm-msg-ram";
462			reg = <0x00060000 0x8000>;
463		};
464
465		usb_hs_phy: phy@6c000 {
466			compatible = "qcom,usb-hs-28nm-femtophy";
467			reg = <0x0006c000 0x200>;
468			#phy-cells = <0>;
469			clocks = <&xo_board>,
470				 <&gcc GCC_USB_HS_PHY_CFG_AHB_CLK>,
471				 <&gcc GCC_USB2A_PHY_SLEEP_CLK>;
472			clock-names = "ref", "ahb", "sleep";
473			resets = <&gcc GCC_QUSB2_PHY_BCR>,
474				 <&gcc GCC_USB2_HS_PHY_ONLY_BCR>;
475			reset-names = "phy", "por";
476			status = "disabled";
477		};
478
479		qfprom: qfprom@a4000 {
480			compatible = "qcom,msm8917-qfprom", "qcom,qfprom";
481			reg = <0x000a4000 0x1000>;
482			#address-cells = <1>;
483			#size-cells = <1>;
484
485			tsens_base1: base1@1d8 {
486				reg = <0x1d8 1>;
487				bits = <0 8>;
488			};
489
490			tsens_s5_p1: s5-p1@1d9 {
491				reg = <0x1d9 1>;
492				bits = <0 6>;
493			};
494
495			tsens_s5_p2: s5-p2@1d9 {
496				reg = <0x1d9 2>;
497				bits = <6 6>;
498			};
499
500			tsens_s6_p1: s6-p1@1da {
501				reg = <0x1da 2>;
502				bits = <4 6>;
503			};
504
505			tsens_s6_p2: s6-p2@1db {
506				reg = <0x1db 1>;
507				bits = <2 6>;
508			};
509
510			tsens_s7_p1: s7-p1@1dc {
511				reg = <0x1dc 1>;
512				bits = <0 6>;
513			};
514
515			tsens_s7_p2: s7-p2@1dc {
516				reg = <0x1dc 2>;
517				bits = <6 6>;
518			};
519
520			tsens_s8_p1: s8-p1@1dd {
521				reg = <0x1dd 2>;
522				bits = <4 6>;
523			};
524
525			tsens_s8_p2: s8-p2@1de {
526				reg = <0x1de 1>;
527				bits = <2 6>;
528			};
529
530			tsens_base2: base2@1df {
531				reg = <0x1df 1>;
532				bits = <0 8>;
533			};
534
535			tsens_mode: mode@210 {
536				reg = <0x210 1>;
537				bits = <0 3>;
538			};
539
540			tsens_s0_p1: s0-p1@210 {
541				reg = <0x210 2>;
542				bits = <3 6>;
543			};
544
545			tsens_s0_p2: s0-p2@211 {
546				reg = <0x211 1>;
547				bits = <1 6>;
548			};
549
550			tsens_s1_p1: s1-p1@211 {
551				reg = <0x211 2>;
552				bits = <7 6>;
553			};
554
555			tsens_s1_p2: s1-p2@212 {
556				reg = <0x212 2>;
557				bits = <5 6>;
558			};
559
560			tsens_s2_p1: s2-p1@213 {
561				reg = <0x213 2>;
562				bits = <3 6>;
563			};
564
565			tsens_s2_p2: s2-p2@214 {
566				reg = <0x214 1>;
567				bits = <1 6>;
568			};
569
570			tsens_s3_p1: s3-p1@214 {
571				reg = <0x214 2>;
572				bits = <7 6>;
573			};
574
575			tsens_s3_p2: s3-p2@215 {
576				reg = <0x215 2>;
577				bits = <5 6>;
578			};
579
580			tsens_s4_p1: s4-p1@216 {
581				reg = <0x216 2>;
582				bits = <3 6>;
583			};
584
585			tsens_s4_p2: s4-p2@217 {
586				reg = <0x217 1>;
587				bits = <1 6>;
588			};
589
590			tsens_s9_p1: s9-p1@230{
591				reg = <0x230 1>;
592				bits = <0 6>;
593			};
594
595			tsens_s9_p2: s9-p2@230 {
596				reg = <0x230 2>;
597				bits = <6 6>;
598			};
599
600			tsens_s10_p1: s10-p1@231 {
601				reg = <0x231 2>;
602				bits = <4 6>;
603			};
604
605			tsens_s10_p2: s10-p2@232 {
606				reg = <0x232 1>;
607				bits = <2 6>;
608			};
609		};
610
611		rng@e3000 {
612			compatible = "qcom,prng";
613			reg = <0x000e3000 0x1000>;
614			clocks = <&gcc GCC_PRNG_AHB_CLK>;
615			clock-names = "core";
616		};
617
618		tsens: thermal-sensor@4a9000 {
619			compatible = "qcom,msm8937-tsens", "qcom,tsens-v1";
620			reg = <0x004a9000 0x1000>,
621			      <0x004a8000 0x1000>;
622			interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>;
623			interrupt-names = "uplow";
624			nvmem-cells = <&tsens_mode>,
625				      <&tsens_base1>, <&tsens_base2>,
626				      <&tsens_s0_p1>, <&tsens_s0_p2>,
627				      <&tsens_s1_p1>, <&tsens_s1_p2>,
628				      <&tsens_s2_p1>, <&tsens_s2_p2>,
629				      <&tsens_s3_p1>, <&tsens_s3_p2>,
630				      <&tsens_s4_p1>, <&tsens_s4_p2>,
631				      <&tsens_s5_p1>, <&tsens_s5_p2>,
632				      <&tsens_s6_p1>, <&tsens_s6_p2>,
633				      <&tsens_s7_p1>, <&tsens_s7_p2>,
634				      <&tsens_s8_p1>, <&tsens_s8_p2>,
635				      <&tsens_s9_p1>, <&tsens_s9_p2>,
636				      <&tsens_s10_p1>, <&tsens_s10_p2>;
637			nvmem-cell-names = "mode",
638					   "base1", "base2",
639					   "s0_p1", "s0_p2",
640					   "s1_p1", "s1_p2",
641					   "s2_p1", "s2_p2",
642					   "s3_p1", "s3_p2",
643					   "s4_p1", "s4_p2",
644					   "s5_p1", "s5_p2",
645					   "s6_p1", "s6_p2",
646					   "s7_p1", "s7_p2",
647					   "s8_p1", "s8_p2",
648					   "s9_p1", "s9_p2",
649					   "s10_p1", "s10_p2";
650			#qcom,sensors = <11>;
651			#thermal-sensor-cells = <1>;
652		};
653
654		restart@4ab000 {
655			compatible = "qcom,pshold";
656			reg = <0x004ab000 0x4>;
657		};
658
659		tlmm: pinctrl@1000000 {
660			compatible = "qcom,msm8917-pinctrl";
661			reg = <0x01000000 0x300000>;
662			interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
663			gpio-controller;
664			gpio-ranges = <&tlmm 0 0 134>;
665			#gpio-cells = <2>;
666			interrupt-controller;
667			#interrupt-cells = <2>;
668
669			blsp1_i2c2_default: blsp1-i2c2-default-state {
670				pins = "gpio6", "gpio7";
671				function = "blsp_i2c2";
672				drive-strength = <2>;
673				bias-disable;
674			};
675
676			blsp1_i2c2_sleep: blsp1-i2c2-sleep-state {
677				pins = "gpio6", "gpio7";
678				function = "gpio";
679				drive-strength = <2>;
680				bias-disable;
681			};
682
683			blsp1_i2c3_default: blsp1-i2c3-default-state {
684				pins = "gpio10", "gpio11";
685				function = "blsp_i2c3";
686				drive-strength = <2>;
687				bias-disable;
688			};
689
690			blsp1_i2c3_sleep: blsp1-i2c3-sleep-state {
691				pins = "gpio10", "gpio11";
692				function = "gpio";
693				drive-strength = <2>;
694				bias-disable;
695			};
696
697			blsp1_i2c4_default: blsp1-i2c4-default-state {
698				pins = "gpio14", "gpio15";
699				function = "blsp_i2c4";
700				drive-strength = <2>;
701				bias-disable;
702			};
703
704			blsp1_i2c4_sleep: blsp1-i2c4-sleep-state {
705				pins = "gpio14", "gpio15";
706				function = "gpio";
707				drive-strength = <2>;
708				bias-disable;
709			};
710
711			blsp2_i2c1_default: blsp2-i2c1-default-state {
712				pins = "gpio18", "gpio19";
713				function = "blsp_i2c5";
714				drive-strength = <2>;
715				bias-disable;
716			};
717
718			blsp2_i2c1_sleep: blsp2-i2c1-sleep-state {
719				pins = "gpio18", "gpio19";
720				function = "gpio";
721				drive-strength = <2>;
722				bias-disable;
723			};
724
725			blsp1_spi3_default: blsp1-spi3-default-state {
726				cs-pins {
727					pins = "gpio10";
728					function = "blsp_spi3";
729					drive-strength = <2>;
730					bias-disable;
731				};
732
733				spi-pins {
734					pins = "gpio8", "gpio9", "gpio11";
735					function = "blsp_spi3";
736					drive-strength = <12>;
737					bias-disable;
738				};
739			};
740
741			blsp1_spi3_sleep: blsp1-spi3-sleep-state {
742				cs-pins {
743					pins = "gpio10";
744					function = "gpio";
745					drive-strength = <2>;
746					bias-disable;
747				};
748
749				spi-pins {
750					pins = "gpio8", "gpio9", "gpio11";
751					function = "gpio";
752					drive-strength = <2>;
753					bias-pull-down;
754				};
755			};
756
757			blsp2_spi2_default: blsp2-spi2-default-state {
758				cs0-pins {
759					pins = "gpio47";
760					function = "blsp_spi6";
761					drive-strength = <16>;
762					bias-disable;
763				};
764
765				cs1-pins {
766					pins = "gpio22";
767					function = "blsp_spi6";
768					drive-strength = <16>;
769					bias-disable;
770				};
771
772				spi-pins {
773					pins = "gpio20", "gpio21", "gpio23";
774					function = "blsp_spi6";
775					drive-strength = <16>;
776					bias-disable;
777				};
778			};
779
780			blsp2_spi2_sleep: blsp2-spi2-sleep-state {
781				cs0-pins {
782					pins = "gpio47";
783					function = "gpio";
784					drive-strength = <2>;
785					bias-disable;
786				};
787
788				cs1-pins {
789					pins = "gpio22";
790					function = "gpio";
791					drive-strength = <2>;
792					bias-disable;
793				};
794
795				spi-pins {
796					pins = "gpio20", "gpio21", "gpio23";
797					function = "gpio";
798					drive-strength = <2>;
799					bias-pull-down;
800				};
801			};
802
803			blsp1_uart1_default: blsp1-uart1-default-state {
804				pins = "gpio0", "gpio1", "gpio2", "gpio3";
805				function = "blsp_uart1";
806				drive-strength = <2>;
807				bias-disable;
808			};
809
810			blsp1_uart1_sleep: blsp1-uart1-sleep-state {
811				pins = "gpio0", "gpio1", "gpio2", "gpio3";
812				function = "gpio";
813				drive-strength = <2>;
814				bias-disable;
815			};
816
817			blsp1_uart2_default: blsp1-uart2-default-state {
818				pins = "gpio4", "gpio5";
819				function = "blsp_uart2";
820				drive-strength = <2>;
821				bias-disable;
822			};
823
824			blsp1_uart2_sleep: blsp1-uart2-sleep-state {
825				pins = "gpio4", "gpio5";
826				function = "gpio";
827				drive-strength = <2>;
828				bias-pull-down;
829			};
830
831			sdc1_default: sdc1-default-state {
832				clk-pins {
833					pins = "sdc1_clk";
834					bias-disable;
835					drive-strength = <16>;
836				};
837
838				cmd-pins {
839					pins = "sdc1_cmd";
840					bias-pull-up;
841					drive-strength = <10>;
842				};
843
844				data-pins {
845					pins = "sdc1_data";
846					bias-pull-up;
847					drive-strength = <10>;
848				};
849
850				rclk-pins {
851					pins = "sdc1_rclk";
852					bias-pull-down;
853				};
854			};
855
856			sdc1_sleep: sdc1-sleep-state {
857				clk-pins {
858					pins = "sdc1_clk";
859					bias-disable;
860					drive-strength = <2>;
861				};
862
863				cmd-pins {
864					pins = "sdc1_cmd";
865					bias-pull-up;
866					drive-strength = <2>;
867				};
868
869				data-pins {
870					pins = "sdc1_data";
871					bias-pull-up;
872					drive-strength = <2>;
873				};
874
875				rclk-pins {
876					pins = "sdc1_rclk";
877					bias-pull-down;
878				};
879			};
880
881			sdc2_default: sdc2-default-state {
882				clk-pins {
883					pins = "sdc2_clk";
884					bias-disable;
885					drive-strength = <16>;
886				};
887
888				cmd-pins {
889					pins = "sdc2_cmd";
890					bias-pull-up;
891					drive-strength = <10>;
892				};
893
894				data-pins {
895					pins = "sdc2_data";
896					bias-pull-up;
897					drive-strength = <10>;
898				};
899			};
900
901			sdc2_sleep: sdc2-sleep-state {
902				clk-pins {
903					pins = "sdc2_clk";
904					bias-disable;
905					drive-strength = <2>;
906				};
907
908				cmd-pins {
909					pins = "sdc2_cmd";
910					bias-pull-up;
911					drive-strength = <2>;
912				};
913
914				data-pins {
915					pins = "sdc2_data";
916					bias-pull-up;
917					drive-strength = <2>;
918				};
919			};
920
921			wcnss_pin_a: wcnss-active-state {
922				wcss-wlan-pins {
923					pins = "gpio79", "gpio80";
924					function = "wcss_wlan";
925					drive-strength = <6>;
926					bias-pull-up;
927
928				};
929
930				wcss-wlan0-pins {
931					pins = "gpio78";
932					function = "wcss_wlan0";
933					drive-strength = <6>;
934					bias-pull-up;
935
936				};
937
938				wcss-wlan1-pins {
939					pins = "gpio77";
940					function = "wcss_wlan1";
941					drive-strength = <6>;
942					bias-pull-up;
943
944				};
945
946				wcss-wlan2-pins {
947					pins = "gpio76";
948					function = "wcss_wlan2";
949					drive-strength = <6>;
950					bias-pull-up;
951
952				};
953			};
954		};
955
956		gcc: clock-controller@1800000 {
957			compatible = "qcom,gcc-msm8917";
958			reg = <0x01800000 0x80000>;
959			#clock-cells = <1>;
960			#reset-cells = <1>;
961			#power-domain-cells = <1>;
962			clocks = <&xo_board>,
963				 <&sleep_clk>,
964				 <&mdss_dsi0_phy 1>,
965				 <&mdss_dsi0_phy 0>;
966			clock-names = "xo",
967				      "sleep_clk",
968				      "dsi0pll",
969				      "dsi0pllbyte";
970		};
971
972		tcsr_mutex: hwlock@1905000 {
973			compatible = "qcom,tcsr-mutex";
974			reg = <0x01905000 0x20000>;
975			#hwlock-cells = <1>;
976		};
977
978		tcsr: syscon@1937000 {
979			compatible = "qcom,tcsr-msm8917", "syscon";
980			reg = <0x01937000 0x30000>;
981		};
982
983		mdss: display-subsystem@1a00000 {
984			compatible = "qcom,mdss";
985			reg = <0x01a00000 0x1000>,
986			      <0x01ab0000 0x1040>;
987			reg-names = "mdss_phys", "vbif_phys";
988			ranges;
989
990			power-domains = <&gcc MDSS_GDSC>;
991
992			clocks = <&gcc GCC_MDSS_AHB_CLK>,
993				 <&gcc GCC_MDSS_AXI_CLK>,
994				 <&gcc GCC_MDSS_VSYNC_CLK>;
995			clock-names = "iface",
996				      "bus",
997				      "vsync";
998
999			interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
1000
1001			interrupt-controller;
1002			#interrupt-cells = <1>;
1003
1004			#address-cells = <1>;
1005			#size-cells = <1>;
1006
1007			status = "disabled";
1008
1009			mdp: display-controller@1a01000 {
1010				compatible = "qcom,msm8917-mdp5", "qcom,mdp5";
1011				reg = <0x01a01000 0x89000>;
1012				reg-names = "mdp_phys";
1013
1014				interrupt-parent = <&mdss>;
1015				interrupts = <0>;
1016
1017				power-domains = <&gcc MDSS_GDSC>;
1018
1019				clocks = <&gcc GCC_MDSS_AHB_CLK>,
1020					 <&gcc GCC_MDSS_AXI_CLK>,
1021					 <&gcc GCC_MDSS_MDP_CLK>,
1022					 <&gcc GCC_MDSS_VSYNC_CLK>;
1023				clock-names = "iface",
1024					      "bus",
1025					      "core",
1026					      "vsync";
1027
1028				iommus = <&apps_iommu 0x15>;
1029
1030				ports {
1031					#address-cells = <1>;
1032					#size-cells = <0>;
1033
1034					port@0 {
1035						reg = <0>;
1036
1037						mdp5_intf1_out: endpoint {
1038							remote-endpoint = <&mdss_dsi0_in>;
1039						};
1040					};
1041				};
1042			};
1043
1044			mdss_dsi0: dsi@1a94000 {
1045				compatible = "qcom,mdss-dsi-ctrl";
1046				reg = <0x01a94000 0x300>;
1047				reg-names = "dsi_ctrl";
1048
1049				interrupt-parent = <&mdss>;
1050				interrupts = <4>;
1051
1052				assigned-clocks = <&gcc BYTE0_CLK_SRC>,
1053						  <&gcc PCLK0_CLK_SRC>;
1054				assigned-clock-parents = <&mdss_dsi0_phy 0>,
1055							 <&mdss_dsi0_phy 1>;
1056
1057				clocks = <&gcc GCC_MDSS_MDP_CLK>,
1058					 <&gcc GCC_MDSS_AHB_CLK>,
1059					 <&gcc GCC_MDSS_AXI_CLK>,
1060					 <&gcc GCC_MDSS_BYTE0_CLK>,
1061					 <&gcc GCC_MDSS_PCLK0_CLK>,
1062					 <&gcc GCC_MDSS_ESC0_CLK>;
1063				clock-names = "mdp_core",
1064					      "iface",
1065					      "bus",
1066					      "byte",
1067					      "pixel",
1068					      "core";
1069				phys = <&mdss_dsi0_phy>;
1070
1071				operating-points-v2 = <&mdss_dsi0_opp_table>;
1072				power-domains = <&rpmpd MSM8917_VDDCX>;
1073
1074				#address-cells = <1>;
1075				#size-cells = <0>;
1076
1077				ports {
1078					#address-cells = <1>;
1079					#size-cells = <0>;
1080
1081					port@0 {
1082						reg = <0>;
1083
1084						mdss_dsi0_in: endpoint {
1085							remote-endpoint = <&mdp5_intf1_out>;
1086						};
1087					};
1088
1089					port@1 {
1090						reg = <1>;
1091
1092						mdss_dsi0_out: endpoint {
1093						};
1094					};
1095				};
1096
1097				mdss_dsi0_opp_table: opp-table {
1098					compatible = "operating-points-v2";
1099
1100					opp-125000000 {
1101						opp-hz = /bits/ 64 <125000000>;
1102						required-opps = <&rpmpd_opp_svs>;
1103					};
1104
1105					opp-187500000 {
1106						opp-hz = /bits/ 64 <187500000>;
1107						required-opps = <&rpmpd_opp_nom>;
1108					};
1109				};
1110			};
1111
1112			mdss_dsi0_phy: phy@1a94a00 {
1113				compatible = "qcom,dsi-phy-28nm-8937";
1114				reg = <0x01a94a00 0xd4>,
1115				      <0x01a94400 0x280>,
1116				      <0x01a94b80 0x30>;
1117				reg-names = "dsi_pll",
1118					    "dsi_phy",
1119					    "dsi_phy_regulator";
1120
1121				#clock-cells = <1>;
1122				#phy-cells = <0>;
1123
1124				clocks = <&gcc GCC_MDSS_AHB_CLK>,
1125					 <&xo_board>;
1126				clock-names = "iface", "ref";
1127			};
1128		};
1129
1130		apps_iommu: iommu@1e20000 {
1131			compatible = "qcom,msm8917-iommu", "qcom,msm-iommu-v1";
1132			ranges = <0 0x01e20000 0x20000>;
1133			#address-cells = <1>;
1134			#size-cells = <1>;
1135			#iommu-cells = <1>;
1136
1137			clocks = <&gcc GCC_SMMU_CFG_CLK>,
1138				 <&gcc GCC_APSS_TCU_CLK>;
1139			clock-names = "iface", "bus";
1140
1141			qcom,iommu-secure-id = <17>;
1142
1143			/* VFE */
1144			iommu-ctx@14000 {
1145				compatible = "qcom,msm-iommu-v1-ns";
1146				reg = <0x14000 0x1000>;
1147				interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
1148			};
1149
1150			/* MDP_0 */
1151			iommu-ctx@15000 {
1152				compatible = "qcom,msm-iommu-v1-ns";
1153				reg = <0x15000 0x1000>;
1154				interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>;
1155			};
1156
1157			/* VENUS_NS */
1158			iommu-ctx@16000 {
1159				compatible = "qcom,msm-iommu-v1-ns";
1160				reg = <0x16000 0x1000>;
1161				interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>;
1162			};
1163		};
1164
1165		gpu_iommu: iommu@1f08000 {
1166			compatible = "qcom,msm8917-iommu", "qcom,msm-iommu-v1";
1167			ranges = <0 0x01f08000 0x10000>;
1168
1169			#address-cells = <1>;
1170			#size-cells = <1>;
1171			#iommu-cells = <1>;
1172
1173			clocks = <&gcc GCC_SMMU_CFG_CLK>,
1174				 <&gcc GCC_GFX_TCU_CLK>;
1175			clock-names = "iface", "bus";
1176			qcom,iommu-secure-id = <18>;
1177
1178			iommu-ctx@0 {
1179				compatible = "qcom,msm-iommu-v2-ns";
1180				reg = <0 0x1000>;
1181				interrupts = <GIC_SPI 240 IRQ_TYPE_LEVEL_HIGH>;
1182			};
1183		};
1184
1185		gpu: gpu@1c00000 {
1186			compatible = "qcom,adreno-306.32", "qcom,adreno";
1187			reg = <0x01c00000 0x20000>;
1188			reg-names = "kgsl_3d0_reg_memory";
1189			interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
1190			interrupt-names = "kgsl_3d0_irq";
1191			clock-names = "core",
1192				      "iface",
1193				      "mem_iface",
1194				      "alt_mem_iface",
1195				      "gfx3d";
1196			clocks = <&gcc GCC_OXILI_GFX3D_CLK>,
1197				 <&gcc GCC_OXILI_AHB_CLK>,
1198				 <&gcc GCC_BIMC_GFX_CLK>,
1199				 <&gcc GCC_BIMC_GPU_CLK>,
1200				 <&gcc GFX3D_CLK_SRC>;
1201			power-domains = <&gcc OXILI_GX_GDSC>;
1202			operating-points-v2 = <&gpu_opp_table>;
1203			#cooling-cells = <2>;
1204
1205			iommus = <&gpu_iommu 0>;
1206
1207			status = "disabled";
1208
1209			gpu_opp_table: opp-table {
1210				compatible = "operating-points-v2";
1211
1212				opp-19200000 {
1213					opp-hz = /bits/ 64 <19200000>;
1214				};
1215
1216				opp-270000000 {
1217					opp-hz = /bits/ 64 <270000000>;
1218				};
1219
1220				opp-400000000 {
1221					opp-hz = /bits/ 64 <400000000>;
1222				};
1223
1224				opp-484800000 {
1225					opp-hz = /bits/ 64 <484800000>;
1226				};
1227
1228				opp-523200000 {
1229					opp-hz = /bits/ 64 <523200000>;
1230				};
1231
1232				opp-598000000 {
1233					opp-hz = /bits/ 64 <598000000>;
1234				};
1235			};
1236		};
1237
1238		spmi_bus: spmi@200f000 {
1239			compatible = "qcom,spmi-pmic-arb";
1240			reg = <0x0200f000 0x001000>,
1241			      <0x02400000 0x800000>,
1242			      <0x02c00000 0x800000>,
1243			      <0x03800000 0x200000>,
1244			      <0x0200a000 0x002100>;
1245			reg-names = "core",
1246				    "chnls",
1247				    "obsrvr",
1248				    "intr",
1249				    "cnfg";
1250			interrupt-names = "periph_irq";
1251			interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>;
1252			qcom,ee = <0>;
1253			qcom,channel = <0>;
1254			#address-cells = <2>;
1255			#size-cells = <0>;
1256			interrupt-controller;
1257			#interrupt-cells = <4>;
1258		};
1259
1260		bam_dmux_dma: dma-controller@4044000 {
1261			compatible = "qcom,bam-v1.7.0";
1262			reg = <0x04044000 0x19000>;
1263			interrupts = <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>;
1264			#dma-cells = <1>;
1265			qcom,ee = <0>;
1266
1267			num-channels = <6>;
1268			qcom,num-ees = <1>;
1269			qcom,powered-remotely;
1270
1271			status = "disabled";
1272		};
1273
1274		sdhc_1: mmc@7824900 {
1275			compatible = "qcom,sdhci-msm-v4";
1276			reg = <0x07824900 0x500>,
1277			      <0x07824000 0x800>;
1278			reg-names = "hc", "core";
1279
1280			interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>,
1281				     <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>;
1282			interrupt-names = "hc_irq", "pwr_irq";
1283			clocks = <&gcc GCC_SDCC1_AHB_CLK>,
1284				 <&gcc GCC_SDCC1_APPS_CLK>,
1285				 <&xo_board>;
1286			clock-names = "iface", "core", "xo";
1287			pinctrl-0 = <&sdc1_default>;
1288			pinctrl-1 = <&sdc1_sleep>;
1289			pinctrl-names = "default", "sleep";
1290			power-domains = <&rpmpd MSM8917_VDDCX>;
1291			mmc-hs200-1_8v;
1292			mmc-hs400-1_8v;
1293			mmc-ddr-1_8v;
1294			bus-width = <8>;
1295			non-removable;
1296			status = "disabled";
1297		};
1298
1299		sdhc_2: mmc@7864900 {
1300			compatible = "qcom,sdhci-msm-v4";
1301			reg = <0x07864900 0x500>,
1302			      <0x07864000 0x800>;
1303			reg-names = "hc", "core";
1304
1305			interrupts = <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>,
1306				     <GIC_SPI 221 IRQ_TYPE_LEVEL_HIGH>;
1307			interrupt-names = "hc_irq", "pwr_irq";
1308			clocks = <&gcc GCC_SDCC2_AHB_CLK>,
1309				 <&gcc GCC_SDCC2_APPS_CLK>,
1310				 <&xo_board>;
1311			clock-names = "iface", "core", "xo";
1312			pinctrl-0 = <&sdc2_default>;
1313			pinctrl-1 = <&sdc2_sleep>;
1314			pinctrl-names = "default", "sleep";
1315			power-domains = <&rpmpd MSM8917_VDDCX>;
1316			bus-width = <4>;
1317			status = "disabled";
1318		};
1319
1320		blsp1_dma: dma-controller@7884000 {
1321			compatible = "qcom,bam-v1.7.0";
1322			reg = <0x07884000 0x1f000>;
1323			interrupts = <GIC_SPI 238 IRQ_TYPE_LEVEL_HIGH>;
1324			clocks = <&gcc GCC_BLSP1_AHB_CLK>;
1325			clock-names = "bam_clk";
1326			qcom,controlled-remotely;
1327			#dma-cells = <1>;
1328			num-channels = <12>;
1329			qcom,num-ees = <4>;
1330			qcom,ee = <0>;
1331		};
1332
1333		blsp2_dma: dma-controller@7ac4000 {
1334			compatible = "qcom,bam-v1.7.0";
1335			reg = <0x07ac4000 0x1d000>;
1336			interrupts = <GIC_SPI 239 IRQ_TYPE_LEVEL_HIGH>;
1337			clocks = <&gcc GCC_BLSP2_AHB_CLK>;
1338			clock-names = "bam_clk";
1339			qcom,controlled-remotely;
1340			#dma-cells = <1>;
1341			num-channels = <10>;
1342			qcom,num-ees = <4>;
1343			qcom,ee = <0>;
1344		};
1345
1346		blsp1_uart1: serial@78af000 {
1347			compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
1348			reg = <0x078af000 0x200>;
1349			interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
1350			clocks = <&gcc GCC_BLSP1_UART1_APPS_CLK>,
1351				 <&gcc GCC_BLSP1_AHB_CLK>;
1352			clock-names = "core", "iface";
1353			dmas = <&blsp1_dma 0>, <&blsp1_dma 1>;
1354			dma-names = "tx", "rx";
1355			pinctrl-0 = <&blsp1_uart1_default>;
1356			pinctrl-1 = <&blsp1_uart1_sleep>;
1357			pinctrl-names = "default", "sleep";
1358			status = "disabled";
1359		};
1360
1361		blsp1_uart2: serial@78b0000 {
1362			compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
1363			reg = <0x078b0000 0x200>;
1364			interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
1365			clocks = <&gcc GCC_BLSP1_UART2_APPS_CLK>,
1366				 <&gcc GCC_BLSP1_AHB_CLK>;
1367			clock-names = "core", "iface";
1368			dmas = <&blsp1_dma 2>, <&blsp1_dma 3>;
1369			dma-names = "tx", "rx";
1370			pinctrl-0 = <&blsp1_uart2_default>;
1371			pinctrl-1 = <&blsp1_uart2_sleep>;
1372			pinctrl-names = "default", "sleep";
1373			status = "disabled";
1374		};
1375
1376		blsp1_i2c2: i2c@78b6000 {
1377			compatible = "qcom,i2c-qup-v2.2.1";
1378			reg = <0x078b6000 0x600>;
1379			interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
1380			clocks = <&gcc GCC_BLSP1_QUP2_I2C_APPS_CLK>,
1381				 <&gcc GCC_BLSP1_AHB_CLK>;
1382			clock-names = "core", "iface";
1383			dmas = <&blsp1_dma 6>, <&blsp1_dma 7>;
1384			dma-names = "tx", "rx";
1385			pinctrl-0 = <&blsp1_i2c2_default>;
1386			pinctrl-1 = <&blsp1_i2c2_sleep>;
1387			pinctrl-names = "default", "sleep";
1388			#address-cells = <1>;
1389			#size-cells = <0>;
1390			status = "disabled";
1391		};
1392
1393		blsp1_i2c3: i2c@78b7000 {
1394			compatible = "qcom,i2c-qup-v2.2.1";
1395			reg = <0x078b7000 0x600>;
1396			interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
1397			clocks = <&gcc GCC_BLSP1_QUP3_I2C_APPS_CLK>,
1398				 <&gcc GCC_BLSP1_AHB_CLK>;
1399			clock-names = "core", "iface";
1400			dmas = <&blsp1_dma 8>, <&blsp1_dma 9>;
1401			dma-names = "tx", "rx";
1402			pinctrl-0 = <&blsp1_i2c3_default>;
1403			pinctrl-1 = <&blsp1_i2c3_sleep>;
1404			pinctrl-names = "default", "sleep";
1405			#address-cells = <1>;
1406			#size-cells = <0>;
1407			status = "disabled";
1408		};
1409
1410		blsp1_spi3: spi@78b7000 {
1411			compatible = "qcom,spi-qup-v2.2.1";
1412			reg = <0x078b7000 0x600>;
1413			interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
1414			clocks = <&gcc GCC_BLSP1_QUP3_SPI_APPS_CLK>,
1415				 <&gcc GCC_BLSP1_AHB_CLK>;
1416			clock-names = "core", "iface";
1417			dmas = <&blsp1_dma 8>, <&blsp1_dma 9>;
1418			dma-names = "tx", "rx";
1419			pinctrl-0 = <&blsp1_spi3_default>;
1420			pinctrl-1 = <&blsp1_spi3_sleep>;
1421			pinctrl-names = "default", "sleep";
1422			#address-cells = <1>;
1423			#size-cells = <0>;
1424			status = "disabled";
1425		};
1426
1427		blsp1_i2c4: i2c@78b8000 {
1428			compatible = "qcom,i2c-qup-v2.2.1";
1429			reg = <0x078b8000 0x500>;
1430			interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
1431			clocks = <&gcc GCC_BLSP1_QUP4_I2C_APPS_CLK>,
1432				 <&gcc GCC_BLSP1_AHB_CLK>;
1433			clock-names = "core", "iface";
1434			dmas = <&blsp1_dma 10>, <&blsp1_dma 11>;
1435			dma-names = "tx", "rx";
1436			pinctrl-0 = <&blsp1_i2c4_default>;
1437			pinctrl-1 = <&blsp1_i2c4_sleep>;
1438			pinctrl-names = "default", "sleep";
1439			#address-cells = <1>;
1440			#size-cells = <0>;
1441			status = "disabled";
1442		};
1443
1444		blsp2_i2c1: i2c@7af5000 {
1445			compatible = "qcom,i2c-qup-v2.2.1";
1446			reg = <0x07af5000 0x600>;
1447			interrupts = <GIC_SPI 299 IRQ_TYPE_LEVEL_HIGH>;
1448			clocks = <&gcc GCC_BLSP2_QUP1_I2C_APPS_CLK>,
1449				 <&gcc GCC_BLSP2_AHB_CLK>;
1450			clock-names = "core", "iface";
1451			dmas = <&blsp2_dma 4>, <&blsp2_dma 5>;
1452			dma-names = "tx", "rx";
1453			pinctrl-0 = <&blsp2_i2c1_default>;
1454			pinctrl-1 = <&blsp2_i2c1_sleep>;
1455			pinctrl-names = "default", "sleep";
1456			#address-cells = <1>;
1457			#size-cells = <0>;
1458			status = "disabled";
1459		};
1460
1461		blsp2_spi2: spi@7af6000 {
1462			compatible = "qcom,spi-qup-v2.2.1";
1463			reg = <0x07af6000 0x600>;
1464			interrupts = <GIC_SPI 300 IRQ_TYPE_LEVEL_HIGH>;
1465			clocks = <&gcc GCC_BLSP2_QUP2_SPI_APPS_CLK>,
1466				 <&gcc GCC_BLSP2_AHB_CLK>;
1467			clock-names = "core", "iface";
1468			dmas = <&blsp2_dma 6>, <&blsp2_dma 7>;
1469			dma-names = "tx", "rx";
1470			pinctrl-0 = <&blsp2_spi2_default>;
1471			pinctrl-1 = <&blsp2_spi2_sleep>;
1472			pinctrl-names = "default", "sleep";
1473			#address-cells = <1>;
1474			#size-cells = <0>;
1475			status = "disabled";
1476		};
1477
1478		usb: usb@78db000 {
1479			compatible = "qcom,ci-hdrc";
1480			reg = <0x078db000 0x200>,
1481			      <0x078db200 0x200>;
1482			interrupts = <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>,
1483				     <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
1484			clocks = <&gcc GCC_USB_HS_AHB_CLK>,
1485				 <&gcc GCC_USB_HS_SYSTEM_CLK>;
1486			clock-names = "iface", "core";
1487			assigned-clocks = <&gcc GCC_USB_HS_SYSTEM_CLK>;
1488			assigned-clock-rates = <80000000>;
1489			resets = <&gcc GCC_USB_HS_BCR>;
1490			reset-names = "core";
1491			phy_type = "ulpi";
1492			dr_mode = "otg";
1493			hnp-disable;
1494			srp-disable;
1495			adp-disable;
1496			ahb-burst-config = <0>;
1497			phy-names = "usb-phy";
1498			phys = <&usb_hs_phy>;
1499			status = "disabled";
1500			#reset-cells = <1>;
1501		};
1502
1503		wcnss: remoteproc@a204000 {
1504			compatible = "qcom,pronto-v3-pil", "qcom,pronto";
1505			reg = <0x0a204000 0x2000>,
1506			      <0x0a202000 0x1000>,
1507			      <0x0a21b000 0x3000>;
1508			reg-names = "ccu", "dxe", "pmu";
1509
1510			memory-region = <&wcnss_mem>;
1511
1512			interrupts-extended = <&intc GIC_SPI 149 IRQ_TYPE_EDGE_RISING>,
1513					      <&wcnss_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
1514					      <&wcnss_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
1515					      <&wcnss_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
1516					      <&wcnss_smp2p_in 3 IRQ_TYPE_EDGE_RISING>;
1517			interrupt-names = "wdog", "fatal", "ready", "handover", "stop-ack";
1518
1519			power-domains = <&rpmpd MSM8917_VDDCX>,
1520					<&rpmpd MSM8917_VDDMX>;
1521			power-domain-names = "cx", "mx";
1522
1523			qcom,smem-states = <&wcnss_smp2p_out 0>;
1524			qcom,smem-state-names = "stop";
1525
1526			pinctrl-0 = <&wcnss_pin_a>;
1527			pinctrl-names = "default";
1528
1529			status = "disabled";
1530
1531			wcnss_iris: iris {
1532				clocks = <&rpmcc RPM_SMD_RF_CLK2>;
1533				clock-names = "xo";
1534			};
1535
1536			smd-edge {
1537				interrupts = <GIC_SPI 142 IRQ_TYPE_EDGE_RISING>;
1538
1539				mboxes = <&apcs 17>;
1540				qcom,smd-edge = <6>;
1541				qcom,remote-pid = <4>;
1542
1543				label = "pronto";
1544
1545				wcnss_ctrl: wcnss {
1546					compatible = "qcom,wcnss";
1547					qcom,smd-channels = "WCNSS_CTRL";
1548
1549					qcom,mmio = <&wcnss>;
1550
1551					wcnss_bt: bluetooth {
1552						compatible = "qcom,wcnss-bt";
1553					};
1554
1555					wcnss_wifi: wifi {
1556						compatible = "qcom,wcnss-wlan";
1557
1558						interrupts = <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>,
1559							     <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>;
1560						interrupt-names = "tx", "rx";
1561
1562						qcom,smem-states = <&apps_smsm 10>, <&apps_smsm 9>;
1563						qcom,smem-state-names = "tx-enable",
1564									"tx-rings-empty";
1565					};
1566				};
1567			};
1568		};
1569
1570		intc: interrupt-controller@b000000 {
1571			compatible = "qcom,msm-qgic2";
1572			reg = <0x0b000000 0x1000>,
1573			      <0x0b002000 0x1000>;
1574			interrupt-controller;
1575			#interrupt-cells = <3>;
1576		};
1577
1578		apcs: mailbox@b011000 {
1579			compatible = "qcom,msm8939-apcs-kpss-global", "syscon";
1580			reg = <0x0b011000 0x1000>;
1581			#mbox-cells = <1>;
1582			clocks = <&a53pll>, <&gcc GPLL0_EARLY>, <&rpmcc RPM_SMD_XO_CLK_SRC>;
1583			clock-names = "pll", "aux", "ref";
1584			#clock-cells = <0>;
1585		};
1586
1587		a53pll: clock@b016000 {
1588			compatible = "qcom,msm8939-a53pll";
1589			reg = <0x0b016000 0x40>;
1590			clocks = <&xo_board>;
1591			clock-names = "xo";
1592			#clock-cells = <0>;
1593			operating-points-v2 = <&pll_opp_table>;
1594
1595			pll_opp_table: opp-table {
1596				compatible = "operating-points-v2";
1597
1598				opp-960000000 {
1599					opp-hz = /bits/ 64 <960000000>;
1600				};
1601
1602				opp-1094400000 {
1603					opp-hz = /bits/ 64 <1094400000>;
1604				};
1605
1606				opp-1248000000 {
1607					opp-hz = /bits/ 64 <1248000000>;
1608				};
1609
1610				opp-1401600000 {
1611					opp-hz = /bits/ 64 <1401600000>;
1612				};
1613			};
1614		};
1615
1616		watchdog@b017000 {
1617			compatible = "qcom,apss-wdt-qcs404", "qcom,kpss-wdt";
1618			reg = <0x0b017000 0x1000>;
1619			clocks = <&sleep_clk>;
1620		};
1621
1622		timer@b120000 {
1623			compatible = "arm,armv7-timer-mem";
1624			reg = <0x0b120000 0x1000>;
1625			ranges;
1626			#address-cells = <1>;
1627			#size-cells = <1>;
1628
1629			frame@b121000 {
1630				reg = <0x0b121000 0x1000>,
1631				      <0x0b122000 0x1000>;
1632				frame-number = <0>;
1633				interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
1634					     <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
1635			};
1636
1637			frame@b123000 {
1638				reg = <0x0b123000 0x1000>;
1639				frame-number = <1>;
1640				interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
1641				status = "disabled";
1642			};
1643
1644			frame@b124000 {
1645				reg = <0x0b124000 0x1000>;
1646				frame-number = <2>;
1647				interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
1648				status = "disabled";
1649			};
1650
1651			frame@b125000 {
1652				reg = <0x0b125000 0x1000>;
1653				frame-number = <3>;
1654				interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
1655				status = "disabled";
1656			};
1657
1658			frame@b126000 {
1659				reg = <0x0b126000 0x1000>;
1660				frame-number = <4>;
1661				interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
1662				status = "disabled";
1663			};
1664
1665			frame@b127000 {
1666				reg = <0x0b127000 0x1000>;
1667				frame-number = <5>;
1668				interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
1669				status = "disabled";
1670			};
1671
1672			frame@b128000 {
1673				reg = <0x0b128000 0x1000>;
1674				frame-number = <6>;
1675				interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
1676				status = "disabled";
1677			};
1678		};
1679	};
1680
1681	timer {
1682		compatible = "arm,armv8-timer";
1683		interrupts = <GIC_PPI 2 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
1684			     <GIC_PPI 3 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
1685			     <GIC_PPI 4 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
1686			     <GIC_PPI 1 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
1687	};
1688
1689	thermal_zones: thermal-zones {
1690		aoss-thermal {
1691			polling-delay-passive = <250>;
1692
1693			thermal-sensors = <&tsens 0>;
1694
1695			trips {
1696				aoss_alert0: trip-point0 {
1697					temperature = <85000>;
1698					hysteresis = <2000>;
1699					type = "hot";
1700				};
1701			};
1702		};
1703
1704		camera-thermal {
1705			polling-delay-passive = <250>;
1706
1707			thermal-sensors = <&tsens 3>;
1708
1709			trips {
1710				camera_alert0: trip-point0 {
1711					temperature = <85000>;
1712					hysteresis = <2000>;
1713					type = "hot";
1714				};
1715			};
1716		};
1717
1718		cpuss1-thermal {
1719			polling-delay-passive = <250>;
1720
1721			thermal-sensors = <&tsens 4>;
1722
1723			cooling-maps {
1724				map0 {
1725					trip = <&cpuss1_alert0>;
1726					cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
1727							 <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
1728							 <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
1729							 <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
1730				};
1731			};
1732
1733			trips {
1734				cpuss1_alert0: trip-point0 {
1735					temperature = <75000>;
1736					hysteresis = <2000>;
1737					type = "passive";
1738				};
1739
1740				cpuss1_alert1: trip-point1 {
1741					temperature = <85000>;
1742					hysteresis = <2000>;
1743					type = "hot";
1744				};
1745
1746				cpuss1_crit: cpuss1-crit {
1747					temperature = <100000>;
1748					hysteresis = <2000>;
1749					type = "critical";
1750				};
1751			};
1752		};
1753
1754		cpu0-thermal {
1755			polling-delay-passive = <250>;
1756
1757			thermal-sensors = <&tsens 5>;
1758
1759			cooling-maps {
1760				map0 {
1761					trip = <&cpu0_alert1>;
1762					cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
1763							 <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
1764							 <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
1765							 <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
1766				};
1767			};
1768
1769			trips {
1770				cpu0_alert0: trip-point0 {
1771					temperature = <75000>;
1772					hysteresis = <2000>;
1773					type = "passive";
1774				};
1775
1776				cpu0_alert1: trip-point1 {
1777					temperature = <85000>;
1778					hysteresis = <2000>;
1779					type = "hot";
1780				};
1781
1782				cpu0_crit: cpu-crit {
1783					temperature = <100000>;
1784					hysteresis = <2000>;
1785					type = "critical";
1786				};
1787			};
1788		};
1789
1790		cpu1-thermal {
1791			polling-delay-passive = <250>;
1792
1793			thermal-sensors = <&tsens 6>;
1794
1795			cooling-maps {
1796				map0 {
1797					trip = <&cpu1_alert1>;
1798					cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
1799							 <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
1800							 <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
1801							 <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
1802				};
1803			};
1804
1805			trips {
1806				cpu1_alert0: trip-point0 {
1807					temperature = <75000>;
1808					hysteresis = <2000>;
1809					type = "hot";
1810				};
1811
1812				cpu1_alert1: trip-point1 {
1813					temperature = <85000>;
1814					hysteresis = <2000>;
1815					type = "passive";
1816				};
1817
1818				cpu1_crit: cpu-crit {
1819					temperature = <100000>;
1820					hysteresis = <2000>;
1821					type = "critical";
1822				};
1823			};
1824		};
1825
1826		cpu2-thermal {
1827			polling-delay-passive = <250>;
1828
1829			thermal-sensors = <&tsens 7>;
1830
1831			cooling-maps {
1832				map0 {
1833					trip = <&cpu2_alert1>;
1834					cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
1835							 <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
1836							 <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
1837							 <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
1838				};
1839			};
1840
1841			trips {
1842				cpu2_alert0: trip-point0 {
1843					temperature = <75000>;
1844					hysteresis = <2000>;
1845					type = "hot";
1846				};
1847
1848				cpu2_alert1: trip-point1 {
1849					temperature = <85000>;
1850					hysteresis = <2000>;
1851					type = "passive";
1852				};
1853
1854				cpu2_crit: cpu-crit {
1855					temperature = <100000>;
1856					hysteresis = <2000>;
1857					type = "critical";
1858				};
1859			};
1860		};
1861
1862		cpu3-thermal {
1863			polling-delay-passive = <250>;
1864
1865			thermal-sensors = <&tsens 8>;
1866
1867			cooling-maps {
1868				map0 {
1869					trip = <&cpu3_alert1>;
1870					cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
1871							 <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
1872							 <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
1873							 <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
1874				};
1875			};
1876
1877			trips {
1878				cpu3_alert0: trip-point0 {
1879					temperature = <75000>;
1880					hysteresis = <2000>;
1881					type = "hot";
1882				};
1883
1884				cpu3_alert1: trip-point1 {
1885					temperature = <85000>;
1886					hysteresis = <2000>;
1887					type = "passive";
1888				};
1889
1890				cpu3_crit: cpu-crit {
1891					temperature = <100000>;
1892					hysteresis = <2000>;
1893					type = "critical";
1894				};
1895			};
1896		};
1897
1898		gpu-thermal {
1899			polling-delay-passive = <250>;
1900
1901			thermal-sensors = <&tsens 9>;
1902
1903			cooling-maps {
1904				map0 {
1905					trip = <&gpu_alert>;
1906					cooling-device = <&gpu THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
1907				};
1908			};
1909
1910			trips {
1911				gpu_alert: trip-point0 {
1912					temperature = <70000>;
1913					hysteresis = <2000>;
1914					type = "passive";
1915				};
1916
1917				gpu_crit: gpu-crit {
1918					temperature = <90000>;
1919					hysteresis = <2000>;
1920					type = "critical";
1921				};
1922			};
1923
1924		};
1925
1926		mdm-core-thermal {
1927			polling-delay-passive = <250>;
1928
1929			thermal-sensors = <&tsens 1>;
1930
1931			trips {
1932				mdm_core_alert0: trip-point0 {
1933					temperature = <85000>;
1934					hysteresis = <2000>;
1935					type = "hot";
1936				};
1937			};
1938		};
1939
1940		q6-thermal {
1941			polling-delay-passive = <250>;
1942
1943			thermal-sensors = <&tsens 2>;
1944
1945			trips {
1946				q6_alert0: trip-point0 {
1947					temperature = <85000>;
1948					hysteresis = <2000>;
1949					type = "hot";
1950				};
1951			};
1952		};
1953	};
1954};
1955