xref: /openbmc/linux/arch/arm64/boot/dts/qcom/msm8953.dtsi (revision 724ba6751532055db75992fc6ae21c3e322e94a7)
1// SPDX-License-Identifier: BSD-3-Clause
2/* Copyright (c) 2022, The Linux Foundation. All rights reserved. */
3
4#include <dt-bindings/clock/qcom,gcc-msm8953.h>
5#include <dt-bindings/clock/qcom,rpmcc.h>
6#include <dt-bindings/gpio/gpio.h>
7#include <dt-bindings/interrupt-controller/arm-gic.h>
8#include <dt-bindings/power/qcom-rpmpd.h>
9#include <dt-bindings/soc/qcom,apr.h>
10#include <dt-bindings/sound/qcom,q6afe.h>
11#include <dt-bindings/sound/qcom,q6asm.h>
12#include <dt-bindings/thermal/thermal.h>
13
14/ {
15	interrupt-parent = <&intc>;
16
17	#address-cells = <2>;
18	#size-cells = <2>;
19
20	chosen { };
21
22	clocks {
23		sleep_clk: sleep-clk {
24			compatible = "fixed-clock";
25			#clock-cells = <0>;
26			clock-frequency = <32768>;
27		};
28
29		xo_board: xo-board {
30			compatible = "fixed-clock";
31			#clock-cells = <0>;
32			clock-frequency = <19200000>;
33			clock-output-names = "xo";
34		};
35	};
36
37	cpus {
38		#address-cells = <1>;
39		#size-cells = <0>;
40
41		CPU0: cpu@0 {
42			device_type = "cpu";
43			compatible = "arm,cortex-a53";
44			reg = <0x0>;
45			enable-method = "psci";
46			capacity-dmips-mhz = <1024>;
47			next-level-cache = <&L2_0>;
48			#cooling-cells = <2>;
49		};
50
51		CPU1: cpu@1 {
52			device_type = "cpu";
53			compatible = "arm,cortex-a53";
54			reg = <0x1>;
55			enable-method = "psci";
56			capacity-dmips-mhz = <1024>;
57			next-level-cache = <&L2_0>;
58			#cooling-cells = <2>;
59		};
60
61		CPU2: cpu@2 {
62			device_type = "cpu";
63			compatible = "arm,cortex-a53";
64			reg = <0x2>;
65			enable-method = "psci";
66			capacity-dmips-mhz = <1024>;
67			next-level-cache = <&L2_0>;
68			#cooling-cells = <2>;
69		};
70
71		CPU3: cpu@3 {
72			device_type = "cpu";
73			compatible = "arm,cortex-a53";
74			reg = <0x3>;
75			enable-method = "psci";
76			capacity-dmips-mhz = <1024>;
77			next-level-cache = <&L2_0>;
78			#cooling-cells = <2>;
79		};
80
81		CPU4: cpu@100 {
82			device_type = "cpu";
83			compatible = "arm,cortex-a53";
84			reg = <0x100>;
85			enable-method = "psci";
86			capacity-dmips-mhz = <1024>;
87			next-level-cache = <&L2_1>;
88			#cooling-cells = <2>;
89		};
90
91		CPU5: cpu@101 {
92			device_type = "cpu";
93			compatible = "arm,cortex-a53";
94			reg = <0x101>;
95			enable-method = "psci";
96			capacity-dmips-mhz = <1024>;
97			next-level-cache = <&L2_1>;
98			#cooling-cells = <2>;
99		};
100
101		CPU6: cpu@102 {
102			device_type = "cpu";
103			compatible = "arm,cortex-a53";
104			reg = <0x102>;
105			enable-method = "psci";
106			capacity-dmips-mhz = <1024>;
107			next-level-cache = <&L2_1>;
108			#cooling-cells = <2>;
109		};
110
111		CPU7: cpu@103 {
112			device_type = "cpu";
113			compatible = "arm,cortex-a53";
114			reg = <0x103>;
115			enable-method = "psci";
116			capacity-dmips-mhz = <1024>;
117			next-level-cache = <&L2_1>;
118			#cooling-cells = <2>;
119		};
120
121		cpu-map {
122			cluster0 {
123				core0 {
124					cpu = <&CPU0>;
125				};
126				core1 {
127					cpu = <&CPU1>;
128				};
129				core2 {
130					cpu = <&CPU2>;
131				};
132				core3 {
133					cpu = <&CPU3>;
134				};
135			};
136
137			cluster1 {
138				core0 {
139					cpu = <&CPU4>;
140				};
141				core1 {
142					cpu = <&CPU5>;
143				};
144				core2 {
145					cpu = <&CPU6>;
146				};
147				core3 {
148					cpu = <&CPU7>;
149				};
150			};
151		};
152
153		L2_0: l2-cache-0 {
154			compatible = "cache";
155			cache-level = <2>;
156		};
157
158		L2_1: l2-cache-1 {
159			compatible = "cache";
160			cache-level = <2>;
161		};
162	};
163
164	firmware {
165		scm: scm {
166			compatible = "qcom,scm-msm8953", "qcom,scm";
167			clocks = <&gcc GCC_CRYPTO_CLK>,
168				 <&gcc GCC_CRYPTO_AXI_CLK>,
169				 <&gcc GCC_CRYPTO_AHB_CLK>;
170			clock-names = "core", "bus", "iface";
171			#reset-cells = <1>;
172		};
173	};
174
175	memory {
176		device_type = "memory";
177		/* We expect the bootloader to fill in the reg */
178		reg = <0 0 0 0>;
179	};
180
181	pmu {
182		compatible = "arm,cortex-a53-pmu";
183		interrupts = <GIC_PPI 7 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_HIGH)>;
184	};
185
186	psci {
187		compatible = "arm,psci-1.0";
188		method = "smc";
189	};
190
191	reserved-memory {
192		#address-cells = <2>;
193		#size-cells = <2>;
194		ranges;
195
196		zap_shader_region: zap@81800000 {
197			compatible = "shared-dma-pool";
198			reg = <0x0 0x81800000 0x0 0x2000>;
199			no-map;
200		};
201
202		qseecom_mem: qseecom@85b00000 {
203			reg = <0x0 0x85b00000 0x0 0x800000>;
204			no-map;
205		};
206
207		smem_mem: smem@86300000 {
208			compatible = "qcom,smem";
209			reg = <0x0 0x86300000 0x0 0x100000>;
210			qcom,rpm-msg-ram = <&rpm_msg_ram>;
211			hwlocks = <&tcsr_mutex 3>;
212			no-map;
213		};
214
215		reserved@86400000 {
216			reg = <0x0 0x86400000 0x0 0x400000>;
217			no-map;
218		};
219
220		mpss_mem: mpss@86c00000 {
221			reg = <0x0 0x86c00000 0x0 0x6a00000>;
222			no-map;
223		};
224
225		adsp_fw_mem: adsp@8d600000 {
226			reg = <0x0 0x8d600000 0x0 0x1100000>;
227			no-map;
228		};
229
230		wcnss_fw_mem: wcnss@8e700000 {
231			reg = <0x0 0x8e700000 0x0 0x700000>;
232			no-map;
233		};
234
235		dfps_data_mem: dfps-data@90000000 {
236			reg = <0 0x90000000 0 0x1000>;
237			no-map;
238		};
239
240		cont_splash_mem: cont-splash@90001000 {
241			reg = <0x0 0x90001000 0x0 0x13ff000>;
242			no-map;
243		};
244
245		venus_mem: venus@91400000 {
246			reg = <0x0 0x91400000 0x0 0x700000>;
247			no-map;
248		};
249
250		mba_mem: mba@92000000 {
251			reg = <0x0 0x92000000 0x0 0x100000>;
252			no-map;
253		};
254
255		rmtfs@f2d00000 {
256			compatible = "qcom,rmtfs-mem";
257			reg = <0x0 0xf2d00000 0x0 0x180000>;
258			no-map;
259
260			qcom,client-id = <1>;
261		};
262	};
263
264	smd {
265		compatible = "qcom,smd";
266
267		rpm {
268			interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>;
269			qcom,ipc = <&apcs 8 0>;
270			qcom,smd-edge = <15>;
271
272			rpm_requests: rpm-requests {
273				compatible = "qcom,rpm-msm8953";
274				qcom,smd-channels = "rpm_requests";
275
276				rpmcc: clock-controller {
277					compatible = "qcom,rpmcc-msm8953", "qcom,rpmcc";
278					clocks = <&xo_board>;
279					clock-names = "xo";
280					#clock-cells = <1>;
281				};
282
283				rpmpd: power-controller {
284					compatible = "qcom,msm8953-rpmpd";
285					#power-domain-cells = <1>;
286					operating-points-v2 = <&rpmpd_opp_table>;
287
288					rpmpd_opp_table: opp-table {
289						compatible = "operating-points-v2";
290
291						rpmpd_opp_ret: opp1 {
292							opp-level = <RPM_SMD_LEVEL_RETENTION>;
293						};
294
295						rpmpd_opp_ret_plus: opp2 {
296							opp-level = <RPM_SMD_LEVEL_RETENTION_PLUS>;
297						};
298
299						rpmpd_opp_min_svs: opp3 {
300							opp-level = <RPM_SMD_LEVEL_MIN_SVS>;
301						};
302
303						rpmpd_opp_low_svs: opp4 {
304							opp-level = <RPM_SMD_LEVEL_LOW_SVS>;
305						};
306
307						rpmpd_opp_svs: opp5 {
308							opp-level = <RPM_SMD_LEVEL_SVS>;
309						};
310
311						rpmpd_opp_svs_plus: opp6 {
312							opp-level = <RPM_SMD_LEVEL_SVS_PLUS>;
313						};
314
315						rpmpd_opp_nom: opp7 {
316							opp-level = <RPM_SMD_LEVEL_NOM>;
317						};
318
319						rpmpd_opp_nom_plus: opp8 {
320							opp-level = <RPM_SMD_LEVEL_NOM_PLUS>;
321						};
322
323						rpmpd_opp_turbo: opp9 {
324							opp-level = <RPM_SMD_LEVEL_TURBO>;
325						};
326					};
327				};
328			};
329		};
330	};
331
332	smp2p-adsp {
333		compatible = "qcom,smp2p";
334		qcom,smem = <443>, <429>;
335
336		interrupts = <GIC_SPI 291 IRQ_TYPE_EDGE_RISING>;
337
338		mboxes = <&apcs 10>;
339
340		qcom,local-pid = <0>;
341		qcom,remote-pid = <2>;
342
343		smp2p_adsp_out: master-kernel {
344			qcom,entry-name = "master-kernel";
345			#qcom,smem-state-cells = <1>;
346		};
347
348		smp2p_adsp_in: slave-kernel {
349			qcom,entry-name = "slave-kernel";
350
351			interrupt-controller;
352			#interrupt-cells = <2>;
353		};
354	};
355
356	smp2p-modem {
357		compatible = "qcom,smp2p";
358		qcom,smem = <435>, <428>;
359
360		interrupts = <GIC_SPI 27 IRQ_TYPE_EDGE_RISING>;
361
362		qcom,ipc = <&apcs 8 14>;
363
364		qcom,local-pid = <0>;
365		qcom,remote-pid = <1>;
366
367		smp2p_modem_out: master-kernel {
368			qcom,entry-name = "master-kernel";
369
370			#qcom,smem-state-cells = <1>;
371		};
372
373		smp2p_modem_in: slave-kernel {
374			qcom,entry-name = "slave-kernel";
375
376			interrupt-controller;
377			#interrupt-cells = <2>;
378		};
379	};
380
381	smp2p-wcnss {
382		compatible = "qcom,smp2p";
383		qcom,smem = <451>, <431>;
384
385		interrupts = <GIC_SPI 143 IRQ_TYPE_EDGE_RISING>;
386
387		qcom,ipc = <&apcs 8 18>;
388
389		qcom,local-pid = <0>;
390		qcom,remote-pid = <4>;
391
392		smp2p_wcnss_out: master-kernel {
393			qcom,entry-name = "master-kernel";
394
395			#qcom,smem-state-cells = <1>;
396		};
397
398		smp2p_wcnss_in: slave-kernel {
399			qcom,entry-name = "slave-kernel";
400
401			interrupt-controller;
402			#interrupt-cells = <2>;
403		};
404	};
405
406	smsm {
407		compatible = "qcom,smsm";
408
409		#address-cells = <1>;
410		#size-cells = <0>;
411
412		qcom,ipc-1 = <&apcs 8 13>;
413		qcom,ipc-3 = <&apcs 8 19>;
414
415		apps_smsm: apps@0 {
416			reg = <0>;
417
418			#qcom,smem-state-cells = <1>;
419		};
420
421		modem_smsm: modem@1 {
422			reg = <1>;
423			interrupts = <GIC_SPI 26 IRQ_TYPE_EDGE_RISING>;
424
425			interrupt-controller;
426			#interrupt-cells = <2>;
427		};
428
429		wcnss_smsm: wcnss@6 {
430			reg = <6>;
431			interrupts = <GIC_SPI 144 IRQ_TYPE_EDGE_RISING>;
432
433			interrupt-controller;
434			#interrupt-cells = <2>;
435		};
436	};
437
438	soc: soc@0 {
439		#address-cells = <1>;
440		#size-cells = <1>;
441		ranges = <0 0 0 0xffffffff>;
442		compatible = "simple-bus";
443
444		rpm_msg_ram: sram@60000 {
445			compatible = "qcom,rpm-msg-ram";
446			reg = <0x00060000 0x8000>;
447		};
448
449		hsusb_phy: phy@79000 {
450			compatible = "qcom,msm8953-qusb2-phy";
451			reg = <0x00079000 0x180>;
452			#phy-cells = <0>;
453
454			clocks = <&gcc GCC_USB_PHY_CFG_AHB_CLK>,
455				 <&gcc GCC_QUSB_REF_CLK>;
456			clock-names = "cfg_ahb", "ref";
457
458			qcom,tcsr-syscon = <&tcsr_phy_clk_scheme_sel>;
459
460			resets = <&gcc GCC_QUSB2_PHY_BCR>;
461
462			status = "disabled";
463		};
464
465		rng@e3000 {
466			compatible = "qcom,prng";
467			reg = <0x000e3000 0x1000>;
468			clocks = <&gcc GCC_PRNG_AHB_CLK>;
469			clock-names = "core";
470		};
471
472		tsens0: thermal-sensor@4a9000 {
473			compatible = "qcom,msm8953-tsens", "qcom,tsens-v2";
474			reg = <0x004a9000 0x1000>, /* TM */
475			      <0x004a8000 0x1000>; /* SROT */
476			#qcom,sensors = <16>;
477			interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>,
478				     <GIC_SPI 314 IRQ_TYPE_LEVEL_HIGH>;
479			interrupt-names = "uplow", "critical";
480			#thermal-sensor-cells = <1>;
481		};
482
483		restart@4ab000 {
484			compatible = "qcom,pshold";
485			reg = <0x004ab000 0x4>;
486		};
487
488		tlmm: pinctrl@1000000 {
489			compatible = "qcom,msm8953-pinctrl";
490			reg = <0x01000000 0x300000>;
491			interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
492			gpio-controller;
493			gpio-ranges = <&tlmm 0 0 142>;
494			#gpio-cells = <2>;
495			interrupt-controller;
496			#interrupt-cells = <2>;
497
498			uart_console_active: uart-console-active-state {
499				pins = "gpio4", "gpio5";
500				function = "blsp_uart2";
501				drive-strength = <2>;
502				bias-disable;
503			};
504
505			uart_console_sleep: uart-console-sleep-state {
506				pins = "gpio4", "gpio5";
507				function = "blsp_uart2";
508				drive-strength = <2>;
509				bias-pull-down;
510			};
511
512			sdc1_clk_on: sdc1-clk-on-state {
513				pins = "sdc1_clk";
514				bias-disable;
515				drive-strength = <16>;
516			};
517
518			sdc1_clk_off: sdc1-clk-off-state {
519				pins = "sdc1_clk";
520				bias-disable;
521				drive-strength = <2>;
522			};
523
524			sdc1_cmd_on: sdc1-cmd-on-state {
525				pins = "sdc1_cmd";
526				bias-disable;
527				drive-strength = <10>;
528			};
529
530			sdc1_cmd_off: sdc1-cmd-off-state {
531				pins = "sdc1_cmd";
532				bias-disable;
533				drive-strength = <2>;
534			};
535
536			sdc1_data_on: sdc1-data-on-state {
537				pins = "sdc1_data";
538				bias-pull-up;
539				drive-strength = <10>;
540			};
541
542			sdc1_data_off: sdc1-data-off-state {
543				pins = "sdc1_data";
544				bias-pull-up;
545				drive-strength = <2>;
546			};
547
548			sdc1_rclk_on: sdc1-rclk-on-state {
549				pins = "sdc1_rclk";
550				bias-pull-down;
551			};
552
553			sdc1_rclk_off: sdc1-rclk-off-state {
554				pins = "sdc1_rclk";
555				bias-pull-down;
556			};
557
558			sdc2_clk_on: sdc2-clk-on-state {
559				pins = "sdc2_clk";
560				drive-strength = <16>;
561				bias-disable;
562			};
563
564			sdc2_clk_off: sdc2-clk-off-state {
565				pins = "sdc2_clk";
566				bias-disable;
567				drive-strength = <2>;
568			};
569
570			sdc2_cmd_on: sdc2-cmd-on-state {
571				pins = "sdc2_cmd";
572				bias-pull-up;
573				drive-strength = <10>;
574			};
575
576			sdc2_cmd_off: sdc2-cmd-off-state {
577				pins = "sdc2_cmd";
578				bias-pull-up;
579				drive-strength = <2>;
580			};
581
582			sdc2_data_on: sdc2-data-on-state {
583				pins = "sdc2_data";
584				bias-pull-up;
585				drive-strength = <10>;
586			};
587
588			sdc2_data_off: sdc2-data-off-state {
589				pins = "sdc2_data";
590				bias-pull-up;
591				drive-strength = <2>;
592			};
593
594			sdc2_cd_on: cd-on-state {
595				pins = "gpio133";
596				function = "gpio";
597				drive-strength = <2>;
598				bias-pull-up;
599			};
600
601			sdc2_cd_off: cd-off-state {
602				pins = "gpio133";
603				function = "gpio";
604				drive-strength = <2>;
605				bias-disable;
606			};
607
608			gpio_key_default: gpio-key-default-state {
609				pins = "gpio85";
610				function = "gpio";
611				drive-strength = <2>;
612				bias-pull-up;
613			};
614
615			i2c_1_default: i2c-1-default-state {
616				pins = "gpio2", "gpio3";
617				function = "blsp_i2c1";
618				drive-strength = <2>;
619				bias-disable;
620			};
621
622			i2c_1_sleep: i2c-1-sleep-state {
623				pins = "gpio2", "gpio3";
624				function = "gpio";
625				drive-strength = <2>;
626				bias-disable;
627			};
628
629			i2c_2_default: i2c-2-default-state {
630				pins = "gpio6", "gpio7";
631				function = "blsp_i2c2";
632				drive-strength = <2>;
633				bias-disable;
634			};
635
636			i2c_2_sleep: i2c-2-sleep-state {
637				pins = "gpio6", "gpio7";
638				function = "gpio";
639				drive-strength = <2>;
640				bias-disable;
641			};
642
643			i2c_3_default: i2c-3-default-state {
644				pins = "gpio10", "gpio11";
645				function = "blsp_i2c3";
646				drive-strength = <2>;
647				bias-disable;
648			};
649
650			i2c_3_sleep: i2c-3-sleep-state {
651				pins = "gpio10", "gpio11";
652				function = "gpio";
653				drive-strength = <2>;
654				bias-disable;
655			};
656
657			i2c_4_default: i2c-4-default-state {
658				pins = "gpio14", "gpio15";
659				function = "blsp_i2c4";
660				drive-strength = <2>;
661				bias-disable;
662			};
663
664			i2c_4_sleep: i2c-4-sleep-state {
665				pins = "gpio14", "gpio15";
666				function = "gpio";
667				drive-strength = <2>;
668				bias-disable;
669			};
670
671			i2c_5_default: i2c-5-default-state {
672				pins = "gpio18", "gpio19";
673				function = "blsp_i2c5";
674				drive-strength = <2>;
675				bias-disable;
676			};
677
678			i2c_5_sleep: i2c-5-sleep-state {
679				pins = "gpio18", "gpio19";
680				function = "gpio";
681				drive-strength = <2>;
682				bias-disable;
683			};
684
685			i2c_6_default: i2c-6-default-state {
686				pins = "gpio22", "gpio23";
687				function = "blsp_i2c6";
688				drive-strength = <2>;
689				bias-disable;
690			};
691
692			i2c_6_sleep: i2c-6-sleep-state {
693				pins = "gpio22", "gpio23";
694				function = "gpio";
695				drive-strength = <2>;
696				bias-disable;
697			};
698
699			i2c_7_default: i2c-7-default-state {
700				pins = "gpio135", "gpio136";
701				function = "blsp_i2c7";
702				drive-strength = <2>;
703				bias-disable;
704			};
705
706			i2c_7_sleep: i2c-7-sleep-state {
707				pins = "gpio135", "gpio136";
708				function = "gpio";
709				drive-strength = <2>;
710				bias-disable;
711			};
712
713			i2c_8_default: i2c-8-default-state {
714				pins = "gpio98", "gpio99";
715				function = "blsp_i2c8";
716				drive-strength = <2>;
717				bias-disable;
718			};
719
720			i2c_8_sleep: i2c-8-sleep-state {
721				pins = "gpio98", "gpio99";
722				function = "gpio";
723				drive-strength = <2>;
724				bias-disable;
725			};
726
727			wcnss_pin_a: wcnss-active-state {
728
729				wcss-wlan2-pins {
730					pins = "gpio76";
731					function = "wcss_wlan2";
732					drive-strength = <6>;
733					bias-pull-up;
734				};
735
736				wcss-wlan1-pins {
737					pins = "gpio77";
738					function = "wcss_wlan1";
739					drive-strength = <6>;
740					bias-pull-up;
741				};
742
743				wcss-wlan0-pins {
744					pins = "gpio78";
745					function = "wcss_wlan0";
746					drive-strength = <6>;
747					bias-pull-up;
748				};
749
750				wcss-wlan-pins {
751					pins = "gpio79", "gpio80";
752					function = "wcss_wlan";
753					drive-strength = <6>;
754					bias-pull-up;
755				};
756			};
757		};
758
759		gcc: clock-controller@1800000 {
760			compatible = "qcom,gcc-msm8953";
761			reg = <0x01800000 0x80000>;
762			#clock-cells = <1>;
763			#reset-cells = <1>;
764			#power-domain-cells = <1>;
765			clocks = <&rpmcc RPM_SMD_XO_CLK_SRC>,
766				 <&sleep_clk>,
767				 <&mdss_dsi0_phy 1>,
768				 <&mdss_dsi0_phy 0>,
769				 <&mdss_dsi1_phy 1>,
770				 <&mdss_dsi1_phy 0>;
771			clock-names = "xo",
772				      "sleep",
773				      "dsi0pll",
774				      "dsi0pllbyte",
775				      "dsi1pll",
776				      "dsi1pllbyte";
777		};
778
779		tcsr_mutex: hwlock@1905000 {
780			compatible = "qcom,tcsr-mutex";
781			reg = <0x01905000 0x20000>;
782			#hwlock-cells = <1>;
783		};
784
785		tcsr: syscon@1937000 {
786			compatible = "qcom,tcsr-msm8953", "syscon";
787			reg = <0x01937000 0x30000>;
788		};
789
790		tcsr_phy_clk_scheme_sel: syscon@193f044 {
791			compatible = "qcom,tcsr-msm8953", "syscon";
792			reg = <0x0193f044 0x4>;
793		};
794
795		mdss: display-subsystem@1a00000 {
796			compatible = "qcom,mdss";
797
798			reg = <0x01a00000 0x1000>,
799			      <0x01ab0000 0x1040>;
800			reg-names = "mdss_phys",
801				    "vbif_phys";
802
803			power-domains = <&gcc MDSS_GDSC>;
804			interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
805
806			interrupt-controller;
807			#interrupt-cells = <1>;
808
809			clocks = <&gcc GCC_MDSS_AHB_CLK>,
810				 <&gcc GCC_MDSS_AXI_CLK>,
811				 <&gcc GCC_MDSS_VSYNC_CLK>,
812				 <&gcc GCC_MDSS_MDP_CLK>;
813			clock-names = "iface",
814				      "bus",
815				      "vsync",
816				      "core";
817
818			#address-cells = <1>;
819			#size-cells = <1>;
820			ranges;
821
822			status = "disabled";
823
824			mdp: display-controller@1a01000 {
825				compatible = "qcom,msm8953-mdp5", "qcom,mdp5";
826				reg = <0x01a01000 0x89000>;
827				reg-names = "mdp_phys";
828
829				interrupt-parent = <&mdss>;
830				interrupts = <0>;
831
832				power-domains = <&gcc MDSS_GDSC>;
833
834				clocks = <&gcc GCC_MDSS_AHB_CLK>,
835					 <&gcc GCC_MDSS_AXI_CLK>,
836					 <&gcc GCC_MDSS_MDP_CLK>,
837					 <&gcc GCC_MDSS_VSYNC_CLK>;
838				clock-names = "iface",
839					      "bus",
840					      "core",
841					      "vsync";
842
843				iommus = <&apps_iommu 0x15>;
844
845				ports {
846					#address-cells = <1>;
847					#size-cells = <0>;
848
849					port@0 {
850						reg = <0>;
851						mdp5_intf1_out: endpoint {
852							remote-endpoint = <&mdss_dsi0_in>;
853						};
854					};
855
856					port@1 {
857						reg = <1>;
858						mdp5_intf2_out: endpoint {
859							remote-endpoint = <&mdss_dsi1_in>;
860						};
861					};
862				};
863			};
864
865			mdss_dsi0: dsi@1a94000 {
866				compatible = "qcom,msm8953-dsi-ctrl", "qcom,mdss-dsi-ctrl";
867				reg = <0x01a94000 0x400>;
868				reg-names = "dsi_ctrl";
869
870				interrupt-parent = <&mdss>;
871				interrupts = <4>;
872
873				assigned-clocks = <&gcc BYTE0_CLK_SRC>,
874						  <&gcc PCLK0_CLK_SRC>;
875				assigned-clock-parents = <&mdss_dsi0_phy 0>,
876							 <&mdss_dsi0_phy 1>;
877
878				clocks = <&gcc GCC_MDSS_MDP_CLK>,
879					 <&gcc GCC_MDSS_AHB_CLK>,
880					 <&gcc GCC_MDSS_AXI_CLK>,
881					 <&gcc GCC_MDSS_BYTE0_CLK>,
882					 <&gcc GCC_MDSS_PCLK0_CLK>,
883					 <&gcc GCC_MDSS_ESC0_CLK>;
884				clock-names = "mdp_core",
885					      "iface",
886					      "bus",
887					      "byte",
888					      "pixel",
889					      "core";
890
891				phys = <&mdss_dsi0_phy>;
892
893				#address-cells = <1>;
894				#size-cells = <0>;
895
896				status = "disabled";
897
898				ports {
899					#address-cells = <1>;
900					#size-cells = <0>;
901
902					port@0 {
903						reg = <0>;
904						mdss_dsi0_in: endpoint {
905							remote-endpoint = <&mdp5_intf1_out>;
906						};
907					};
908
909					port@1 {
910						reg = <1>;
911						mdss_dsi0_out: endpoint {
912						};
913					};
914				};
915			};
916
917			mdss_dsi0_phy: phy@1a94400 {
918				compatible = "qcom,dsi-phy-14nm-8953";
919				reg = <0x01a94400 0x100>,
920				      <0x01a94500 0x300>,
921				      <0x01a94800 0x188>;
922				reg-names = "dsi_phy",
923					    "dsi_phy_lane",
924					    "dsi_pll";
925
926				#clock-cells = <1>;
927				#phy-cells = <0>;
928
929				clocks = <&gcc GCC_MDSS_AHB_CLK>, <&rpmcc RPM_SMD_XO_CLK_SRC>;
930				clock-names = "iface", "ref";
931
932				status = "disabled";
933			};
934
935			mdss_dsi1: dsi@1a96000 {
936				compatible = "qcom,msm8953-dsi-ctrl", "qcom,mdss-dsi-ctrl";
937				reg = <0x01a96000 0x400>;
938				reg-names = "dsi_ctrl";
939
940				interrupt-parent = <&mdss>;
941				interrupts = <5>;
942
943				assigned-clocks = <&gcc BYTE1_CLK_SRC>,
944						  <&gcc PCLK1_CLK_SRC>;
945				assigned-clock-parents = <&mdss_dsi1_phy 0>,
946							 <&mdss_dsi1_phy 1>;
947
948				clocks = <&gcc GCC_MDSS_MDP_CLK>,
949					 <&gcc GCC_MDSS_AHB_CLK>,
950					 <&gcc GCC_MDSS_AXI_CLK>,
951					 <&gcc GCC_MDSS_BYTE1_CLK>,
952					 <&gcc GCC_MDSS_PCLK1_CLK>,
953					 <&gcc GCC_MDSS_ESC1_CLK>;
954				clock-names = "mdp_core",
955					      "iface",
956					      "bus",
957					      "byte",
958					      "pixel",
959					      "core";
960
961				phys = <&mdss_dsi1_phy>;
962
963				status = "disabled";
964
965				ports {
966					#address-cells = <1>;
967					#size-cells = <0>;
968
969					port@0 {
970						reg = <0>;
971						mdss_dsi1_in: endpoint {
972							remote-endpoint = <&mdp5_intf2_out>;
973						};
974					};
975
976					port@1 {
977						reg = <1>;
978						mdss_dsi1_out: endpoint {
979						};
980					};
981				};
982			};
983
984			mdss_dsi1_phy: phy@1a96400 {
985				compatible = "qcom,dsi-phy-14nm-8953";
986				reg = <0x01a96400 0x100>,
987				      <0x01a96500 0x300>,
988				      <0x01a96800 0x188>;
989				reg-names = "dsi_phy",
990					    "dsi_phy_lane",
991					    "dsi_pll";
992
993				#clock-cells = <1>;
994				#phy-cells = <0>;
995
996				clocks = <&gcc GCC_MDSS_AHB_CLK>, <&rpmcc RPM_SMD_XO_CLK_SRC>;
997				clock-names = "iface", "ref";
998
999				status = "disabled";
1000			};
1001		};
1002
1003		apps_iommu: iommu@1e20000 {
1004			compatible = "qcom,msm8953-iommu", "qcom,msm-iommu-v1";
1005			ranges  = <0 0x01e20000 0x20000>;
1006
1007			clocks = <&gcc GCC_SMMU_CFG_CLK>,
1008				 <&gcc GCC_APSS_TCU_ASYNC_CLK>;
1009			clock-names = "iface", "bus";
1010
1011			qcom,iommu-secure-id = <17>;
1012
1013			#address-cells = <1>;
1014			#iommu-cells = <1>;
1015			#size-cells = <1>;
1016
1017			/* VFE */
1018			iommu-ctx@14000 {
1019				compatible = "qcom,msm-iommu-v1-ns";
1020				reg = <0x14000 0x1000>;
1021				interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
1022			};
1023
1024			/* MDP_0 */
1025			iommu-ctx@15000 {
1026				compatible = "qcom,msm-iommu-v1-ns";
1027				reg = <0x15000 0x1000>;
1028				interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>;
1029			};
1030
1031			/* VENUS_NS */
1032			iommu-ctx@16000 {
1033				compatible = "qcom,msm-iommu-v1-ns";
1034				reg = <0x16000 0x1000>;
1035				interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>;
1036			};
1037		};
1038
1039		spmi_bus: spmi@200f000 {
1040			compatible = "qcom,spmi-pmic-arb";
1041			reg = <0x0200f000 0x1000>,
1042			      <0x02400000 0x800000>,
1043			      <0x02c00000 0x800000>,
1044			      <0x03800000 0x200000>,
1045			      <0x0200a000 0x2100>;
1046			reg-names = "core", "chnls", "obsrvr", "intr", "cnfg";
1047			interrupt-names = "periph_irq";
1048			interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>;
1049			qcom,ee = <0>;
1050			qcom,channel = <0>;
1051			interrupt-controller;
1052
1053			#interrupt-cells = <4>;
1054			#address-cells = <2>;
1055			#size-cells = <0>;
1056		};
1057
1058		mpss: remoteproc@4080000 {
1059			compatible = "qcom,msm8953-mss-pil";
1060			reg = <0x04080000 0x100>,
1061			      <0x04020000 0x040>;
1062			reg-names = "qdsp6", "rmb";
1063
1064			interrupts-extended = <&intc GIC_SPI 24 IRQ_TYPE_EDGE_RISING>,
1065					      <&smp2p_modem_in 0 IRQ_TYPE_EDGE_RISING>,
1066					      <&smp2p_modem_in 1 IRQ_TYPE_EDGE_RISING>,
1067					      <&smp2p_modem_in 2 IRQ_TYPE_EDGE_RISING>,
1068					      <&smp2p_modem_in 3 IRQ_TYPE_EDGE_RISING>;
1069			interrupt-names = "wdog", "fatal", "ready",
1070					  "handover", "stop-ack";
1071
1072			power-domains = <&rpmpd MSM8953_VDDCX>,
1073					<&rpmpd MSM8953_VDDMX>,
1074					<&rpmpd MSM8953_VDDMD>;
1075			power-domain-names = "cx", "mx","mss";
1076
1077			clocks = <&gcc GCC_MSS_CFG_AHB_CLK>,
1078				 <&gcc GCC_MSS_Q6_BIMC_AXI_CLK>,
1079				 <&gcc GCC_BOOT_ROM_AHB_CLK>,
1080				 <&rpmcc RPM_SMD_XO_CLK_SRC>;
1081			clock-names = "iface", "bus", "mem", "xo";
1082
1083			qcom,smem-states = <&smp2p_modem_out 0>;
1084			qcom,smem-state-names = "stop";
1085
1086			resets = <&gcc GCC_MSS_BCR>;
1087			reset-names = "mss_restart";
1088
1089			qcom,halt-regs = <&tcsr 0x18000 0x19000 0x1a000>;
1090
1091			status = "disabled";
1092
1093			mba {
1094				memory-region = <&mba_mem>;
1095			};
1096
1097			mpss {
1098				memory-region = <&mpss_mem>;
1099			};
1100
1101			smd-edge {
1102				interrupts = <GIC_SPI 25 IRQ_TYPE_EDGE_RISING>;
1103
1104				qcom,smd-edge = <0>;
1105				qcom,ipc = <&apcs 8 12>;
1106				qcom,remote-pid = <1>;
1107
1108				label = "modem";
1109			};
1110		};
1111
1112		usb3: usb@70f8800 {
1113			compatible = "qcom,msm8953-dwc3", "qcom,dwc3";
1114			reg = <0x070f8800 0x400>;
1115			#address-cells = <1>;
1116			#size-cells = <1>;
1117			ranges;
1118
1119			interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>,
1120				     <GIC_SPI 220 IRQ_TYPE_LEVEL_HIGH>;
1121			interrupt-names = "hs_phy_irq", "ss_phy_irq";
1122
1123			clocks = <&gcc GCC_USB_PHY_CFG_AHB_CLK>,
1124				 <&gcc GCC_USB30_MASTER_CLK>,
1125				 <&gcc GCC_PCNOC_USB3_AXI_CLK>,
1126				 <&gcc GCC_USB30_SLEEP_CLK>,
1127				 <&gcc GCC_USB30_MOCK_UTMI_CLK>;
1128			clock-names = "cfg_noc",
1129				      "core",
1130				      "iface",
1131				      "sleep",
1132				      "mock_utmi";
1133
1134			assigned-clocks = <&gcc GCC_USB30_MOCK_UTMI_CLK>,
1135					  <&gcc GCC_USB30_MASTER_CLK>;
1136			assigned-clock-rates = <19200000>, <133330000>;
1137
1138			power-domains = <&gcc USB30_GDSC>;
1139
1140			qcom,select-utmi-as-pipe-clk;
1141
1142			status = "disabled";
1143
1144			usb3_dwc3: usb@7000000 {
1145				compatible = "snps,dwc3";
1146				reg = <0x07000000 0xcc00>;
1147				interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
1148				phys = <&hsusb_phy>;
1149				phy-names = "usb2-phy";
1150
1151				snps,usb2-gadget-lpm-disable;
1152				snps,dis-u1-entry-quirk;
1153				snps,dis-u2-entry-quirk;
1154				snps,is-utmi-l1-suspend;
1155				snps,hird-threshold = /bits/ 8 <0x00>;
1156
1157				maximum-speed = "high-speed";
1158			};
1159		};
1160
1161		sdhc_1: mmc@7824900 {
1162			compatible = "qcom,msm8953-sdhci", "qcom,sdhci-msm-v4";
1163
1164			reg = <0x07824900 0x500>, <0x07824000 0x800>;
1165			reg-names = "hc", "core";
1166
1167			interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>,
1168				     <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>;
1169			interrupt-names = "hc_irq", "pwr_irq";
1170
1171			clocks = <&gcc GCC_SDCC1_AHB_CLK>,
1172				 <&gcc GCC_SDCC1_APPS_CLK>,
1173				 <&rpmcc RPM_SMD_XO_CLK_SRC>;
1174			clock-names = "iface", "core", "xo";
1175
1176			power-domains = <&rpmpd MSM8953_VDDCX>;
1177			operating-points-v2 = <&sdhc1_opp_table>;
1178
1179			pinctrl-names = "default", "sleep";
1180			pinctrl-0 = <&sdc1_clk_on &sdc1_cmd_on &sdc1_data_on &sdc1_rclk_on>;
1181			pinctrl-1 = <&sdc1_clk_off &sdc1_cmd_off &sdc1_data_off &sdc1_rclk_off>;
1182
1183			mmc-hs400-1_8v;
1184			mmc-hs200-1_8v;
1185			mmc-ddr-1_8v;
1186			bus-width = <8>;
1187			non-removable;
1188
1189			status = "disabled";
1190
1191			sdhc1_opp_table: opp-table-sdhc1 {
1192				compatible = "operating-points-v2";
1193
1194				opp-25000000 {
1195					opp-hz = /bits/ 64 <25000000>;
1196					required-opps = <&rpmpd_opp_low_svs>;
1197				};
1198
1199				opp-50000000 {
1200					opp-hz = /bits/ 64 <50000000>;
1201					required-opps = <&rpmpd_opp_svs>;
1202				};
1203
1204				opp-100000000 {
1205					opp-hz = /bits/ 64 <100000000>;
1206					required-opps = <&rpmpd_opp_svs>;
1207				};
1208
1209				opp-192000000 {
1210					opp-hz = /bits/ 64 <192000000>;
1211					required-opps = <&rpmpd_opp_nom>;
1212				};
1213
1214				opp-384000000 {
1215					opp-hz = /bits/ 64 <384000000>;
1216					required-opps = <&rpmpd_opp_nom>;
1217				};
1218			};
1219		};
1220
1221		sdhc_2: mmc@7864900 {
1222			compatible = "qcom,msm8953-sdhci", "qcom,sdhci-msm-v4";
1223
1224			reg = <0x07864900 0x500>, <0x07864000 0x800>;
1225			reg-names = "hc", "core";
1226
1227			interrupts = <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>,
1228				     <GIC_SPI 221 IRQ_TYPE_LEVEL_HIGH>;
1229			interrupt-names = "hc_irq", "pwr_irq";
1230
1231			clocks = <&gcc GCC_SDCC2_AHB_CLK>,
1232				 <&gcc GCC_SDCC2_APPS_CLK>,
1233				 <&rpmcc RPM_SMD_XO_CLK_SRC>;
1234			clock-names = "iface", "core", "xo";
1235
1236			power-domains = <&rpmpd MSM8953_VDDCX>;
1237			operating-points-v2 = <&sdhc2_opp_table>;
1238
1239			pinctrl-names = "default", "sleep";
1240			pinctrl-0 = <&sdc2_clk_on &sdc2_cmd_on &sdc2_data_on>;
1241			pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off>;
1242
1243			bus-width = <4>;
1244
1245			status = "disabled";
1246
1247			sdhc2_opp_table: opp-table-sdhc2 {
1248				compatible = "operating-points-v2";
1249
1250				opp-25000000 {
1251					opp-hz = /bits/ 64 <25000000>;
1252					required-opps = <&rpmpd_opp_low_svs>;
1253				};
1254
1255				opp-50000000 {
1256					opp-hz = /bits/ 64 <50000000>;
1257					required-opps = <&rpmpd_opp_svs>;
1258				};
1259
1260				opp-100000000 {
1261					opp-hz = /bits/ 64 <100000000>;
1262					required-opps = <&rpmpd_opp_svs>;
1263				};
1264
1265				opp-177770000 {
1266					opp-hz = /bits/ 64 <177770000>;
1267					required-opps = <&rpmpd_opp_nom>;
1268				};
1269
1270				opp-200000000 {
1271					opp-hz = /bits/ 64 <200000000>;
1272					required-opps = <&rpmpd_opp_nom>;
1273				};
1274			};
1275		};
1276
1277		blsp1_dma: dma-controller@7884000 {
1278			compatible = "qcom,bam-v1.7.0";
1279			reg = <0x07884000 0x1f000>;
1280			interrupts = <GIC_SPI 238 IRQ_TYPE_LEVEL_HIGH>;
1281			clocks = <&gcc GCC_BLSP1_AHB_CLK>;
1282			clock-names = "bam_clk";
1283			num-channels = <12>;
1284			#dma-cells = <1>;
1285			qcom,ee = <0>;
1286			qcom,num-ees = <4>;
1287			qcom,controlled-remotely;
1288		};
1289
1290		uart_0: serial@78af000 {
1291			compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
1292			reg = <0x078af000 0x200>;
1293			interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
1294			clocks = <&gcc GCC_BLSP1_UART1_APPS_CLK>,
1295				 <&gcc GCC_BLSP1_AHB_CLK>;
1296			clock-names = "core", "iface";
1297
1298			status = "disabled";
1299		};
1300
1301		i2c_1: i2c@78b5000 {
1302			compatible = "qcom,i2c-qup-v2.2.1";
1303			reg = <0x078b5000 0x600>;
1304			interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
1305			clock-names = "core", "iface";
1306			clocks = <&gcc GCC_BLSP1_QUP1_I2C_APPS_CLK>,
1307				 <&gcc GCC_BLSP1_AHB_CLK>;
1308			dmas = <&blsp1_dma 4>, <&blsp1_dma 5>;
1309			dma-names = "tx", "rx";
1310
1311			pinctrl-names = "default", "sleep";
1312			pinctrl-0 = <&i2c_1_default>;
1313			pinctrl-1 = <&i2c_1_sleep>;
1314
1315			#address-cells = <1>;
1316			#size-cells = <0>;
1317
1318			status = "disabled";
1319		};
1320
1321		i2c_2: i2c@78b6000 {
1322			compatible = "qcom,i2c-qup-v2.2.1";
1323			reg = <0x078b6000 0x600>;
1324			interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
1325			clock-names = "core", "iface";
1326			clocks = <&gcc GCC_BLSP1_QUP2_I2C_APPS_CLK>,
1327				 <&gcc GCC_BLSP1_AHB_CLK>;
1328			dmas = <&blsp1_dma 6>, <&blsp1_dma 7>;
1329			dma-names = "tx", "rx";
1330
1331			pinctrl-names = "default", "sleep";
1332			pinctrl-0 = <&i2c_2_default>;
1333			pinctrl-1 = <&i2c_2_sleep>;
1334
1335			#address-cells = <1>;
1336			#size-cells = <0>;
1337
1338			status = "disabled";
1339		};
1340
1341		i2c_3: i2c@78b7000 {
1342			compatible = "qcom,i2c-qup-v2.2.1";
1343			reg = <0x078b7000 0x600>;
1344			interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
1345			clock-names = "core", "iface";
1346			clocks = <&gcc GCC_BLSP1_QUP3_I2C_APPS_CLK>,
1347				 <&gcc GCC_BLSP1_AHB_CLK>;
1348			dmas = <&blsp1_dma 8>, <&blsp1_dma 9>;
1349			dma-names = "tx", "rx";
1350
1351			pinctrl-names = "default", "sleep";
1352			pinctrl-0 = <&i2c_3_default>;
1353			pinctrl-1 = <&i2c_3_sleep>;
1354
1355			#address-cells = <1>;
1356			#size-cells = <0>;
1357
1358			status = "disabled";
1359		};
1360
1361		i2c_4: i2c@78b8000 {
1362			compatible = "qcom,i2c-qup-v2.2.1";
1363			reg = <0x078b8000 0x600>;
1364			interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
1365			clock-names = "core", "iface";
1366			clocks = <&gcc GCC_BLSP1_QUP4_I2C_APPS_CLK>,
1367				 <&gcc GCC_BLSP1_AHB_CLK>;
1368			dmas = <&blsp2_dma 10>, <&blsp2_dma 11>;
1369			dma-names = "tx", "rx";
1370
1371			pinctrl-names = "default", "sleep";
1372			pinctrl-0 = <&i2c_4_default>;
1373			pinctrl-1 = <&i2c_4_sleep>;
1374
1375			#address-cells = <1>;
1376			#size-cells = <0>;
1377
1378			status = "disabled";
1379		};
1380
1381		blsp2_dma: dma-controller@7ac4000 {
1382			compatible = "qcom,bam-v1.7.0";
1383			reg = <0x07ac4000 0x1f000>;
1384			interrupts = <GIC_SPI 239 IRQ_TYPE_LEVEL_HIGH>;
1385			clocks = <&gcc GCC_BLSP2_AHB_CLK>;
1386			clock-names = "bam_clk";
1387			num-channels = <12>;
1388			#dma-cells = <1>;
1389			qcom,ee = <0>;
1390			qcom,num-ees = <4>;
1391			qcom,controlled-remotely;
1392		};
1393
1394		i2c_5: i2c@7af5000 {
1395			compatible = "qcom,i2c-qup-v2.2.1";
1396			reg = <0x07af5000 0x600>;
1397			interrupts = <GIC_SPI 299 IRQ_TYPE_LEVEL_HIGH>;
1398			clock-names = "core", "iface";
1399			clocks = <&gcc GCC_BLSP2_QUP1_I2C_APPS_CLK>,
1400				 <&gcc GCC_BLSP2_AHB_CLK>;
1401			dmas = <&blsp2_dma 4>, <&blsp2_dma 5>;
1402			dma-names = "tx", "rx";
1403
1404			pinctrl-names = "default", "sleep";
1405			pinctrl-0 = <&i2c_5_default>;
1406			pinctrl-1 = <&i2c_5_sleep>;
1407
1408			#address-cells = <1>;
1409			#size-cells = <0>;
1410
1411			status = "disabled";
1412		};
1413
1414		i2c_6: i2c@7af6000 {
1415			compatible = "qcom,i2c-qup-v2.2.1";
1416			reg = <0x07af6000 0x600>;
1417			interrupts = <GIC_SPI 300 IRQ_TYPE_LEVEL_HIGH>;
1418			clock-names = "core", "iface";
1419			clocks = <&gcc GCC_BLSP2_QUP2_I2C_APPS_CLK>,
1420				 <&gcc GCC_BLSP2_AHB_CLK>;
1421			dmas = <&blsp2_dma 6>, <&blsp2_dma 7>;
1422			dma-names = "tx", "rx";
1423
1424			pinctrl-names = "default", "sleep";
1425			pinctrl-0 = <&i2c_6_default>;
1426			pinctrl-1 = <&i2c_6_sleep>;
1427
1428			#address-cells = <1>;
1429			#size-cells = <0>;
1430
1431			status = "disabled";
1432		};
1433
1434		i2c_7: i2c@7af7000 {
1435			compatible = "qcom,i2c-qup-v2.2.1";
1436			reg = <0x07af7000 0x600>;
1437			interrupts = <GIC_SPI 301 IRQ_TYPE_LEVEL_HIGH>;
1438			clock-names = "core", "iface";
1439			clocks = <&gcc GCC_BLSP2_QUP3_I2C_APPS_CLK>,
1440				 <&gcc GCC_BLSP2_AHB_CLK>;
1441			dmas = <&blsp2_dma 8>, <&blsp2_dma 9>;
1442			dma-names = "tx", "rx";
1443
1444			pinctrl-names = "default", "sleep";
1445			pinctrl-0 = <&i2c_7_default>;
1446			pinctrl-1 = <&i2c_7_sleep>;
1447
1448			#address-cells = <1>;
1449			#size-cells = <0>;
1450
1451			status = "disabled";
1452		};
1453
1454		i2c_8: i2c@7af8000 {
1455			compatible = "qcom,i2c-qup-v2.2.1";
1456			reg = <0x07af8000 0x600>;
1457			interrupts = <GIC_SPI 302 IRQ_TYPE_LEVEL_HIGH>;
1458			clock-names = "core", "iface";
1459			clocks = <&gcc GCC_BLSP2_QUP4_I2C_APPS_CLK>,
1460				 <&gcc GCC_BLSP2_AHB_CLK>;
1461			dmas = <&blsp2_dma 10>, <&blsp2_dma 11>;
1462			dma-names = "tx", "rx";
1463
1464			pinctrl-names = "default", "sleep";
1465			pinctrl-0 = <&i2c_8_default>;
1466			pinctrl-1 = <&i2c_8_sleep>;
1467
1468			#address-cells = <1>;
1469			#size-cells = <0>;
1470
1471			status = "disabled";
1472		};
1473
1474		wcnss: remoteproc@a204000 {
1475			compatible = "qcom,pronto-v3-pil", "qcom,pronto";
1476			reg = <0x0a204000 0x2000>, <0x0a202000 0x1000>, <0x0a21b000 0x3000>;
1477			reg-names = "ccu", "dxe", "pmu";
1478
1479			memory-region = <&wcnss_fw_mem>;
1480
1481			interrupts-extended = <&intc GIC_SPI 149 IRQ_TYPE_EDGE_RISING>,
1482					      <&smp2p_wcnss_in 0 IRQ_TYPE_EDGE_RISING>,
1483					      <&smp2p_wcnss_in 1 IRQ_TYPE_EDGE_RISING>,
1484					      <&smp2p_wcnss_in 2 IRQ_TYPE_EDGE_RISING>,
1485					      <&smp2p_wcnss_in 3 IRQ_TYPE_EDGE_RISING>;
1486			interrupt-names = "wdog", "fatal", "ready", "handover", "stop-ack";
1487
1488			power-domains = <&rpmpd MSM8953_VDDCX>,
1489					<&rpmpd MSM8953_VDDMX>;
1490			power-domain-names = "cx", "mx";
1491
1492			qcom,smem-states = <&smp2p_wcnss_out 0>;
1493			qcom,smem-state-names = "stop";
1494
1495			pinctrl-names = "default";
1496			pinctrl-0 = <&wcnss_pin_a>;
1497
1498			status = "disabled";
1499
1500			wcnss_iris: iris {
1501				/* Separate chip, compatible is board-specific */
1502				clocks = <&rpmcc RPM_SMD_RF_CLK2>;
1503				clock-names = "xo";
1504			};
1505
1506			smd-edge {
1507				interrupts = <GIC_SPI 142 IRQ_TYPE_EDGE_RISING>;
1508
1509				qcom,ipc = <&apcs 8 17>;
1510				qcom,smd-edge = <6>;
1511				qcom,remote-pid = <4>;
1512
1513				label = "pronto";
1514
1515				wcnss_ctrl: wcnss {
1516					compatible = "qcom,wcnss";
1517					qcom,smd-channels = "WCNSS_CTRL";
1518
1519					qcom,mmio = <&wcnss>;
1520
1521					wcnss_bt: bluetooth {
1522						compatible = "qcom,wcnss-bt";
1523					};
1524
1525					wcnss_wifi: wifi {
1526						compatible = "qcom,wcnss-wlan";
1527
1528						interrupts = <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>,
1529							     <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>;
1530						interrupt-names = "tx", "rx";
1531
1532						qcom,smem-states = <&apps_smsm 10>, <&apps_smsm 9>;
1533						qcom,smem-state-names = "tx-enable",
1534									"tx-rings-empty";
1535					};
1536				};
1537			};
1538		};
1539
1540		intc: interrupt-controller@b000000 {
1541			compatible = "qcom,msm-qgic2";
1542			interrupt-controller;
1543			#interrupt-cells = <3>;
1544			reg = <0x0b000000 0x1000>, <0x0b002000 0x1000>;
1545		};
1546
1547		apcs: mailbox@b011000 {
1548			compatible = "qcom,msm8953-apcs-kpss-global", "syscon";
1549			reg = <0x0b011000 0x1000>;
1550			#mbox-cells = <1>;
1551		};
1552
1553		timer@b120000 {
1554			compatible = "arm,armv7-timer-mem";
1555			reg = <0x0b120000 0x1000>;
1556			#address-cells = <1>;
1557			#size-cells = <1>;
1558			ranges;
1559
1560			frame@b121000 {
1561				frame-number = <0>;
1562				interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
1563					     <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
1564				reg = <0x0b121000 0x1000>,
1565				      <0x0b122000 0x1000>;
1566			};
1567
1568			frame@b123000 {
1569				frame-number = <1>;
1570				interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
1571				reg = <0x0b123000 0x1000>;
1572				status = "disabled";
1573			};
1574
1575			frame@b124000 {
1576				frame-number = <2>;
1577				interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
1578				reg = <0x0b124000 0x1000>;
1579				status = "disabled";
1580			};
1581
1582			frame@b125000 {
1583				frame-number = <3>;
1584				interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
1585				reg = <0x0b125000 0x1000>;
1586				status = "disabled";
1587			};
1588
1589			frame@b126000 {
1590				frame-number = <4>;
1591				interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
1592				reg = <0x0b126000 0x1000>;
1593				status = "disabled";
1594			};
1595
1596			frame@b127000 {
1597				frame-number = <5>;
1598				interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
1599				reg = <0x0b127000 0x1000>;
1600				status = "disabled";
1601			};
1602
1603			frame@b128000 {
1604				frame-number = <6>;
1605				interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
1606				reg = <0x0b128000 0x1000>;
1607				status = "disabled";
1608			};
1609		};
1610
1611		lpass: remoteproc@c200000 {
1612			compatible = "qcom,msm8953-adsp-pil";
1613			reg = <0x0c200000 0x100>;
1614
1615			interrupts-extended = <&intc 0 293 IRQ_TYPE_EDGE_RISING>,
1616					      <&smp2p_adsp_in 0 IRQ_TYPE_EDGE_RISING>,
1617					      <&smp2p_adsp_in 1 IRQ_TYPE_EDGE_RISING>,
1618					      <&smp2p_adsp_in 2 IRQ_TYPE_EDGE_RISING>,
1619					      <&smp2p_adsp_in 3 IRQ_TYPE_EDGE_RISING>;
1620			interrupt-names = "wdog", "fatal", "ready",
1621					  "handover", "stop-ack";
1622			clocks = <&rpmcc RPM_SMD_XO_CLK_SRC>;
1623			clock-names = "xo";
1624
1625			power-domains = <&rpmpd MSM8953_VDDCX>;
1626			power-domain-names = "cx";
1627
1628			memory-region = <&adsp_fw_mem>;
1629
1630			qcom,smem-states = <&smp2p_adsp_out 0>;
1631			qcom,smem-state-names = "stop";
1632
1633			status = "disabled";
1634
1635			smd-edge {
1636				interrupts = <GIC_SPI 289 IRQ_TYPE_EDGE_RISING>;
1637
1638				label = "lpass";
1639				mboxes = <&apcs 8>;
1640				qcom,smd-edge = <1>;
1641				qcom,remote-pid = <2>;
1642
1643				apr {
1644					compatible = "qcom,apr-v2";
1645					qcom,smd-channels = "apr_audio_svc";
1646					qcom,apr-domain = <APR_DOMAIN_ADSP>;
1647					#address-cells = <1>;
1648					#size-cells = <0>;
1649
1650					q6core: service@3 {
1651						reg = <APR_SVC_ADSP_CORE>;
1652						compatible = "qcom,q6core";
1653					};
1654
1655					q6afe: service@4 {
1656						compatible = "qcom,q6afe";
1657						reg = <APR_SVC_AFE>;
1658						q6afedai: dais {
1659							compatible = "qcom,q6afe-dais";
1660							#address-cells = <1>;
1661							#size-cells = <0>;
1662							#sound-dai-cells = <1>;
1663
1664							dai@16 {
1665								reg = <PRIMARY_MI2S_RX>;
1666								qcom,sd-lines = <0 1>;
1667							};
1668							dai@20 {
1669								reg = <TERTIARY_MI2S_TX>;
1670								qcom,sd-lines = <0 1>;
1671							};
1672							dai@127 {
1673								reg = <QUINARY_MI2S_RX>;
1674								qcom,sd-lines = <0>;
1675							};
1676						};
1677
1678						q6afecc: clock-controller {
1679							compatible = "qcom,q6afe-clocks";
1680							#clock-cells = <2>;
1681						};
1682					};
1683
1684					q6asm: service@7 {
1685						compatible = "qcom,q6asm";
1686						reg = <APR_SVC_ASM>;
1687						q6asmdai: dais {
1688							compatible = "qcom,q6asm-dais";
1689							#address-cells = <1>;
1690							#size-cells = <0>;
1691							#sound-dai-cells = <1>;
1692
1693							dai@0 {
1694								reg = <0>;
1695								direction = <Q6ASM_DAI_RX>;
1696							};
1697							dai@1 {
1698								reg = <1>;
1699								direction = <Q6ASM_DAI_TX>;
1700							};
1701							dai@2 {
1702								reg = <2>;
1703								direction = <Q6ASM_DAI_RX>;
1704							};
1705							dai@3 {
1706								reg = <3>;
1707								direction = <Q6ASM_DAI_RX>;
1708								is-compress-dai;
1709							};
1710						};
1711					};
1712
1713					q6adm: service@8 {
1714						compatible = "qcom,q6adm";
1715						reg = <APR_SVC_ADM>;
1716						q6routing: routing {
1717							compatible = "qcom,q6adm-routing";
1718							#sound-dai-cells = <0>;
1719						};
1720					};
1721				};
1722			};
1723		};
1724	};
1725
1726	thermal-zones {
1727		cpu0-thermal {
1728			polling-delay-passive = <250>;
1729			polling-delay = <1000>;
1730			thermal-sensors = <&tsens0 9>;
1731			trips {
1732				cpu0_alert: trip-point0 {
1733					temperature = <80000>;
1734					hysteresis = <2000>;
1735					type = "passive";
1736				};
1737				cpu0_crit: crit {
1738					temperature = <100000>;
1739					hysteresis = <2000>;
1740					type = "critical";
1741				};
1742			};
1743			cooling-maps {
1744				map0 {
1745					trip = <&cpu0_alert>;
1746					cooling-device = <&CPU0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
1747				};
1748			};
1749		};
1750		cpu1-thermal {
1751			polling-delay-passive = <250>;
1752			polling-delay = <1000>;
1753			thermal-sensors = <&tsens0 10>;
1754			trips {
1755				cpu1_alert: trip-point0 {
1756					temperature = <80000>;
1757					hysteresis = <2000>;
1758					type = "passive";
1759				};
1760				cpu1_crit: crit {
1761					temperature = <100000>;
1762					hysteresis = <2000>;
1763					type = "critical";
1764				};
1765			};
1766			cooling-maps {
1767				map0 {
1768					trip = <&cpu1_alert>;
1769					cooling-device = <&CPU1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
1770				};
1771			};
1772		};
1773		cpu2-thermal {
1774			polling-delay-passive = <250>;
1775			polling-delay = <1000>;
1776			thermal-sensors = <&tsens0 11>;
1777			trips {
1778				cpu2_alert: trip-point0 {
1779					temperature = <80000>;
1780					hysteresis = <2000>;
1781					type = "passive";
1782				};
1783				cpu2_crit: crit {
1784					temperature = <100000>;
1785					hysteresis = <2000>;
1786					type = "critical";
1787				};
1788			};
1789			cooling-maps {
1790				map0 {
1791					trip = <&cpu2_alert>;
1792					cooling-device = <&CPU2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
1793				};
1794			};
1795		};
1796		cpu3-thermal {
1797			polling-delay-passive = <250>;
1798			polling-delay = <1000>;
1799			thermal-sensors = <&tsens0 12>;
1800			trips {
1801				cpu3_alert: trip-point0 {
1802					temperature = <80000>;
1803					hysteresis = <2000>;
1804					type = "passive";
1805				};
1806				cpu3_crit: crit {
1807					temperature = <100000>;
1808					hysteresis = <2000>;
1809					type = "critical";
1810				};
1811			};
1812			cooling-maps {
1813				map0 {
1814					trip = <&cpu3_alert>;
1815					cooling-device = <&CPU3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
1816				};
1817			};
1818		};
1819		cpu4-thermal {
1820			polling-delay-passive = <250>;
1821			polling-delay = <1000>;
1822			thermal-sensors = <&tsens0 4>;
1823			trips {
1824				cpu4_alert: trip-point0 {
1825					temperature = <80000>;
1826					hysteresis = <2000>;
1827					type = "passive";
1828				};
1829				cpu4_crit: crit {
1830					temperature = <100000>;
1831					hysteresis = <2000>;
1832					type = "critical";
1833				};
1834			};
1835			cooling-maps {
1836				map0 {
1837					trip = <&cpu4_alert>;
1838					cooling-device = <&CPU4 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
1839				};
1840			};
1841		};
1842		cpu5-thermal {
1843			polling-delay-passive = <250>;
1844			polling-delay = <1000>;
1845			thermal-sensors = <&tsens0 5>;
1846			trips {
1847				cpu5_alert: trip-point0 {
1848					temperature = <80000>;
1849					hysteresis = <2000>;
1850					type = "passive";
1851				};
1852				cpu5_crit: crit {
1853					temperature = <100000>;
1854					hysteresis = <2000>;
1855					type = "critical";
1856				};
1857			};
1858			cooling-maps {
1859				map0 {
1860					trip = <&cpu5_alert>;
1861					cooling-device = <&CPU5 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
1862				};
1863			};
1864		};
1865		cpu6-thermal {
1866			polling-delay-passive = <250>;
1867			polling-delay = <1000>;
1868			thermal-sensors = <&tsens0 6>;
1869			trips {
1870				cpu6_alert: trip-point0 {
1871					temperature = <80000>;
1872					hysteresis = <2000>;
1873					type = "passive";
1874				};
1875				cpu6_crit: crit {
1876					temperature = <100000>;
1877					hysteresis = <2000>;
1878					type = "critical";
1879				};
1880			};
1881			cooling-maps {
1882				map0 {
1883					trip = <&cpu6_alert>;
1884					cooling-device = <&CPU6 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
1885				};
1886			};
1887		};
1888		cpu7-thermal {
1889			polling-delay-passive = <250>;
1890			polling-delay = <1000>;
1891			thermal-sensors = <&tsens0 7>;
1892			trips {
1893				cpu7_alert: trip-point0 {
1894					temperature = <80000>;
1895					hysteresis = <2000>;
1896					type = "passive";
1897				};
1898				cpu7_crit: crit {
1899					temperature = <100000>;
1900					hysteresis = <2000>;
1901					type = "critical";
1902				};
1903			};
1904			cooling-maps {
1905				map0 {
1906					trip = <&cpu7_alert>;
1907					cooling-device = <&CPU7 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
1908				};
1909			};
1910		};
1911	};
1912
1913	timer {
1914		compatible = "arm,armv8-timer";
1915		interrupts = <GIC_PPI 2 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
1916			     <GIC_PPI 3 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
1917			     <GIC_PPI 4 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
1918			     <GIC_PPI 1 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>;
1919	};
1920};
1921