xref: /linux/arch/arm64/boot/dts/qcom/msm8937.dtsi (revision be1ca3ee8f97067fee87fda73ea5959d5ab75bbf)
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			resets = <&gcc GCC_MDSS_BCR>;
1048			interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
1049
1050			interrupt-controller;
1051			#interrupt-cells = <1>;
1052
1053			#address-cells = <1>;
1054			#size-cells = <1>;
1055
1056			status = "disabled";
1057
1058			mdp: display-controller@1a01000 {
1059				compatible = "qcom,msm8937-mdp5", "qcom,mdp5";
1060				reg = <0x01a01000 0x89000>;
1061				reg-names = "mdp_phys";
1062
1063				interrupt-parent = <&mdss>;
1064				interrupts = <0>;
1065
1066				clocks = <&gcc GCC_MDSS_AHB_CLK>,
1067					 <&gcc GCC_MDSS_AXI_CLK>,
1068					 <&gcc GCC_MDSS_MDP_CLK>,
1069					 <&gcc GCC_MDSS_VSYNC_CLK>;
1070				clock-names = "iface",
1071					      "bus",
1072					      "core",
1073					      "vsync";
1074
1075				iommus = <&apps_iommu 0x15>;
1076
1077				ports {
1078					#address-cells = <1>;
1079					#size-cells = <0>;
1080
1081					port@0 {
1082						reg = <0>;
1083						mdp5_intf1_out: endpoint {
1084							remote-endpoint = <&mdss_dsi0_in>;
1085						};
1086					};
1087
1088					port@1 {
1089						reg = <1>;
1090						mdp5_intf2_out: endpoint {
1091							remote-endpoint = <&mdss_dsi1_in>;
1092						};
1093					};
1094				};
1095			};
1096
1097			mdss_dsi0: dsi@1a94000 {
1098				compatible = "qcom,mdss-dsi-ctrl";
1099				reg = <0x01a94000 0x300>;
1100				reg-names = "dsi_ctrl";
1101
1102				interrupt-parent = <&mdss>;
1103				interrupts = <4>;
1104
1105				assigned-clocks = <&gcc BYTE0_CLK_SRC>,
1106						  <&gcc PCLK0_CLK_SRC>;
1107				assigned-clock-parents = <&mdss_dsi0_phy DSI_BYTE_PLL_CLK>,
1108							 <&mdss_dsi0_phy DSI_PIXEL_PLL_CLK>;
1109
1110				clocks = <&gcc GCC_MDSS_MDP_CLK>,
1111					 <&gcc GCC_MDSS_AHB_CLK>,
1112					 <&gcc GCC_MDSS_AXI_CLK>,
1113					 <&gcc GCC_MDSS_BYTE0_CLK>,
1114					 <&gcc GCC_MDSS_PCLK0_CLK>,
1115					 <&gcc GCC_MDSS_ESC0_CLK>;
1116				clock-names = "mdp_core",
1117					      "iface",
1118					      "bus",
1119					      "byte",
1120					      "pixel",
1121					      "core";
1122				phys = <&mdss_dsi0_phy>;
1123
1124				operating-points-v2 = <&mdss_dsi0_opp_table>;
1125				power-domains = <&rpmpd RPMPD_VDDCX>;
1126
1127				#address-cells = <1>;
1128				#size-cells = <0>;
1129
1130				status = "disabled";
1131
1132				ports {
1133					#address-cells = <1>;
1134					#size-cells = <0>;
1135
1136					port@0 {
1137						reg = <0>;
1138						mdss_dsi0_in: endpoint {
1139							remote-endpoint = <&mdp5_intf1_out>;
1140						};
1141					};
1142
1143					port@1 {
1144						reg = <1>;
1145						mdss_dsi0_out: endpoint {
1146						};
1147					};
1148				};
1149
1150				mdss_dsi0_opp_table: opp-table {
1151					compatible = "operating-points-v2";
1152
1153					opp-125000000 {
1154						opp-hz = /bits/ 64 <125000000>;
1155						required-opps = <&rpmpd_opp_svs>;
1156					};
1157
1158					opp-187500000 {
1159						opp-hz = /bits/ 64 <187500000>;
1160						required-opps = <&rpmpd_opp_nom>;
1161					};
1162				};
1163			};
1164
1165			mdss_dsi0_phy: phy@1a94400 {
1166				compatible = "qcom,dsi-phy-28nm-8937";
1167				reg = <0x01a94a00 0xd4>,
1168				      <0x01a94400 0x280>,
1169				      <0x01a94b80 0x30>;
1170				reg-names = "dsi_pll",
1171					    "dsi_phy",
1172					    "dsi_phy_regulator";
1173
1174				#clock-cells = <1>;
1175				#phy-cells = <0>;
1176
1177				clocks = <&gcc GCC_MDSS_AHB_CLK>,
1178					 <&rpmcc RPM_SMD_XO_CLK_SRC>;
1179				clock-names = "iface",
1180					      "ref";
1181
1182				status = "disabled";
1183			};
1184
1185			mdss_dsi1: dsi@1a96000 {
1186				compatible = "qcom,mdss-dsi-ctrl";
1187				reg = <0x01a96000 0x300>;
1188				reg-names = "dsi_ctrl";
1189
1190				interrupt-parent = <&mdss>;
1191				interrupts = <4>;
1192
1193				assigned-clocks = <&gcc MSM8937_BYTE1_CLK_SRC>,
1194						  <&gcc MSM8937_PCLK1_CLK_SRC>;
1195				assigned-clock-parents = <&mdss_dsi1_phy DSI_BYTE_PLL_CLK>,
1196							 <&mdss_dsi1_phy DSI_PIXEL_PLL_CLK>;
1197
1198				clocks = <&gcc GCC_MDSS_MDP_CLK>,
1199					 <&gcc GCC_MDSS_AHB_CLK>,
1200					 <&gcc GCC_MDSS_AXI_CLK>,
1201					 <&gcc MSM8937_GCC_MDSS_BYTE1_CLK>,
1202					 <&gcc MSM8937_GCC_MDSS_PCLK1_CLK>,
1203					 <&gcc MSM8937_GCC_MDSS_ESC1_CLK>;
1204				clock-names = "mdp_core",
1205					      "iface",
1206					      "bus",
1207					      "byte",
1208					      "pixel",
1209					      "core";
1210				phys = <&mdss_dsi1_phy>;
1211
1212				operating-points-v2 = <&mdss_dsi1_opp_table>;
1213				power-domains = <&rpmpd RPMPD_VDDCX>;
1214
1215				#address-cells = <1>;
1216				#size-cells = <0>;
1217
1218				status = "disabled";
1219
1220				ports {
1221					#address-cells = <1>;
1222					#size-cells = <0>;
1223
1224					port@0 {
1225						reg = <0>;
1226						mdss_dsi1_in: endpoint {
1227							remote-endpoint = <&mdp5_intf2_out>;
1228						};
1229					};
1230
1231					port@1 {
1232						reg = <1>;
1233						mdss_dsi1_out: endpoint {
1234						};
1235					};
1236				};
1237
1238				mdss_dsi1_opp_table: opp-table {
1239					compatible = "operating-points-v2";
1240
1241					opp-125000000 {
1242						opp-hz = /bits/ 64 <125000000>;
1243						required-opps = <&rpmpd_opp_svs>;
1244					};
1245
1246					opp-187500000 {
1247						opp-hz = /bits/ 64 <187500000>;
1248						required-opps = <&rpmpd_opp_nom>;
1249					};
1250				};
1251			};
1252
1253			mdss_dsi1_phy: phy@1a96a00 {
1254				compatible = "qcom,dsi-phy-28nm-8937";
1255				reg = <0x01a96a00 0xd4>,
1256				      <0x01a96400 0x280>,
1257				      <0x01a94b80 0x30>;
1258				reg-names = "dsi_pll",
1259					    "dsi_phy",
1260					    "dsi_phy_regulator";
1261
1262				#clock-cells = <1>;
1263				#phy-cells = <0>;
1264
1265				clocks = <&gcc GCC_MDSS_AHB_CLK>,
1266					 <&rpmcc RPM_SMD_XO_CLK_SRC>;
1267				clock-names = "iface",
1268					      "ref";
1269
1270				status = "disabled";
1271			};
1272		};
1273
1274		gpu: gpu@1c00000 {
1275			compatible = "qcom,adreno-505.0", "qcom,adreno";
1276			reg = <0x01c00000 0x40000>;
1277			reg-names = "kgsl_3d0_reg_memory";
1278			interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
1279			interrupt-names = "kgsl_3d0_irq";
1280			#cooling-cells = <2>;
1281			clocks = <&gcc GCC_OXILI_GFX3D_CLK>,
1282				 <&gcc GCC_OXILI_AHB_CLK>,
1283				 <&gcc GCC_BIMC_GFX_CLK>,
1284				 <&gcc GCC_BIMC_GPU_CLK>,
1285				 <&gcc MSM8937_GCC_OXILI_TIMER_CLK>,
1286				 <&gcc MSM8937_GCC_OXILI_AON_CLK>;
1287			clock-names = "core",
1288				      "iface",
1289				      "mem_iface",
1290				      "alt_mem_iface",
1291				      "rbbmtimer",
1292				      "alwayson";
1293			operating-points-v2 = <&gpu_opp_table>;
1294			power-domains = <&gcc OXILI_GX_GDSC>;
1295
1296			iommus = <&adreno_smmu 0>;
1297
1298			nvmem-cells = <&gpu_speed_bin>;
1299			nvmem-cell-names = "speed_bin";
1300
1301			status = "disabled";
1302
1303			gpu_opp_table: opp-table {
1304				compatible = "operating-points-v2";
1305
1306				opp-19200000 {
1307					opp-hz = /bits/ 64 <19200000>;
1308					opp-supported-hw = <0xff>;
1309					required-opps = <&rpmpd_opp_min_svs>;
1310				};
1311
1312				opp-216000000 {
1313					opp-hz = /bits/ 64 <216000000>;
1314					opp-supported-hw = <0xff>;
1315					required-opps = <&rpmpd_opp_svs>;
1316				};
1317
1318				opp-300000000 {
1319					opp-hz = /bits/ 64 <300000000>;
1320					opp-supported-hw = <0xff>;
1321					required-opps = <&rpmpd_opp_svs_plus>;
1322				};
1323
1324				opp-375000000 {
1325					opp-hz = /bits/ 64 <375000000>;
1326					opp-supported-hw = <0xff>;
1327					required-opps = <&rpmpd_opp_nom>;
1328				};
1329
1330				opp-400000000 {
1331					opp-hz = /bits/ 64 <400000000>;
1332					opp-supported-hw = <0xff>;
1333					required-opps = <&rpmpd_opp_nom_plus>;
1334				};
1335
1336				opp-450000000 {
1337					opp-hz = /bits/ 64 <450000000>;
1338					opp-supported-hw = <0xff>;
1339					required-opps = <&rpmpd_opp_turbo>;
1340				};
1341			};
1342		};
1343
1344		adreno_smmu: iommu@1c40000 {
1345			compatible = "qcom,msm8996-smmu-v2",
1346				     "qcom,adreno-smmu",
1347				     "qcom,smmu-v2";
1348			reg = <0x01c40000 0x10000>;
1349
1350			#global-interrupts = <1>;
1351			interrupts = <GIC_SPI 199 IRQ_TYPE_LEVEL_HIGH>,
1352				     <GIC_SPI 225 IRQ_TYPE_LEVEL_HIGH>,
1353				     <GIC_SPI 232 IRQ_TYPE_LEVEL_HIGH>,
1354				     <GIC_SPI 233 IRQ_TYPE_LEVEL_HIGH>,
1355				     <GIC_SPI 234 IRQ_TYPE_LEVEL_HIGH>;
1356			#iommu-cells = <1>;
1357
1358			clocks = <&gcc GCC_BIMC_GFX_CLK>,
1359				 <&gcc GCC_OXILI_AHB_CLK>;
1360			clock-names = "bus",
1361				      "iface";
1362
1363			power-domains = <&gcc MSM8937_OXILI_CX_GDSC>;
1364		};
1365
1366		apps_iommu: iommu@1e20000 {
1367			compatible = "qcom,msm8937-iommu", "qcom,msm-iommu-v1";
1368			ranges = <0 0x01e20000 0x20000>;
1369
1370			clocks = <&gcc GCC_SMMU_CFG_CLK>,
1371				 <&gcc GCC_APSS_TCU_CLK>;
1372			clock-names = "iface",
1373				      "bus";
1374
1375			qcom,iommu-secure-id = <17>;
1376
1377			#address-cells = <1>;
1378			#iommu-cells = <1>;
1379			#size-cells = <1>;
1380
1381			/* VFE */
1382			iommu-ctx@14000 {
1383				compatible = "qcom,msm-iommu-v1-ns";
1384				reg = <0x14000 0x1000>;
1385				interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
1386			};
1387
1388			/* MDP_0 */
1389			iommu-ctx@15000 {
1390				compatible = "qcom,msm-iommu-v1-ns";
1391				reg = <0x15000 0x1000>;
1392				interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>;
1393			};
1394
1395			/* VENUS_NS */
1396			iommu-ctx@16000 {
1397				compatible = "qcom,msm-iommu-v1-ns";
1398				reg = <0x16000 0x1000>;
1399				interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>;
1400			};
1401		};
1402
1403		spmi_bus: spmi@200f000 {
1404			compatible = "qcom,spmi-pmic-arb";
1405			reg = <0x0200f000 0x001000>,
1406			      <0x02400000 0x800000>,
1407			      <0x02c00000 0x800000>,
1408			      <0x03800000 0x200000>,
1409			      <0x0200a000 0x002100>;
1410			reg-names = "core",
1411				    "chnls",
1412				    "obsrvr",
1413				    "intr",
1414				    "cnfg";
1415			interrupt-names = "periph_irq";
1416			interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>;
1417			qcom,ee = <0>;
1418			qcom,channel = <0>;
1419			#address-cells = <2>;
1420			#size-cells = <0>;
1421			interrupt-controller;
1422			#interrupt-cells = <4>;
1423		};
1424
1425		bam_dmux_dma: dma-controller@4044000 {
1426			compatible = "qcom,bam-v1.7.0";
1427			reg = <0x04044000 0x19000>;
1428			interrupts = <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>;
1429			#dma-cells = <1>;
1430			qcom,ee = <0>;
1431
1432			num-channels = <6>;
1433			qcom,num-ees = <1>;
1434			qcom,powered-remotely;
1435
1436			status = "disabled";
1437		};
1438
1439		sdhc_1: mmc@7824900 {
1440			compatible = "qcom,sdhci-msm-v4";
1441			reg = <0x07824900 0x500>,
1442			      <0x07824000 0x800>;
1443			reg-names = "hc",
1444				    "core";
1445
1446			interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>,
1447				     <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>;
1448			interrupt-names = "hc_irq",
1449					  "pwr_irq";
1450			clocks = <&gcc GCC_SDCC1_AHB_CLK>,
1451				 <&gcc GCC_SDCC1_APPS_CLK>,
1452				 <&rpmcc RPM_SMD_XO_CLK_SRC>;
1453			clock-names = "iface",
1454				      "core",
1455				      "xo";
1456			pinctrl-0 = <&sdc1_default>;
1457			pinctrl-1 = <&sdc1_sleep>;
1458			pinctrl-names = "default",
1459					"sleep";
1460			power-domains = <&rpmpd RPMPD_VDDCX>;
1461			mmc-hs200-1_8v;
1462			mmc-hs400-1_8v;
1463			mmc-ddr-1_8v;
1464			bus-width = <8>;
1465			non-removable;
1466			status = "disabled";
1467		};
1468
1469		sdhc_2: mmc@7864900 {
1470			compatible = "qcom,sdhci-msm-v4";
1471			reg = <0x07864900 0x500>,
1472			      <0x07864000 0x800>;
1473			reg-names = "hc",
1474				    "core";
1475
1476			interrupts = <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>,
1477				     <GIC_SPI 221 IRQ_TYPE_LEVEL_HIGH>;
1478			interrupt-names = "hc_irq",
1479					  "pwr_irq";
1480			clocks = <&gcc GCC_SDCC2_AHB_CLK>,
1481				 <&gcc GCC_SDCC2_APPS_CLK>,
1482				 <&rpmcc RPM_SMD_XO_CLK_SRC>;
1483			clock-names = "iface",
1484				      "core",
1485				      "xo";
1486			pinctrl-0 = <&sdc2_default>;
1487			pinctrl-1 = <&sdc2_sleep>;
1488			pinctrl-names = "default",
1489					"sleep";
1490			power-domains = <&rpmpd RPMPD_VDDCX>;
1491			bus-width = <4>;
1492			status = "disabled";
1493		};
1494
1495		blsp1_dma: dma-controller@7884000 {
1496			compatible = "qcom,bam-v1.7.0";
1497			reg = <0x07884000 0x1f000>;
1498			interrupts = <GIC_SPI 238 IRQ_TYPE_LEVEL_HIGH>;
1499			clocks = <&gcc GCC_BLSP1_AHB_CLK>;
1500			clock-names = "bam_clk";
1501			qcom,controlled-remotely;
1502			#dma-cells = <1>;
1503			num-channels = <12>;
1504			qcom,num-ees = <4>;
1505			qcom,ee = <0>;
1506		};
1507
1508		blsp1_uart2: serial@78b0000 {
1509			compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
1510			reg = <0x078b0000 0x200>;
1511			interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
1512			clocks = <&gcc GCC_BLSP1_UART2_APPS_CLK>,
1513				 <&gcc GCC_BLSP1_AHB_CLK>;
1514			clock-names = "core",
1515				      "iface";
1516			dmas = <&blsp1_dma 2>,
1517			       <&blsp1_dma 3>;
1518			dma-names = "tx",
1519				    "rx";
1520			pinctrl-0 = <&blsp1_uart2_default>;
1521			pinctrl-1 = <&blsp1_uart2_sleep>;
1522			pinctrl-names = "default",
1523					"sleep";
1524			status = "disabled";
1525		};
1526
1527		blsp1_i2c2: i2c@78b6000 {
1528			compatible = "qcom,i2c-qup-v2.2.1";
1529			reg = <0x078b6000 0x600>;
1530			interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
1531			clocks = <&gcc GCC_BLSP1_QUP2_I2C_APPS_CLK>,
1532				 <&gcc GCC_BLSP1_AHB_CLK>;
1533			clock-names = "core", "iface";
1534			dmas = <&blsp1_dma 6>,
1535			       <&blsp1_dma 7>;
1536			dma-names = "tx",
1537				    "rx";
1538			pinctrl-0 = <&blsp1_i2c2_default>;
1539			pinctrl-1 = <&blsp1_i2c2_sleep>;
1540			pinctrl-names = "default",
1541					"sleep";
1542			#address-cells = <1>;
1543			#size-cells = <0>;
1544			status = "disabled";
1545		};
1546
1547		blsp1_i2c3: i2c@78b7000 {
1548			compatible = "qcom,i2c-qup-v2.2.1";
1549			reg = <0x078b7000 0x600>;
1550			interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
1551			clocks = <&gcc GCC_BLSP1_QUP3_I2C_APPS_CLK>,
1552				 <&gcc GCC_BLSP1_AHB_CLK>;
1553			clock-names = "core",
1554				      "iface";
1555			dmas = <&blsp1_dma 8>,
1556			       <&blsp1_dma 9>;
1557			dma-names = "tx",
1558				    "rx";
1559			pinctrl-0 = <&blsp1_i2c3_default>;
1560			pinctrl-1 = <&blsp1_i2c3_sleep>;
1561			pinctrl-names = "default",
1562					"sleep";
1563			#address-cells = <1>;
1564			#size-cells = <0>;
1565			status = "disabled";
1566		};
1567
1568		blsp1_spi3: spi@78b7000 {
1569			compatible = "qcom,spi-qup-v2.2.1";
1570			reg = <0x078b7000 0x600>;
1571			interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
1572			clocks = <&gcc GCC_BLSP1_QUP3_SPI_APPS_CLK>,
1573				 <&gcc GCC_BLSP1_AHB_CLK>;
1574			clock-names = "core",
1575				      "iface";
1576			dmas = <&blsp1_dma 8>,
1577			       <&blsp1_dma 9>;
1578			dma-names = "tx",
1579				    "rx";
1580			pinctrl-0 = <&blsp1_spi3_default>;
1581			pinctrl-1 = <&blsp1_spi3_sleep>;
1582			pinctrl-names = "default",
1583					"sleep";
1584			#address-cells = <1>;
1585			#size-cells = <0>;
1586			status = "disabled";
1587		};
1588
1589		blsp1_i2c4: i2c@78b8000 {
1590			compatible = "qcom,i2c-qup-v2.2.1";
1591			reg = <0x078b8000 0x500>;
1592			interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
1593			clocks = <&gcc GCC_BLSP1_QUP4_I2C_APPS_CLK>,
1594				 <&gcc GCC_BLSP1_AHB_CLK>;
1595			clock-names = "core",
1596				      "iface";
1597			dmas = <&blsp1_dma 10>,
1598			       <&blsp1_dma 11>;
1599			dma-names = "tx",
1600				    "rx";
1601			pinctrl-0 = <&blsp1_i2c4_default>;
1602			pinctrl-1 = <&blsp1_i2c4_sleep>;
1603			pinctrl-names = "default",
1604					"sleep";
1605			#address-cells = <1>;
1606			#size-cells = <0>;
1607			status = "disabled";
1608		};
1609
1610		blsp2_dma: dma-controller@7ac4000 {
1611			compatible = "qcom,bam-v1.7.0";
1612			reg = <0x07ac4000 0x1d000>;
1613			interrupts = <GIC_SPI 239 IRQ_TYPE_LEVEL_HIGH>;
1614			clocks = <&gcc GCC_BLSP2_AHB_CLK>;
1615			clock-names = "bam_clk";
1616			qcom,controlled-remotely;
1617			#dma-cells = <1>;
1618			num-channels = <10>;
1619			qcom,num-ees = <4>;
1620			qcom,ee = <0>;
1621		};
1622
1623		blsp2_i2c1: i2c@7af5000 {
1624			compatible = "qcom,i2c-qup-v2.2.1";
1625			reg = <0x07af5000 0x600>;
1626			interrupts = <GIC_SPI 299 IRQ_TYPE_LEVEL_HIGH>;
1627			clocks = <&gcc GCC_BLSP2_QUP1_I2C_APPS_CLK>,
1628				 <&gcc GCC_BLSP2_AHB_CLK>;
1629			clock-names = "core",
1630				      "iface";
1631			dmas = <&blsp2_dma 4>,
1632			       <&blsp2_dma 5>;
1633			dma-names = "tx",
1634				    "rx";
1635			pinctrl-0 = <&blsp2_i2c1_default>;
1636			pinctrl-1 = <&blsp2_i2c1_sleep>;
1637			pinctrl-names = "default",
1638					"sleep";
1639			#address-cells = <1>;
1640			#size-cells = <0>;
1641			status = "disabled";
1642		};
1643
1644		blsp2_spi2: spi@7af6000 {
1645			compatible = "qcom,spi-qup-v2.2.1";
1646			reg = <0x07af6000 0x600>;
1647			interrupts = <GIC_SPI 300 IRQ_TYPE_LEVEL_HIGH>;
1648			clocks = <&gcc GCC_BLSP2_QUP2_SPI_APPS_CLK>,
1649				 <&gcc GCC_BLSP2_AHB_CLK>;
1650			clock-names = "core",
1651				      "iface";
1652			dmas = <&blsp2_dma 6>,
1653			       <&blsp2_dma 7>;
1654			dma-names = "tx",
1655				    "rx";
1656			pinctrl-0 = <&blsp2_spi2_default>;
1657			pinctrl-1 = <&blsp2_spi2_sleep>;
1658			pinctrl-names = "default",
1659					"sleep";
1660			#address-cells = <1>;
1661			#size-cells = <0>;
1662			status = "disabled";
1663		};
1664
1665		usb: usb@78db000 {
1666			compatible = "qcom,ci-hdrc";
1667			reg = <0x078db000 0x200>,
1668			      <0x078db200 0x200>;
1669			interrupts = <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>,
1670				     <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
1671			clocks = <&gcc GCC_USB_HS_AHB_CLK>,
1672				 <&gcc GCC_USB_HS_SYSTEM_CLK>;
1673			clock-names = "iface",
1674				      "core";
1675			assigned-clocks = <&gcc GCC_USB_HS_SYSTEM_CLK>;
1676			assigned-clock-rates = <80000000>;
1677			resets = <&gcc GCC_USB_HS_BCR>;
1678			reset-names = "core";
1679			phy_type = "ulpi";
1680			dr_mode = "otg";
1681			hnp-disable;
1682			srp-disable;
1683			adp-disable;
1684			ahb-burst-config = <0>;
1685			phy-names = "usb-phy";
1686			phys = <&usb_hs_phy>;
1687			status = "disabled";
1688			#reset-cells = <1>;
1689		};
1690
1691		wcnss: remoteproc@a204000 {
1692			compatible = "qcom,pronto-v3-pil", "qcom,pronto";
1693			reg = <0x0a204000 0x2000>,
1694			      <0x0a202000 0x1000>,
1695			      <0x0a21b000 0x3000>;
1696			reg-names = "ccu",
1697				    "dxe",
1698				    "pmu";
1699
1700			memory-region = <&wcnss_mem>;
1701
1702			interrupts-extended = <&intc GIC_SPI 149 IRQ_TYPE_EDGE_RISING>,
1703					      <&wcnss_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
1704					      <&wcnss_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
1705					      <&wcnss_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
1706					      <&wcnss_smp2p_in 3 IRQ_TYPE_EDGE_RISING>;
1707			interrupt-names = "wdog",
1708					  "fatal",
1709					  "ready",
1710					  "handover",
1711					  "stop-ack";
1712
1713			power-domains = <&rpmpd RPMPD_VDDCX>,
1714					<&rpmpd RPMPD_VDDMX>;
1715			power-domain-names = "cx",
1716					     "mx";
1717
1718			qcom,smem-states = <&wcnss_smp2p_out 0>;
1719			qcom,smem-state-names = "stop";
1720
1721			pinctrl-0 = <&wcnss_pin_a>;
1722			pinctrl-names = "default";
1723
1724			status = "disabled";
1725
1726			wcnss_iris: iris {
1727				clocks = <&rpmcc RPM_SMD_RF_CLK2>;
1728				clock-names = "xo";
1729			};
1730
1731			smd-edge {
1732				interrupts = <GIC_SPI 142 IRQ_TYPE_EDGE_RISING>;
1733
1734				mboxes = <&apcs1 17>;
1735				qcom,smd-edge = <6>;
1736				qcom,remote-pid = <4>;
1737
1738				label = "pronto";
1739
1740				wcnss_ctrl: wcnss {
1741					compatible = "qcom,wcnss";
1742					qcom,smd-channels = "WCNSS_CTRL";
1743
1744					qcom,mmio = <&wcnss>;
1745
1746					wcnss_bt: bluetooth {
1747						compatible = "qcom,wcnss-bt";
1748					};
1749
1750					wcnss_wifi: wifi {
1751						compatible = "qcom,wcnss-wlan";
1752
1753						interrupts = <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>,
1754							     <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>;
1755						interrupt-names = "tx",
1756								  "rx";
1757
1758						qcom,smem-states = <&apps_smsm 10>, <&apps_smsm 9>;
1759						qcom,smem-state-names = "tx-enable",
1760									"tx-rings-empty";
1761					};
1762				};
1763			};
1764		};
1765
1766		intc: interrupt-controller@b000000 {
1767			compatible = "qcom,msm-qgic2";
1768			interrupt-controller;
1769			#interrupt-cells = <3>;
1770			reg = <0x0b000000 0x1000>,
1771			      <0x0b002000 0x1000>;
1772		};
1773
1774		apcs1: mailbox@b011000 {
1775			compatible = "qcom,msm8939-apcs-kpss-global", "syscon";
1776			reg = <0x0b011000 0x1000>;
1777			#mbox-cells = <1>;
1778		};
1779
1780		watchdog@b017000 {
1781			compatible = "qcom,apss-wdt-qcs404", "qcom,kpss-wdt";
1782			reg = <0x0b017000 0x1000>;
1783			clocks = <&sleep_clk>;
1784		};
1785
1786		timer@b120000 {
1787			compatible = "arm,armv7-timer-mem";
1788			reg = <0x0b120000 0x1000>;
1789			ranges;
1790			#address-cells = <1>;
1791			#size-cells = <1>;
1792
1793			frame@b121000 {
1794				reg = <0x0b121000 0x1000>,
1795				      <0x0b122000 0x1000>;
1796				frame-number = <0>;
1797				interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
1798					     <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
1799			};
1800
1801			frame@b123000 {
1802				reg = <0x0b123000 0x1000>;
1803				frame-number = <1>;
1804				interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
1805				status = "disabled";
1806			};
1807
1808			frame@b124000 {
1809				reg = <0x0b124000 0x1000>;
1810				frame-number = <2>;
1811				interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
1812				status = "disabled";
1813			};
1814
1815			frame@b125000 {
1816				reg = <0x0b125000 0x1000>;
1817				frame-number = <3>;
1818				interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
1819				status = "disabled";
1820			};
1821
1822			frame@b126000 {
1823				reg = <0x0b126000 0x1000>;
1824				frame-number = <4>;
1825				interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
1826				status = "disabled";
1827			};
1828
1829			frame@b127000 {
1830				reg = <0x0b127000 0x1000>;
1831				frame-number = <5>;
1832				interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
1833				status = "disabled";
1834			};
1835
1836			frame@b128000 {
1837				reg = <0x0b128000 0x1000>;
1838				frame-number = <6>;
1839				interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
1840				status = "disabled";
1841			};
1842		};
1843	};
1844
1845	thermal_zones: thermal-zones {
1846		aoss-thermal {
1847			thermal-sensors = <&tsens 0>;
1848
1849			trips {
1850				aoss_alert0: trip-point0 {
1851					temperature = <85000>;
1852					hysteresis = <2000>;
1853					type = "critical";
1854				};
1855			};
1856		};
1857
1858		mdm-core-thermal {
1859			thermal-sensors = <&tsens 1>;
1860
1861			trips {
1862				mdm_core_alert0: trip-point0 {
1863					temperature = <85000>;
1864					hysteresis = <2000>;
1865					type = "critical";
1866				};
1867			};
1868		};
1869
1870		q6-thermal {
1871			thermal-sensors = <&tsens 2>;
1872
1873			trips {
1874				q6_alert0: trip-point0 {
1875					temperature = <85000>;
1876					hysteresis = <2000>;
1877					type = "critical";
1878				};
1879			};
1880		};
1881
1882		camera-thermal {
1883			thermal-sensors = <&tsens 3>;
1884
1885			trips {
1886				camera_alert0: trip-point0 {
1887					temperature = <85000>;
1888					hysteresis = <2000>;
1889					type = "critical";
1890				};
1891			};
1892		};
1893
1894		cpuss1-thermal {
1895			thermal-sensors = <&tsens 4>;
1896
1897			cooling-maps {
1898				map0 {
1899					trip = <&cpuss1_alert0>;
1900					cooling-device = <&cpu4 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
1901							 <&cpu5 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
1902							 <&cpu6 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
1903							 <&cpu7 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
1904				};
1905			};
1906
1907			trips {
1908				cpuss1_alert0: trip-point0 {
1909					temperature = <75000>;
1910					hysteresis = <2000>;
1911					type = "passive";
1912				};
1913
1914				cpuss1_alert1: trip-point1 {
1915					temperature = <85000>;
1916					hysteresis = <2000>;
1917					type = "hot";
1918				};
1919
1920				cpuss1_crit: cpuss1-crit {
1921					temperature = <100000>;
1922					hysteresis = <2000>;
1923					type = "critical";
1924				};
1925			};
1926		};
1927
1928		cpu4-thermal {
1929			thermal-sensors = <&tsens 5>;
1930
1931			cooling-maps {
1932				map0 {
1933					trip = <&cpu4_alert1>;
1934					cooling-device = <&cpu4 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
1935							 <&cpu5 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
1936							 <&cpu6 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
1937							 <&cpu7 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
1938				};
1939			};
1940
1941			trips {
1942				cpu4_alert0: trip-point0 {
1943					temperature = <75000>;
1944					hysteresis = <2000>;
1945					type = "passive";
1946				};
1947
1948				cpu4_alert1: trip-point1 {
1949					temperature = <85000>;
1950					hysteresis = <2000>;
1951					type = "hot";
1952				};
1953
1954				cpu4_crit: cpu-crit {
1955					temperature = <100000>;
1956					hysteresis = <2000>;
1957					type = "critical";
1958				};
1959			};
1960		};
1961
1962		cpu5-thermal {
1963			thermal-sensors = <&tsens 6>;
1964
1965			cooling-maps {
1966				map0 {
1967					trip = <&cpu5_alert1>;
1968					cooling-device = <&cpu4 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
1969							 <&cpu5 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
1970							 <&cpu6 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
1971							 <&cpu7 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
1972				};
1973			};
1974
1975			trips {
1976				cpu5_alert0: trip-point0 {
1977					temperature = <75000>;
1978					hysteresis = <2000>;
1979					type = "hot";
1980				};
1981
1982				cpu5_alert1: trip-point1 {
1983					temperature = <85000>;
1984					hysteresis = <2000>;
1985					type = "passive";
1986				};
1987
1988				cpu5_crit: cpu-crit {
1989					temperature = <100000>;
1990					hysteresis = <2000>;
1991					type = "critical";
1992				};
1993			};
1994		};
1995
1996		cpu6-thermal {
1997			thermal-sensors = <&tsens 7>;
1998
1999			cooling-maps {
2000				map0 {
2001					trip = <&cpu6_alert1>;
2002					cooling-device = <&cpu4 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
2003							 <&cpu5 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
2004							 <&cpu6 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
2005							 <&cpu7 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
2006				};
2007			};
2008
2009			trips {
2010				cpu6_alert0: trip-point0 {
2011					temperature = <75000>;
2012					hysteresis = <2000>;
2013					type = "hot";
2014				};
2015
2016				cpu6_alert1: trip-point1 {
2017					temperature = <85000>;
2018					hysteresis = <2000>;
2019					type = "passive";
2020				};
2021
2022				cpu6_crit: cpu-crit {
2023					temperature = <100000>;
2024					hysteresis = <2000>;
2025					type = "critical";
2026				};
2027			};
2028		};
2029
2030		cpu7-thermal {
2031			thermal-sensors = <&tsens 8>;
2032
2033			cooling-maps {
2034				map0 {
2035					trip = <&cpu7_alert1>;
2036					cooling-device = <&cpu4 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
2037							 <&cpu5 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
2038							 <&cpu6 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
2039							 <&cpu7 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
2040				};
2041			};
2042
2043			trips {
2044				cpu7_alert0: trip-point0 {
2045					temperature = <75000>;
2046					hysteresis = <2000>;
2047					type = "hot";
2048				};
2049
2050				cpu7_alert1: trip-point1 {
2051					temperature = <85000>;
2052					hysteresis = <2000>;
2053					type = "passive";
2054				};
2055
2056				cpu7_crit: cpu-crit {
2057					temperature = <100000>;
2058					hysteresis = <2000>;
2059					type = "critical";
2060				};
2061			};
2062		};
2063
2064		cpuss0-thermal {
2065			thermal-sensors = <&tsens 9>;
2066
2067			cooling-maps {
2068				map0 {
2069					trip = <&cpuss0_alert0>;
2070					cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
2071							 <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
2072							 <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
2073							 <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
2074				};
2075			};
2076
2077			trips {
2078				cpuss0_alert0: trip-point0 {
2079					temperature = <75000>;
2080					hysteresis = <2000>;
2081					type = "passive";
2082				};
2083
2084				cpuss0_alert1: trip-point1 {
2085					temperature = <85000>;
2086					hysteresis = <2000>;
2087					type = "hot";
2088				};
2089
2090				cpuss0_crit: cpuss0-crit {
2091					temperature = <100000>;
2092					hysteresis = <2000>;
2093					type = "critical";
2094				};
2095			};
2096		};
2097
2098		gpu-thermal {
2099			polling-delay-passive = <250>;
2100
2101			thermal-sensors = <&tsens 10>;
2102
2103			cooling-maps {
2104				map0 {
2105					trip = <&gpu_alert>;
2106					cooling-device = <&gpu THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
2107				};
2108			};
2109
2110			trips {
2111				gpu_alert: trip-point0 {
2112					temperature = <70000>;
2113					hysteresis = <2000>;
2114					type = "passive";
2115				};
2116
2117				gpu_crit: gpu-crit {
2118					temperature = <90000>;
2119					hysteresis = <2000>;
2120					type = "critical";
2121				};
2122			};
2123		};
2124	};
2125
2126	timer {
2127		compatible = "arm,armv8-timer";
2128		interrupts = <GIC_PPI 2 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
2129			     <GIC_PPI 3 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
2130			     <GIC_PPI 4 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
2131			     <GIC_PPI 1 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>;
2132	};
2133};
2134
2135