xref: /openbmc/linux/arch/arm64/boot/dts/qcom/sdm670.dtsi (revision 07c8ded6e373830aed55139b2030e755177e1611)
1*07c8ded6SRichard Acayan// SPDX-License-Identifier: GPL-2.0
2*07c8ded6SRichard Acayan/*
3*07c8ded6SRichard Acayan * SDM670 SoC device tree source, adapted from SDM845 SoC device tree
4*07c8ded6SRichard Acayan *
5*07c8ded6SRichard Acayan * Copyright (c) 2018, The Linux Foundation. All rights reserved.
6*07c8ded6SRichard Acayan * Copyright (c) 2022, Richard Acayan. All rights reserved.
7*07c8ded6SRichard Acayan */
8*07c8ded6SRichard Acayan
9*07c8ded6SRichard Acayan#include <dt-bindings/clock/qcom,gcc-sdm845.h>
10*07c8ded6SRichard Acayan#include <dt-bindings/clock/qcom,rpmh.h>
11*07c8ded6SRichard Acayan#include <dt-bindings/dma/qcom-gpi.h>
12*07c8ded6SRichard Acayan#include <dt-bindings/gpio/gpio.h>
13*07c8ded6SRichard Acayan#include <dt-bindings/interrupt-controller/arm-gic.h>
14*07c8ded6SRichard Acayan#include <dt-bindings/phy/phy-qcom-qusb2.h>
15*07c8ded6SRichard Acayan#include <dt-bindings/power/qcom-rpmpd.h>
16*07c8ded6SRichard Acayan#include <dt-bindings/soc/qcom,rpmh-rsc.h>
17*07c8ded6SRichard Acayan
18*07c8ded6SRichard Acayan/ {
19*07c8ded6SRichard Acayan	interrupt-parent = <&intc>;
20*07c8ded6SRichard Acayan
21*07c8ded6SRichard Acayan	#address-cells = <2>;
22*07c8ded6SRichard Acayan	#size-cells = <2>;
23*07c8ded6SRichard Acayan
24*07c8ded6SRichard Acayan	aliases { };
25*07c8ded6SRichard Acayan
26*07c8ded6SRichard Acayan	chosen { };
27*07c8ded6SRichard Acayan
28*07c8ded6SRichard Acayan	cpus {
29*07c8ded6SRichard Acayan		#address-cells = <2>;
30*07c8ded6SRichard Acayan		#size-cells = <0>;
31*07c8ded6SRichard Acayan
32*07c8ded6SRichard Acayan		CPU0: cpu@0 {
33*07c8ded6SRichard Acayan			device_type = "cpu";
34*07c8ded6SRichard Acayan			compatible = "qcom,kryo360";
35*07c8ded6SRichard Acayan			reg = <0x0 0x0>;
36*07c8ded6SRichard Acayan			enable-method = "psci";
37*07c8ded6SRichard Acayan			power-domains = <&CPU_PD0>;
38*07c8ded6SRichard Acayan			power-domain-names = "psci";
39*07c8ded6SRichard Acayan			next-level-cache = <&L2_0>;
40*07c8ded6SRichard Acayan			L2_0: l2-cache {
41*07c8ded6SRichard Acayan				compatible = "cache";
42*07c8ded6SRichard Acayan				next-level-cache = <&L3_0>;
43*07c8ded6SRichard Acayan				L3_0: l3-cache {
44*07c8ded6SRichard Acayan				      compatible = "cache";
45*07c8ded6SRichard Acayan				};
46*07c8ded6SRichard Acayan			};
47*07c8ded6SRichard Acayan		};
48*07c8ded6SRichard Acayan
49*07c8ded6SRichard Acayan		CPU1: cpu@100 {
50*07c8ded6SRichard Acayan			device_type = "cpu";
51*07c8ded6SRichard Acayan			compatible = "qcom,kryo360";
52*07c8ded6SRichard Acayan			reg = <0x0 0x100>;
53*07c8ded6SRichard Acayan			enable-method = "psci";
54*07c8ded6SRichard Acayan			power-domains = <&CPU_PD1>;
55*07c8ded6SRichard Acayan			power-domain-names = "psci";
56*07c8ded6SRichard Acayan			next-level-cache = <&L2_100>;
57*07c8ded6SRichard Acayan			L2_100: l2-cache {
58*07c8ded6SRichard Acayan				compatible = "cache";
59*07c8ded6SRichard Acayan				next-level-cache = <&L3_0>;
60*07c8ded6SRichard Acayan			};
61*07c8ded6SRichard Acayan		};
62*07c8ded6SRichard Acayan
63*07c8ded6SRichard Acayan		CPU2: cpu@200 {
64*07c8ded6SRichard Acayan			device_type = "cpu";
65*07c8ded6SRichard Acayan			compatible = "qcom,kryo360";
66*07c8ded6SRichard Acayan			reg = <0x0 0x200>;
67*07c8ded6SRichard Acayan			enable-method = "psci";
68*07c8ded6SRichard Acayan			power-domains = <&CPU_PD2>;
69*07c8ded6SRichard Acayan			power-domain-names = "psci";
70*07c8ded6SRichard Acayan			next-level-cache = <&L2_200>;
71*07c8ded6SRichard Acayan			L2_200: l2-cache {
72*07c8ded6SRichard Acayan				compatible = "cache";
73*07c8ded6SRichard Acayan				next-level-cache = <&L3_0>;
74*07c8ded6SRichard Acayan			};
75*07c8ded6SRichard Acayan		};
76*07c8ded6SRichard Acayan
77*07c8ded6SRichard Acayan		CPU3: cpu@300 {
78*07c8ded6SRichard Acayan			device_type = "cpu";
79*07c8ded6SRichard Acayan			compatible = "qcom,kryo360";
80*07c8ded6SRichard Acayan			reg = <0x0 0x300>;
81*07c8ded6SRichard Acayan			enable-method = "psci";
82*07c8ded6SRichard Acayan			power-domains = <&CPU_PD3>;
83*07c8ded6SRichard Acayan			power-domain-names = "psci";
84*07c8ded6SRichard Acayan			next-level-cache = <&L2_300>;
85*07c8ded6SRichard Acayan			L2_300: l2-cache {
86*07c8ded6SRichard Acayan				compatible = "cache";
87*07c8ded6SRichard Acayan				next-level-cache = <&L3_0>;
88*07c8ded6SRichard Acayan			};
89*07c8ded6SRichard Acayan		};
90*07c8ded6SRichard Acayan
91*07c8ded6SRichard Acayan		CPU4: cpu@400 {
92*07c8ded6SRichard Acayan			device_type = "cpu";
93*07c8ded6SRichard Acayan			compatible = "qcom,kryo360";
94*07c8ded6SRichard Acayan			reg = <0x0 0x400>;
95*07c8ded6SRichard Acayan			enable-method = "psci";
96*07c8ded6SRichard Acayan			power-domains = <&CPU_PD4>;
97*07c8ded6SRichard Acayan			power-domain-names = "psci";
98*07c8ded6SRichard Acayan			next-level-cache = <&L2_400>;
99*07c8ded6SRichard Acayan			L2_400: l2-cache {
100*07c8ded6SRichard Acayan				compatible = "cache";
101*07c8ded6SRichard Acayan				next-level-cache = <&L3_0>;
102*07c8ded6SRichard Acayan			};
103*07c8ded6SRichard Acayan		};
104*07c8ded6SRichard Acayan
105*07c8ded6SRichard Acayan		CPU5: cpu@500 {
106*07c8ded6SRichard Acayan			device_type = "cpu";
107*07c8ded6SRichard Acayan			compatible = "qcom,kryo360";
108*07c8ded6SRichard Acayan			reg = <0x0 0x500>;
109*07c8ded6SRichard Acayan			enable-method = "psci";
110*07c8ded6SRichard Acayan			power-domains = <&CPU_PD5>;
111*07c8ded6SRichard Acayan			power-domain-names = "psci";
112*07c8ded6SRichard Acayan			next-level-cache = <&L2_500>;
113*07c8ded6SRichard Acayan			L2_500: l2-cache {
114*07c8ded6SRichard Acayan				compatible = "cache";
115*07c8ded6SRichard Acayan				next-level-cache = <&L3_0>;
116*07c8ded6SRichard Acayan			};
117*07c8ded6SRichard Acayan		};
118*07c8ded6SRichard Acayan
119*07c8ded6SRichard Acayan		CPU6: cpu@600 {
120*07c8ded6SRichard Acayan			device_type = "cpu";
121*07c8ded6SRichard Acayan			compatible = "qcom,kryo360";
122*07c8ded6SRichard Acayan			reg = <0x0 0x600>;
123*07c8ded6SRichard Acayan			enable-method = "psci";
124*07c8ded6SRichard Acayan			power-domains = <&CPU_PD6>;
125*07c8ded6SRichard Acayan			power-domain-names = "psci";
126*07c8ded6SRichard Acayan			next-level-cache = <&L2_600>;
127*07c8ded6SRichard Acayan			L2_600: l2-cache {
128*07c8ded6SRichard Acayan				compatible = "cache";
129*07c8ded6SRichard Acayan				next-level-cache = <&L3_0>;
130*07c8ded6SRichard Acayan			};
131*07c8ded6SRichard Acayan		};
132*07c8ded6SRichard Acayan
133*07c8ded6SRichard Acayan		CPU7: cpu@700 {
134*07c8ded6SRichard Acayan			device_type = "cpu";
135*07c8ded6SRichard Acayan			compatible = "qcom,kryo360";
136*07c8ded6SRichard Acayan			reg = <0x0 0x700>;
137*07c8ded6SRichard Acayan			enable-method = "psci";
138*07c8ded6SRichard Acayan			power-domains = <&CPU_PD7>;
139*07c8ded6SRichard Acayan			power-domain-names = "psci";
140*07c8ded6SRichard Acayan			next-level-cache = <&L2_700>;
141*07c8ded6SRichard Acayan			L2_700: l2-cache {
142*07c8ded6SRichard Acayan				compatible = "cache";
143*07c8ded6SRichard Acayan				next-level-cache = <&L3_0>;
144*07c8ded6SRichard Acayan			};
145*07c8ded6SRichard Acayan		};
146*07c8ded6SRichard Acayan
147*07c8ded6SRichard Acayan		cpu-map {
148*07c8ded6SRichard Acayan			cluster0 {
149*07c8ded6SRichard Acayan				core0 {
150*07c8ded6SRichard Acayan					cpu = <&CPU0>;
151*07c8ded6SRichard Acayan				};
152*07c8ded6SRichard Acayan
153*07c8ded6SRichard Acayan				core1 {
154*07c8ded6SRichard Acayan					cpu = <&CPU1>;
155*07c8ded6SRichard Acayan				};
156*07c8ded6SRichard Acayan
157*07c8ded6SRichard Acayan				core2 {
158*07c8ded6SRichard Acayan					cpu = <&CPU2>;
159*07c8ded6SRichard Acayan				};
160*07c8ded6SRichard Acayan
161*07c8ded6SRichard Acayan				core3 {
162*07c8ded6SRichard Acayan					cpu = <&CPU3>;
163*07c8ded6SRichard Acayan				};
164*07c8ded6SRichard Acayan
165*07c8ded6SRichard Acayan				core4 {
166*07c8ded6SRichard Acayan					cpu = <&CPU4>;
167*07c8ded6SRichard Acayan				};
168*07c8ded6SRichard Acayan
169*07c8ded6SRichard Acayan				core5 {
170*07c8ded6SRichard Acayan					cpu = <&CPU5>;
171*07c8ded6SRichard Acayan				};
172*07c8ded6SRichard Acayan
173*07c8ded6SRichard Acayan				core6 {
174*07c8ded6SRichard Acayan					cpu = <&CPU6>;
175*07c8ded6SRichard Acayan				};
176*07c8ded6SRichard Acayan
177*07c8ded6SRichard Acayan				core7 {
178*07c8ded6SRichard Acayan					cpu = <&CPU7>;
179*07c8ded6SRichard Acayan				};
180*07c8ded6SRichard Acayan			};
181*07c8ded6SRichard Acayan		};
182*07c8ded6SRichard Acayan
183*07c8ded6SRichard Acayan		idle-states {
184*07c8ded6SRichard Acayan			entry-method = "psci";
185*07c8ded6SRichard Acayan
186*07c8ded6SRichard Acayan			LITTLE_CPU_SLEEP_0: cpu-sleep-0-0 {
187*07c8ded6SRichard Acayan				compatible = "arm,idle-state";
188*07c8ded6SRichard Acayan				idle-state-name = "little-rail-power-collapse";
189*07c8ded6SRichard Acayan				arm,psci-suspend-param = <0x40000004>;
190*07c8ded6SRichard Acayan				entry-latency-us = <702>;
191*07c8ded6SRichard Acayan				exit-latency-us = <915>;
192*07c8ded6SRichard Acayan				min-residency-us = <1617>;
193*07c8ded6SRichard Acayan				local-timer-stop;
194*07c8ded6SRichard Acayan			};
195*07c8ded6SRichard Acayan
196*07c8ded6SRichard Acayan			BIG_CPU_SLEEP_0: cpu-sleep-1-0 {
197*07c8ded6SRichard Acayan				compatible = "arm,idle-state";
198*07c8ded6SRichard Acayan				idle-state-name = "big-rail-power-collapse";
199*07c8ded6SRichard Acayan				arm,psci-suspend-param = <0x40000004>;
200*07c8ded6SRichard Acayan				entry-latency-us = <526>;
201*07c8ded6SRichard Acayan				exit-latency-us = <1854>;
202*07c8ded6SRichard Acayan				min-residency-us = <2380>;
203*07c8ded6SRichard Acayan				local-timer-stop;
204*07c8ded6SRichard Acayan			};
205*07c8ded6SRichard Acayan		};
206*07c8ded6SRichard Acayan
207*07c8ded6SRichard Acayan		domain-idle-states {
208*07c8ded6SRichard Acayan			CLUSTER_SLEEP_0: cluster-sleep-0 {
209*07c8ded6SRichard Acayan				compatible = "domain-idle-state";
210*07c8ded6SRichard Acayan				arm,psci-suspend-param = <0x4100c244>;
211*07c8ded6SRichard Acayan				entry-latency-us = <3263>;
212*07c8ded6SRichard Acayan				exit-latency-us = <6562>;
213*07c8ded6SRichard Acayan				min-residency-us = <9825>;
214*07c8ded6SRichard Acayan			};
215*07c8ded6SRichard Acayan		};
216*07c8ded6SRichard Acayan	};
217*07c8ded6SRichard Acayan
218*07c8ded6SRichard Acayan	firmware {
219*07c8ded6SRichard Acayan		scm {
220*07c8ded6SRichard Acayan			compatible = "qcom,scm-sdm670", "qcom,scm";
221*07c8ded6SRichard Acayan		};
222*07c8ded6SRichard Acayan	};
223*07c8ded6SRichard Acayan
224*07c8ded6SRichard Acayan	memory@80000000 {
225*07c8ded6SRichard Acayan		device_type = "memory";
226*07c8ded6SRichard Acayan		/* We expect the bootloader to fill in the size */
227*07c8ded6SRichard Acayan		reg = <0x0 0x80000000 0x0 0x0>;
228*07c8ded6SRichard Acayan	};
229*07c8ded6SRichard Acayan
230*07c8ded6SRichard Acayan	psci {
231*07c8ded6SRichard Acayan		compatible = "arm,psci-1.0";
232*07c8ded6SRichard Acayan		method = "smc";
233*07c8ded6SRichard Acayan
234*07c8ded6SRichard Acayan		CPU_PD0: power-domain-cpu0 {
235*07c8ded6SRichard Acayan			#power-domain-cells = <0>;
236*07c8ded6SRichard Acayan			power-domains = <&CLUSTER_PD>;
237*07c8ded6SRichard Acayan			domain-idle-states = <&LITTLE_CPU_SLEEP_0>;
238*07c8ded6SRichard Acayan		};
239*07c8ded6SRichard Acayan
240*07c8ded6SRichard Acayan		CPU_PD1: power-domain-cpu1 {
241*07c8ded6SRichard Acayan			#power-domain-cells = <0>;
242*07c8ded6SRichard Acayan			power-domains = <&CLUSTER_PD>;
243*07c8ded6SRichard Acayan			domain-idle-states = <&LITTLE_CPU_SLEEP_0>;
244*07c8ded6SRichard Acayan		};
245*07c8ded6SRichard Acayan
246*07c8ded6SRichard Acayan		CPU_PD2: power-domain-cpu2 {
247*07c8ded6SRichard Acayan			#power-domain-cells = <0>;
248*07c8ded6SRichard Acayan			power-domains = <&CLUSTER_PD>;
249*07c8ded6SRichard Acayan			domain-idle-states = <&LITTLE_CPU_SLEEP_0>;
250*07c8ded6SRichard Acayan		};
251*07c8ded6SRichard Acayan
252*07c8ded6SRichard Acayan		CPU_PD3: power-domain-cpu3 {
253*07c8ded6SRichard Acayan			#power-domain-cells = <0>;
254*07c8ded6SRichard Acayan			power-domains = <&CLUSTER_PD>;
255*07c8ded6SRichard Acayan			domain-idle-states = <&LITTLE_CPU_SLEEP_0>;
256*07c8ded6SRichard Acayan		};
257*07c8ded6SRichard Acayan
258*07c8ded6SRichard Acayan		CPU_PD4: power-domain-cpu4 {
259*07c8ded6SRichard Acayan			#power-domain-cells = <0>;
260*07c8ded6SRichard Acayan			power-domains = <&CLUSTER_PD>;
261*07c8ded6SRichard Acayan			domain-idle-states = <&LITTLE_CPU_SLEEP_0>;
262*07c8ded6SRichard Acayan		};
263*07c8ded6SRichard Acayan
264*07c8ded6SRichard Acayan		CPU_PD5: power-domain-cpu5 {
265*07c8ded6SRichard Acayan			#power-domain-cells = <0>;
266*07c8ded6SRichard Acayan			power-domains = <&CLUSTER_PD>;
267*07c8ded6SRichard Acayan			domain-idle-states = <&LITTLE_CPU_SLEEP_0>;
268*07c8ded6SRichard Acayan		};
269*07c8ded6SRichard Acayan
270*07c8ded6SRichard Acayan		CPU_PD6: power-domain-cpu6 {
271*07c8ded6SRichard Acayan			#power-domain-cells = <0>;
272*07c8ded6SRichard Acayan			power-domains = <&CLUSTER_PD>;
273*07c8ded6SRichard Acayan			domain-idle-states = <&BIG_CPU_SLEEP_0>;
274*07c8ded6SRichard Acayan		};
275*07c8ded6SRichard Acayan
276*07c8ded6SRichard Acayan		CPU_PD7: power-domain-cpu7 {
277*07c8ded6SRichard Acayan			#power-domain-cells = <0>;
278*07c8ded6SRichard Acayan			power-domains = <&CLUSTER_PD>;
279*07c8ded6SRichard Acayan			domain-idle-states = <&BIG_CPU_SLEEP_0>;
280*07c8ded6SRichard Acayan		};
281*07c8ded6SRichard Acayan
282*07c8ded6SRichard Acayan		CLUSTER_PD: power-domain-cluster {
283*07c8ded6SRichard Acayan			#power-domain-cells = <0>;
284*07c8ded6SRichard Acayan			domain-idle-states = <&CLUSTER_SLEEP_0>;
285*07c8ded6SRichard Acayan		};
286*07c8ded6SRichard Acayan	};
287*07c8ded6SRichard Acayan
288*07c8ded6SRichard Acayan	reserved-memory {
289*07c8ded6SRichard Acayan		#address-cells = <2>;
290*07c8ded6SRichard Acayan		#size-cells = <2>;
291*07c8ded6SRichard Acayan		ranges;
292*07c8ded6SRichard Acayan
293*07c8ded6SRichard Acayan		hyp_mem: hyp-mem@85700000 {
294*07c8ded6SRichard Acayan			reg = <0 0x85700000 0 0x600000>;
295*07c8ded6SRichard Acayan			no-map;
296*07c8ded6SRichard Acayan		};
297*07c8ded6SRichard Acayan
298*07c8ded6SRichard Acayan		xbl_mem: xbl-mem@85e00000 {
299*07c8ded6SRichard Acayan			reg = <0 0x85e00000 0 0x100000>;
300*07c8ded6SRichard Acayan			no-map;
301*07c8ded6SRichard Acayan		};
302*07c8ded6SRichard Acayan
303*07c8ded6SRichard Acayan		aop_mem: aop-mem@85fc0000 {
304*07c8ded6SRichard Acayan			reg = <0 0x85fc0000 0 0x20000>;
305*07c8ded6SRichard Acayan			no-map;
306*07c8ded6SRichard Acayan		};
307*07c8ded6SRichard Acayan
308*07c8ded6SRichard Acayan		aop_cmd_db_mem: aop-cmd-db-mem@85fe0000 {
309*07c8ded6SRichard Acayan			compatible = "qcom,cmd-db";
310*07c8ded6SRichard Acayan			reg = <0 0x85fe0000 0 0x20000>;
311*07c8ded6SRichard Acayan			no-map;
312*07c8ded6SRichard Acayan		};
313*07c8ded6SRichard Acayan
314*07c8ded6SRichard Acayan		camera_mem: camera-mem@8ab00000 {
315*07c8ded6SRichard Acayan			reg = <0 0x8ab00000 0 0x500000>;
316*07c8ded6SRichard Acayan			no-map;
317*07c8ded6SRichard Acayan		};
318*07c8ded6SRichard Acayan
319*07c8ded6SRichard Acayan		mpss_region: mpss@8b000000 {
320*07c8ded6SRichard Acayan			reg = <0 0x8b000000 0 0x7e00000>;
321*07c8ded6SRichard Acayan			no-map;
322*07c8ded6SRichard Acayan		};
323*07c8ded6SRichard Acayan
324*07c8ded6SRichard Acayan		venus_mem: venus@92e00000 {
325*07c8ded6SRichard Acayan			reg = <0 0x92e00000 0 0x500000>;
326*07c8ded6SRichard Acayan			no-map;
327*07c8ded6SRichard Acayan		};
328*07c8ded6SRichard Acayan
329*07c8ded6SRichard Acayan		wlan_msa_mem: wlan-msa@93300000 {
330*07c8ded6SRichard Acayan			reg = <0 0x93300000 0 0x100000>;
331*07c8ded6SRichard Acayan			no-map;
332*07c8ded6SRichard Acayan		};
333*07c8ded6SRichard Acayan
334*07c8ded6SRichard Acayan		cdsp_mem: cdsp@93400000 {
335*07c8ded6SRichard Acayan			reg = <0 0x93400000 0 0x800000>;
336*07c8ded6SRichard Acayan			no-map;
337*07c8ded6SRichard Acayan		};
338*07c8ded6SRichard Acayan
339*07c8ded6SRichard Acayan		mba_region: mba@93c00000 {
340*07c8ded6SRichard Acayan			reg = <0 0x93c00000 0 0x200000>;
341*07c8ded6SRichard Acayan			no-map;
342*07c8ded6SRichard Acayan		};
343*07c8ded6SRichard Acayan
344*07c8ded6SRichard Acayan		adsp_mem: adsp@93e00000 {
345*07c8ded6SRichard Acayan			reg = <0 0x93e00000 0 0x1e00000>;
346*07c8ded6SRichard Acayan			no-map;
347*07c8ded6SRichard Acayan		};
348*07c8ded6SRichard Acayan
349*07c8ded6SRichard Acayan		ipa_fw_mem: ipa-fw@95c00000 {
350*07c8ded6SRichard Acayan			reg = <0 0x95c00000 0 0x10000>;
351*07c8ded6SRichard Acayan			no-map;
352*07c8ded6SRichard Acayan		};
353*07c8ded6SRichard Acayan
354*07c8ded6SRichard Acayan		ipa_gsi_mem: ipa-gsi@95c10000 {
355*07c8ded6SRichard Acayan			reg = <0 0x95c10000 0 0x5000>;
356*07c8ded6SRichard Acayan			no-map;
357*07c8ded6SRichard Acayan		};
358*07c8ded6SRichard Acayan
359*07c8ded6SRichard Acayan		gpu_mem: gpu@95c15000 {
360*07c8ded6SRichard Acayan			reg = <0 0x95c15000 0 0x2000>;
361*07c8ded6SRichard Acayan			no-map;
362*07c8ded6SRichard Acayan		};
363*07c8ded6SRichard Acayan
364*07c8ded6SRichard Acayan		spss_mem: spss@97b00000 {
365*07c8ded6SRichard Acayan			reg = <0 0x97b00000 0 0x100000>;
366*07c8ded6SRichard Acayan			no-map;
367*07c8ded6SRichard Acayan		};
368*07c8ded6SRichard Acayan
369*07c8ded6SRichard Acayan		qseecom_mem: qseecom@9e400000 {
370*07c8ded6SRichard Acayan			reg = <0 0x9e400000 0 0x1400000>;
371*07c8ded6SRichard Acayan			no-map;
372*07c8ded6SRichard Acayan		};
373*07c8ded6SRichard Acayan	};
374*07c8ded6SRichard Acayan
375*07c8ded6SRichard Acayan	timer {
376*07c8ded6SRichard Acayan		compatible = "arm,armv8-timer";
377*07c8ded6SRichard Acayan		interrupts = <GIC_PPI 1 IRQ_TYPE_LEVEL_LOW>,
378*07c8ded6SRichard Acayan			     <GIC_PPI 2 IRQ_TYPE_LEVEL_LOW>,
379*07c8ded6SRichard Acayan			     <GIC_PPI 3 IRQ_TYPE_LEVEL_LOW>,
380*07c8ded6SRichard Acayan			     <GIC_PPI 0 IRQ_TYPE_LEVEL_LOW>;
381*07c8ded6SRichard Acayan	};
382*07c8ded6SRichard Acayan
383*07c8ded6SRichard Acayan	soc: soc@0 {
384*07c8ded6SRichard Acayan		#address-cells = <2>;
385*07c8ded6SRichard Acayan		#size-cells = <2>;
386*07c8ded6SRichard Acayan		ranges = <0 0 0 0 0x10 0>;
387*07c8ded6SRichard Acayan		dma-ranges = <0 0 0 0 0x10 0>;
388*07c8ded6SRichard Acayan		compatible = "simple-bus";
389*07c8ded6SRichard Acayan
390*07c8ded6SRichard Acayan		gcc: clock-controller@100000 {
391*07c8ded6SRichard Acayan			compatible = "qcom,gcc-sdm670";
392*07c8ded6SRichard Acayan			reg = <0 0x00100000 0 0x1f0000>;
393*07c8ded6SRichard Acayan			clocks = <&rpmhcc RPMH_CXO_CLK>,
394*07c8ded6SRichard Acayan				 <&rpmhcc RPMH_CXO_CLK_A>,
395*07c8ded6SRichard Acayan				 <&sleep_clk>;
396*07c8ded6SRichard Acayan			clock-names = "bi_tcxo",
397*07c8ded6SRichard Acayan				      "bi_tcxo_ao",
398*07c8ded6SRichard Acayan				      "sleep_clk";
399*07c8ded6SRichard Acayan			#clock-cells = <1>;
400*07c8ded6SRichard Acayan			#reset-cells = <1>;
401*07c8ded6SRichard Acayan			#power-domain-cells = <1>;
402*07c8ded6SRichard Acayan		};
403*07c8ded6SRichard Acayan
404*07c8ded6SRichard Acayan		sdhc_1: mmc@7c4000 {
405*07c8ded6SRichard Acayan			compatible = "qcom,sdm670-sdhci", "qcom,sdhci-msm-v5";
406*07c8ded6SRichard Acayan			reg = <0 0x007c4000 0 0x1000>,
407*07c8ded6SRichard Acayan			      <0 0x007c5000 0 0x1000>,
408*07c8ded6SRichard Acayan			      <0 0x007c8000 0 0x8000>;
409*07c8ded6SRichard Acayan			reg-names = "hc", "cqhci", "ice";
410*07c8ded6SRichard Acayan
411*07c8ded6SRichard Acayan			interrupts = <GIC_SPI 641 IRQ_TYPE_LEVEL_HIGH>,
412*07c8ded6SRichard Acayan				     <GIC_SPI 644 IRQ_TYPE_LEVEL_HIGH>;
413*07c8ded6SRichard Acayan			interrupt-names = "hc_irq", "pwr_irq";
414*07c8ded6SRichard Acayan
415*07c8ded6SRichard Acayan			clocks = <&gcc GCC_SDCC1_AHB_CLK>,
416*07c8ded6SRichard Acayan				 <&gcc GCC_SDCC1_APPS_CLK>,
417*07c8ded6SRichard Acayan				 <&rpmhcc RPMH_CXO_CLK>,
418*07c8ded6SRichard Acayan				 <&gcc GCC_SDCC1_ICE_CORE_CLK>,
419*07c8ded6SRichard Acayan				 <&gcc GCC_AGGRE_UFS_PHY_AXI_CLK>;
420*07c8ded6SRichard Acayan			clock-names = "iface", "core", "xo", "ice", "bus";
421*07c8ded6SRichard Acayan
422*07c8ded6SRichard Acayan			iommus = <&apps_smmu 0x140 0xf>;
423*07c8ded6SRichard Acayan
424*07c8ded6SRichard Acayan			pinctrl-names = "default", "sleep";
425*07c8ded6SRichard Acayan			pinctrl-0 = <&sdc1_state_on>;
426*07c8ded6SRichard Acayan			pinctrl-1 = <&sdc1_state_off>;
427*07c8ded6SRichard Acayan			power-domains = <&rpmhpd SDM670_CX>;
428*07c8ded6SRichard Acayan
429*07c8ded6SRichard Acayan			bus-width = <8>;
430*07c8ded6SRichard Acayan			non-removable;
431*07c8ded6SRichard Acayan
432*07c8ded6SRichard Acayan			status = "disabled";
433*07c8ded6SRichard Acayan		};
434*07c8ded6SRichard Acayan
435*07c8ded6SRichard Acayan		gpi_dma0: dma-controller@800000 {
436*07c8ded6SRichard Acayan			#dma-cells = <3>;
437*07c8ded6SRichard Acayan			compatible = "qcom,sdm670-gpi-dma", "qcom,sdm845-gpi-dma";
438*07c8ded6SRichard Acayan			reg = <0 0x00800000 0 0x60000>;
439*07c8ded6SRichard Acayan			interrupts = <GIC_SPI 244 IRQ_TYPE_LEVEL_HIGH>,
440*07c8ded6SRichard Acayan				     <GIC_SPI 245 IRQ_TYPE_LEVEL_HIGH>,
441*07c8ded6SRichard Acayan				     <GIC_SPI 246 IRQ_TYPE_LEVEL_HIGH>,
442*07c8ded6SRichard Acayan				     <GIC_SPI 247 IRQ_TYPE_LEVEL_HIGH>,
443*07c8ded6SRichard Acayan				     <GIC_SPI 248 IRQ_TYPE_LEVEL_HIGH>,
444*07c8ded6SRichard Acayan				     <GIC_SPI 249 IRQ_TYPE_LEVEL_HIGH>,
445*07c8ded6SRichard Acayan				     <GIC_SPI 250 IRQ_TYPE_LEVEL_HIGH>,
446*07c8ded6SRichard Acayan				     <GIC_SPI 251 IRQ_TYPE_LEVEL_HIGH>,
447*07c8ded6SRichard Acayan				     <GIC_SPI 252 IRQ_TYPE_LEVEL_HIGH>,
448*07c8ded6SRichard Acayan				     <GIC_SPI 253 IRQ_TYPE_LEVEL_HIGH>,
449*07c8ded6SRichard Acayan				     <GIC_SPI 254 IRQ_TYPE_LEVEL_HIGH>,
450*07c8ded6SRichard Acayan				     <GIC_SPI 255 IRQ_TYPE_LEVEL_HIGH>,
451*07c8ded6SRichard Acayan				     <GIC_SPI 256 IRQ_TYPE_LEVEL_HIGH>;
452*07c8ded6SRichard Acayan			dma-channels = <13>;
453*07c8ded6SRichard Acayan			dma-channel-mask = <0xfa>;
454*07c8ded6SRichard Acayan			iommus = <&apps_smmu 0x16 0x0>;
455*07c8ded6SRichard Acayan			status = "disabled";
456*07c8ded6SRichard Acayan		};
457*07c8ded6SRichard Acayan
458*07c8ded6SRichard Acayan		qupv3_id_0: geniqup@8c0000 {
459*07c8ded6SRichard Acayan			compatible = "qcom,geni-se-qup";
460*07c8ded6SRichard Acayan			reg = <0 0x008c0000 0 0x6000>;
461*07c8ded6SRichard Acayan			clock-names = "m-ahb", "s-ahb";
462*07c8ded6SRichard Acayan			clocks = <&gcc GCC_QUPV3_WRAP_0_M_AHB_CLK>,
463*07c8ded6SRichard Acayan				 <&gcc GCC_QUPV3_WRAP_0_S_AHB_CLK>;
464*07c8ded6SRichard Acayan			iommus = <&apps_smmu 0x3 0x0>;
465*07c8ded6SRichard Acayan			#address-cells = <2>;
466*07c8ded6SRichard Acayan			#size-cells = <2>;
467*07c8ded6SRichard Acayan			ranges;
468*07c8ded6SRichard Acayan			status = "disabled";
469*07c8ded6SRichard Acayan
470*07c8ded6SRichard Acayan			i2c0: i2c@880000 {
471*07c8ded6SRichard Acayan				compatible = "qcom,geni-i2c";
472*07c8ded6SRichard Acayan				reg = <0 0x00880000 0 0x4000>;
473*07c8ded6SRichard Acayan				clock-names = "se";
474*07c8ded6SRichard Acayan				clocks = <&gcc GCC_QUPV3_WRAP0_S0_CLK>;
475*07c8ded6SRichard Acayan				pinctrl-names = "default";
476*07c8ded6SRichard Acayan				pinctrl-0 = <&qup_i2c0_default>;
477*07c8ded6SRichard Acayan				interrupts = <GIC_SPI 601 IRQ_TYPE_LEVEL_HIGH>;
478*07c8ded6SRichard Acayan				#address-cells = <1>;
479*07c8ded6SRichard Acayan				#size-cells = <0>;
480*07c8ded6SRichard Acayan				power-domains = <&rpmhpd SDM670_CX>;
481*07c8ded6SRichard Acayan				dmas = <&gpi_dma0 0 0 QCOM_GPI_I2C>,
482*07c8ded6SRichard Acayan				       <&gpi_dma0 1 0 QCOM_GPI_I2C>;
483*07c8ded6SRichard Acayan				dma-names = "tx", "rx";
484*07c8ded6SRichard Acayan				status = "disabled";
485*07c8ded6SRichard Acayan			};
486*07c8ded6SRichard Acayan
487*07c8ded6SRichard Acayan			i2c1: i2c@884000 {
488*07c8ded6SRichard Acayan				compatible = "qcom,geni-i2c";
489*07c8ded6SRichard Acayan				reg = <0 0x00884000 0 0x4000>;
490*07c8ded6SRichard Acayan				clock-names = "se";
491*07c8ded6SRichard Acayan				clocks = <&gcc GCC_QUPV3_WRAP0_S1_CLK>;
492*07c8ded6SRichard Acayan				pinctrl-names = "default";
493*07c8ded6SRichard Acayan				pinctrl-0 = <&qup_i2c1_default>;
494*07c8ded6SRichard Acayan				interrupts = <GIC_SPI 602 IRQ_TYPE_LEVEL_HIGH>;
495*07c8ded6SRichard Acayan				#address-cells = <1>;
496*07c8ded6SRichard Acayan				#size-cells = <0>;
497*07c8ded6SRichard Acayan				power-domains = <&rpmhpd SDM670_CX>;
498*07c8ded6SRichard Acayan				dmas = <&gpi_dma0 0 1 QCOM_GPI_I2C>,
499*07c8ded6SRichard Acayan				       <&gpi_dma0 1 1 QCOM_GPI_I2C>;
500*07c8ded6SRichard Acayan				dma-names = "tx", "rx";
501*07c8ded6SRichard Acayan				status = "disabled";
502*07c8ded6SRichard Acayan			};
503*07c8ded6SRichard Acayan
504*07c8ded6SRichard Acayan			i2c2: i2c@888000 {
505*07c8ded6SRichard Acayan				compatible = "qcom,geni-i2c";
506*07c8ded6SRichard Acayan				reg = <0 0x00888000 0 0x4000>;
507*07c8ded6SRichard Acayan				clock-names = "se";
508*07c8ded6SRichard Acayan				clocks = <&gcc GCC_QUPV3_WRAP0_S2_CLK>;
509*07c8ded6SRichard Acayan				pinctrl-names = "default";
510*07c8ded6SRichard Acayan				pinctrl-0 = <&qup_i2c2_default>;
511*07c8ded6SRichard Acayan				interrupts = <GIC_SPI 603 IRQ_TYPE_LEVEL_HIGH>;
512*07c8ded6SRichard Acayan				#address-cells = <1>;
513*07c8ded6SRichard Acayan				#size-cells = <0>;
514*07c8ded6SRichard Acayan				power-domains = <&rpmhpd SDM670_CX>;
515*07c8ded6SRichard Acayan				dmas = <&gpi_dma0 0 2 QCOM_GPI_I2C>,
516*07c8ded6SRichard Acayan				       <&gpi_dma0 1 2 QCOM_GPI_I2C>;
517*07c8ded6SRichard Acayan				dma-names = "tx", "rx";
518*07c8ded6SRichard Acayan				status = "disabled";
519*07c8ded6SRichard Acayan			};
520*07c8ded6SRichard Acayan
521*07c8ded6SRichard Acayan			i2c3: i2c@88c000 {
522*07c8ded6SRichard Acayan				compatible = "qcom,geni-i2c";
523*07c8ded6SRichard Acayan				reg = <0 0x0088c000 0 0x4000>;
524*07c8ded6SRichard Acayan				clock-names = "se";
525*07c8ded6SRichard Acayan				clocks = <&gcc GCC_QUPV3_WRAP0_S3_CLK>;
526*07c8ded6SRichard Acayan				pinctrl-names = "default";
527*07c8ded6SRichard Acayan				pinctrl-0 = <&qup_i2c3_default>;
528*07c8ded6SRichard Acayan				interrupts = <GIC_SPI 604 IRQ_TYPE_LEVEL_HIGH>;
529*07c8ded6SRichard Acayan				#address-cells = <1>;
530*07c8ded6SRichard Acayan				#size-cells = <0>;
531*07c8ded6SRichard Acayan				power-domains = <&rpmhpd SDM670_CX>;
532*07c8ded6SRichard Acayan				dmas = <&gpi_dma0 0 3 QCOM_GPI_I2C>,
533*07c8ded6SRichard Acayan				       <&gpi_dma0 1 3 QCOM_GPI_I2C>;
534*07c8ded6SRichard Acayan				dma-names = "tx", "rx";
535*07c8ded6SRichard Acayan				status = "disabled";
536*07c8ded6SRichard Acayan			};
537*07c8ded6SRichard Acayan
538*07c8ded6SRichard Acayan			i2c4: i2c@890000 {
539*07c8ded6SRichard Acayan				compatible = "qcom,geni-i2c";
540*07c8ded6SRichard Acayan				reg = <0 0x00890000 0 0x4000>;
541*07c8ded6SRichard Acayan				clock-names = "se";
542*07c8ded6SRichard Acayan				clocks = <&gcc GCC_QUPV3_WRAP0_S4_CLK>;
543*07c8ded6SRichard Acayan				pinctrl-names = "default";
544*07c8ded6SRichard Acayan				pinctrl-0 = <&qup_i2c4_default>;
545*07c8ded6SRichard Acayan				interrupts = <GIC_SPI 605 IRQ_TYPE_LEVEL_HIGH>;
546*07c8ded6SRichard Acayan				#address-cells = <1>;
547*07c8ded6SRichard Acayan				#size-cells = <0>;
548*07c8ded6SRichard Acayan				power-domains = <&rpmhpd SDM670_CX>;
549*07c8ded6SRichard Acayan				dmas = <&gpi_dma0 0 4 QCOM_GPI_I2C>,
550*07c8ded6SRichard Acayan				       <&gpi_dma0 1 4 QCOM_GPI_I2C>;
551*07c8ded6SRichard Acayan				dma-names = "tx", "rx";
552*07c8ded6SRichard Acayan				status = "disabled";
553*07c8ded6SRichard Acayan			};
554*07c8ded6SRichard Acayan
555*07c8ded6SRichard Acayan			i2c5: i2c@894000 {
556*07c8ded6SRichard Acayan				compatible = "qcom,geni-i2c";
557*07c8ded6SRichard Acayan				reg = <0 0x00894000 0 0x4000>;
558*07c8ded6SRichard Acayan				clock-names = "se";
559*07c8ded6SRichard Acayan				clocks = <&gcc GCC_QUPV3_WRAP0_S5_CLK>;
560*07c8ded6SRichard Acayan				pinctrl-names = "default";
561*07c8ded6SRichard Acayan				pinctrl-0 = <&qup_i2c5_default>;
562*07c8ded6SRichard Acayan				interrupts = <GIC_SPI 606 IRQ_TYPE_LEVEL_HIGH>;
563*07c8ded6SRichard Acayan				#address-cells = <1>;
564*07c8ded6SRichard Acayan				#size-cells = <0>;
565*07c8ded6SRichard Acayan				power-domains = <&rpmhpd SDM670_CX>;
566*07c8ded6SRichard Acayan				dmas = <&gpi_dma0 0 5 QCOM_GPI_I2C>,
567*07c8ded6SRichard Acayan				       <&gpi_dma0 1 5 QCOM_GPI_I2C>;
568*07c8ded6SRichard Acayan				dma-names = "tx", "rx";
569*07c8ded6SRichard Acayan				status = "disabled";
570*07c8ded6SRichard Acayan			};
571*07c8ded6SRichard Acayan
572*07c8ded6SRichard Acayan			i2c6: i2c@898000 {
573*07c8ded6SRichard Acayan				compatible = "qcom,geni-i2c";
574*07c8ded6SRichard Acayan				reg = <0 0x00898000 0 0x4000>;
575*07c8ded6SRichard Acayan				clock-names = "se";
576*07c8ded6SRichard Acayan				clocks = <&gcc GCC_QUPV3_WRAP0_S6_CLK>;
577*07c8ded6SRichard Acayan				pinctrl-names = "default";
578*07c8ded6SRichard Acayan				pinctrl-0 = <&qup_i2c6_default>;
579*07c8ded6SRichard Acayan				interrupts = <GIC_SPI 607 IRQ_TYPE_LEVEL_HIGH>;
580*07c8ded6SRichard Acayan				#address-cells = <1>;
581*07c8ded6SRichard Acayan				#size-cells = <0>;
582*07c8ded6SRichard Acayan				power-domains = <&rpmhpd SDM670_CX>;
583*07c8ded6SRichard Acayan				dmas = <&gpi_dma0 0 6 QCOM_GPI_I2C>,
584*07c8ded6SRichard Acayan				       <&gpi_dma0 1 6 QCOM_GPI_I2C>;
585*07c8ded6SRichard Acayan				dma-names = "tx", "rx";
586*07c8ded6SRichard Acayan				status = "disabled";
587*07c8ded6SRichard Acayan			};
588*07c8ded6SRichard Acayan
589*07c8ded6SRichard Acayan			i2c7: i2c@89c000 {
590*07c8ded6SRichard Acayan				compatible = "qcom,geni-i2c";
591*07c8ded6SRichard Acayan				reg = <0 0x0089c000 0 0x4000>;
592*07c8ded6SRichard Acayan				clock-names = "se";
593*07c8ded6SRichard Acayan				clocks = <&gcc GCC_QUPV3_WRAP0_S7_CLK>;
594*07c8ded6SRichard Acayan				pinctrl-names = "default";
595*07c8ded6SRichard Acayan				pinctrl-0 = <&qup_i2c7_default>;
596*07c8ded6SRichard Acayan				interrupts = <GIC_SPI 608 IRQ_TYPE_LEVEL_HIGH>;
597*07c8ded6SRichard Acayan				#address-cells = <1>;
598*07c8ded6SRichard Acayan				#size-cells = <0>;
599*07c8ded6SRichard Acayan				power-domains = <&rpmhpd SDM670_CX>;
600*07c8ded6SRichard Acayan				dmas = <&gpi_dma0 0 7 QCOM_GPI_I2C>,
601*07c8ded6SRichard Acayan				       <&gpi_dma0 1 7 QCOM_GPI_I2C>;
602*07c8ded6SRichard Acayan				dma-names = "tx", "rx";
603*07c8ded6SRichard Acayan				status = "disabled";
604*07c8ded6SRichard Acayan			};
605*07c8ded6SRichard Acayan		};
606*07c8ded6SRichard Acayan
607*07c8ded6SRichard Acayan		gpi_dma1: dma-controller@a00000 {
608*07c8ded6SRichard Acayan			#dma-cells = <3>;
609*07c8ded6SRichard Acayan			compatible = "qcom,sdm670-gpi-dma", "qcom,sdm845-gpi-dma";
610*07c8ded6SRichard Acayan			reg = <0 0x00a00000 0 0x60000>;
611*07c8ded6SRichard Acayan			interrupts = <GIC_SPI 279 IRQ_TYPE_LEVEL_HIGH>,
612*07c8ded6SRichard Acayan				     <GIC_SPI 280 IRQ_TYPE_LEVEL_HIGH>,
613*07c8ded6SRichard Acayan				     <GIC_SPI 281 IRQ_TYPE_LEVEL_HIGH>,
614*07c8ded6SRichard Acayan				     <GIC_SPI 282 IRQ_TYPE_LEVEL_HIGH>,
615*07c8ded6SRichard Acayan				     <GIC_SPI 283 IRQ_TYPE_LEVEL_HIGH>,
616*07c8ded6SRichard Acayan				     <GIC_SPI 284 IRQ_TYPE_LEVEL_HIGH>,
617*07c8ded6SRichard Acayan				     <GIC_SPI 293 IRQ_TYPE_LEVEL_HIGH>,
618*07c8ded6SRichard Acayan				     <GIC_SPI 294 IRQ_TYPE_LEVEL_HIGH>,
619*07c8ded6SRichard Acayan				     <GIC_SPI 295 IRQ_TYPE_LEVEL_HIGH>,
620*07c8ded6SRichard Acayan				     <GIC_SPI 296 IRQ_TYPE_LEVEL_HIGH>,
621*07c8ded6SRichard Acayan				     <GIC_SPI 297 IRQ_TYPE_LEVEL_HIGH>,
622*07c8ded6SRichard Acayan				     <GIC_SPI 298 IRQ_TYPE_LEVEL_HIGH>,
623*07c8ded6SRichard Acayan				     <GIC_SPI 299 IRQ_TYPE_LEVEL_HIGH>;
624*07c8ded6SRichard Acayan			dma-channels = <13>;
625*07c8ded6SRichard Acayan			dma-channel-mask = <0xfa>;
626*07c8ded6SRichard Acayan			iommus = <&apps_smmu 0x6d6 0x0>;
627*07c8ded6SRichard Acayan			status = "disabled";
628*07c8ded6SRichard Acayan		};
629*07c8ded6SRichard Acayan
630*07c8ded6SRichard Acayan		qupv3_id_1: geniqup@ac0000 {
631*07c8ded6SRichard Acayan			compatible = "qcom,geni-se-qup";
632*07c8ded6SRichard Acayan			reg = <0 0x00ac0000 0 0x6000>;
633*07c8ded6SRichard Acayan			clock-names = "m-ahb", "s-ahb";
634*07c8ded6SRichard Acayan			clocks = <&gcc GCC_QUPV3_WRAP_1_M_AHB_CLK>,
635*07c8ded6SRichard Acayan				 <&gcc GCC_QUPV3_WRAP_1_S_AHB_CLK>;
636*07c8ded6SRichard Acayan			iommus = <&apps_smmu 0x6c3 0x0>;
637*07c8ded6SRichard Acayan			#address-cells = <2>;
638*07c8ded6SRichard Acayan			#size-cells = <2>;
639*07c8ded6SRichard Acayan			ranges;
640*07c8ded6SRichard Acayan			status = "disabled";
641*07c8ded6SRichard Acayan
642*07c8ded6SRichard Acayan			i2c8: i2c@a80000 {
643*07c8ded6SRichard Acayan				compatible = "qcom,geni-i2c";
644*07c8ded6SRichard Acayan				reg = <0 0x00a80000 0 0x4000>;
645*07c8ded6SRichard Acayan				clock-names = "se";
646*07c8ded6SRichard Acayan				clocks = <&gcc GCC_QUPV3_WRAP1_S0_CLK>;
647*07c8ded6SRichard Acayan				pinctrl-names = "default";
648*07c8ded6SRichard Acayan				pinctrl-0 = <&qup_i2c8_default>;
649*07c8ded6SRichard Acayan				interrupts = <GIC_SPI 353 IRQ_TYPE_LEVEL_HIGH>;
650*07c8ded6SRichard Acayan				#address-cells = <1>;
651*07c8ded6SRichard Acayan				#size-cells = <0>;
652*07c8ded6SRichard Acayan				power-domains = <&rpmhpd SDM670_CX>;
653*07c8ded6SRichard Acayan				dmas = <&gpi_dma1 0 0 QCOM_GPI_I2C>,
654*07c8ded6SRichard Acayan				       <&gpi_dma1 1 0 QCOM_GPI_I2C>;
655*07c8ded6SRichard Acayan				dma-names = "tx", "rx";
656*07c8ded6SRichard Acayan				status = "disabled";
657*07c8ded6SRichard Acayan			};
658*07c8ded6SRichard Acayan
659*07c8ded6SRichard Acayan			i2c9: i2c@a84000 {
660*07c8ded6SRichard Acayan				compatible = "qcom,geni-i2c";
661*07c8ded6SRichard Acayan				reg = <0 0x00a84000 0 0x4000>;
662*07c8ded6SRichard Acayan				clock-names = "se";
663*07c8ded6SRichard Acayan				clocks = <&gcc GCC_QUPV3_WRAP1_S1_CLK>;
664*07c8ded6SRichard Acayan				pinctrl-names = "default";
665*07c8ded6SRichard Acayan				pinctrl-0 = <&qup_i2c9_default>;
666*07c8ded6SRichard Acayan				interrupts = <GIC_SPI 354 IRQ_TYPE_LEVEL_HIGH>;
667*07c8ded6SRichard Acayan				#address-cells = <1>;
668*07c8ded6SRichard Acayan				#size-cells = <0>;
669*07c8ded6SRichard Acayan				power-domains = <&rpmhpd SDM670_CX>;
670*07c8ded6SRichard Acayan				dmas = <&gpi_dma1 0 1 QCOM_GPI_I2C>,
671*07c8ded6SRichard Acayan				       <&gpi_dma1 1 1 QCOM_GPI_I2C>;
672*07c8ded6SRichard Acayan				dma-names = "tx", "rx";
673*07c8ded6SRichard Acayan				status = "disabled";
674*07c8ded6SRichard Acayan			};
675*07c8ded6SRichard Acayan
676*07c8ded6SRichard Acayan			i2c10: i2c@a88000 {
677*07c8ded6SRichard Acayan				compatible = "qcom,geni-i2c";
678*07c8ded6SRichard Acayan				reg = <0 0x00a88000 0 0x4000>;
679*07c8ded6SRichard Acayan				clock-names = "se";
680*07c8ded6SRichard Acayan				clocks = <&gcc GCC_QUPV3_WRAP1_S2_CLK>;
681*07c8ded6SRichard Acayan				pinctrl-names = "default";
682*07c8ded6SRichard Acayan				pinctrl-0 = <&qup_i2c10_default>;
683*07c8ded6SRichard Acayan				interrupts = <GIC_SPI 355 IRQ_TYPE_LEVEL_HIGH>;
684*07c8ded6SRichard Acayan				#address-cells = <1>;
685*07c8ded6SRichard Acayan				#size-cells = <0>;
686*07c8ded6SRichard Acayan				power-domains = <&rpmhpd SDM670_CX>;
687*07c8ded6SRichard Acayan				dmas = <&gpi_dma1 0 2 QCOM_GPI_I2C>,
688*07c8ded6SRichard Acayan				       <&gpi_dma1 1 2 QCOM_GPI_I2C>;
689*07c8ded6SRichard Acayan				dma-names = "tx", "rx";
690*07c8ded6SRichard Acayan				status = "disabled";
691*07c8ded6SRichard Acayan			};
692*07c8ded6SRichard Acayan
693*07c8ded6SRichard Acayan			i2c11: i2c@a8c000 {
694*07c8ded6SRichard Acayan				compatible = "qcom,geni-i2c";
695*07c8ded6SRichard Acayan				reg = <0 0x00a8c000 0 0x4000>;
696*07c8ded6SRichard Acayan				clock-names = "se";
697*07c8ded6SRichard Acayan				clocks = <&gcc GCC_QUPV3_WRAP1_S3_CLK>;
698*07c8ded6SRichard Acayan				pinctrl-names = "default";
699*07c8ded6SRichard Acayan				pinctrl-0 = <&qup_i2c11_default>;
700*07c8ded6SRichard Acayan				interrupts = <GIC_SPI 356 IRQ_TYPE_LEVEL_HIGH>;
701*07c8ded6SRichard Acayan				#address-cells = <1>;
702*07c8ded6SRichard Acayan				#size-cells = <0>;
703*07c8ded6SRichard Acayan				power-domains = <&rpmhpd SDM670_CX>;
704*07c8ded6SRichard Acayan				dmas = <&gpi_dma1 0 3 QCOM_GPI_I2C>,
705*07c8ded6SRichard Acayan				       <&gpi_dma1 1 3 QCOM_GPI_I2C>;
706*07c8ded6SRichard Acayan				dma-names = "tx", "rx";
707*07c8ded6SRichard Acayan				status = "disabled";
708*07c8ded6SRichard Acayan			};
709*07c8ded6SRichard Acayan
710*07c8ded6SRichard Acayan			i2c12: i2c@a90000 {
711*07c8ded6SRichard Acayan				compatible = "qcom,geni-i2c";
712*07c8ded6SRichard Acayan				reg = <0 0x00a90000 0 0x4000>;
713*07c8ded6SRichard Acayan				clock-names = "se";
714*07c8ded6SRichard Acayan				clocks = <&gcc GCC_QUPV3_WRAP1_S4_CLK>;
715*07c8ded6SRichard Acayan				pinctrl-names = "default";
716*07c8ded6SRichard Acayan				pinctrl-0 = <&qup_i2c12_default>;
717*07c8ded6SRichard Acayan				interrupts = <GIC_SPI 357 IRQ_TYPE_LEVEL_HIGH>;
718*07c8ded6SRichard Acayan				#address-cells = <1>;
719*07c8ded6SRichard Acayan				#size-cells = <0>;
720*07c8ded6SRichard Acayan				power-domains = <&rpmhpd SDM670_CX>;
721*07c8ded6SRichard Acayan				dmas = <&gpi_dma1 0 4 QCOM_GPI_I2C>,
722*07c8ded6SRichard Acayan				       <&gpi_dma1 1 4 QCOM_GPI_I2C>;
723*07c8ded6SRichard Acayan				dma-names = "tx", "rx";
724*07c8ded6SRichard Acayan				status = "disabled";
725*07c8ded6SRichard Acayan			};
726*07c8ded6SRichard Acayan
727*07c8ded6SRichard Acayan			i2c13: i2c@a94000 {
728*07c8ded6SRichard Acayan				compatible = "qcom,geni-i2c";
729*07c8ded6SRichard Acayan				reg = <0 0x00a94000 0 0x4000>;
730*07c8ded6SRichard Acayan				clock-names = "se";
731*07c8ded6SRichard Acayan				clocks = <&gcc GCC_QUPV3_WRAP1_S5_CLK>;
732*07c8ded6SRichard Acayan				pinctrl-names = "default";
733*07c8ded6SRichard Acayan				pinctrl-0 = <&qup_i2c13_default>;
734*07c8ded6SRichard Acayan				interrupts = <GIC_SPI 358 IRQ_TYPE_LEVEL_HIGH>;
735*07c8ded6SRichard Acayan				#address-cells = <1>;
736*07c8ded6SRichard Acayan				#size-cells = <0>;
737*07c8ded6SRichard Acayan				power-domains = <&rpmhpd SDM670_CX>;
738*07c8ded6SRichard Acayan				dmas = <&gpi_dma1 0 5 QCOM_GPI_I2C>,
739*07c8ded6SRichard Acayan				       <&gpi_dma1 1 5 QCOM_GPI_I2C>;
740*07c8ded6SRichard Acayan				dma-names = "tx", "rx";
741*07c8ded6SRichard Acayan				status = "disabled";
742*07c8ded6SRichard Acayan			};
743*07c8ded6SRichard Acayan
744*07c8ded6SRichard Acayan			i2c14: i2c@a98000 {
745*07c8ded6SRichard Acayan				compatible = "qcom,geni-i2c";
746*07c8ded6SRichard Acayan				reg = <0 0x00a98000 0 0x4000>;
747*07c8ded6SRichard Acayan				clock-names = "se";
748*07c8ded6SRichard Acayan				clocks = <&gcc GCC_QUPV3_WRAP1_S6_CLK>;
749*07c8ded6SRichard Acayan				pinctrl-names = "default";
750*07c8ded6SRichard Acayan				pinctrl-0 = <&qup_i2c14_default>;
751*07c8ded6SRichard Acayan				interrupts = <GIC_SPI 359 IRQ_TYPE_LEVEL_HIGH>;
752*07c8ded6SRichard Acayan				#address-cells = <1>;
753*07c8ded6SRichard Acayan				#size-cells = <0>;
754*07c8ded6SRichard Acayan				power-domains = <&rpmhpd SDM670_CX>;
755*07c8ded6SRichard Acayan				dmas = <&gpi_dma1 0 6 QCOM_GPI_I2C>,
756*07c8ded6SRichard Acayan				       <&gpi_dma1 1 6 QCOM_GPI_I2C>;
757*07c8ded6SRichard Acayan				dma-names = "tx", "rx";
758*07c8ded6SRichard Acayan				status = "disabled";
759*07c8ded6SRichard Acayan			};
760*07c8ded6SRichard Acayan
761*07c8ded6SRichard Acayan			i2c15: i2c@a9c000 {
762*07c8ded6SRichard Acayan				compatible = "qcom,geni-i2c";
763*07c8ded6SRichard Acayan				reg = <0 0x00a9c000 0 0x4000>;
764*07c8ded6SRichard Acayan				clock-names = "se";
765*07c8ded6SRichard Acayan				clocks = <&gcc GCC_QUPV3_WRAP1_S7_CLK>;
766*07c8ded6SRichard Acayan				pinctrl-names = "default";
767*07c8ded6SRichard Acayan				pinctrl-0 = <&qup_i2c15_default>;
768*07c8ded6SRichard Acayan				interrupts = <GIC_SPI 360 IRQ_TYPE_LEVEL_HIGH>;
769*07c8ded6SRichard Acayan				#address-cells = <1>;
770*07c8ded6SRichard Acayan				#size-cells = <0>;
771*07c8ded6SRichard Acayan				power-domains = <&rpmhpd SDM670_CX>;
772*07c8ded6SRichard Acayan				dmas = <&gpi_dma1 0 7 QCOM_GPI_I2C>,
773*07c8ded6SRichard Acayan				       <&gpi_dma1 1 7 QCOM_GPI_I2C>;
774*07c8ded6SRichard Acayan				dma-names = "tx", "rx";
775*07c8ded6SRichard Acayan				status = "disabled";
776*07c8ded6SRichard Acayan			};
777*07c8ded6SRichard Acayan		};
778*07c8ded6SRichard Acayan
779*07c8ded6SRichard Acayan		tlmm: pinctrl@3400000 {
780*07c8ded6SRichard Acayan			compatible = "qcom,sdm670-tlmm";
781*07c8ded6SRichard Acayan			reg = <0 0x03400000 0 0xc00000>;
782*07c8ded6SRichard Acayan			interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
783*07c8ded6SRichard Acayan			gpio-controller;
784*07c8ded6SRichard Acayan			#gpio-cells = <2>;
785*07c8ded6SRichard Acayan			interrupt-controller;
786*07c8ded6SRichard Acayan			#interrupt-cells = <2>;
787*07c8ded6SRichard Acayan			gpio-ranges = <&tlmm 0 0 151>;
788*07c8ded6SRichard Acayan
789*07c8ded6SRichard Acayan			qup_i2c0_default: qup-i2c0-default-state {
790*07c8ded6SRichard Acayan				pins = "gpio0", "gpio1";
791*07c8ded6SRichard Acayan				function = "qup0";
792*07c8ded6SRichard Acayan			};
793*07c8ded6SRichard Acayan
794*07c8ded6SRichard Acayan			qup_i2c1_default: qup-i2c1-default-state {
795*07c8ded6SRichard Acayan				pins = "gpio17", "gpio18";
796*07c8ded6SRichard Acayan				function = "qup1";
797*07c8ded6SRichard Acayan			};
798*07c8ded6SRichard Acayan
799*07c8ded6SRichard Acayan			qup_i2c2_default: qup-i2c2-default-state {
800*07c8ded6SRichard Acayan				pins = "gpio27", "gpio28";
801*07c8ded6SRichard Acayan				function = "qup2";
802*07c8ded6SRichard Acayan			};
803*07c8ded6SRichard Acayan
804*07c8ded6SRichard Acayan			qup_i2c3_default: qup-i2c3-default-state {
805*07c8ded6SRichard Acayan				pins = "gpio41", "gpio42";
806*07c8ded6SRichard Acayan				function = "qup3";
807*07c8ded6SRichard Acayan			};
808*07c8ded6SRichard Acayan
809*07c8ded6SRichard Acayan			qup_i2c4_default: qup-i2c4-default-state {
810*07c8ded6SRichard Acayan				pins = "gpio89", "gpio90";
811*07c8ded6SRichard Acayan				function = "qup4";
812*07c8ded6SRichard Acayan			};
813*07c8ded6SRichard Acayan
814*07c8ded6SRichard Acayan			qup_i2c5_default: qup-i2c5-default-state {
815*07c8ded6SRichard Acayan				pins = "gpio85", "gpio86";
816*07c8ded6SRichard Acayan				function = "qup5";
817*07c8ded6SRichard Acayan			};
818*07c8ded6SRichard Acayan
819*07c8ded6SRichard Acayan			qup_i2c6_default: qup-i2c6-default-state {
820*07c8ded6SRichard Acayan				pins = "gpio45", "gpio46";
821*07c8ded6SRichard Acayan				function = "qup6";
822*07c8ded6SRichard Acayan			};
823*07c8ded6SRichard Acayan
824*07c8ded6SRichard Acayan			qup_i2c7_default: qup-i2c7-default-state {
825*07c8ded6SRichard Acayan				pins = "gpio93", "gpio94";
826*07c8ded6SRichard Acayan				function = "qup7";
827*07c8ded6SRichard Acayan			};
828*07c8ded6SRichard Acayan
829*07c8ded6SRichard Acayan			qup_i2c8_default: qup-i2c8-default-state {
830*07c8ded6SRichard Acayan				pins = "gpio65", "gpio66";
831*07c8ded6SRichard Acayan				function = "qup8";
832*07c8ded6SRichard Acayan			};
833*07c8ded6SRichard Acayan
834*07c8ded6SRichard Acayan			qup_i2c9_default: qup-i2c9-default-state {
835*07c8ded6SRichard Acayan				pins = "gpio6", "gpio7";
836*07c8ded6SRichard Acayan				function = "qup9";
837*07c8ded6SRichard Acayan			};
838*07c8ded6SRichard Acayan
839*07c8ded6SRichard Acayan			qup_i2c10_default: qup-i2c10-default-state {
840*07c8ded6SRichard Acayan				pins = "gpio55", "gpio56";
841*07c8ded6SRichard Acayan				function = "qup10";
842*07c8ded6SRichard Acayan			};
843*07c8ded6SRichard Acayan
844*07c8ded6SRichard Acayan			qup_i2c11_default: qup-i2c11-default-state {
845*07c8ded6SRichard Acayan				pins = "gpio31", "gpio32";
846*07c8ded6SRichard Acayan				function = "qup11";
847*07c8ded6SRichard Acayan			};
848*07c8ded6SRichard Acayan
849*07c8ded6SRichard Acayan			qup_i2c12_default: qup-i2c12-default-state {
850*07c8ded6SRichard Acayan				pins = "gpio49", "gpio50";
851*07c8ded6SRichard Acayan				function = "qup12";
852*07c8ded6SRichard Acayan			};
853*07c8ded6SRichard Acayan
854*07c8ded6SRichard Acayan			qup_i2c13_default: qup-i2c13-default-state {
855*07c8ded6SRichard Acayan				pins = "gpio105", "gpio106";
856*07c8ded6SRichard Acayan				function = "qup13";
857*07c8ded6SRichard Acayan			};
858*07c8ded6SRichard Acayan
859*07c8ded6SRichard Acayan			qup_i2c14_default: qup-i2c14-default-state {
860*07c8ded6SRichard Acayan				pins = "gpio33", "gpio34";
861*07c8ded6SRichard Acayan				function = "qup14";
862*07c8ded6SRichard Acayan			};
863*07c8ded6SRichard Acayan
864*07c8ded6SRichard Acayan			qup_i2c15_default: qup-i2c15-default-state {
865*07c8ded6SRichard Acayan				pins = "gpio81", "gpio82";
866*07c8ded6SRichard Acayan				function = "qup15";
867*07c8ded6SRichard Acayan			};
868*07c8ded6SRichard Acayan
869*07c8ded6SRichard Acayan			sdc1_state_on: sdc1-on-state {
870*07c8ded6SRichard Acayan				clk-pins {
871*07c8ded6SRichard Acayan					pins = "sdc1_clk";
872*07c8ded6SRichard Acayan					bias-disable;
873*07c8ded6SRichard Acayan					drive-strength = <16>;
874*07c8ded6SRichard Acayan				};
875*07c8ded6SRichard Acayan
876*07c8ded6SRichard Acayan				cmd-pins {
877*07c8ded6SRichard Acayan					pins = "sdc1_cmd";
878*07c8ded6SRichard Acayan					bias-pull-up;
879*07c8ded6SRichard Acayan					drive-strength = <10>;
880*07c8ded6SRichard Acayan				};
881*07c8ded6SRichard Acayan
882*07c8ded6SRichard Acayan				data-pins {
883*07c8ded6SRichard Acayan					pins = "sdc1_data";
884*07c8ded6SRichard Acayan					bias-pull-up;
885*07c8ded6SRichard Acayan					drive-strength = <10>;
886*07c8ded6SRichard Acayan				};
887*07c8ded6SRichard Acayan
888*07c8ded6SRichard Acayan				rclk-pins {
889*07c8ded6SRichard Acayan					pins = "sdc1_rclk";
890*07c8ded6SRichard Acayan					bias-pull-down;
891*07c8ded6SRichard Acayan				};
892*07c8ded6SRichard Acayan			};
893*07c8ded6SRichard Acayan
894*07c8ded6SRichard Acayan			sdc1_state_off: sdc1-off-state {
895*07c8ded6SRichard Acayan				clk-pins {
896*07c8ded6SRichard Acayan					pins = "sdc1_clk";
897*07c8ded6SRichard Acayan					bias-disable;
898*07c8ded6SRichard Acayan					drive-strength = <2>;
899*07c8ded6SRichard Acayan				};
900*07c8ded6SRichard Acayan
901*07c8ded6SRichard Acayan				cmd-pins {
902*07c8ded6SRichard Acayan					pins = "sdc1_cmd";
903*07c8ded6SRichard Acayan					bias-pull-up;
904*07c8ded6SRichard Acayan					drive-strength = <2>;
905*07c8ded6SRichard Acayan				};
906*07c8ded6SRichard Acayan
907*07c8ded6SRichard Acayan				data-pins {
908*07c8ded6SRichard Acayan					pins = "sdc1_data";
909*07c8ded6SRichard Acayan					bias-pull-up;
910*07c8ded6SRichard Acayan					drive-strength = <2>;
911*07c8ded6SRichard Acayan				};
912*07c8ded6SRichard Acayan
913*07c8ded6SRichard Acayan				rclk-pins {
914*07c8ded6SRichard Acayan					pins = "sdc1_rclk";
915*07c8ded6SRichard Acayan					bias-pull-down;
916*07c8ded6SRichard Acayan				};
917*07c8ded6SRichard Acayan			};
918*07c8ded6SRichard Acayan		};
919*07c8ded6SRichard Acayan
920*07c8ded6SRichard Acayan		usb_1_hsphy: phy@88e2000 {
921*07c8ded6SRichard Acayan			compatible = "qcom,sdm670-qusb2-phy", "qcom,qusb2-v2-phy";
922*07c8ded6SRichard Acayan			reg = <0 0x088e2000 0 0x400>;
923*07c8ded6SRichard Acayan			#phy-cells = <0>;
924*07c8ded6SRichard Acayan
925*07c8ded6SRichard Acayan			clocks = <&gcc GCC_USB_PHY_CFG_AHB2PHY_CLK>,
926*07c8ded6SRichard Acayan				 <&rpmhcc RPMH_CXO_CLK>;
927*07c8ded6SRichard Acayan			clock-names = "cfg_ahb", "ref";
928*07c8ded6SRichard Acayan
929*07c8ded6SRichard Acayan			resets = <&gcc GCC_QUSB2PHY_PRIM_BCR>;
930*07c8ded6SRichard Acayan
931*07c8ded6SRichard Acayan			status = "disabled";
932*07c8ded6SRichard Acayan		};
933*07c8ded6SRichard Acayan
934*07c8ded6SRichard Acayan		usb_1: usb@a6f8800 {
935*07c8ded6SRichard Acayan			compatible = "qcom,sdm670-dwc3", "qcom,dwc3";
936*07c8ded6SRichard Acayan			reg = <0 0x0a6f8800 0 0x400>;
937*07c8ded6SRichard Acayan			#address-cells = <2>;
938*07c8ded6SRichard Acayan			#size-cells = <2>;
939*07c8ded6SRichard Acayan			ranges;
940*07c8ded6SRichard Acayan			dma-ranges;
941*07c8ded6SRichard Acayan
942*07c8ded6SRichard Acayan			clocks = <&gcc GCC_CFG_NOC_USB3_PRIM_AXI_CLK>,
943*07c8ded6SRichard Acayan				 <&gcc GCC_USB30_PRIM_MASTER_CLK>,
944*07c8ded6SRichard Acayan				 <&gcc GCC_AGGRE_USB3_PRIM_AXI_CLK>,
945*07c8ded6SRichard Acayan				 <&gcc GCC_USB30_PRIM_SLEEP_CLK>,
946*07c8ded6SRichard Acayan				 <&gcc GCC_USB30_PRIM_MOCK_UTMI_CLK>;
947*07c8ded6SRichard Acayan			clock-names = "cfg_noc",
948*07c8ded6SRichard Acayan				      "core",
949*07c8ded6SRichard Acayan				      "iface",
950*07c8ded6SRichard Acayan				      "sleep",
951*07c8ded6SRichard Acayan				      "mock_utmi";
952*07c8ded6SRichard Acayan
953*07c8ded6SRichard Acayan			assigned-clocks = <&gcc GCC_USB30_PRIM_MOCK_UTMI_CLK>,
954*07c8ded6SRichard Acayan					  <&gcc GCC_USB30_PRIM_MASTER_CLK>;
955*07c8ded6SRichard Acayan			assigned-clock-rates = <19200000>, <150000000>;
956*07c8ded6SRichard Acayan
957*07c8ded6SRichard Acayan			interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>,
958*07c8ded6SRichard Acayan				     <GIC_SPI 486 IRQ_TYPE_LEVEL_HIGH>,
959*07c8ded6SRichard Acayan				     <GIC_SPI 488 IRQ_TYPE_LEVEL_HIGH>,
960*07c8ded6SRichard Acayan				     <GIC_SPI 489 IRQ_TYPE_LEVEL_HIGH>;
961*07c8ded6SRichard Acayan			interrupt-names = "hs_phy_irq", "ss_phy_irq",
962*07c8ded6SRichard Acayan					  "dm_hs_phy_irq", "dp_hs_phy_irq";
963*07c8ded6SRichard Acayan
964*07c8ded6SRichard Acayan			power-domains = <&gcc USB30_PRIM_GDSC>;
965*07c8ded6SRichard Acayan
966*07c8ded6SRichard Acayan			resets = <&gcc GCC_USB30_PRIM_BCR>;
967*07c8ded6SRichard Acayan
968*07c8ded6SRichard Acayan			status = "disabled";
969*07c8ded6SRichard Acayan
970*07c8ded6SRichard Acayan			usb_1_dwc3: usb@a600000 {
971*07c8ded6SRichard Acayan				compatible = "snps,dwc3";
972*07c8ded6SRichard Acayan				reg = <0 0x0a600000 0 0xcd00>;
973*07c8ded6SRichard Acayan				interrupts = <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>;
974*07c8ded6SRichard Acayan				iommus = <&apps_smmu 0x740 0>;
975*07c8ded6SRichard Acayan				snps,dis_u2_susphy_quirk;
976*07c8ded6SRichard Acayan				snps,dis_enblslpm_quirk;
977*07c8ded6SRichard Acayan				phys = <&usb_1_hsphy>;
978*07c8ded6SRichard Acayan				phy-names = "usb2-phy";
979*07c8ded6SRichard Acayan			};
980*07c8ded6SRichard Acayan		};
981*07c8ded6SRichard Acayan
982*07c8ded6SRichard Acayan		spmi_bus: spmi@c440000 {
983*07c8ded6SRichard Acayan			compatible = "qcom,spmi-pmic-arb";
984*07c8ded6SRichard Acayan			reg = <0 0x0c440000 0 0x1100>,
985*07c8ded6SRichard Acayan			      <0 0x0c600000 0 0x2000000>,
986*07c8ded6SRichard Acayan			      <0 0x0e600000 0 0x100000>,
987*07c8ded6SRichard Acayan			      <0 0x0e700000 0 0xa0000>,
988*07c8ded6SRichard Acayan			      <0 0x0c40a000 0 0x26000>;
989*07c8ded6SRichard Acayan			reg-names = "core", "chnls", "obsrvr", "intr", "cnfg";
990*07c8ded6SRichard Acayan			interrupt-names = "periph_irq";
991*07c8ded6SRichard Acayan			interrupts = <GIC_SPI 481 IRQ_TYPE_LEVEL_HIGH>;
992*07c8ded6SRichard Acayan			qcom,ee = <0>;
993*07c8ded6SRichard Acayan			qcom,channel = <0>;
994*07c8ded6SRichard Acayan			#address-cells = <2>;
995*07c8ded6SRichard Acayan			#size-cells = <0>;
996*07c8ded6SRichard Acayan			interrupt-controller;
997*07c8ded6SRichard Acayan			#interrupt-cells = <4>;
998*07c8ded6SRichard Acayan		};
999*07c8ded6SRichard Acayan
1000*07c8ded6SRichard Acayan		apps_smmu: iommu@15000000 {
1001*07c8ded6SRichard Acayan			compatible = "qcom,sdm670-smmu-500", "qcom,smmu-500", "arm,mmu-500";
1002*07c8ded6SRichard Acayan			reg = <0 0x15000000 0 0x80000>;
1003*07c8ded6SRichard Acayan			#iommu-cells = <2>;
1004*07c8ded6SRichard Acayan			#global-interrupts = <1>;
1005*07c8ded6SRichard Acayan			interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>,
1006*07c8ded6SRichard Acayan				     <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>,
1007*07c8ded6SRichard Acayan				     <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>,
1008*07c8ded6SRichard Acayan				     <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>,
1009*07c8ded6SRichard Acayan				     <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>,
1010*07c8ded6SRichard Acayan				     <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>,
1011*07c8ded6SRichard Acayan				     <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>,
1012*07c8ded6SRichard Acayan				     <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>,
1013*07c8ded6SRichard Acayan				     <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>,
1014*07c8ded6SRichard Acayan				     <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>,
1015*07c8ded6SRichard Acayan				     <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>,
1016*07c8ded6SRichard Acayan				     <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>,
1017*07c8ded6SRichard Acayan				     <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>,
1018*07c8ded6SRichard Acayan				     <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>,
1019*07c8ded6SRichard Acayan				     <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>,
1020*07c8ded6SRichard Acayan				     <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>,
1021*07c8ded6SRichard Acayan				     <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>,
1022*07c8ded6SRichard Acayan				     <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>,
1023*07c8ded6SRichard Acayan				     <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>,
1024*07c8ded6SRichard Acayan				     <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>,
1025*07c8ded6SRichard Acayan				     <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>,
1026*07c8ded6SRichard Acayan				     <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>,
1027*07c8ded6SRichard Acayan				     <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>,
1028*07c8ded6SRichard Acayan				     <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>,
1029*07c8ded6SRichard Acayan				     <GIC_SPI 181 IRQ_TYPE_LEVEL_HIGH>,
1030*07c8ded6SRichard Acayan				     <GIC_SPI 182 IRQ_TYPE_LEVEL_HIGH>,
1031*07c8ded6SRichard Acayan				     <GIC_SPI 183 IRQ_TYPE_LEVEL_HIGH>,
1032*07c8ded6SRichard Acayan				     <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>,
1033*07c8ded6SRichard Acayan				     <GIC_SPI 185 IRQ_TYPE_LEVEL_HIGH>,
1034*07c8ded6SRichard Acayan				     <GIC_SPI 186 IRQ_TYPE_LEVEL_HIGH>,
1035*07c8ded6SRichard Acayan				     <GIC_SPI 187 IRQ_TYPE_LEVEL_HIGH>,
1036*07c8ded6SRichard Acayan				     <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>,
1037*07c8ded6SRichard Acayan				     <GIC_SPI 189 IRQ_TYPE_LEVEL_HIGH>,
1038*07c8ded6SRichard Acayan				     <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>,
1039*07c8ded6SRichard Acayan				     <GIC_SPI 191 IRQ_TYPE_LEVEL_HIGH>,
1040*07c8ded6SRichard Acayan				     <GIC_SPI 192 IRQ_TYPE_LEVEL_HIGH>,
1041*07c8ded6SRichard Acayan				     <GIC_SPI 315 IRQ_TYPE_LEVEL_HIGH>,
1042*07c8ded6SRichard Acayan				     <GIC_SPI 316 IRQ_TYPE_LEVEL_HIGH>,
1043*07c8ded6SRichard Acayan				     <GIC_SPI 317 IRQ_TYPE_LEVEL_HIGH>,
1044*07c8ded6SRichard Acayan				     <GIC_SPI 318 IRQ_TYPE_LEVEL_HIGH>,
1045*07c8ded6SRichard Acayan				     <GIC_SPI 319 IRQ_TYPE_LEVEL_HIGH>,
1046*07c8ded6SRichard Acayan				     <GIC_SPI 320 IRQ_TYPE_LEVEL_HIGH>,
1047*07c8ded6SRichard Acayan				     <GIC_SPI 321 IRQ_TYPE_LEVEL_HIGH>,
1048*07c8ded6SRichard Acayan				     <GIC_SPI 322 IRQ_TYPE_LEVEL_HIGH>,
1049*07c8ded6SRichard Acayan				     <GIC_SPI 323 IRQ_TYPE_LEVEL_HIGH>,
1050*07c8ded6SRichard Acayan				     <GIC_SPI 324 IRQ_TYPE_LEVEL_HIGH>,
1051*07c8ded6SRichard Acayan				     <GIC_SPI 325 IRQ_TYPE_LEVEL_HIGH>,
1052*07c8ded6SRichard Acayan				     <GIC_SPI 326 IRQ_TYPE_LEVEL_HIGH>,
1053*07c8ded6SRichard Acayan				     <GIC_SPI 327 IRQ_TYPE_LEVEL_HIGH>,
1054*07c8ded6SRichard Acayan				     <GIC_SPI 328 IRQ_TYPE_LEVEL_HIGH>,
1055*07c8ded6SRichard Acayan				     <GIC_SPI 329 IRQ_TYPE_LEVEL_HIGH>,
1056*07c8ded6SRichard Acayan				     <GIC_SPI 330 IRQ_TYPE_LEVEL_HIGH>,
1057*07c8ded6SRichard Acayan				     <GIC_SPI 331 IRQ_TYPE_LEVEL_HIGH>,
1058*07c8ded6SRichard Acayan				     <GIC_SPI 332 IRQ_TYPE_LEVEL_HIGH>,
1059*07c8ded6SRichard Acayan				     <GIC_SPI 333 IRQ_TYPE_LEVEL_HIGH>,
1060*07c8ded6SRichard Acayan				     <GIC_SPI 334 IRQ_TYPE_LEVEL_HIGH>,
1061*07c8ded6SRichard Acayan				     <GIC_SPI 335 IRQ_TYPE_LEVEL_HIGH>,
1062*07c8ded6SRichard Acayan				     <GIC_SPI 336 IRQ_TYPE_LEVEL_HIGH>,
1063*07c8ded6SRichard Acayan				     <GIC_SPI 337 IRQ_TYPE_LEVEL_HIGH>,
1064*07c8ded6SRichard Acayan				     <GIC_SPI 338 IRQ_TYPE_LEVEL_HIGH>,
1065*07c8ded6SRichard Acayan				     <GIC_SPI 339 IRQ_TYPE_LEVEL_HIGH>,
1066*07c8ded6SRichard Acayan				     <GIC_SPI 340 IRQ_TYPE_LEVEL_HIGH>,
1067*07c8ded6SRichard Acayan				     <GIC_SPI 341 IRQ_TYPE_LEVEL_HIGH>,
1068*07c8ded6SRichard Acayan				     <GIC_SPI 342 IRQ_TYPE_LEVEL_HIGH>,
1069*07c8ded6SRichard Acayan				     <GIC_SPI 343 IRQ_TYPE_LEVEL_HIGH>;
1070*07c8ded6SRichard Acayan		};
1071*07c8ded6SRichard Acayan
1072*07c8ded6SRichard Acayan		apps_rsc: rsc@179c0000 {
1073*07c8ded6SRichard Acayan			compatible = "qcom,rpmh-rsc";
1074*07c8ded6SRichard Acayan			reg = <0 0x179c0000 0 0x10000>,
1075*07c8ded6SRichard Acayan			      <0 0x179d0000 0 0x10000>,
1076*07c8ded6SRichard Acayan			      <0 0x179e0000 0 0x10000>;
1077*07c8ded6SRichard Acayan			reg-names = "drv-0", "drv-1", "drv-2";
1078*07c8ded6SRichard Acayan			interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>,
1079*07c8ded6SRichard Acayan				     <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>,
1080*07c8ded6SRichard Acayan				     <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
1081*07c8ded6SRichard Acayan			label = "apps_rsc";
1082*07c8ded6SRichard Acayan			qcom,tcs-offset = <0xd00>;
1083*07c8ded6SRichard Acayan			qcom,drv-id = <2>;
1084*07c8ded6SRichard Acayan			qcom,tcs-config = <ACTIVE_TCS  2>,
1085*07c8ded6SRichard Acayan					  <SLEEP_TCS   3>,
1086*07c8ded6SRichard Acayan					  <WAKE_TCS    3>,
1087*07c8ded6SRichard Acayan					  <CONTROL_TCS 1>;
1088*07c8ded6SRichard Acayan
1089*07c8ded6SRichard Acayan			apps_bcm_voter: bcm-voter {
1090*07c8ded6SRichard Acayan				compatible = "qcom,bcm-voter";
1091*07c8ded6SRichard Acayan			};
1092*07c8ded6SRichard Acayan
1093*07c8ded6SRichard Acayan			rpmhcc: clock-controller {
1094*07c8ded6SRichard Acayan				compatible = "qcom,sdm670-rpmh-clk";
1095*07c8ded6SRichard Acayan				#clock-cells = <1>;
1096*07c8ded6SRichard Acayan				clock-names = "xo";
1097*07c8ded6SRichard Acayan				clocks = <&xo_board>;
1098*07c8ded6SRichard Acayan			};
1099*07c8ded6SRichard Acayan
1100*07c8ded6SRichard Acayan			rpmhpd: power-controller {
1101*07c8ded6SRichard Acayan				compatible = "qcom,sdm670-rpmhpd";
1102*07c8ded6SRichard Acayan				#power-domain-cells = <1>;
1103*07c8ded6SRichard Acayan				operating-points-v2 = <&rpmhpd_opp_table>;
1104*07c8ded6SRichard Acayan
1105*07c8ded6SRichard Acayan				rpmhpd_opp_table: opp-table {
1106*07c8ded6SRichard Acayan					compatible = "operating-points-v2";
1107*07c8ded6SRichard Acayan
1108*07c8ded6SRichard Acayan					rpmhpd_opp_ret: opp1 {
1109*07c8ded6SRichard Acayan						opp-level = <RPMH_REGULATOR_LEVEL_RETENTION>;
1110*07c8ded6SRichard Acayan					};
1111*07c8ded6SRichard Acayan
1112*07c8ded6SRichard Acayan					rpmhpd_opp_min_svs: opp2 {
1113*07c8ded6SRichard Acayan						opp-level = <RPMH_REGULATOR_LEVEL_MIN_SVS>;
1114*07c8ded6SRichard Acayan					};
1115*07c8ded6SRichard Acayan
1116*07c8ded6SRichard Acayan					rpmhpd_opp_low_svs: opp3 {
1117*07c8ded6SRichard Acayan						opp-level = <RPMH_REGULATOR_LEVEL_LOW_SVS>;
1118*07c8ded6SRichard Acayan					};
1119*07c8ded6SRichard Acayan
1120*07c8ded6SRichard Acayan					rpmhpd_opp_svs: opp4 {
1121*07c8ded6SRichard Acayan						opp-level = <RPMH_REGULATOR_LEVEL_SVS>;
1122*07c8ded6SRichard Acayan					};
1123*07c8ded6SRichard Acayan
1124*07c8ded6SRichard Acayan					rpmhpd_opp_svs_l1: opp5 {
1125*07c8ded6SRichard Acayan						opp-level = <RPMH_REGULATOR_LEVEL_SVS_L1>;
1126*07c8ded6SRichard Acayan					};
1127*07c8ded6SRichard Acayan
1128*07c8ded6SRichard Acayan					rpmhpd_opp_nom: opp6 {
1129*07c8ded6SRichard Acayan						opp-level = <RPMH_REGULATOR_LEVEL_NOM>;
1130*07c8ded6SRichard Acayan					};
1131*07c8ded6SRichard Acayan
1132*07c8ded6SRichard Acayan					rpmhpd_opp_nom_l1: opp7 {
1133*07c8ded6SRichard Acayan						opp-level = <RPMH_REGULATOR_LEVEL_NOM_L1>;
1134*07c8ded6SRichard Acayan					};
1135*07c8ded6SRichard Acayan
1136*07c8ded6SRichard Acayan					rpmhpd_opp_nom_l2: opp8 {
1137*07c8ded6SRichard Acayan						opp-level = <RPMH_REGULATOR_LEVEL_NOM_L2>;
1138*07c8ded6SRichard Acayan					};
1139*07c8ded6SRichard Acayan
1140*07c8ded6SRichard Acayan					rpmhpd_opp_turbo: opp9 {
1141*07c8ded6SRichard Acayan						opp-level = <RPMH_REGULATOR_LEVEL_TURBO>;
1142*07c8ded6SRichard Acayan					};
1143*07c8ded6SRichard Acayan
1144*07c8ded6SRichard Acayan					rpmhpd_opp_turbo_l1: opp10 {
1145*07c8ded6SRichard Acayan						opp-level = <RPMH_REGULATOR_LEVEL_TURBO_L1>;
1146*07c8ded6SRichard Acayan					};
1147*07c8ded6SRichard Acayan				};
1148*07c8ded6SRichard Acayan			};
1149*07c8ded6SRichard Acayan		};
1150*07c8ded6SRichard Acayan
1151*07c8ded6SRichard Acayan		intc: interrupt-controller@17a00000 {
1152*07c8ded6SRichard Acayan			compatible = "arm,gic-v3";
1153*07c8ded6SRichard Acayan			reg = <0 0x17a00000 0 0x10000>,     /* GICD */
1154*07c8ded6SRichard Acayan			      <0 0x17a60000 0 0x100000>;    /* GICR * 8 */
1155*07c8ded6SRichard Acayan			interrupt-controller;
1156*07c8ded6SRichard Acayan			interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
1157*07c8ded6SRichard Acayan			#interrupt-cells = <3>;
1158*07c8ded6SRichard Acayan		};
1159*07c8ded6SRichard Acayan	};
1160*07c8ded6SRichard Acayan};
1161