1// SPDX-License-Identifier: BSD-3-Clause
2/*
3 * SDX75 SoC device tree source
4 *
5 * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
6 *
7 */
8
9#include <dt-bindings/clock/qcom,rpmh.h>
10#include <dt-bindings/clock/qcom,sdx75-gcc.h>
11#include <dt-bindings/dma/qcom-gpi.h>
12#include <dt-bindings/gpio/gpio.h>
13#include <dt-bindings/interconnect/qcom,icc.h>
14#include <dt-bindings/interconnect/qcom,sdx75.h>
15#include <dt-bindings/interrupt-controller/arm-gic.h>
16#include <dt-bindings/mailbox/qcom-ipcc.h>
17#include <dt-bindings/power/qcom,rpmhpd.h>
18#include <dt-bindings/power/qcom-rpmpd.h>
19#include <dt-bindings/soc/qcom,rpmh-rsc.h>
20
21/ {
22	#address-cells = <2>;
23	#size-cells = <2>;
24	interrupt-parent = <&intc>;
25
26	chosen: chosen { };
27
28	clocks {
29		xo_board: xo-board {
30			compatible = "fixed-clock";
31			clock-frequency = <76800000>;
32			#clock-cells = <0>;
33		};
34
35		sleep_clk: sleep-clk {
36			compatible = "fixed-clock";
37			clock-frequency = <32764>;
38			#clock-cells = <0>;
39		};
40	};
41
42	cpus {
43		#address-cells = <2>;
44		#size-cells = <0>;
45
46		cpu0: cpu@0 {
47			device_type = "cpu";
48			compatible = "arm,cortex-a55";
49			reg = <0x0 0x0>;
50			clocks = <&cpufreq_hw 0>;
51			enable-method = "psci";
52			power-domains = <&cpu_pd0>;
53			power-domain-names = "psci";
54			qcom,freq-domain = <&cpufreq_hw 0>;
55			capacity-dmips-mhz = <1024>;
56			dynamic-power-coefficient = <100>;
57			next-level-cache = <&l2_0>;
58
59			l2_0: l2-cache {
60				compatible = "cache";
61				cache-level = <2>;
62				cache-unified;
63				next-level-cache = <&l3_0>;
64				l3_0: l3-cache {
65					compatible = "cache";
66					cache-level = <3>;
67					cache-unified;
68				};
69			};
70		};
71
72		cpu1: cpu@100 {
73			device_type = "cpu";
74			compatible = "arm,cortex-a55";
75			reg = <0x0 0x100>;
76			clocks = <&cpufreq_hw 0>;
77			enable-method = "psci";
78			power-domains = <&cpu_pd1>;
79			power-domain-names = "psci";
80			qcom,freq-domain = <&cpufreq_hw 0>;
81			capacity-dmips-mhz = <1024>;
82			dynamic-power-coefficient = <100>;
83			next-level-cache = <&l2_100>;
84
85			l2_100: l2-cache {
86				compatible = "cache";
87				cache-level = <2>;
88				cache-unified;
89				next-level-cache = <&l3_0>;
90			};
91		};
92
93		cpu2: cpu@200 {
94			device_type = "cpu";
95			compatible = "arm,cortex-a55";
96			reg = <0x0 0x200>;
97			clocks = <&cpufreq_hw 0>;
98			enable-method = "psci";
99			power-domains = <&cpu_pd2>;
100			power-domain-names = "psci";
101			qcom,freq-domain = <&cpufreq_hw 0>;
102			capacity-dmips-mhz = <1024>;
103			dynamic-power-coefficient = <100>;
104			next-level-cache = <&l2_200>;
105
106			l2_200: l2-cache {
107				compatible = "cache";
108				cache-level = <2>;
109				cache-unified;
110				next-level-cache = <&l3_0>;
111			};
112		};
113
114		cpu3: cpu@300 {
115			device_type = "cpu";
116			compatible = "arm,cortex-a55";
117			reg = <0x0 0x300>;
118			clocks = <&cpufreq_hw 0>;
119			enable-method = "psci";
120			power-domains = <&cpu_pd3>;
121			power-domain-names = "psci";
122			qcom,freq-domain = <&cpufreq_hw 0>;
123			capacity-dmips-mhz = <1024>;
124			dynamic-power-coefficient = <100>;
125			next-level-cache = <&l2_300>;
126
127			l2_300: l2-cache {
128				compatible = "cache";
129				cache-level = <2>;
130				cache-unified;
131				next-level-cache = <&l3_0>;
132			};
133		};
134
135		cpu-map {
136			cluster0 {
137				core0 {
138					cpu = <&cpu0>;
139				};
140
141				core1 {
142					cpu = <&cpu1>;
143				};
144
145				core2 {
146					cpu = <&cpu2>;
147				};
148
149				core3 {
150					cpu = <&cpu3>;
151				};
152			};
153		};
154
155		idle-states {
156			entry-method = "psci";
157
158			cpu_off: cpu-sleep-0 {
159				compatible = "arm,idle-state";
160				entry-latency-us = <235>;
161				exit-latency-us = <428>;
162				min-residency-us = <1774>;
163				arm,psci-suspend-param = <0x40000003>;
164				local-timer-stop;
165			};
166
167			cpu_rail_off: cpu-rail-sleep-1 {
168				compatible = "arm,idle-state";
169				entry-latency-us = <800>;
170				exit-latency-us = <750>;
171				min-residency-us = <4090>;
172				arm,psci-suspend-param = <0x40000004>;
173				local-timer-stop;
174			};
175
176		};
177
178		domain-idle-states {
179			cluster_sleep_0: cluster-sleep-0 {
180				compatible = "domain-idle-state";
181				arm,psci-suspend-param = <0x41000044>;
182				entry-latency-us = <1050>;
183				exit-latency-us = <2500>;
184				min-residency-us = <5309>;
185			};
186
187			cluster_sleep_1: cluster-sleep-1 {
188				compatible = "domain-idle-state";
189				arm,psci-suspend-param = <0x41001344>;
190				entry-latency-us = <2761>;
191				exit-latency-us = <3964>;
192				min-residency-us = <8467>;
193			};
194
195			cluster_sleep_2: cluster-sleep-2 {
196				compatible = "domain-idle-state";
197				arm,psci-suspend-param = <0x4100b344>;
198				entry-latency-us = <2793>;
199				exit-latency-us = <4023>;
200				min-residency-us = <9826>;
201			};
202		};
203	};
204
205	firmware {
206		scm: scm {
207			compatible = "qcom,scm-sdx75", "qcom,scm";
208		};
209	};
210
211	clk_virt: interconnect-0 {
212		compatible = "qcom,sdx75-clk-virt";
213		#interconnect-cells = <2>;
214		qcom,bcm-voters = <&apps_bcm_voter>;
215		clocks = <&rpmhcc RPMH_QPIC_CLK>;
216	};
217
218	mc_virt: interconnect-1 {
219		compatible = "qcom,sdx75-mc-virt";
220		#interconnect-cells = <2>;
221		qcom,bcm-voters = <&apps_bcm_voter>;
222	};
223
224	memory@80000000 {
225		device_type = "memory";
226		reg = <0x0 0x80000000 0x0 0x0>;
227	};
228
229	pmu {
230		compatible = "arm,cortex-a55-pmu";
231		interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH>;
232	};
233
234	psci {
235		compatible = "arm,psci-1.0";
236		method = "smc";
237
238		cpu_pd0: power-domain-cpu0 {
239			#power-domain-cells = <0>;
240			power-domains = <&cluster_pd>;
241			domain-idle-states = <&cpu_off &cpu_rail_off>;
242		};
243
244		cpu_pd1: power-domain-cpu1 {
245			#power-domain-cells = <0>;
246			power-domains = <&cluster_pd>;
247			domain-idle-states = <&cpu_off &cpu_rail_off>;
248		};
249
250		cpu_pd2: power-domain-cpu2 {
251			#power-domain-cells = <0>;
252			power-domains = <&cluster_pd>;
253			domain-idle-states = <&cpu_off &cpu_rail_off>;
254		};
255
256		cpu_pd3: power-domain-cpu3 {
257			#power-domain-cells = <0>;
258			power-domains = <&cluster_pd>;
259			domain-idle-states = <&cpu_off &cpu_rail_off>;
260		};
261
262		cluster_pd: power-domain-cpu-cluster0 {
263			#power-domain-cells = <0>;
264			domain-idle-states = <&cluster_sleep_0 &cluster_sleep_1 &cluster_sleep_2>;
265		};
266	};
267
268	reserved-memory {
269		#address-cells = <2>;
270		#size-cells = <2>;
271		ranges;
272
273		gunyah_hyp_mem: gunyah-hyp@80000000 {
274			reg = <0x0 0x80000000 0x0 0x800000>;
275			no-map;
276		};
277
278		hyp_elf_package_mem: hyp-elf-package@80800000 {
279			reg = <0x0 0x80800000 0x0 0x200000>;
280			no-map;
281		};
282
283		access_control_db_mem: access-control-db@81380000 {
284			reg = <0x0 0x81380000 0x0 0x80000>;
285			no-map;
286		};
287
288		qteetz_mem: qteetz@814e0000 {
289			reg = <0x0 0x814e0000 0x0 0x2a0000>;
290			no-map;
291		};
292
293		trusted_apps_mem: trusted-apps@81780000 {
294			reg = <0x0 0x81780000 0x0 0xa00000>;
295			no-map;
296		};
297
298		xbl_ramdump_mem: xbl-ramdump@87a00000 {
299			reg = <0x0 0x87a00000 0x0 0x1c0000>;
300			no-map;
301		};
302
303		cpucp_fw_mem: cpucp-fw@87c00000 {
304			reg = <0x0 0x87c00000 0x0 0x100000>;
305			no-map;
306		};
307
308		xbl_dtlog_mem: xbl-dtlog@87d00000 {
309			reg = <0x0 0x87d00000 0x0 0x40000>;
310			no-map;
311		};
312
313		xbl_sc_mem: xbl-sc@87d40000 {
314			reg = <0x0 0x87d40000 0x0 0x40000>;
315			no-map;
316		};
317
318		modem_efs_shared_mem: modem-efs-shared@87d80000 {
319			reg = <0x0 0x87d80000 0x0 0x10000>;
320			no-map;
321		};
322
323		aop_image_mem: aop-image@87e00000 {
324			reg = <0x0 0x87e00000 0x0 0x20000>;
325			no-map;
326		};
327
328		smem_mem: smem@87e20000 {
329			reg = <0x0 0x87e20000 0x0 0xc0000>;
330			no-map;
331		};
332
333		aop_cmd_db_mem: aop-cmd-db@87ee0000 {
334			compatible = "qcom,cmd-db";
335			reg = <0x0 0x87ee0000 0x0 0x20000>;
336			no-map;
337		};
338
339		aop_config_mem: aop-config@87f00000 {
340			reg = <0x0 0x87f00000 0x0 0x20000>;
341			no-map;
342		};
343
344		ipa_fw_mem: ipa-fw@87f20000 {
345			reg = <0x0 0x87f20000 0x0 0x10000>;
346			no-map;
347		};
348
349		secdata_mem: secdata@87f30000 {
350			reg = <0x0 0x87f30000 0x0 0x1000>;
351			no-map;
352		};
353
354		tme_crashdump_mem: tme-crashdump@87f31000 {
355			reg = <0x0 0x87f31000 0x0 0x40000>;
356			no-map;
357		};
358
359		tme_log_mem: tme-log@87f71000 {
360			reg = <0x0 0x87f71000 0x0 0x4000>;
361			no-map;
362		};
363
364		uefi_log_mem: uefi-log@87f75000 {
365			reg = <0x0 0x87f75000 0x0 0x10000>;
366			no-map;
367		};
368
369		qdss_mem: qdss@88500000 {
370			reg = <0x0 0x88500000 0x0 0x300000>;
371			no-map;
372		};
373
374		qlink_logging_mem: qlink-logging@88800000 {
375			reg = <0x0 0x88800000 0x0 0x300000>;
376			no-map;
377		};
378
379		audio_heap_mem: audio-heap@88b00000 {
380			compatible = "shared-dma-pool";
381			reg = <0x0 0x88b00000 0x0 0x400000>;
382			no-map;
383		};
384
385		mpss_dsm_mem_2: mpss-dsm-2@88f00000 {
386			reg = <0x0 0x88f00000 0x0 0x2500000>;
387			no-map;
388		};
389
390		mpss_dsm_mem: mpss-dsm@8b400000 {
391			reg = <0x0 0x8b400000 0x0 0x2b80000>;
392			no-map;
393		};
394
395		q6_mpss_dtb_mem: q6-mpss-dtb@8df80000 {
396			reg = <0x0 0x8df80000 0x0 0x80000>;
397			no-map;
398		};
399
400		mpssadsp_mem: mpssadsp@8e000000 {
401			reg = <0x0 0x8e000000 0x0 0xf100000>;
402			no-map;
403		};
404
405		gunyah_trace_buffer_mem: gunyah-trace-buffer@bdb00000 {
406			reg = <0x0 0xbdb00000 0x0 0x2000000>;
407			no-map;
408		};
409
410		smmu_debug_buf_mem: smmu-debug-buf@bfb00000 {
411			reg = <0x0 0xbfb00000 0x0 0x100000>;
412			no-map;
413		};
414
415		hyp_smmu_s2_pt_mem: hyp-smmu-s2-pt@bfc00000 {
416			reg = <0x0 0xbfc00000 0x0 0x400000>;
417			no-map;
418		};
419	};
420
421	smp2p-modem {
422		compatible = "qcom,smp2p";
423		qcom,smem = <435>, <428>;
424		interrupts-extended = <&ipcc IPCC_CLIENT_MPSS
425					     IPCC_MPROC_SIGNAL_SMP2P
426					     IRQ_TYPE_EDGE_RISING>;
427		mboxes = <&ipcc IPCC_CLIENT_MPSS
428				IPCC_MPROC_SIGNAL_SMP2P>;
429
430		qcom,local-pid = <0>;
431		qcom,remote-pid = <1>;
432
433		smp2p_modem_out: master-kernel {
434			qcom,entry-name = "master-kernel";
435			#qcom,smem-state-cells = <1>;
436		};
437
438		smp2p_modem_in: slave-kernel {
439			qcom,entry-name = "slave-kernel";
440			interrupt-controller;
441			#interrupt-cells = <2>;
442		};
443
444		ipa_smp2p_out: ipa-ap-to-modem {
445			qcom,entry-name = "ipa";
446			#qcom,smem-state-cells = <1>;
447		};
448
449		ipa_smp2p_in: ipa-modem-to-ap {
450			qcom,entry-name = "ipa";
451			interrupt-controller;
452			#interrupt-cells = <2>;
453		};
454	};
455
456	smem: smem {
457		compatible = "qcom,smem";
458		memory-region = <&smem_mem>;
459		hwlocks = <&tcsr_mutex 3>;
460	};
461
462	soc: soc@0 {
463		compatible = "simple-bus";
464		#address-cells = <2>;
465		#size-cells = <2>;
466		ranges = <0 0 0 0 0x10 0>;
467		dma-ranges = <0 0 0 0 0x10 0>;
468
469		gcc: clock-controller@80000 {
470			compatible = "qcom,sdx75-gcc";
471			reg = <0x0 0x0080000 0x0 0x1f7400>;
472			clocks = <&rpmhcc RPMH_CXO_CLK>,
473				 <&sleep_clk>,
474				 <0>,
475				 <0>,
476				 <0>,
477				 <0>,
478				 <0>,
479				 <0>,
480				 <0>,
481				 <0>,
482				 <0>,
483				 <0>,
484				 <0>,
485				 <0>,
486				 <0>;
487			#clock-cells = <1>;
488			#reset-cells = <1>;
489			#power-domain-cells = <1>;
490		};
491
492		ipcc: mailbox@408000 {
493			compatible = "qcom,sdx75-ipcc", "qcom,ipcc";
494			reg = <0 0x00408000 0 0x1000>;
495			interrupts = <GIC_SPI 241 IRQ_TYPE_LEVEL_HIGH>;
496			interrupt-controller;
497			#interrupt-cells = <3>;
498			#mbox-cells = <2>;
499		};
500
501		gpi_dma: dma-controller@900000 {
502			compatible = "qcom,sdx75-gpi-dma", "qcom,sm6350-gpi-dma";
503			reg = <0x0 0x00900000 0x0 0x60000>;
504			#dma-cells = <3>;
505			interrupts = <GIC_SPI 345 IRQ_TYPE_LEVEL_HIGH>,
506				     <GIC_SPI 346 IRQ_TYPE_LEVEL_HIGH>,
507				     <GIC_SPI 347 IRQ_TYPE_LEVEL_HIGH>,
508				     <GIC_SPI 348 IRQ_TYPE_LEVEL_HIGH>,
509				     <GIC_SPI 349 IRQ_TYPE_LEVEL_HIGH>,
510				     <GIC_SPI 350 IRQ_TYPE_LEVEL_HIGH>,
511				     <GIC_SPI 351 IRQ_TYPE_LEVEL_HIGH>,
512				     <GIC_SPI 352 IRQ_TYPE_LEVEL_HIGH>,
513				     <GIC_SPI 353 IRQ_TYPE_LEVEL_HIGH>,
514				     <GIC_SPI 354 IRQ_TYPE_LEVEL_HIGH>,
515				     <GIC_SPI 355 IRQ_TYPE_LEVEL_HIGH>,
516				     <GIC_SPI 356 IRQ_TYPE_LEVEL_HIGH>;
517			dma-channels = <12>;
518			dma-channel-mask = <0x7f>;
519			iommus = <&apps_smmu 0xf6 0x0>;
520			status = "disabled";
521		};
522
523		qupv3_id_0: geniqup@9c0000 {
524			compatible = "qcom,geni-se-qup";
525			reg = <0x0 0x009c0000 0x0 0x2000>;
526			clocks = <&gcc GCC_QUPV3_WRAP_0_M_AHB_CLK>,
527				 <&gcc GCC_QUPV3_WRAP_0_S_AHB_CLK>;
528			clock-names = "m-ahb",
529				      "s-ahb";
530			iommus = <&apps_smmu 0xe3 0x0>;
531			interconnects = <&clk_virt MASTER_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS
532					 &clk_virt SLAVE_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS>;
533			interconnect-names = "qup-core";
534			#address-cells = <2>;
535			#size-cells = <2>;
536			ranges;
537			status = "disabled";
538
539			i2c0: i2c@980000 {
540				compatible = "qcom,geni-i2c";
541				reg = <0x0 0x00980000 0x0 0x4000>;
542				clocks = <&gcc GCC_QUPV3_WRAP0_S0_CLK>;
543				clock-names = "se";
544				interrupts = <GIC_SPI 337 IRQ_TYPE_LEVEL_HIGH>;
545				#address-cells = <1>;
546				#size-cells = <0>;
547				pinctrl-0 = <&qup_i2c0_data_clk>;
548				pinctrl-names = "default";
549				interconnects = <&clk_virt MASTER_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS
550						 &clk_virt SLAVE_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS>,
551						<&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
552						 &system_noc SLAVE_QUP_0 QCOM_ICC_TAG_ALWAYS>,
553						<&system_noc MASTER_QUP_0 QCOM_ICC_TAG_ALWAYS
554						 &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
555				interconnect-names = "qup-core", "qup-config", "qup-memory";
556				dmas = <&gpi_dma 0 0 QCOM_GPI_I2C>,
557				       <&gpi_dma 1 0 QCOM_GPI_I2C>;
558				dma-names = "tx", "rx";
559				status = "disabled";
560			};
561
562			spi0: spi@980000 {
563				compatible = "qcom,geni-spi";
564				reg = <0x0 0x00980000 0x0 0x4000>;
565				clocks = <&gcc GCC_QUPV3_WRAP0_S0_CLK>;
566				clock-names = "se";
567				interrupts = <GIC_SPI 337 IRQ_TYPE_LEVEL_HIGH>;
568				#address-cells = <1>;
569				#size-cells = <0>;
570				pinctrl-0 = <&qup_spi0_data_clk>, <&qup_spi0_cs>;
571				pinctrl-names = "default";
572				interconnects = <&clk_virt MASTER_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS
573						 &clk_virt SLAVE_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS>,
574						<&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
575						 &system_noc SLAVE_QUP_0 QCOM_ICC_TAG_ALWAYS>,
576						<&system_noc MASTER_QUP_0 QCOM_ICC_TAG_ALWAYS
577						 &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
578				interconnect-names = "qup-core", "qup-config", "qup-memory";
579				dmas = <&gpi_dma 0 0 QCOM_GPI_SPI>,
580				       <&gpi_dma 1 0 QCOM_GPI_SPI>;
581				dma-names = "tx", "rx";
582				status = "disabled";
583			};
584
585			uart1: serial@984000 {
586				compatible = "qcom,geni-debug-uart";
587				reg = <0x0 0x00984000 0x0 0x4000>;
588				clocks = <&gcc GCC_QUPV3_WRAP0_S1_CLK>;
589				clock-names = "se";
590				interconnects = <&clk_virt MASTER_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS
591						 &clk_virt SLAVE_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS>,
592						<&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
593						 &system_noc SLAVE_QUP_0 QCOM_ICC_TAG_ALWAYS>;
594				interconnect-names = "qup-core",
595						     "qup-config";
596				interrupts = <GIC_SPI 338 IRQ_TYPE_LEVEL_HIGH>;
597				pinctrl-0 = <&qupv3_se1_2uart_active>;
598				pinctrl-1 = <&qupv3_se1_2uart_sleep>;
599				pinctrl-names = "default",
600						"sleep";
601				status = "disabled";
602			};
603
604			i2c2: i2c@988000 {
605				compatible = "qcom,geni-i2c";
606				reg = <0x0 0x00988000 0x0 0x4000>;
607				clocks = <&gcc GCC_QUPV3_WRAP0_S2_CLK>;
608				clock-names = "se";
609				interrupts = <GIC_SPI 339 IRQ_TYPE_LEVEL_HIGH>;
610				#address-cells = <1>;
611				#size-cells = <0>;
612				pinctrl-0 = <&qup_i2c2_data_clk>;
613				pinctrl-names = "default";
614				interconnects = <&clk_virt MASTER_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS
615						 &clk_virt SLAVE_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS>,
616						<&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
617						 &system_noc SLAVE_QUP_0 QCOM_ICC_TAG_ALWAYS>,
618						<&system_noc MASTER_QUP_0 QCOM_ICC_TAG_ALWAYS
619						 &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
620				interconnect-names = "qup-core", "qup-config", "qup-memory";
621				dmas = <&gpi_dma 0 2 QCOM_GPI_I2C>,
622				       <&gpi_dma 1 2 QCOM_GPI_I2C>;
623				dma-names = "tx", "rx";
624				status = "disabled";
625			};
626
627			spi2: spi@988000 {
628				compatible = "qcom,geni-spi";
629				reg = <0x0 0x00988000 0x0 0x4000>;
630				clocks = <&gcc GCC_QUPV3_WRAP0_S2_CLK>;
631				clock-names = "se";
632				interrupts = <GIC_SPI 339 IRQ_TYPE_LEVEL_HIGH>;
633				#address-cells = <1>;
634				#size-cells = <0>;
635				pinctrl-0 = <&qup_spi2_data_clk>, <&qup_spi2_cs>;
636				pinctrl-names = "default";
637				interconnects = <&clk_virt MASTER_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS
638						 &clk_virt SLAVE_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS>,
639						<&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
640						 &system_noc SLAVE_QUP_0 QCOM_ICC_TAG_ALWAYS>,
641						<&system_noc MASTER_QUP_0 QCOM_ICC_TAG_ALWAYS
642						 &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
643				interconnect-names = "qup-core", "qup-config", "qup-memory";
644				dmas = <&gpi_dma 0 2 QCOM_GPI_SPI>,
645				       <&gpi_dma 1 2 QCOM_GPI_SPI>;
646				dma-names = "tx", "rx";
647				status = "disabled";
648			};
649
650			i2c3: i2c@98c000 {
651				compatible = "qcom,geni-i2c";
652				reg = <0x0 0x0098c000 0x0 0x4000>;
653				clocks = <&gcc GCC_QUPV3_WRAP0_S3_CLK>;
654				clock-names = "se";
655				interrupts = <GIC_SPI 340 IRQ_TYPE_LEVEL_HIGH>;
656				#address-cells = <1>;
657				#size-cells = <0>;
658				pinctrl-0 = <&qup_i2c3_data_clk>;
659				pinctrl-names = "default";
660				interconnects = <&clk_virt MASTER_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS
661						 &clk_virt SLAVE_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS>,
662						<&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
663						 &system_noc SLAVE_QUP_0 QCOM_ICC_TAG_ALWAYS>,
664						<&system_noc MASTER_QUP_0 QCOM_ICC_TAG_ALWAYS
665						 &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
666				interconnect-names = "qup-core", "qup-config", "qup-memory";
667				dmas = <&gpi_dma 0 3 QCOM_GPI_I2C>,
668				       <&gpi_dma 1 3 QCOM_GPI_I2C>;
669				dma-names = "tx", "rx";
670				status = "disabled";
671			};
672
673			spi3: spi@98c000 {
674				compatible = "qcom,geni-spi";
675				reg = <0x0 0x0098c000 0x0 0x4000>;
676				clocks = <&gcc GCC_QUPV3_WRAP0_S3_CLK>;
677				clock-names = "se";
678				interrupts = <GIC_SPI 340 IRQ_TYPE_LEVEL_HIGH>;
679				#address-cells = <1>;
680				#size-cells = <0>;
681				pinctrl-0 = <&qup_spi3_data_clk>, <&qup_spi3_cs>;
682				pinctrl-names = "default";
683				interconnects = <&clk_virt MASTER_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS
684						 &clk_virt SLAVE_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS>,
685						<&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
686						 &system_noc SLAVE_QUP_0 QCOM_ICC_TAG_ALWAYS>,
687						<&system_noc MASTER_QUP_0 QCOM_ICC_TAG_ALWAYS
688						 &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
689				interconnect-names = "qup-core", "qup-config", "qup-memory";
690				dmas = <&gpi_dma 0 3 QCOM_GPI_SPI>,
691				       <&gpi_dma 1 3 QCOM_GPI_SPI>;
692				dma-names = "tx", "rx";
693				status = "disabled";
694			};
695
696			uart4: serial@990000 {
697				compatible = "qcom,geni-uart";
698				reg = <0x0 0x00990000 0x0 0x4000>;
699				clocks = <&gcc GCC_QUPV3_WRAP0_S4_CLK>;
700				clock-names = "se";
701				interrupts = <GIC_SPI 341 IRQ_TYPE_LEVEL_HIGH>;
702				pinctrl-0 = <&qup_uart4_default>, <&qup_uart4_cts_rts>;
703				pinctrl-names = "default";
704				interconnects = <&clk_virt MASTER_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS
705						 &clk_virt SLAVE_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS>,
706						<&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
707						 &system_noc SLAVE_QUP_0 QCOM_ICC_TAG_ALWAYS>;
708				interconnect-names = "qup-core", "qup-config";
709				status = "disabled";
710			};
711
712			i2c5: i2c@994000 {
713				compatible = "qcom,geni-i2c";
714				reg = <0x0 0x00994000 0x0 0x4000>;
715				clocks = <&gcc GCC_QUPV3_WRAP0_S5_CLK>;
716				clock-names = "se";
717				interrupts = <GIC_SPI 342 IRQ_TYPE_LEVEL_HIGH>;
718				#address-cells = <1>;
719				#size-cells = <0>;
720				pinctrl-0 = <&qup_i2c5_data_clk>;
721				pinctrl-names = "default";
722				interconnects = <&clk_virt MASTER_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS
723						 &clk_virt SLAVE_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS>,
724						<&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
725						 &system_noc SLAVE_QUP_0 QCOM_ICC_TAG_ALWAYS>,
726						<&system_noc MASTER_QUP_0 QCOM_ICC_TAG_ALWAYS
727						 &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
728				interconnect-names = "qup-core", "qup-config", "qup-memory";
729				dmas = <&gpi_dma 0 5 QCOM_GPI_I2C>,
730				       <&gpi_dma 1 5 QCOM_GPI_I2C>;
731				dma-names = "tx", "rx";
732				status = "disabled";
733			};
734
735			i2c6: i2c@998000 {
736				compatible = "qcom,geni-i2c";
737				reg = <0x0 0x00998000 0x0 0x4000>;
738				clocks = <&gcc GCC_QUPV3_WRAP0_S6_CLK>;
739				clock-names = "se";
740				interrupts = <GIC_SPI 343 IRQ_TYPE_LEVEL_HIGH>;
741				#address-cells = <1>;
742				#size-cells = <0>;
743				pinctrl-0 = <&qup_i2c6_data_clk>;
744				pinctrl-names = "default";
745				interconnects = <&clk_virt MASTER_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS
746						 &clk_virt SLAVE_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS>,
747						<&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
748						 &system_noc SLAVE_QUP_0 QCOM_ICC_TAG_ALWAYS>,
749						<&system_noc MASTER_QUP_0 QCOM_ICC_TAG_ALWAYS
750						 &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
751				interconnect-names = "qup-core", "qup-config", "qup-memory";
752				dmas = <&gpi_dma 0 6 QCOM_GPI_I2C>,
753				       <&gpi_dma 1 6 QCOM_GPI_I2C>;
754				dma-names = "tx", "rx";
755				status = "disabled";
756			};
757
758			spi6: spi@998000 {
759				compatible = "qcom,geni-spi";
760				reg = <0x0 0x00998000 0x0 0x4000>;
761				clocks = <&gcc GCC_QUPV3_WRAP0_S6_CLK>;
762				clock-names = "se";
763				interrupts = <GIC_SPI 343 IRQ_TYPE_LEVEL_HIGH>;
764				#address-cells = <1>;
765				#size-cells = <0>;
766				pinctrl-0 = <&qup_spi6_data_clk>, <&qup_spi6_cs>;
767				pinctrl-names = "default";
768				interconnects = <&clk_virt MASTER_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS
769						 &clk_virt SLAVE_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS>,
770						<&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
771						 &system_noc SLAVE_QUP_0 QCOM_ICC_TAG_ALWAYS>,
772						<&system_noc MASTER_QUP_0 QCOM_ICC_TAG_ALWAYS
773						 &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
774				interconnect-names = "qup-core", "qup-config", "qup-memory";
775				dmas = <&gpi_dma 0 6 QCOM_GPI_SPI>,
776				       <&gpi_dma 1 6 QCOM_GPI_SPI>;
777				dma-names = "tx", "rx";
778				status = "disabled";
779			};
780
781			i2c7: i2c@99c000 {
782				compatible = "qcom,geni-i2c";
783				reg = <0x0 0x0099c000 0x0 0x4000>;
784				clocks = <&gcc GCC_QUPV3_WRAP0_S7_CLK>;
785				clock-names = "se";
786				interrupts = <GIC_SPI 344 IRQ_TYPE_LEVEL_HIGH>;
787				#address-cells = <1>;
788				#size-cells = <0>;
789				pinctrl-0 = <&qup_i2c7_data_clk>;
790				pinctrl-names = "default";
791				interconnects = <&clk_virt MASTER_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS
792						 &clk_virt SLAVE_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS>,
793						<&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
794						 &system_noc SLAVE_QUP_0 QCOM_ICC_TAG_ALWAYS>,
795						<&system_noc MASTER_QUP_0 QCOM_ICC_TAG_ALWAYS
796						 &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
797				interconnect-names = "qup-core", "qup-config", "qup-memory";
798				dmas = <&gpi_dma 0 7 QCOM_GPI_I2C>,
799				       <&gpi_dma 1 7 QCOM_GPI_I2C>;
800				dma-names = "tx", "rx";
801				status = "disabled";
802			};
803
804			spi7: spi@99c000 {
805				compatible = "qcom,geni-spi";
806				reg = <0x0 0x0099c000 0x0 0x4000>;
807				clocks = <&gcc GCC_QUPV3_WRAP0_S7_CLK>;
808				clock-names = "se";
809				interrupts = <GIC_SPI 344 IRQ_TYPE_LEVEL_HIGH>;
810				#address-cells = <1>;
811				#size-cells = <0>;
812				pinctrl-0 = <&qup_spi7_data_clk>, <&qup_spi7_cs>;
813				pinctrl-names = "default";
814				interconnects = <&clk_virt MASTER_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS
815						 &clk_virt SLAVE_QUP_CORE_0 QCOM_ICC_TAG_ALWAYS>,
816						<&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
817						 &system_noc SLAVE_QUP_0 QCOM_ICC_TAG_ALWAYS>,
818						<&system_noc MASTER_QUP_0 QCOM_ICC_TAG_ALWAYS
819						 &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
820				interconnect-names = "qup-core", "qup-config", "qup-memory";
821				dmas = <&gpi_dma 0 7 QCOM_GPI_SPI>,
822				       <&gpi_dma 1 7 QCOM_GPI_SPI>;
823				dma-names = "tx", "rx";
824				status = "disabled";
825			};
826		};
827
828		usb_hsphy: phy@ff4000 {
829			compatible = "qcom,sdx75-snps-eusb2-phy", "qcom,sm8550-snps-eusb2-phy";
830			reg = <0x0 0x00ff4000 0x0 0x154>;
831			#phy-cells = <0>;
832
833			clocks = <&rpmhcc RPMH_CXO_CLK>;
834			clock-names = "ref";
835
836			resets = <&gcc GCC_QUSB2PHY_BCR>;
837
838			status = "disabled";
839		};
840
841		usb_qmpphy: phy@ff6000 {
842			compatible = "qcom,sdx75-qmp-usb3-uni-phy";
843			reg = <0x0 0x00ff6000 0x0 0x2000>;
844
845			clocks = <&gcc GCC_USB3_PHY_AUX_CLK>,
846				 <&gcc GCC_USB2_CLKREF_EN>,
847				 <&gcc GCC_USB_PHY_CFG_AHB2PHY_CLK>,
848				 <&gcc GCC_USB3_PHY_PIPE_CLK>;
849			clock-names = "aux",
850				      "ref",
851				      "cfg_ahb",
852				      "pipe";
853
854			power-domains = <&gcc GCC_USB3_PHY_GDSC>;
855
856			resets = <&gcc GCC_USB3_PHY_BCR>,
857				 <&gcc GCC_USB3PHY_PHY_BCR>;
858			reset-names = "phy",
859				      "phy_phy";
860
861			#clock-cells = <0>;
862			clock-output-names = "usb3_uni_phy_pipe_clk_src";
863
864			#phy-cells = <0>;
865
866			status = "disabled";
867		};
868
869		system_noc: interconnect@1640000 {
870			compatible = "qcom,sdx75-system-noc";
871			reg = <0x0 0x01640000 0x0 0x4b400>;
872			#interconnect-cells = <2>;
873			qcom,bcm-voters = <&apps_bcm_voter>;
874		};
875
876		pcie_anoc: interconnect@16c0000 {
877			compatible = "qcom,sdx75-pcie-anoc";
878			reg = <0x0 0x016c0000 0x0 0x14200>;
879			#interconnect-cells = <2>;
880			qcom,bcm-voters = <&apps_bcm_voter>;
881		};
882
883		tcsr_mutex: hwlock@1f40000 {
884			compatible = "qcom,tcsr-mutex";
885			reg = <0x0 0x01f40000 0x0 0x40000>;
886			#hwlock-cells = <1>;
887		};
888
889		tcsr: syscon@1fc0000 {
890			compatible = "qcom,sdx75-tcsr", "syscon";
891			reg = <0x0 0x01fc0000 0x0 0x30000>;
892		};
893
894		remoteproc_mpss: remoteproc@4080000 {
895			compatible = "qcom,sdx75-mpss-pas";
896			reg = <0 0x04080000 0 0x10000>;
897
898			interrupts-extended = <&intc GIC_SPI 250 IRQ_TYPE_EDGE_RISING>,
899					      <&smp2p_modem_in 0 IRQ_TYPE_EDGE_RISING>,
900					      <&smp2p_modem_in 1 IRQ_TYPE_EDGE_RISING>,
901					      <&smp2p_modem_in 2 IRQ_TYPE_EDGE_RISING>,
902					      <&smp2p_modem_in 3 IRQ_TYPE_EDGE_RISING>,
903					      <&smp2p_modem_in 7 IRQ_TYPE_EDGE_RISING>;
904			interrupt-names = "wdog",
905					  "fatal",
906					  "ready",
907					  "handover",
908					  "stop-ack",
909					  "shutdown-ack";
910
911			clocks = <&rpmhcc RPMH_CXO_CLK>;
912			clock-names = "xo";
913
914			power-domains = <&rpmhpd RPMHPD_CX>,
915					<&rpmhpd RPMHPD_MSS>;
916			power-domain-names = "cx",
917					     "mss";
918
919			memory-region = <&mpssadsp_mem>, <&q6_mpss_dtb_mem>,
920					<&mpss_dsm_mem>, <&mpss_dsm_mem_2>,
921					<&qlink_logging_mem>;
922
923			qcom,qmp = <&aoss_qmp>;
924
925			qcom,smem-states = <&smp2p_modem_out 0>;
926			qcom,smem-state-names = "stop";
927
928			status = "disabled";
929
930			glink-edge {
931				interrupts-extended = <&ipcc IPCC_CLIENT_MPSS
932							     IPCC_MPROC_SIGNAL_PING
933							     IRQ_TYPE_EDGE_RISING>;
934				mboxes = <&ipcc IPCC_CLIENT_MPSS
935						IPCC_MPROC_SIGNAL_PING>;
936				label = "mpss";
937				qcom,remote-pid = <1>;
938			};
939		};
940
941		sdhc: mmc@8804000 {
942			compatible = "qcom,sdx75-sdhci", "qcom,sdhci-msm-v5";
943			reg = <0x0 0x08804000 0x0 0x1000>;
944
945			interrupts = <GIC_SPI 210 IRQ_TYPE_LEVEL_HIGH>,
946				     <GIC_SPI 227 IRQ_TYPE_LEVEL_HIGH>;
947			interrupt-names = "hc_irq",
948					  "pwr_irq";
949
950			clocks = <&gcc GCC_SDCC1_AHB_CLK>,
951				 <&gcc GCC_SDCC1_APPS_CLK>,
952				 <&rpmhcc RPMH_CXO_CLK>;
953			clock-names = "iface",
954				      "core",
955				      "xo";
956			iommus = <&apps_smmu 0x00a0 0x0>;
957			qcom,dll-config = <0x0007442c>;
958			qcom,ddr-config = <0x80040868>;
959			power-domains = <&rpmhpd RPMHPD_CX>;
960			operating-points-v2 = <&sdhc1_opp_table>;
961
962			interconnects = <&system_noc MASTER_SDCC_1 &mc_virt SLAVE_EBI1>,
963					<&gem_noc MASTER_APPSS_PROC &system_noc SLAVE_SDCC_1>;
964			interconnect-names = "sdhc-ddr",
965					     "cpu-sdhc";
966			bus-width = <4>;
967			dma-coherent;
968
969			/* Forbid SDR104/SDR50 - broken hw! */
970			sdhci-caps-mask = <0x3 0>;
971
972			status = "disabled";
973
974			sdhc1_opp_table: opp-table {
975				compatible = "operating-points-v2";
976
977				opp-100000000 {
978					opp-hz = /bits/ 64 <100000000>;
979					required-opps = <&rpmhpd_opp_low_svs>;
980				};
981
982				opp-384000000 {
983					opp-hz = /bits/ 64 <384000000>;
984					required-opps = <&rpmhpd_opp_nom>;
985				};
986			};
987		};
988
989		usb: usb@a6f8800 {
990			compatible = "qcom,sdx75-dwc3", "qcom,dwc3";
991			reg = <0x0 0x0a6f8800 0x0 0x400>;
992			#address-cells = <2>;
993			#size-cells = <2>;
994			ranges;
995
996			clocks = <&gcc GCC_USB30_SLV_AHB_CLK>,
997				 <&gcc GCC_USB30_MASTER_CLK>,
998				 <&gcc GCC_USB30_MSTR_AXI_CLK>,
999				 <&gcc GCC_USB30_SLEEP_CLK>,
1000				 <&gcc GCC_USB30_MOCK_UTMI_CLK>;
1001			clock-names = "cfg_noc",
1002				      "core",
1003				      "iface",
1004				      "sleep",
1005				      "mock_utmi";
1006
1007			assigned-clocks = <&gcc GCC_USB30_MOCK_UTMI_CLK>,
1008					  <&gcc GCC_USB30_MASTER_CLK>;
1009			assigned-clock-rates = <19200000>, <200000000>;
1010
1011			interrupts-extended = <&intc GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>,
1012					      <&pdc 17 IRQ_TYPE_LEVEL_HIGH>,
1013					      <&pdc 9 IRQ_TYPE_EDGE_RISING>,
1014					      <&pdc 10 IRQ_TYPE_EDGE_RISING>;
1015			interrupt-names = "hs_phy_irq",
1016					  "ss_phy_irq",
1017					  "dm_hs_phy_irq",
1018					  "dp_hs_phy_irq";
1019
1020			power-domains = <&gcc GCC_USB30_GDSC>;
1021
1022			resets = <&gcc GCC_USB30_BCR>;
1023
1024			interconnects = <&system_noc MASTER_USB3_0 QCOM_ICC_TAG_ALWAYS
1025					 &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>,
1026					<&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
1027					 &system_noc SLAVE_USB3 QCOM_ICC_TAG_ALWAYS>;
1028			interconnect-names = "usb-ddr",
1029					     "apps-usb";
1030
1031			status = "disabled";
1032
1033			usb_dwc3: usb@a600000 {
1034				compatible = "snps,dwc3";
1035				reg = <0x0 0x0a600000 0x0 0xcd00>;
1036				interrupts = <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>;
1037				iommus = <&apps_smmu 0x80 0x0>;
1038				snps,dis_u2_susphy_quirk;
1039				snps,dis_enblslpm_quirk;
1040				snps,dis-u1-entry-quirk;
1041				snps,dis-u2-entry-quirk;
1042				phys = <&usb_hsphy>,
1043				       <&usb_qmpphy>;
1044				phy-names = "usb2-phy",
1045					    "usb3-phy";
1046
1047				ports {
1048					#address-cells = <1>;
1049					#size-cells = <0>;
1050
1051					port@0 {
1052						reg = <0>;
1053
1054						usb_1_dwc3_hs: endpoint {
1055						};
1056					};
1057
1058					port@1 {
1059						reg = <1>;
1060
1061						usb_1_dwc3_ss: endpoint {
1062						};
1063					};
1064				};
1065			};
1066		};
1067
1068		pdc: interrupt-controller@b220000 {
1069			compatible = "qcom,sdx75-pdc", "qcom,pdc";
1070			reg = <0x0 0xb220000 0x0 0x30000>,
1071			      <0x0 0x174000f0 0x0 0x64>;
1072			qcom,pdc-ranges = <0 147 52>,
1073					  <52 266 32>,
1074					  <84 500 59>;
1075			#interrupt-cells = <2>;
1076			interrupt-parent = <&intc>;
1077			interrupt-controller;
1078		};
1079
1080		aoss_qmp: power-controller@c310000 {
1081			compatible = "qcom,sdx75-aoss-qmp", "qcom,aoss-qmp";
1082			reg = <0 0x0c310000 0 0x1000>;
1083			interrupt-parent = <&ipcc>;
1084			interrupts-extended = <&ipcc IPCC_CLIENT_AOP IPCC_MPROC_SIGNAL_GLINK_QMP
1085						     IRQ_TYPE_EDGE_RISING>;
1086			mboxes = <&ipcc IPCC_CLIENT_AOP IPCC_MPROC_SIGNAL_GLINK_QMP>;
1087
1088			#clock-cells = <0>;
1089		};
1090
1091		spmi_bus: spmi@c400000 {
1092			compatible = "qcom,spmi-pmic-arb";
1093			reg = <0x0 0x0c400000 0x0 0x3000>,
1094			      <0x0 0x0c500000 0x0 0x400000>,
1095			      <0x0 0x0c440000 0x0 0x80000>,
1096			      <0x0 0x0c4c0000 0x0 0x10000>,
1097			      <0x0 0x0c42d000 0x0 0x4000>;
1098			reg-names = "core",
1099				    "chnls",
1100				    "obsrvr",
1101				    "intr",
1102				    "cnfg";
1103			interrupts-extended = <&pdc 1 IRQ_TYPE_LEVEL_HIGH>;
1104			interrupt-names = "periph_irq";
1105			qcom,ee = <0>;
1106			qcom,channel = <0>;
1107			qcom,bus-id = <0>;
1108			#address-cells = <2>;
1109			#size-cells = <0>;
1110			interrupt-controller;
1111			#interrupt-cells = <4>;
1112		};
1113
1114		tlmm: pinctrl@f000000 {
1115			compatible = "qcom,sdx75-tlmm";
1116			reg = <0x0 0x0f000000 0x0 0x400000>;
1117			interrupts = <GIC_SPI 212 IRQ_TYPE_LEVEL_HIGH>;
1118			gpio-controller;
1119			#gpio-cells = <2>;
1120			gpio-ranges = <&tlmm 0 0 133>;
1121			interrupt-controller;
1122			#interrupt-cells = <2>;
1123			wakeup-parent = <&pdc>;
1124
1125			qup_i2c0_data_clk: qup-i2c0-data-clk-state {
1126				/* SDA, SCL */
1127				pins = "gpio8", "gpio9";
1128				function = "qup_se0";
1129				drive-strength = <2>;
1130				bias-pull-up;
1131			};
1132
1133			qup_i2c2_data_clk: qup-i2c2-data-clk-state {
1134				/* SDA, SCL */
1135				pins = "gpio14", "gpio15";
1136				function = "qup_se2";
1137				drive-strength = <2>;
1138				bias-pull-up;
1139			};
1140
1141			qup_i2c3_data_clk: qup-i2c3-data-clk-state {
1142				/* SDA, SCL */
1143				pins = "gpio52", "gpio53";
1144				function = "qup_se3";
1145				drive-strength = <2>;
1146				bias-pull-up;
1147			};
1148
1149			qup_i2c5_data_clk: qup-i2c5-data-clk-state {
1150				/* SDA, SCL */
1151				pins = "gpio110", "gpio111";
1152				function = "qup_se5";
1153				drive-strength = <2>;
1154				bias-pull-up;
1155			};
1156
1157			qup_i2c6_data_clk: qup-i2c6-data-clk-state {
1158				/* SDA, SCL */
1159				pins = "gpio112", "gpio113";
1160				function = "qup_se6";
1161				drive-strength = <2>;
1162				bias-pull-up;
1163			};
1164
1165			qup_i2c7_data_clk: qup-i2c7-data-clk-state {
1166				/* SDA, SCL */
1167				pins = "gpio116", "gpio117";
1168				function = "qup_se7";
1169				drive-strength = <2>;
1170				bias-pull-up;
1171			};
1172
1173			qup_spi0_cs: qup-spi0-cs-state {
1174				pins = "gpio11";
1175				function = "qup_se0";
1176				drive-strength = <6>;
1177				bias-pull-down;
1178			};
1179
1180			qup_spi0_data_clk: qup-spi0-data-clk-state {
1181				/* MISO, MOSI, CLK */
1182				pins = "gpio8", "gpio9", "gpio10";
1183				function = "qup_se0";
1184				drive-strength = <6>;
1185				bias-pull-down;
1186			};
1187
1188			qup_spi2_cs: qup-spi2-cs-state {
1189				pins = "gpio17";
1190				function = "qup_se2";
1191				drive-strength = <6>;
1192				bias-pull-down;
1193			};
1194
1195			qup_spi2_data_clk: qup-spi2-data-clk-state {
1196				/* MISO, MOSI, CLK */
1197				pins = "gpio14", "gpio15", "gpio16";
1198				function = "qup_se2";
1199				drive-strength = <6>;
1200				bias-pull-down;
1201			};
1202
1203			qup_spi3_cs: qup-spi3-cs-state {
1204				pins = "gpio55";
1205				function = "qup_se3";
1206				drive-strength = <6>;
1207				bias-pull-down;
1208			};
1209
1210			qup_spi3_data_clk: qup-spi3-data-clk-state {
1211				/* MISO, MOSI, CLK */
1212				pins = "gpio52", "gpio53", "gpio54";
1213				function = "qup_se3";
1214				drive-strength = <6>;
1215				bias-pull-down;
1216			};
1217
1218			qup_spi6_cs: qup-spi6-cs-state {
1219				pins = "gpio115";
1220				function = "qup_se6";
1221				drive-strength = <6>;
1222				bias-pull-down;
1223			};
1224
1225			qup_spi6_data_clk: qup-spi6-data-clk-state {
1226				/* MISO, MOSI, CLK */
1227				pins = "gpio112", "gpio113", "gpio114";
1228				function = "qup_se6";
1229				drive-strength = <6>;
1230				bias-pull-down;
1231			};
1232
1233			qup_spi7_cs: qup-spi7-cs-state {
1234				pins = "gpio119";
1235				function = "qup_se7";
1236				drive-strength = <6>;
1237				bias-pull-down;
1238			};
1239
1240			qup_spi7_data_clk: qup-spi7-data-clk-state {
1241				/* MISO, MOSI, CLK */
1242				pins = "gpio116", "gpio117", "gpio118";
1243				function = "qup_se7";
1244				drive-strength = <6>;
1245				bias-pull-down;
1246			};
1247
1248			qup_uart4_cts_rts: qup-uart4-cts-rts-state {
1249				/* CTS, RTS */
1250				pins = "gpio52", "gpio53";
1251				function = "qup_se3";
1252				drive-strength = <2>;
1253				bias-pull-down;
1254			};
1255
1256			qup_uart4_default: qup-uart4-default-state {
1257				/* TX, RX */
1258				pins = "gpio54", "gpio55";
1259				function = "qup_se3";
1260				drive-strength = <2>;
1261				bias-pull-up;
1262			};
1263
1264			qupv3_se1_2uart_active: qupv3-se1-2uart-active-state {
1265				tx-pins {
1266					pins = "gpio12";
1267					function = "qup_se1_l2_mira";
1268					drive-strength = <2>;
1269					bias-disable;
1270				};
1271
1272				rx-pins {
1273					pins = "gpio13";
1274					function = "qup_se1_l3_mira";
1275					drive-strength = <2>;
1276					bias-disable;
1277				};
1278			};
1279
1280			qupv3_se1_2uart_sleep: qupv3-se1-2uart-sleep-state {
1281				pins = "gpio12", "gpio13";
1282				function = "gpio";
1283				drive-strength = <2>;
1284				bias-pull-down;
1285			};
1286
1287			sdc1_default: sdc1-default-state {
1288				clk-pins {
1289					pins = "sdc1_clk";
1290					drive-strength = <16>;
1291					bias-disable;
1292				};
1293
1294				cmd-pins {
1295					pins = "sdc1_cmd";
1296					drive-strength = <10>;
1297					bias-pull-up;
1298				};
1299
1300				data-pins {
1301					pins = "sdc1_data";
1302					drive-strength = <10>;
1303					bias-pull-up;
1304				};
1305			};
1306
1307			sdc1_sleep: sdc1-sleep-state {
1308				clk-pins {
1309					pins = "sdc1_clk";
1310					drive-strength = <2>;
1311					bias-disable;
1312				};
1313
1314				cmd-pins {
1315					pins = "sdc1_cmd";
1316					drive-strength = <2>;
1317					bias-pull-up;
1318				};
1319
1320				data-pins {
1321					pins = "sdc1_data";
1322					drive-strength = <2>;
1323					bias-pull-up;
1324				};
1325			};
1326		};
1327
1328		apps_smmu: iommu@15000000 {
1329			compatible = "qcom,sdx75-smmu-500", "qcom,smmu-500", "arm,mmu-500";
1330			reg = <0x0 0x15000000 0x0 0x40000>;
1331			#iommu-cells = <2>;
1332			#global-interrupts = <2>;
1333			dma-coherent;
1334			interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>,
1335				     <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>,
1336				     <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>,
1337				     <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>,
1338				     <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>,
1339				     <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>,
1340				     <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>,
1341				     <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>,
1342				     <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>,
1343				     <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>,
1344				     <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>,
1345				     <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>,
1346				     <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>,
1347				     <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>,
1348				     <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>,
1349				     <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>,
1350				     <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>,
1351				     <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>,
1352				     <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>,
1353				     <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>,
1354				     <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>,
1355				     <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>,
1356				     <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>,
1357				     <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>,
1358				     <GIC_SPI 298 IRQ_TYPE_LEVEL_HIGH>,
1359				     <GIC_SPI 299 IRQ_TYPE_LEVEL_HIGH>,
1360				     <GIC_SPI 300 IRQ_TYPE_LEVEL_HIGH>,
1361				     <GIC_SPI 301 IRQ_TYPE_LEVEL_HIGH>,
1362				     <GIC_SPI 302 IRQ_TYPE_LEVEL_HIGH>,
1363				     <GIC_SPI 303 IRQ_TYPE_LEVEL_HIGH>,
1364				     <GIC_SPI 304 IRQ_TYPE_LEVEL_HIGH>,
1365				     <GIC_SPI 305 IRQ_TYPE_LEVEL_HIGH>,
1366				     <GIC_SPI 306 IRQ_TYPE_LEVEL_HIGH>;
1367		};
1368
1369		intc: interrupt-controller@17200000 {
1370			compatible = "arm,gic-v3";
1371			#interrupt-cells = <3>;
1372			interrupt-controller;
1373			#redistributor-regions = <1>;
1374			redistributor-stride = <0x0 0x20000>;
1375			reg = <0x0 0x17200000 0x0 0x10000>,
1376			      <0x0 0x17260000 0x0 0x80000>;
1377			interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
1378		};
1379
1380		timer@17420000 {
1381			compatible = "arm,armv7-timer-mem";
1382			reg = <0x0 0x17420000 0x0 0x1000>;
1383			#address-cells = <1>;
1384			#size-cells = <1>;
1385			ranges = <0 0 0 0x20000000>;
1386
1387			frame@17421000 {
1388				reg = <0x17421000 0x1000>,
1389				      <0x17422000 0x1000>;
1390				frame-number = <0>;
1391				interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
1392					     <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
1393			};
1394
1395			frame@17423000 {
1396				reg = <0x17423000 0x1000>;
1397				frame-number = <1>;
1398				interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
1399				status = "disabled";
1400			};
1401
1402			frame@17425000 {
1403				reg = <0x17425000 0x1000>;
1404				frame-number = <2>;
1405				interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
1406				status = "disabled";
1407			};
1408
1409			frame@17427000 {
1410				reg = <0x17427000 0x1000>;
1411				frame-number = <3>;
1412				interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
1413				status = "disabled";
1414			};
1415
1416			frame@17429000 {
1417				reg = <0x17429000 0x1000>;
1418				frame-number = <4>;
1419				interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
1420				status = "disabled";
1421			};
1422
1423			frame@1742b000 {
1424				reg = <0x1742b000 0x1000>;
1425				frame-number = <5>;
1426				interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
1427				status = "disabled";
1428			};
1429
1430			frame@1742d000 {
1431				reg = <0x1742d000 0x1000>;
1432				frame-number = <6>;
1433				interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
1434				status = "disabled";
1435			};
1436		};
1437
1438		apps_rsc: rsc@17a00000 {
1439			label = "apps_rsc";
1440			compatible = "qcom,rpmh-rsc";
1441			reg = <0x0 0x17a00000 0x0 0x10000>,
1442			      <0x0 0x17a10000 0x0 0x10000>,
1443			      <0x0 0x17a20000 0x0 0x10000>;
1444			reg-names = "drv-0", "drv-1", "drv-2";
1445			interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>,
1446				     <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>,
1447				     <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
1448
1449			power-domains = <&cluster_pd>;
1450			qcom,tcs-offset = <0xd00>;
1451			qcom,drv-id = <2>;
1452			qcom,tcs-config = <ACTIVE_TCS    3>,
1453					  <SLEEP_TCS     2>,
1454					  <WAKE_TCS      2>,
1455					  <CONTROL_TCS   0>;
1456
1457			apps_bcm_voter: bcm-voter {
1458				compatible = "qcom,bcm-voter";
1459			};
1460
1461			rpmhcc: clock-controller {
1462				compatible = "qcom,sdx75-rpmh-clk";
1463				clocks = <&xo_board>;
1464				clock-names = "xo";
1465				#clock-cells = <1>;
1466			};
1467
1468			rpmhpd: power-controller {
1469				compatible = "qcom,sdx75-rpmhpd";
1470				#power-domain-cells = <1>;
1471				operating-points-v2 = <&rpmhpd_opp_table>;
1472
1473				rpmhpd_opp_table: opp-table {
1474					compatible = "operating-points-v2";
1475
1476					rpmhpd_opp_ret: opp-16 {
1477						opp-level = <RPMH_REGULATOR_LEVEL_RETENTION>;
1478					};
1479
1480					rpmhpd_opp_min_svs: opp-48 {
1481						opp-level = <RPMH_REGULATOR_LEVEL_MIN_SVS>;
1482					};
1483
1484					rpmhpd_opp_low_svs: opp-64 {
1485						opp-level = <RPMH_REGULATOR_LEVEL_LOW_SVS>;
1486					};
1487
1488					rpmhpd_opp_svs: opp-128 {
1489						opp-level = <RPMH_REGULATOR_LEVEL_SVS>;
1490					};
1491
1492					rpmhpd_opp_svs_l1: opp-192 {
1493						opp-level = <RPMH_REGULATOR_LEVEL_SVS_L1>;
1494					};
1495
1496					rpmhpd_opp_nom: opp-256 {
1497						opp-level = <RPMH_REGULATOR_LEVEL_NOM>;
1498					};
1499
1500					rpmhpd_opp_nom_l1: opp-320 {
1501						opp-level = <RPMH_REGULATOR_LEVEL_NOM_L1>;
1502					};
1503
1504					rpmhpd_opp_nom_l2: opp-336 {
1505						opp-level = <RPMH_REGULATOR_LEVEL_NOM_L2>;
1506					};
1507
1508					rpmhpd_opp_turbo: opp-384 {
1509						opp-level = <RPMH_REGULATOR_LEVEL_TURBO>;
1510					};
1511
1512					rpmhpd_opp_turbo_l1: opp-416 {
1513						opp-level = <RPMH_REGULATOR_LEVEL_TURBO_L1>;
1514					};
1515				};
1516			};
1517		};
1518
1519		cpufreq_hw: cpufreq@17d91000 {
1520			compatible = "qcom,sdx75-cpufreq-epss", "qcom,cpufreq-epss";
1521			reg = <0x0 0x17d91000 0x0 0x1000>;
1522			reg-names = "freq-domain0";
1523			clocks = <&rpmhcc RPMH_CXO_CLK>,
1524				 <&gcc GPLL0>;
1525			clock-names = "xo",
1526				      "alternate";
1527			interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
1528			interrupt-names = "dcvsh-irq-0";
1529			#freq-domain-cells = <1>;
1530			#clock-cells = <1>;
1531		};
1532
1533		dc_noc: interconnect@190e0000 {
1534			compatible = "qcom,sdx75-dc-noc";
1535			reg = <0x0 0x190e0000 0x0 0x8200>;
1536			#interconnect-cells = <2>;
1537			qcom,bcm-voters = <&apps_bcm_voter>;
1538		};
1539
1540		gem_noc: interconnect@19100000 {
1541			compatible = "qcom,sdx75-gem-noc";
1542			reg = <0x0 0x19100000 0x0 0x34080>;
1543			#interconnect-cells = <2>;
1544			qcom,bcm-voters = <&apps_bcm_voter>;
1545		};
1546	};
1547
1548	timer {
1549		compatible = "arm,armv8-timer";
1550		interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
1551			     <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
1552			     <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
1553			     <GIC_PPI 12 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>;
1554	};
1555};
1556