xref: /linux/arch/arm64/boot/dts/qcom/ipq6018.dtsi (revision ec71f661a572a770d7c861cd52a50cbbb0e1a8d1)
1// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
2/*
3 * IPQ6018 SoC device tree source
4 *
5 * Copyright (c) 2019, The Linux Foundation. All rights reserved.
6 */
7
8#include <dt-bindings/interrupt-controller/arm-gic.h>
9#include <dt-bindings/clock/qcom,gcc-ipq6018.h>
10#include <dt-bindings/reset/qcom,gcc-ipq6018.h>
11#include <dt-bindings/clock/qcom,apss-ipq.h>
12#include <dt-bindings/thermal/thermal.h>
13
14/ {
15	#address-cells = <2>;
16	#size-cells = <2>;
17	interrupt-parent = <&intc>;
18
19	clocks {
20		sleep_clk: sleep-clk {
21			compatible = "fixed-clock";
22			clock-frequency = <32000>;
23			#clock-cells = <0>;
24		};
25
26		xo: xo {
27			compatible = "fixed-clock";
28			clock-frequency = <24000000>;
29			#clock-cells = <0>;
30		};
31	};
32
33	cpus: cpus {
34		#address-cells = <1>;
35		#size-cells = <0>;
36
37		cpu0: cpu@0 {
38			device_type = "cpu";
39			compatible = "arm,cortex-a53";
40			reg = <0x0>;
41			enable-method = "psci";
42			next-level-cache = <&l2_0>;
43			clocks = <&apcs_glb APCS_ALIAS0_CORE_CLK>;
44			clock-names = "cpu";
45			operating-points-v2 = <&cpu_opp_table>;
46			#cooling-cells = <2>;
47		};
48
49		cpu1: cpu@1 {
50			device_type = "cpu";
51			compatible = "arm,cortex-a53";
52			enable-method = "psci";
53			reg = <0x1>;
54			next-level-cache = <&l2_0>;
55			clocks = <&apcs_glb APCS_ALIAS0_CORE_CLK>;
56			clock-names = "cpu";
57			operating-points-v2 = <&cpu_opp_table>;
58			#cooling-cells = <2>;
59		};
60
61		cpu2: cpu@2 {
62			device_type = "cpu";
63			compatible = "arm,cortex-a53";
64			enable-method = "psci";
65			reg = <0x2>;
66			next-level-cache = <&l2_0>;
67			clocks = <&apcs_glb APCS_ALIAS0_CORE_CLK>;
68			clock-names = "cpu";
69			operating-points-v2 = <&cpu_opp_table>;
70			#cooling-cells = <2>;
71		};
72
73		cpu3: cpu@3 {
74			device_type = "cpu";
75			compatible = "arm,cortex-a53";
76			enable-method = "psci";
77			reg = <0x3>;
78			next-level-cache = <&l2_0>;
79			clocks = <&apcs_glb APCS_ALIAS0_CORE_CLK>;
80			clock-names = "cpu";
81			operating-points-v2 = <&cpu_opp_table>;
82			#cooling-cells = <2>;
83		};
84
85		l2_0: l2-cache {
86			compatible = "cache";
87			cache-level = <2>;
88			cache-unified;
89		};
90	};
91
92	firmware {
93		scm {
94			compatible = "qcom,scm-ipq6018", "qcom,scm";
95			qcom,dload-mode = <&tcsr 0x6100>;
96		};
97	};
98
99	cpu_opp_table: opp-table-cpu {
100		compatible = "operating-points-v2-kryo-cpu";
101		nvmem-cells = <&cpu_speed_bin>;
102		opp-shared;
103
104		opp-864000000 {
105			opp-hz = /bits/ 64 <864000000>;
106			opp-microvolt = <725000>;
107			opp-supported-hw = <0xf>;
108			clock-latency-ns = <200000>;
109		};
110
111		opp-1056000000 {
112			opp-hz = /bits/ 64 <1056000000>;
113			opp-microvolt = <787500>;
114			opp-supported-hw = <0xf>;
115			clock-latency-ns = <200000>;
116		};
117
118		opp-1200000000 {
119			opp-hz = /bits/ 64 <1200000000>;
120			opp-microvolt = <850000>;
121			opp-supported-hw = <0x4>;
122			clock-latency-ns = <200000>;
123		};
124
125		opp-1320000000 {
126			opp-hz = /bits/ 64 <1320000000>;
127			opp-microvolt = <862500>;
128			opp-supported-hw = <0x3>;
129			clock-latency-ns = <200000>;
130		};
131
132		opp-1440000000 {
133			opp-hz = /bits/ 64 <1440000000>;
134			opp-microvolt = <925000>;
135			opp-supported-hw = <0x3>;
136			clock-latency-ns = <200000>;
137		};
138
139		opp-1512000000 {
140			opp-hz = /bits/ 64 <1512000000>;
141			opp-microvolt = <937500>;
142			opp-supported-hw = <0x2>;
143			clock-latency-ns = <200000>;
144		};
145
146		opp-1608000000 {
147			opp-hz = /bits/ 64 <1608000000>;
148			opp-microvolt = <987500>;
149			opp-supported-hw = <0x1>;
150			clock-latency-ns = <200000>;
151		};
152
153		opp-1800000000 {
154			opp-hz = /bits/ 64 <1800000000>;
155			opp-microvolt = <1062500>;
156			opp-supported-hw = <0x1>;
157			clock-latency-ns = <200000>;
158		};
159	};
160
161	pmuv8: pmu {
162		compatible = "arm,cortex-a53-pmu";
163		interrupts = <GIC_PPI 7 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
164	};
165
166	psci: psci {
167		compatible = "arm,psci-1.0";
168		method = "smc";
169	};
170
171	rpm: remoteproc {
172		compatible = "qcom,ipq6018-rpm-proc", "qcom,rpm-proc";
173
174		glink-edge {
175			compatible = "qcom,glink-rpm";
176			interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>;
177			qcom,rpm-msg-ram = <&rpm_msg_ram>;
178			mboxes = <&apcs_glb 0>;
179
180			rpm_requests: rpm-requests {
181				compatible = "qcom,rpm-ipq6018", "qcom,glink-smd-rpm";
182				qcom,glink-channels = "rpm_requests";
183			};
184		};
185	};
186
187	reserved-memory {
188		#address-cells = <2>;
189		#size-cells = <2>;
190		ranges;
191
192		rpm_msg_ram: memory@60000 {
193			reg = <0x0 0x00060000 0x0 0x6000>;
194			no-map;
195		};
196
197		bootloader@4a100000 {
198			reg = <0x0 0x4a100000 0x0 0x400000>;
199			no-map;
200		};
201
202		sbl@4a500000 {
203			reg = <0x0 0x4a500000 0x0 0x100000>;
204			no-map;
205		};
206
207		tz: memory@4a600000 {
208			reg = <0x0 0x4a600000 0x0 0x400000>;
209			no-map;
210		};
211
212		smem_region: memory@4aa00000 {
213			compatible = "qcom,smem";
214			reg = <0x0 0x4aa00000 0x0 0x100000>;
215			no-map;
216
217			hwlocks = <&tcsr_mutex 3>;
218		};
219
220		q6_region: memory@4ab00000 {
221			reg = <0x0 0x4ab00000 0x0 0x5500000>;
222			no-map;
223		};
224	};
225
226	soc: soc@0 {
227		#address-cells = <2>;
228		#size-cells = <2>;
229		ranges = <0 0 0 0 0x0 0xffffffff>;
230		dma-ranges;
231		compatible = "simple-bus";
232
233		qusb_phy_1: qusb@59000 {
234			compatible = "qcom,ipq6018-qusb2-phy";
235			reg = <0x0 0x00059000 0x0 0x180>;
236			#phy-cells = <0>;
237
238			clocks = <&gcc GCC_USB1_PHY_CFG_AHB_CLK>,
239				 <&xo>;
240			clock-names = "cfg_ahb", "ref";
241
242			resets = <&gcc GCC_QUSB2_1_PHY_BCR>;
243			status = "disabled";
244		};
245
246		ssphy_0: ssphy@78000 {
247			compatible = "qcom,ipq6018-qmp-usb3-phy";
248			reg = <0x0 0x00078000 0x0 0x1000>;
249
250			clocks = <&gcc GCC_USB0_AUX_CLK>,
251				 <&xo>,
252				 <&gcc GCC_USB0_PHY_CFG_AHB_CLK>,
253				 <&gcc GCC_USB0_PIPE_CLK>;
254			clock-names = "aux",
255				      "ref",
256				      "cfg_ahb",
257				      "pipe";
258			clock-output-names = "gcc_usb0_pipe_clk_src";
259			#clock-cells = <0>;
260			#phy-cells = <0>;
261
262			resets = <&gcc GCC_USB0_PHY_BCR>,
263				 <&gcc GCC_USB3PHY_0_PHY_BCR>;
264			reset-names = "phy",
265				      "phy_phy";
266
267			status = "disabled";
268		};
269
270		qusb_phy_0: qusb@79000 {
271			compatible = "qcom,ipq6018-qusb2-phy";
272			reg = <0x0 0x00079000 0x0 0x180>;
273			#phy-cells = <0>;
274
275			clocks = <&gcc GCC_USB0_PHY_CFG_AHB_CLK>,
276				<&xo>;
277			clock-names = "cfg_ahb", "ref";
278
279			resets = <&gcc GCC_QUSB2_0_PHY_BCR>;
280			status = "disabled";
281		};
282
283		pcie_phy: phy@84000 {
284			compatible = "qcom,ipq6018-qmp-pcie-phy";
285			reg = <0x0 0x00084000 0x0 0x1000>;
286			status = "disabled";
287
288			clocks = <&gcc GCC_PCIE0_AUX_CLK>,
289				<&gcc GCC_PCIE0_AHB_CLK>,
290				<&gcc GCC_PCIE0_PIPE_CLK>;
291			clock-names = "aux",
292				      "cfg_ahb",
293				      "pipe";
294
295			clock-output-names = "gcc_pcie0_pipe_clk_src";
296			#clock-cells = <0>;
297
298			#phy-cells = <0>;
299
300			resets = <&gcc GCC_PCIE0_PHY_BCR>,
301				<&gcc GCC_PCIE0PHY_PHY_BCR>;
302			reset-names = "phy",
303				      "common";
304		};
305
306		mdio: mdio@90000 {
307			#address-cells = <1>;
308			#size-cells = <0>;
309			compatible = "qcom,ipq6018-mdio", "qcom,ipq4019-mdio";
310			reg = <0x0 0x00090000 0x0 0x64>;
311			clocks = <&gcc GCC_MDIO_AHB_CLK>;
312			clock-names = "gcc_mdio_ahb_clk";
313			status = "disabled";
314		};
315
316		qfprom: efuse@a4000 {
317			compatible = "qcom,ipq6018-qfprom", "qcom,qfprom";
318			reg = <0x0 0x000a4000 0x0 0x2000>;
319			#address-cells = <1>;
320			#size-cells = <1>;
321
322			cpu_speed_bin: cpu-speed-bin@135 {
323				reg = <0x135 0x1>;
324				bits = <7 1>;
325			};
326		};
327
328		prng: qrng@e3000 {
329			compatible = "qcom,prng-ee";
330			reg = <0x0 0x000e3000 0x0 0x1000>;
331			clocks = <&gcc GCC_PRNG_AHB_CLK>;
332			clock-names = "core";
333		};
334
335		tsens: thermal-sensor@4a9000 {
336			compatible = "qcom,ipq6018-tsens", "qcom,ipq8074-tsens";
337			reg = <0x0 0x004a9000 0x0 0x1000>,
338			      <0x0 0x004a8000 0x0 0x1000>;
339			interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>;
340			interrupt-names = "combined";
341			#qcom,sensors = <16>;
342			#thermal-sensor-cells = <1>;
343		};
344
345		cryptobam: dma-controller@704000 {
346			compatible = "qcom,bam-v1.7.0";
347			reg = <0x0 0x00704000 0x0 0x20000>;
348			interrupts = <GIC_SPI 207 IRQ_TYPE_LEVEL_HIGH>;
349			clocks = <&gcc GCC_CRYPTO_AHB_CLK>;
350			clock-names = "bam_clk";
351			#dma-cells = <1>;
352			qcom,ee = <1>;
353			qcom,controlled-remotely;
354		};
355
356		crypto: crypto@73a000 {
357			compatible = "qcom,crypto-v5.1";
358			reg = <0x0 0x0073a000 0x0 0x6000>;
359			clocks = <&gcc GCC_CRYPTO_AHB_CLK>,
360				 <&gcc GCC_CRYPTO_AXI_CLK>,
361				 <&gcc GCC_CRYPTO_CLK>;
362			clock-names = "iface", "bus", "core";
363			dmas = <&cryptobam 2>, <&cryptobam 3>;
364			dma-names = "rx", "tx";
365		};
366
367		tlmm: pinctrl@1000000 {
368			compatible = "qcom,ipq6018-pinctrl";
369			reg = <0x0 0x01000000 0x0 0x300000>;
370			interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
371			gpio-controller;
372			#gpio-cells = <2>;
373			gpio-ranges = <&tlmm 0 0 80>;
374			interrupt-controller;
375			#interrupt-cells = <2>;
376
377			serial_3_pins: serial3-state {
378				pins = "gpio44", "gpio45";
379				function = "blsp2_uart";
380				drive-strength = <8>;
381				bias-pull-down;
382			};
383
384			qpic_pins: qpic-state {
385				pins = "gpio1", "gpio3", "gpio4",
386					"gpio5", "gpio6", "gpio7",
387					"gpio8", "gpio10", "gpio11",
388					"gpio12", "gpio13", "gpio14",
389					"gpio15", "gpio17";
390				function = "qpic_pad";
391				drive-strength = <8>;
392				bias-disable;
393			};
394		};
395
396		gcc: clock-controller@1800000 {
397			compatible = "qcom,gcc-ipq6018";
398			reg = <0x0 0x01800000 0x0 0x80000>;
399			clocks = <&xo>, <&sleep_clk>;
400			clock-names = "xo", "sleep_clk";
401			#clock-cells = <1>;
402			#reset-cells = <1>;
403		};
404
405		tcsr_mutex: hwlock@1905000 {
406			compatible = "qcom,ipq6018-tcsr-mutex", "qcom,tcsr-mutex";
407			reg = <0x0 0x01905000 0x0 0x20000>;
408			#hwlock-cells = <1>;
409		};
410
411		tcsr: syscon@1937000 {
412			compatible = "qcom,tcsr-ipq6018", "syscon";
413			reg = <0x0 0x01937000 0x0 0x21000>;
414		};
415
416		usb2: usb@70f8800 {
417			compatible = "qcom,ipq6018-dwc3", "qcom,dwc3";
418			reg = <0x0 0x070f8800 0x0 0x400>;
419			#address-cells = <2>;
420			#size-cells = <2>;
421			ranges;
422			clocks = <&gcc GCC_USB1_MASTER_CLK>,
423				 <&gcc GCC_USB1_SLEEP_CLK>,
424				 <&gcc GCC_USB1_MOCK_UTMI_CLK>;
425			clock-names = "core",
426				      "sleep",
427				      "mock_utmi";
428
429			assigned-clocks = <&gcc GCC_USB1_MASTER_CLK>,
430					  <&gcc GCC_USB1_MOCK_UTMI_CLK>;
431			assigned-clock-rates = <133330000>,
432					       <24000000>;
433
434			interrupts = <GIC_SPI 128 IRQ_TYPE_LEVEL_HIGH>,
435				     <GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>;
436			interrupt-names = "pwr_event",
437					  "qusb2_phy";
438
439			resets = <&gcc GCC_USB1_BCR>;
440			status = "disabled";
441
442			dwc_1: usb@7000000 {
443				compatible = "snps,dwc3";
444				reg = <0x0 0x07000000 0x0 0xcd00>;
445				interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>;
446				phys = <&qusb_phy_1>;
447				phy-names = "usb2-phy";
448				tx-fifo-resize;
449				snps,is-utmi-l1-suspend;
450				snps,hird-threshold = /bits/ 8 <0x0>;
451				snps,dis_u2_susphy_quirk;
452				snps,dis_u3_susphy_quirk;
453				dr_mode = "host";
454			};
455		};
456
457		sdhc: mmc@7804000 {
458			compatible = "qcom,ipq6018-sdhci", "qcom,sdhci-msm-v5";
459			reg = <0x0 0x07804000 0x0 0x1000>,
460			      <0x0 0x07805000 0x0 0x1000>;
461			reg-names = "hc", "cqhci";
462
463			interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>,
464				     <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>;
465			interrupt-names = "hc_irq", "pwr_irq";
466
467			clocks = <&gcc GCC_SDCC1_AHB_CLK>,
468				 <&gcc GCC_SDCC1_APPS_CLK>,
469				 <&xo>;
470			clock-names = "iface", "core", "xo";
471			resets = <&gcc GCC_SDCC1_BCR>;
472			max-frequency = <192000000>;
473			status = "disabled";
474		};
475
476		blsp_dma: dma-controller@7884000 {
477			compatible = "qcom,bam-v1.7.0";
478			reg = <0x0 0x07884000 0x0 0x2b000>;
479			interrupts = <GIC_SPI 238 IRQ_TYPE_LEVEL_HIGH>;
480			clocks = <&gcc GCC_BLSP1_AHB_CLK>;
481			clock-names = "bam_clk";
482			#dma-cells = <1>;
483			qcom,ee = <0>;
484		};
485
486		blsp1_uart1: serial@78af000 {
487			compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
488			reg = <0x0 0x78af000 0x0 0x200>;
489			interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
490			clocks = <&gcc GCC_BLSP1_UART1_APPS_CLK>,
491				 <&gcc GCC_BLSP1_AHB_CLK>;
492			clock-names = "core", "iface";
493			status = "disabled";
494		};
495
496		blsp1_uart2: serial@78b0000 {
497			compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
498			reg = <0x0 0x78b0000 0x0 0x200>;
499			interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
500			clocks = <&gcc GCC_BLSP1_UART2_APPS_CLK>,
501				 <&gcc GCC_BLSP1_AHB_CLK>;
502			clock-names = "core", "iface";
503			status = "disabled";
504		};
505
506		blsp1_uart3: serial@78b1000 {
507			compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
508			reg = <0x0 0x078b1000 0x0 0x200>;
509			interrupts = <GIC_SPI 306 IRQ_TYPE_LEVEL_HIGH>;
510			clocks = <&gcc GCC_BLSP1_UART3_APPS_CLK>,
511				 <&gcc GCC_BLSP1_AHB_CLK>;
512			clock-names = "core", "iface";
513			status = "disabled";
514		};
515
516		blsp1_uart4: serial@78b2000 {
517			compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
518			reg = <0x0 0x078b2000 0x0 0x200>;
519			interrupts = <GIC_SPI 307 IRQ_TYPE_LEVEL_HIGH>;
520			clocks = <&gcc GCC_BLSP1_UART4_APPS_CLK>,
521				 <&gcc GCC_BLSP1_AHB_CLK>;
522			clock-names = "core", "iface";
523			status = "disabled";
524		};
525
526		blsp1_uart5: serial@78b3000 {
527			compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
528			reg = <0x0 0x78b3000 0x0 0x200>;
529			interrupts = <GIC_SPI 308 IRQ_TYPE_LEVEL_HIGH>;
530			clocks = <&gcc GCC_BLSP1_UART5_APPS_CLK>,
531				 <&gcc GCC_BLSP1_AHB_CLK>;
532			clock-names = "core", "iface";
533			status = "disabled";
534		};
535
536		blsp1_uart6: serial@78b4000 {
537			compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
538			reg = <0x0 0x078b4000 0x0 0x200>;
539			interrupts = <GIC_SPI 309 IRQ_TYPE_LEVEL_HIGH>;
540			clocks = <&gcc GCC_BLSP1_UART6_APPS_CLK>,
541				 <&gcc GCC_BLSP1_AHB_CLK>;
542			clock-names = "core", "iface";
543			status = "disabled";
544		};
545
546		blsp1_spi1: spi@78b5000 {
547			compatible = "qcom,spi-qup-v2.2.1";
548			#address-cells = <1>;
549			#size-cells = <0>;
550			reg = <0x0 0x078b5000 0x0 0x600>;
551			interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
552			clocks = <&gcc GCC_BLSP1_QUP1_SPI_APPS_CLK>,
553				 <&gcc GCC_BLSP1_AHB_CLK>;
554			clock-names = "core", "iface";
555			dmas = <&blsp_dma 12>, <&blsp_dma 13>;
556			dma-names = "tx", "rx";
557			status = "disabled";
558		};
559
560		blsp1_spi2: spi@78b6000 {
561			compatible = "qcom,spi-qup-v2.2.1";
562			#address-cells = <1>;
563			#size-cells = <0>;
564			reg = <0x0 0x078b6000 0x0 0x600>;
565			interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
566			clocks = <&gcc GCC_BLSP1_QUP2_SPI_APPS_CLK>,
567				 <&gcc GCC_BLSP1_AHB_CLK>;
568			clock-names = "core", "iface";
569			dmas = <&blsp_dma 14>, <&blsp_dma 15>;
570			dma-names = "tx", "rx";
571			status = "disabled";
572		};
573
574		blsp1_spi5: spi@78b9000 {
575			compatible = "qcom,spi-qup-v2.2.1";
576			#address-cells = <1>;
577			#size-cells = <0>;
578			reg = <0x0 0x078b9000 0x0 0x600>;
579			interrupts = <GIC_SPI 299 IRQ_TYPE_LEVEL_HIGH>;
580			clocks = <&gcc GCC_BLSP1_QUP5_SPI_APPS_CLK>,
581				 <&gcc GCC_BLSP1_AHB_CLK>;
582			clock-names = "core", "iface";
583			dmas = <&blsp_dma 20>, <&blsp_dma 21>;
584			dma-names = "tx", "rx";
585			status = "disabled";
586		};
587
588		blsp1_i2c2: i2c@78b6000 {
589			compatible = "qcom,i2c-qup-v2.2.1";
590			#address-cells = <1>;
591			#size-cells = <0>;
592			reg = <0x0 0x078b6000 0x0 0x600>;
593			interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
594			clocks = <&gcc GCC_BLSP1_QUP2_I2C_APPS_CLK>,
595				 <&gcc GCC_BLSP1_AHB_CLK>;
596			clock-names = "core", "iface";
597			clock-frequency = <400000>;
598			dmas = <&blsp_dma 14>, <&blsp_dma 15>;
599			dma-names = "tx", "rx";
600			status = "disabled";
601		};
602
603		blsp1_i2c3: i2c@78b7000 {
604			compatible = "qcom,i2c-qup-v2.2.1";
605			#address-cells = <1>;
606			#size-cells = <0>;
607			reg = <0x0 0x078b7000 0x0 0x600>;
608			interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
609			clocks = <&gcc GCC_BLSP1_QUP3_I2C_APPS_CLK>,
610				 <&gcc GCC_BLSP1_AHB_CLK>;
611			clock-names = "core", "iface";
612			clock-frequency = <400000>;
613			dmas = <&blsp_dma 16>, <&blsp_dma 17>;
614			dma-names = "tx", "rx";
615			status = "disabled";
616		};
617
618		blsp1_i2c6: i2c@78ba000 {
619			compatible = "qcom,i2c-qup-v2.2.1";
620			#address-cells = <1>;
621			#size-cells = <0>;
622			reg = <0x0 0x078ba000 0x0 0x600>;
623			interrupts = <GIC_SPI 300 IRQ_TYPE_LEVEL_HIGH>;
624			clocks = <&gcc GCC_BLSP1_QUP6_I2C_APPS_CLK>,
625			       <&gcc GCC_BLSP1_AHB_CLK>;
626			clock-names = "core", "iface";
627			clock-frequency = <400000>;
628			dmas = <&blsp_dma 22>, <&blsp_dma 23>;
629			dma-names = "tx", "rx";
630			status = "disabled";
631		};
632
633		qpic_bam: dma-controller@7984000 {
634			compatible = "qcom,bam-v1.7.0";
635			reg = <0x0 0x07984000 0x0 0x1a000>;
636			interrupts = <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>;
637			clocks = <&gcc GCC_QPIC_AHB_CLK>;
638			clock-names = "bam_clk";
639			#dma-cells = <1>;
640			qcom,ee = <0>;
641			status = "disabled";
642		};
643
644		qpic_nand: nand-controller@79b0000 {
645			compatible = "qcom,ipq6018-nand";
646			reg = <0x0 0x079b0000 0x0 0x10000>;
647			#address-cells = <1>;
648			#size-cells = <0>;
649			clocks = <&gcc GCC_QPIC_CLK>,
650				 <&gcc GCC_QPIC_AHB_CLK>;
651			clock-names = "core", "aon";
652
653			dmas = <&qpic_bam 0>,
654			       <&qpic_bam 1>,
655			       <&qpic_bam 2>;
656			dma-names = "tx", "rx", "cmd";
657			pinctrl-0 = <&qpic_pins>;
658			pinctrl-names = "default";
659			status = "disabled";
660		};
661
662		usb3: usb@8af8800 {
663			compatible = "qcom,ipq6018-dwc3", "qcom,dwc3";
664			reg = <0x0 0x08af8800 0x0 0x400>;
665			#address-cells = <2>;
666			#size-cells = <2>;
667			ranges;
668
669			clocks = <&gcc GCC_SYS_NOC_USB0_AXI_CLK>,
670				<&gcc GCC_USB0_MASTER_CLK>,
671				<&gcc GCC_USB0_SLEEP_CLK>,
672				<&gcc GCC_USB0_MOCK_UTMI_CLK>;
673			clock-names = "cfg_noc",
674				"core",
675				"sleep",
676				"mock_utmi";
677
678			assigned-clocks = <&gcc GCC_SYS_NOC_USB0_AXI_CLK>,
679					  <&gcc GCC_USB0_MASTER_CLK>,
680					  <&gcc GCC_USB0_MOCK_UTMI_CLK>;
681			assigned-clock-rates = <133330000>,
682					       <133330000>,
683					       <24000000>;
684
685			interrupts = <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>,
686				     <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>,
687				     <GIC_SPI 220 IRQ_TYPE_LEVEL_HIGH>;
688			interrupt-names = "pwr_event",
689					  "qusb2_phy",
690					  "ss_phy_irq";
691
692			resets = <&gcc GCC_USB0_BCR>;
693			status = "disabled";
694
695			dwc_0: usb@8a00000 {
696				compatible = "snps,dwc3";
697				reg = <0x0 0x08a00000 0x0 0xcd00>;
698				interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
699				phys = <&qusb_phy_0>, <&ssphy_0>;
700				phy-names = "usb2-phy", "usb3-phy";
701				clocks = <&xo>;
702				clock-names = "ref";
703				tx-fifo-resize;
704				snps,parkmode-disable-ss-quirk;
705				snps,is-utmi-l1-suspend;
706				snps,hird-threshold = /bits/ 8 <0x0>;
707				snps,dis_u2_susphy_quirk;
708				snps,dis_u3_susphy_quirk;
709				dr_mode = "host";
710			};
711		};
712
713		intc: interrupt-controller@b000000 {
714			compatible = "qcom,msm-qgic2";
715			#address-cells = <2>;
716			#size-cells = <2>;
717			interrupt-controller;
718			#interrupt-cells = <3>;
719			reg = <0x0 0x0b000000 0x0 0x1000>,  /*GICD*/
720			      <0x0 0x0b002000 0x0 0x1000>,  /*GICC*/
721			      <0x0 0x0b001000 0x0 0x1000>,  /*GICH*/
722			      <0x0 0x0b004000 0x0 0x1000>;  /*GICV*/
723			interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
724			ranges = <0 0 0 0xb00a000 0 0xffd>;
725
726			v2m@0 {
727				compatible = "arm,gic-v2m-frame";
728				msi-controller;
729				reg = <0x0 0x0 0x0 0xffd>;
730			};
731		};
732
733		watchdog@b017000 {
734			compatible = "qcom,kpss-wdt";
735			interrupts = <GIC_SPI 3 IRQ_TYPE_EDGE_RISING>;
736			reg = <0x0 0x0b017000 0x0 0x40>;
737			clocks = <&sleep_clk>;
738			timeout-sec = <10>;
739		};
740
741		apcs_glb: mailbox@b111000 {
742			compatible = "qcom,ipq6018-apcs-apps-global";
743			reg = <0x0 0x0b111000 0x0 0x1000>;
744			#clock-cells = <1>;
745			clocks = <&a53pll>, <&xo>, <&gcc GPLL0>;
746			clock-names = "pll", "xo", "gpll0";
747			#mbox-cells = <1>;
748		};
749
750		a53pll: clock@b116000 {
751			compatible = "qcom,ipq6018-a53pll";
752			reg = <0x0 0x0b116000 0x0 0x40>;
753			#clock-cells = <0>;
754			clocks = <&xo>;
755			clock-names = "xo";
756		};
757
758		timer@b120000 {
759			#address-cells = <1>;
760			#size-cells = <1>;
761			ranges = <0 0 0 0x10000000>;
762			compatible = "arm,armv7-timer-mem";
763			reg = <0x0 0x0b120000 0x0 0x1000>;
764
765			frame@b120000 {
766				frame-number = <0>;
767				interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
768					     <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
769				reg = <0x0b121000 0x1000>,
770				      <0x0b122000 0x1000>;
771			};
772
773			frame@b123000 {
774				frame-number = <1>;
775				interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
776				reg = <0x0b123000 0x1000>;
777				status = "disabled";
778			};
779
780			frame@b124000 {
781				frame-number = <2>;
782				interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
783				reg = <0x0b124000 0x1000>;
784				status = "disabled";
785			};
786
787			frame@b125000 {
788				frame-number = <3>;
789				interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
790				reg = <0x0b125000 0x1000>;
791				status = "disabled";
792			};
793
794			frame@b126000 {
795				frame-number = <4>;
796				interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
797				reg = <0x0b126000 0x1000>;
798				status = "disabled";
799			};
800
801			frame@b127000 {
802				frame-number = <5>;
803				interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
804				reg = <0x0b127000 0x1000>;
805				status = "disabled";
806			};
807
808			frame@b128000 {
809				frame-number = <6>;
810				interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
811				reg = <0x0b128000 0x1000>;
812				status = "disabled";
813			};
814		};
815
816		q6v5_wcss: remoteproc@cd00000 {
817			compatible = "qcom,ipq6018-wcss-pil";
818			reg = <0x0 0x0cd00000 0x0 0x4040>,
819			      <0x0 0x004ab000 0x0 0x20>;
820			reg-names = "qdsp6",
821				    "rmb";
822			interrupts-extended = <&intc GIC_SPI 325 IRQ_TYPE_EDGE_RISING>,
823					      <&wcss_smp2p_in 0 0>,
824					      <&wcss_smp2p_in 1 0>,
825					      <&wcss_smp2p_in 2 0>,
826					      <&wcss_smp2p_in 3 0>;
827			interrupt-names = "wdog",
828					  "fatal",
829					  "ready",
830					  "handover",
831					  "stop-ack";
832
833			resets = <&gcc GCC_WCSSAON_RESET>,
834				 <&gcc GCC_WCSS_BCR>,
835				 <&gcc GCC_WCSS_Q6_BCR>;
836
837			reset-names = "wcss_aon_reset",
838				      "wcss_reset",
839				      "wcss_q6_reset";
840
841			clocks = <&gcc GCC_PRNG_AHB_CLK>;
842			clock-names = "prng";
843
844			qcom,halt-regs = <&tcsr 0x18000 0x1b000 0xe000>;
845
846			qcom,smem-states = <&wcss_smp2p_out 0>,
847					   <&wcss_smp2p_out 1>;
848			qcom,smem-state-names = "shutdown",
849						"stop";
850
851			memory-region = <&q6_region>;
852
853			glink-edge {
854				interrupts = <GIC_SPI 321 IRQ_TYPE_EDGE_RISING>;
855				label = "rtr";
856				qcom,remote-pid = <1>;
857				mboxes = <&apcs_glb 8>;
858
859				qrtr_requests {
860					qcom,glink-channels = "IPCRTR";
861				};
862			};
863		};
864
865		pcie0: pcie@20000000 {
866			compatible = "qcom,pcie-ipq6018";
867			reg = <0x0 0x20000000 0x0 0xf1d>,
868			      <0x0 0x20000f20 0x0 0xa8>,
869			      <0x0 0x20001000 0x0 0x1000>,
870			      <0x0 0x80000 0x0 0x4000>,
871			      <0x0 0x20100000 0x0 0x1000>;
872			reg-names = "dbi", "elbi", "atu", "parf", "config";
873
874			device_type = "pci";
875			linux,pci-domain = <0>;
876			bus-range = <0x00 0xff>;
877			num-lanes = <1>;
878			max-link-speed = <3>;
879			#address-cells = <3>;
880			#size-cells = <2>;
881
882			phys = <&pcie_phy>;
883			phy-names = "pciephy";
884
885			ranges = <0x81000000 0x0 0x00000000 0x0 0x20200000 0x0 0x10000>,
886				 <0x82000000 0x0 0x20220000 0x0 0x20220000 0x0 0xfde0000>;
887
888			interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
889			interrupt-names = "msi";
890
891			#interrupt-cells = <1>;
892			interrupt-map-mask = <0 0 0 0x7>;
893			interrupt-map = <0 0 0 1 &intc 0 0 0 75 IRQ_TYPE_LEVEL_HIGH>, /* int_a */
894					<0 0 0 2 &intc 0 0 0 78 IRQ_TYPE_LEVEL_HIGH>, /* int_b */
895					<0 0 0 3 &intc 0 0 0 79 IRQ_TYPE_LEVEL_HIGH>, /* int_c */
896					<0 0 0 4 &intc 0 0 0 83 IRQ_TYPE_LEVEL_HIGH>; /* int_d */
897
898			clocks = <&gcc GCC_SYS_NOC_PCIE0_AXI_CLK>,
899				 <&gcc GCC_PCIE0_AXI_M_CLK>,
900				 <&gcc GCC_PCIE0_AXI_S_CLK>,
901				 <&gcc GCC_PCIE0_AXI_S_BRIDGE_CLK>,
902				 <&gcc PCIE0_RCHNG_CLK>;
903			clock-names = "iface",
904				      "axi_m",
905				      "axi_s",
906				      "axi_bridge",
907				      "rchng";
908
909			resets = <&gcc GCC_PCIE0_PIPE_ARES>,
910				 <&gcc GCC_PCIE0_SLEEP_ARES>,
911				 <&gcc GCC_PCIE0_CORE_STICKY_ARES>,
912				 <&gcc GCC_PCIE0_AXI_MASTER_ARES>,
913				 <&gcc GCC_PCIE0_AXI_SLAVE_ARES>,
914				 <&gcc GCC_PCIE0_AHB_ARES>,
915				 <&gcc GCC_PCIE0_AXI_MASTER_STICKY_ARES>,
916				 <&gcc GCC_PCIE0_AXI_SLAVE_STICKY_ARES>;
917			reset-names = "pipe",
918				      "sleep",
919				      "sticky",
920				      "axi_m",
921				      "axi_s",
922				      "ahb",
923				      "axi_m_sticky",
924				      "axi_s_sticky";
925
926			status = "disabled";
927
928			pcie@0 {
929				device_type = "pci";
930				reg = <0x0 0x0 0x0 0x0 0x0>;
931				bus-range = <0x01 0xff>;
932
933				#address-cells = <3>;
934				#size-cells = <2>;
935				ranges;
936			};
937		};
938	};
939
940	thermal-zones {
941		nss-top-thermal {
942			polling-delay-passive = <250>;
943			thermal-sensors = <&tsens 4>;
944
945			trips {
946				nss-top-critical {
947					temperature = <125000>;
948					hysteresis = <1000>;
949					type = "critical";
950				};
951			};
952		};
953
954		nss-thermal {
955			polling-delay-passive = <250>;
956			thermal-sensors = <&tsens 5>;
957
958			trips {
959				nss-critical {
960					temperature = <125000>;
961					hysteresis = <1000>;
962					type = "critical";
963				};
964			};
965		};
966
967		wcss-phya0-thermal {
968			polling-delay-passive = <250>;
969			thermal-sensors = <&tsens 7>;
970
971			trips {
972				wcss-phya0-critical {
973					temperature = <125000>;
974					hysteresis = <1000>;
975					type = "critical";
976				};
977			};
978		};
979
980		wcss-phya1-thermal {
981			polling-delay-passive = <250>;
982			polling-delay = <1000>;
983			thermal-sensors = <&tsens 8>;
984
985			trips {
986				wcss-phya1-critical {
987					temperature = <125000>;
988					hysteresis = <1000>;
989					type = "critical";
990				};
991			};
992		};
993
994		cpu-thermal {
995			polling-delay-passive = <250>;
996			thermal-sensors = <&tsens 13>;
997
998			trips {
999				cpu-critical {
1000					temperature = <125000>;
1001					hysteresis = <1000>;
1002					type = "critical";
1003				};
1004
1005				cpu_alert: cpu-passive {
1006					temperature = <110000>;
1007					hysteresis = <1000>;
1008					type = "passive";
1009				};
1010			};
1011
1012			cooling-maps {
1013				map0 {
1014					trip = <&cpu_alert>;
1015					cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
1016							 <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
1017							 <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
1018							 <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
1019				};
1020			};
1021		};
1022
1023		lpass-thermal {
1024			polling-delay-passive = <250>;
1025			thermal-sensors = <&tsens 14>;
1026
1027			trips {
1028				lpass-critical {
1029					temperature = <125000>;
1030					hysteresis = <1000>;
1031					type = "critical";
1032				};
1033			};
1034		};
1035
1036		ddrss-top-thermal {
1037			polling-delay-passive = <250>;
1038			thermal-sensors = <&tsens 15>;
1039
1040			trips {
1041				ddrss-top-critical {
1042					temperature = <125000>;
1043					hysteresis = <1000>;
1044					type = "critical";
1045				};
1046			};
1047		};
1048	};
1049
1050	timer {
1051		compatible = "arm,armv8-timer";
1052		interrupts = <GIC_PPI 2 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
1053			     <GIC_PPI 3 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
1054			     <GIC_PPI 4 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
1055			     <GIC_PPI 1 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
1056	};
1057
1058	wcss: wcss-smp2p {
1059		compatible = "qcom,smp2p";
1060		qcom,smem = <435>, <428>;
1061
1062		interrupt-parent = <&intc>;
1063		interrupts = <GIC_SPI 322 IRQ_TYPE_EDGE_RISING>;
1064
1065		mboxes = <&apcs_glb 9>;
1066
1067		qcom,local-pid = <0>;
1068		qcom,remote-pid = <1>;
1069
1070		wcss_smp2p_out: master-kernel {
1071			qcom,entry-name = "master-kernel";
1072			#qcom,smem-state-cells = <1>;
1073		};
1074
1075		wcss_smp2p_in: slave-kernel {
1076			qcom,entry-name = "slave-kernel";
1077			interrupt-controller;
1078			#interrupt-cells = <2>;
1079		};
1080	};
1081};
1082