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