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