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