xref: /linux/arch/arm64/boot/dts/qcom/sdx75.dtsi (revision d30c1683aaecb93d2ab95685dc4300a33d3cea7a)
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		qpic_bam: dma-controller@1c9c000 {
884			compatible = "qcom,bam-v1.7.0";
885			reg = <0x0 0x01c9c000 0x0 0x1c000>;
886			interrupts = <GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH>;
887			clocks = <&rpmhcc RPMH_QPIC_CLK>;
888			clock-names = "bam_clk";
889			#dma-cells = <1>;
890			qcom,ee = <0>;
891			qcom,controlled-remotely;
892			iommus = <&apps_smmu 0x100 0x3>;
893			dma-coherent;
894			status = "disabled";
895		};
896
897		qpic_nand: nand-controller@1cc8000 {
898			compatible = "qcom,sdx75-nand", "qcom,sdx55-nand";
899			reg = <0x0 0x01cc8000 0x0 0x10000>;
900			#address-cells = <1>;
901			#size-cells = <0>;
902			clocks = <&rpmhcc RPMH_QPIC_CLK>,
903				 <&sleep_clk>;
904			clock-names = "core",
905				      "aon";
906			dmas = <&qpic_bam 0>,
907			       <&qpic_bam 1>,
908			       <&qpic_bam 2>;
909			dma-names = "tx",
910				    "rx",
911				    "cmd";
912			iommus = <&apps_smmu 0x100 0x3>;
913			status = "disabled";
914		};
915
916		tcsr_mutex: hwlock@1f40000 {
917			compatible = "qcom,tcsr-mutex";
918			reg = <0x0 0x01f40000 0x0 0x40000>;
919			#hwlock-cells = <1>;
920		};
921
922		tcsr: syscon@1fc0000 {
923			compatible = "qcom,sdx75-tcsr", "syscon";
924			reg = <0x0 0x01fc0000 0x0 0x30000>;
925		};
926
927		remoteproc_mpss: remoteproc@4080000 {
928			compatible = "qcom,sdx75-mpss-pas";
929			reg = <0 0x04080000 0 0x10000>;
930
931			interrupts-extended = <&intc GIC_SPI 250 IRQ_TYPE_EDGE_RISING>,
932					      <&smp2p_modem_in 0 IRQ_TYPE_EDGE_RISING>,
933					      <&smp2p_modem_in 1 IRQ_TYPE_EDGE_RISING>,
934					      <&smp2p_modem_in 2 IRQ_TYPE_EDGE_RISING>,
935					      <&smp2p_modem_in 3 IRQ_TYPE_EDGE_RISING>,
936					      <&smp2p_modem_in 7 IRQ_TYPE_EDGE_RISING>;
937			interrupt-names = "wdog",
938					  "fatal",
939					  "ready",
940					  "handover",
941					  "stop-ack",
942					  "shutdown-ack";
943
944			clocks = <&rpmhcc RPMH_CXO_CLK>;
945			clock-names = "xo";
946
947			power-domains = <&rpmhpd RPMHPD_CX>,
948					<&rpmhpd RPMHPD_MSS>;
949			power-domain-names = "cx",
950					     "mss";
951
952			memory-region = <&mpssadsp_mem>, <&q6_mpss_dtb_mem>,
953					<&mpss_dsm_mem>, <&mpss_dsm_mem_2>,
954					<&qlink_logging_mem>;
955
956			qcom,qmp = <&aoss_qmp>;
957
958			qcom,smem-states = <&smp2p_modem_out 0>;
959			qcom,smem-state-names = "stop";
960
961			status = "disabled";
962
963			glink-edge {
964				interrupts-extended = <&ipcc IPCC_CLIENT_MPSS
965							     IPCC_MPROC_SIGNAL_PING
966							     IRQ_TYPE_EDGE_RISING>;
967				mboxes = <&ipcc IPCC_CLIENT_MPSS
968						IPCC_MPROC_SIGNAL_PING>;
969				label = "mpss";
970				qcom,remote-pid = <1>;
971			};
972		};
973
974		sdhc: mmc@8804000 {
975			compatible = "qcom,sdx75-sdhci", "qcom,sdhci-msm-v5";
976			reg = <0x0 0x08804000 0x0 0x1000>;
977
978			interrupts = <GIC_SPI 210 IRQ_TYPE_LEVEL_HIGH>,
979				     <GIC_SPI 227 IRQ_TYPE_LEVEL_HIGH>;
980			interrupt-names = "hc_irq",
981					  "pwr_irq";
982
983			clocks = <&gcc GCC_SDCC1_AHB_CLK>,
984				 <&gcc GCC_SDCC1_APPS_CLK>,
985				 <&rpmhcc RPMH_CXO_CLK>;
986			clock-names = "iface",
987				      "core",
988				      "xo";
989			iommus = <&apps_smmu 0x00a0 0x0>;
990			qcom,dll-config = <0x0007442c>;
991			qcom,ddr-config = <0x80040868>;
992			power-domains = <&rpmhpd RPMHPD_CX>;
993			operating-points-v2 = <&sdhc1_opp_table>;
994
995			interconnects = <&system_noc MASTER_SDCC_1 &mc_virt SLAVE_EBI1>,
996					<&gem_noc MASTER_APPSS_PROC &system_noc SLAVE_SDCC_1>;
997			interconnect-names = "sdhc-ddr",
998					     "cpu-sdhc";
999			bus-width = <4>;
1000			dma-coherent;
1001
1002			/* Forbid SDR104/SDR50 - broken hw! */
1003			sdhci-caps-mask = <0x3 0>;
1004
1005			status = "disabled";
1006
1007			sdhc1_opp_table: opp-table {
1008				compatible = "operating-points-v2";
1009
1010				opp-100000000 {
1011					opp-hz = /bits/ 64 <100000000>;
1012					required-opps = <&rpmhpd_opp_low_svs>;
1013				};
1014
1015				opp-384000000 {
1016					opp-hz = /bits/ 64 <384000000>;
1017					required-opps = <&rpmhpd_opp_nom>;
1018				};
1019			};
1020		};
1021
1022		usb: usb@a600000 {
1023			compatible = "qcom,sdx75-dwc3", "qcom,snps-dwc3";
1024			reg = <0x0 0x0a600000 0x0 0xfc100>;
1025
1026			clocks = <&gcc GCC_USB30_SLV_AHB_CLK>,
1027				 <&gcc GCC_USB30_MASTER_CLK>,
1028				 <&gcc GCC_USB30_MSTR_AXI_CLK>,
1029				 <&gcc GCC_USB30_SLEEP_CLK>,
1030				 <&gcc GCC_USB30_MOCK_UTMI_CLK>;
1031			clock-names = "cfg_noc",
1032				      "core",
1033				      "iface",
1034				      "sleep",
1035				      "mock_utmi";
1036
1037			assigned-clocks = <&gcc GCC_USB30_MOCK_UTMI_CLK>,
1038					  <&gcc GCC_USB30_MASTER_CLK>;
1039			assigned-clock-rates = <19200000>, <200000000>;
1040
1041			interrupts-extended = <&intc GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>,
1042					      <&intc GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>,
1043					      <&intc GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>,
1044					      <&pdc 10 IRQ_TYPE_EDGE_RISING>,
1045					      <&pdc 9 IRQ_TYPE_EDGE_RISING>,
1046					      <&pdc 17 IRQ_TYPE_LEVEL_HIGH>;
1047			interrupt-names = "dwc_usb3",
1048					  "pwr_event",
1049					  "hs_phy_irq",
1050					  "dp_hs_phy_irq",
1051					  "dm_hs_phy_irq",
1052					  "ss_phy_irq";
1053
1054			iommus = <&apps_smmu 0x80 0x0>;
1055
1056			snps,dis_u2_susphy_quirk;
1057			snps,dis_enblslpm_quirk;
1058			snps,dis-u1-entry-quirk;
1059			snps,dis-u2-entry-quirk;
1060
1061			power-domains = <&gcc GCC_USB30_GDSC>;
1062
1063			resets = <&gcc GCC_USB30_BCR>;
1064
1065			phys = <&usb_hsphy>,
1066			       <&usb_qmpphy>;
1067			phy-names = "usb2-phy",
1068				    "usb3-phy";
1069
1070			interconnects = <&system_noc MASTER_USB3_0 QCOM_ICC_TAG_ALWAYS
1071					 &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>,
1072					<&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ALWAYS
1073					 &system_noc SLAVE_USB3 QCOM_ICC_TAG_ALWAYS>;
1074			interconnect-names = "usb-ddr",
1075					     "apps-usb";
1076
1077			usb-role-switch;
1078
1079			status = "disabled";
1080
1081			ports {
1082				#address-cells = <1>;
1083				#size-cells = <0>;
1084
1085				port@0 {
1086					reg = <0>;
1087
1088					usb_1_dwc3_hs: endpoint {
1089					};
1090				};
1091
1092				port@1 {
1093					reg = <1>;
1094
1095					usb_1_dwc3_ss: endpoint {
1096					};
1097				};
1098			};
1099		};
1100
1101		pdc: interrupt-controller@b220000 {
1102			compatible = "qcom,sdx75-pdc", "qcom,pdc";
1103			reg = <0x0 0xb220000 0x0 0x30000>,
1104			      <0x0 0x174000f0 0x0 0x64>;
1105			qcom,pdc-ranges = <0 147 52>,
1106					  <52 266 32>,
1107					  <84 500 59>;
1108			#interrupt-cells = <2>;
1109			interrupt-parent = <&intc>;
1110			interrupt-controller;
1111		};
1112
1113		aoss_qmp: power-management@c310000 {
1114			compatible = "qcom,sdx75-aoss-qmp", "qcom,aoss-qmp";
1115			reg = <0 0x0c310000 0 0x1000>;
1116			interrupt-parent = <&ipcc>;
1117			interrupts-extended = <&ipcc IPCC_CLIENT_AOP IPCC_MPROC_SIGNAL_GLINK_QMP
1118						     IRQ_TYPE_EDGE_RISING>;
1119			mboxes = <&ipcc IPCC_CLIENT_AOP IPCC_MPROC_SIGNAL_GLINK_QMP>;
1120
1121			#clock-cells = <0>;
1122		};
1123
1124		spmi_bus: spmi@c400000 {
1125			compatible = "qcom,spmi-pmic-arb";
1126			reg = <0x0 0x0c400000 0x0 0x3000>,
1127			      <0x0 0x0c500000 0x0 0x400000>,
1128			      <0x0 0x0c440000 0x0 0x80000>,
1129			      <0x0 0x0c4c0000 0x0 0x10000>,
1130			      <0x0 0x0c42d000 0x0 0x4000>;
1131			reg-names = "core",
1132				    "chnls",
1133				    "obsrvr",
1134				    "intr",
1135				    "cnfg";
1136			interrupts-extended = <&pdc 1 IRQ_TYPE_LEVEL_HIGH>;
1137			interrupt-names = "periph_irq";
1138			qcom,ee = <0>;
1139			qcom,channel = <0>;
1140			qcom,bus-id = <0>;
1141			#address-cells = <2>;
1142			#size-cells = <0>;
1143			interrupt-controller;
1144			#interrupt-cells = <4>;
1145		};
1146
1147		tlmm: pinctrl@f000000 {
1148			compatible = "qcom,sdx75-tlmm";
1149			reg = <0x0 0x0f000000 0x0 0x400000>;
1150			interrupts = <GIC_SPI 212 IRQ_TYPE_LEVEL_HIGH>;
1151			gpio-controller;
1152			#gpio-cells = <2>;
1153			gpio-ranges = <&tlmm 0 0 133>;
1154			interrupt-controller;
1155			#interrupt-cells = <2>;
1156			wakeup-parent = <&pdc>;
1157
1158			qup_i2c0_data_clk: qup-i2c0-data-clk-state {
1159				/* SDA, SCL */
1160				pins = "gpio8", "gpio9";
1161				function = "qup_se0";
1162				drive-strength = <2>;
1163				bias-pull-up;
1164			};
1165
1166			qup_i2c2_data_clk: qup-i2c2-data-clk-state {
1167				/* SDA, SCL */
1168				pins = "gpio14", "gpio15";
1169				function = "qup_se2";
1170				drive-strength = <2>;
1171				bias-pull-up;
1172			};
1173
1174			qup_i2c3_data_clk: qup-i2c3-data-clk-state {
1175				/* SDA, SCL */
1176				pins = "gpio52", "gpio53";
1177				function = "qup_se3";
1178				drive-strength = <2>;
1179				bias-pull-up;
1180			};
1181
1182			qup_i2c5_data_clk: qup-i2c5-data-clk-state {
1183				/* SDA, SCL */
1184				pins = "gpio110", "gpio111";
1185				function = "qup_se5";
1186				drive-strength = <2>;
1187				bias-pull-up;
1188			};
1189
1190			qup_i2c6_data_clk: qup-i2c6-data-clk-state {
1191				/* SDA, SCL */
1192				pins = "gpio112", "gpio113";
1193				function = "qup_se6";
1194				drive-strength = <2>;
1195				bias-pull-up;
1196			};
1197
1198			qup_i2c7_data_clk: qup-i2c7-data-clk-state {
1199				/* SDA, SCL */
1200				pins = "gpio116", "gpio117";
1201				function = "qup_se7";
1202				drive-strength = <2>;
1203				bias-pull-up;
1204			};
1205
1206			qup_spi0_cs: qup-spi0-cs-state {
1207				pins = "gpio11";
1208				function = "qup_se0";
1209				drive-strength = <6>;
1210				bias-pull-down;
1211			};
1212
1213			qup_spi0_data_clk: qup-spi0-data-clk-state {
1214				/* MISO, MOSI, CLK */
1215				pins = "gpio8", "gpio9", "gpio10";
1216				function = "qup_se0";
1217				drive-strength = <6>;
1218				bias-pull-down;
1219			};
1220
1221			qup_spi2_cs: qup-spi2-cs-state {
1222				pins = "gpio17";
1223				function = "qup_se2";
1224				drive-strength = <6>;
1225				bias-pull-down;
1226			};
1227
1228			qup_spi2_data_clk: qup-spi2-data-clk-state {
1229				/* MISO, MOSI, CLK */
1230				pins = "gpio14", "gpio15", "gpio16";
1231				function = "qup_se2";
1232				drive-strength = <6>;
1233				bias-pull-down;
1234			};
1235
1236			qup_spi3_cs: qup-spi3-cs-state {
1237				pins = "gpio55";
1238				function = "qup_se3";
1239				drive-strength = <6>;
1240				bias-pull-down;
1241			};
1242
1243			qup_spi3_data_clk: qup-spi3-data-clk-state {
1244				/* MISO, MOSI, CLK */
1245				pins = "gpio52", "gpio53", "gpio54";
1246				function = "qup_se3";
1247				drive-strength = <6>;
1248				bias-pull-down;
1249			};
1250
1251			qup_spi6_cs: qup-spi6-cs-state {
1252				pins = "gpio115";
1253				function = "qup_se6";
1254				drive-strength = <6>;
1255				bias-pull-down;
1256			};
1257
1258			qup_spi6_data_clk: qup-spi6-data-clk-state {
1259				/* MISO, MOSI, CLK */
1260				pins = "gpio112", "gpio113", "gpio114";
1261				function = "qup_se6";
1262				drive-strength = <6>;
1263				bias-pull-down;
1264			};
1265
1266			qup_spi7_cs: qup-spi7-cs-state {
1267				pins = "gpio119";
1268				function = "qup_se7";
1269				drive-strength = <6>;
1270				bias-pull-down;
1271			};
1272
1273			qup_spi7_data_clk: qup-spi7-data-clk-state {
1274				/* MISO, MOSI, CLK */
1275				pins = "gpio116", "gpio117", "gpio118";
1276				function = "qup_se7";
1277				drive-strength = <6>;
1278				bias-pull-down;
1279			};
1280
1281			qup_uart4_cts_rts: qup-uart4-cts-rts-state {
1282				/* CTS, RTS */
1283				pins = "gpio52", "gpio53";
1284				function = "qup_se3";
1285				drive-strength = <2>;
1286				bias-pull-down;
1287			};
1288
1289			qup_uart4_default: qup-uart4-default-state {
1290				/* TX, RX */
1291				pins = "gpio54", "gpio55";
1292				function = "qup_se3";
1293				drive-strength = <2>;
1294				bias-pull-up;
1295			};
1296
1297			qupv3_se1_2uart_active: qupv3-se1-2uart-active-state {
1298				tx-pins {
1299					pins = "gpio12";
1300					function = "qup_se1_l2_mira";
1301					drive-strength = <2>;
1302					bias-disable;
1303				};
1304
1305				rx-pins {
1306					pins = "gpio13";
1307					function = "qup_se1_l3_mira";
1308					drive-strength = <2>;
1309					bias-disable;
1310				};
1311			};
1312
1313			qupv3_se1_2uart_sleep: qupv3-se1-2uart-sleep-state {
1314				pins = "gpio12", "gpio13";
1315				function = "gpio";
1316				drive-strength = <2>;
1317				bias-pull-down;
1318			};
1319
1320			sdc1_default: sdc1-default-state {
1321				clk-pins {
1322					pins = "sdc1_clk";
1323					drive-strength = <16>;
1324					bias-disable;
1325				};
1326
1327				cmd-pins {
1328					pins = "sdc1_cmd";
1329					drive-strength = <10>;
1330					bias-pull-up;
1331				};
1332
1333				data-pins {
1334					pins = "sdc1_data";
1335					drive-strength = <10>;
1336					bias-pull-up;
1337				};
1338			};
1339
1340			sdc1_sleep: sdc1-sleep-state {
1341				clk-pins {
1342					pins = "sdc1_clk";
1343					drive-strength = <2>;
1344					bias-disable;
1345				};
1346
1347				cmd-pins {
1348					pins = "sdc1_cmd";
1349					drive-strength = <2>;
1350					bias-pull-up;
1351				};
1352
1353				data-pins {
1354					pins = "sdc1_data";
1355					drive-strength = <2>;
1356					bias-pull-up;
1357				};
1358			};
1359		};
1360
1361		apps_smmu: iommu@15000000 {
1362			compatible = "qcom,sdx75-smmu-500", "qcom,smmu-500", "arm,mmu-500";
1363			reg = <0x0 0x15000000 0x0 0x40000>;
1364			#iommu-cells = <2>;
1365			#global-interrupts = <2>;
1366			dma-coherent;
1367			interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>,
1368				     <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>,
1369				     <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>,
1370				     <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>,
1371				     <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>,
1372				     <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>,
1373				     <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>,
1374				     <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>,
1375				     <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>,
1376				     <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>,
1377				     <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>,
1378				     <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>,
1379				     <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>,
1380				     <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>,
1381				     <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>,
1382				     <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>,
1383				     <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>,
1384				     <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>,
1385				     <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>,
1386				     <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>,
1387				     <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>,
1388				     <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>,
1389				     <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>,
1390				     <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>,
1391				     <GIC_SPI 298 IRQ_TYPE_LEVEL_HIGH>,
1392				     <GIC_SPI 299 IRQ_TYPE_LEVEL_HIGH>,
1393				     <GIC_SPI 300 IRQ_TYPE_LEVEL_HIGH>,
1394				     <GIC_SPI 301 IRQ_TYPE_LEVEL_HIGH>,
1395				     <GIC_SPI 302 IRQ_TYPE_LEVEL_HIGH>,
1396				     <GIC_SPI 303 IRQ_TYPE_LEVEL_HIGH>,
1397				     <GIC_SPI 304 IRQ_TYPE_LEVEL_HIGH>,
1398				     <GIC_SPI 305 IRQ_TYPE_LEVEL_HIGH>,
1399				     <GIC_SPI 306 IRQ_TYPE_LEVEL_HIGH>;
1400		};
1401
1402		intc: interrupt-controller@17200000 {
1403			compatible = "arm,gic-v3";
1404			#interrupt-cells = <3>;
1405			interrupt-controller;
1406			#redistributor-regions = <1>;
1407			redistributor-stride = <0x0 0x20000>;
1408			reg = <0x0 0x17200000 0x0 0x10000>,
1409			      <0x0 0x17260000 0x0 0x80000>;
1410			interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
1411		};
1412
1413		timer@17420000 {
1414			compatible = "arm,armv7-timer-mem";
1415			reg = <0x0 0x17420000 0x0 0x1000>;
1416			#address-cells = <1>;
1417			#size-cells = <1>;
1418			ranges = <0 0 0 0x20000000>;
1419
1420			frame@17421000 {
1421				reg = <0x17421000 0x1000>,
1422				      <0x17422000 0x1000>;
1423				frame-number = <0>;
1424				interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
1425					     <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
1426			};
1427
1428			frame@17423000 {
1429				reg = <0x17423000 0x1000>;
1430				frame-number = <1>;
1431				interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
1432				status = "disabled";
1433			};
1434
1435			frame@17425000 {
1436				reg = <0x17425000 0x1000>;
1437				frame-number = <2>;
1438				interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
1439				status = "disabled";
1440			};
1441
1442			frame@17427000 {
1443				reg = <0x17427000 0x1000>;
1444				frame-number = <3>;
1445				interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
1446				status = "disabled";
1447			};
1448
1449			frame@17429000 {
1450				reg = <0x17429000 0x1000>;
1451				frame-number = <4>;
1452				interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
1453				status = "disabled";
1454			};
1455
1456			frame@1742b000 {
1457				reg = <0x1742b000 0x1000>;
1458				frame-number = <5>;
1459				interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
1460				status = "disabled";
1461			};
1462
1463			frame@1742d000 {
1464				reg = <0x1742d000 0x1000>;
1465				frame-number = <6>;
1466				interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
1467				status = "disabled";
1468			};
1469		};
1470
1471		apps_rsc: rsc@17a00000 {
1472			label = "apps_rsc";
1473			compatible = "qcom,rpmh-rsc";
1474			reg = <0x0 0x17a00000 0x0 0x10000>,
1475			      <0x0 0x17a10000 0x0 0x10000>,
1476			      <0x0 0x17a20000 0x0 0x10000>;
1477			reg-names = "drv-0", "drv-1", "drv-2";
1478			interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>,
1479				     <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>,
1480				     <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
1481
1482			power-domains = <&cluster_pd>;
1483			qcom,tcs-offset = <0xd00>;
1484			qcom,drv-id = <2>;
1485			qcom,tcs-config = <ACTIVE_TCS    3>,
1486					  <SLEEP_TCS     2>,
1487					  <WAKE_TCS      2>,
1488					  <CONTROL_TCS   0>;
1489
1490			apps_bcm_voter: bcm-voter {
1491				compatible = "qcom,bcm-voter";
1492			};
1493
1494			rpmhcc: clock-controller {
1495				compatible = "qcom,sdx75-rpmh-clk";
1496				clocks = <&xo_board>;
1497				clock-names = "xo";
1498				#clock-cells = <1>;
1499			};
1500
1501			rpmhpd: power-controller {
1502				compatible = "qcom,sdx75-rpmhpd";
1503				#power-domain-cells = <1>;
1504				operating-points-v2 = <&rpmhpd_opp_table>;
1505
1506				rpmhpd_opp_table: opp-table {
1507					compatible = "operating-points-v2";
1508
1509					rpmhpd_opp_ret: opp-16 {
1510						opp-level = <RPMH_REGULATOR_LEVEL_RETENTION>;
1511					};
1512
1513					rpmhpd_opp_min_svs: opp-48 {
1514						opp-level = <RPMH_REGULATOR_LEVEL_MIN_SVS>;
1515					};
1516
1517					rpmhpd_opp_low_svs: opp-64 {
1518						opp-level = <RPMH_REGULATOR_LEVEL_LOW_SVS>;
1519					};
1520
1521					rpmhpd_opp_svs: opp-128 {
1522						opp-level = <RPMH_REGULATOR_LEVEL_SVS>;
1523					};
1524
1525					rpmhpd_opp_svs_l1: opp-192 {
1526						opp-level = <RPMH_REGULATOR_LEVEL_SVS_L1>;
1527					};
1528
1529					rpmhpd_opp_nom: opp-256 {
1530						opp-level = <RPMH_REGULATOR_LEVEL_NOM>;
1531					};
1532
1533					rpmhpd_opp_nom_l1: opp-320 {
1534						opp-level = <RPMH_REGULATOR_LEVEL_NOM_L1>;
1535					};
1536
1537					rpmhpd_opp_nom_l2: opp-336 {
1538						opp-level = <RPMH_REGULATOR_LEVEL_NOM_L2>;
1539					};
1540
1541					rpmhpd_opp_turbo: opp-384 {
1542						opp-level = <RPMH_REGULATOR_LEVEL_TURBO>;
1543					};
1544
1545					rpmhpd_opp_turbo_l1: opp-416 {
1546						opp-level = <RPMH_REGULATOR_LEVEL_TURBO_L1>;
1547					};
1548				};
1549			};
1550		};
1551
1552		cpufreq_hw: cpufreq@17d91000 {
1553			compatible = "qcom,sdx75-cpufreq-epss", "qcom,cpufreq-epss";
1554			reg = <0x0 0x17d91000 0x0 0x1000>;
1555			reg-names = "freq-domain0";
1556			clocks = <&rpmhcc RPMH_CXO_CLK>,
1557				 <&gcc GPLL0>;
1558			clock-names = "xo",
1559				      "alternate";
1560			interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
1561			interrupt-names = "dcvsh-irq-0";
1562			#freq-domain-cells = <1>;
1563			#clock-cells = <1>;
1564		};
1565
1566		dc_noc: interconnect@190e0000 {
1567			compatible = "qcom,sdx75-dc-noc";
1568			reg = <0x0 0x190e0000 0x0 0x8200>;
1569			#interconnect-cells = <2>;
1570			qcom,bcm-voters = <&apps_bcm_voter>;
1571		};
1572
1573		gem_noc: interconnect@19100000 {
1574			compatible = "qcom,sdx75-gem-noc";
1575			reg = <0x0 0x19100000 0x0 0x34080>;
1576			#interconnect-cells = <2>;
1577			qcom,bcm-voters = <&apps_bcm_voter>;
1578		};
1579	};
1580
1581	timer {
1582		compatible = "arm,armv8-timer";
1583		interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
1584			     <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
1585			     <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
1586			     <GIC_PPI 12 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>;
1587	};
1588};
1589