xref: /OK3568_Linux_fs/kernel/arch/arm64/boot/dts/qcom/ipq6018.dtsi (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
2*4882a593Smuzhiyun/*
3*4882a593Smuzhiyun * IPQ6018 SoC device tree source
4*4882a593Smuzhiyun *
5*4882a593Smuzhiyun * Copyright (c) 2019, The Linux Foundation. All rights reserved.
6*4882a593Smuzhiyun */
7*4882a593Smuzhiyun
8*4882a593Smuzhiyun#include <dt-bindings/interrupt-controller/arm-gic.h>
9*4882a593Smuzhiyun#include <dt-bindings/clock/qcom,gcc-ipq6018.h>
10*4882a593Smuzhiyun#include <dt-bindings/reset/qcom,gcc-ipq6018.h>
11*4882a593Smuzhiyun#include <dt-bindings/clock/qcom,apss-ipq.h>
12*4882a593Smuzhiyun
13*4882a593Smuzhiyun/ {
14*4882a593Smuzhiyun	#address-cells = <2>;
15*4882a593Smuzhiyun	#size-cells = <2>;
16*4882a593Smuzhiyun	interrupt-parent = <&intc>;
17*4882a593Smuzhiyun
18*4882a593Smuzhiyun	clocks {
19*4882a593Smuzhiyun		sleep_clk: sleep-clk {
20*4882a593Smuzhiyun			compatible = "fixed-clock";
21*4882a593Smuzhiyun			clock-frequency = <32000>;
22*4882a593Smuzhiyun			#clock-cells = <0>;
23*4882a593Smuzhiyun		};
24*4882a593Smuzhiyun
25*4882a593Smuzhiyun		xo: xo {
26*4882a593Smuzhiyun			compatible = "fixed-clock";
27*4882a593Smuzhiyun			clock-frequency = <24000000>;
28*4882a593Smuzhiyun			#clock-cells = <0>;
29*4882a593Smuzhiyun		};
30*4882a593Smuzhiyun	};
31*4882a593Smuzhiyun
32*4882a593Smuzhiyun	cpus: cpus {
33*4882a593Smuzhiyun		#address-cells = <1>;
34*4882a593Smuzhiyun		#size-cells = <0>;
35*4882a593Smuzhiyun
36*4882a593Smuzhiyun		CPU0: cpu@0 {
37*4882a593Smuzhiyun			device_type = "cpu";
38*4882a593Smuzhiyun			compatible = "arm,cortex-a53";
39*4882a593Smuzhiyun			reg = <0x0>;
40*4882a593Smuzhiyun			enable-method = "psci";
41*4882a593Smuzhiyun			next-level-cache = <&L2_0>;
42*4882a593Smuzhiyun			clocks = <&apcs_glb APCS_ALIAS0_CORE_CLK>;
43*4882a593Smuzhiyun			clock-names = "cpu";
44*4882a593Smuzhiyun			operating-points-v2 = <&cpu_opp_table>;
45*4882a593Smuzhiyun			cpu-supply = <&ipq6018_s2>;
46*4882a593Smuzhiyun		};
47*4882a593Smuzhiyun
48*4882a593Smuzhiyun		CPU1: cpu@1 {
49*4882a593Smuzhiyun			device_type = "cpu";
50*4882a593Smuzhiyun			compatible = "arm,cortex-a53";
51*4882a593Smuzhiyun			enable-method = "psci";
52*4882a593Smuzhiyun			reg = <0x1>;
53*4882a593Smuzhiyun			next-level-cache = <&L2_0>;
54*4882a593Smuzhiyun			clocks = <&apcs_glb APCS_ALIAS0_CORE_CLK>;
55*4882a593Smuzhiyun			clock-names = "cpu";
56*4882a593Smuzhiyun			operating-points-v2 = <&cpu_opp_table>;
57*4882a593Smuzhiyun			cpu-supply = <&ipq6018_s2>;
58*4882a593Smuzhiyun		};
59*4882a593Smuzhiyun
60*4882a593Smuzhiyun		CPU2: cpu@2 {
61*4882a593Smuzhiyun			device_type = "cpu";
62*4882a593Smuzhiyun			compatible = "arm,cortex-a53";
63*4882a593Smuzhiyun			enable-method = "psci";
64*4882a593Smuzhiyun			reg = <0x2>;
65*4882a593Smuzhiyun			next-level-cache = <&L2_0>;
66*4882a593Smuzhiyun			clocks = <&apcs_glb APCS_ALIAS0_CORE_CLK>;
67*4882a593Smuzhiyun			clock-names = "cpu";
68*4882a593Smuzhiyun			operating-points-v2 = <&cpu_opp_table>;
69*4882a593Smuzhiyun			cpu-supply = <&ipq6018_s2>;
70*4882a593Smuzhiyun		};
71*4882a593Smuzhiyun
72*4882a593Smuzhiyun		CPU3: cpu@3 {
73*4882a593Smuzhiyun			device_type = "cpu";
74*4882a593Smuzhiyun			compatible = "arm,cortex-a53";
75*4882a593Smuzhiyun			enable-method = "psci";
76*4882a593Smuzhiyun			reg = <0x3>;
77*4882a593Smuzhiyun			next-level-cache = <&L2_0>;
78*4882a593Smuzhiyun			clocks = <&apcs_glb APCS_ALIAS0_CORE_CLK>;
79*4882a593Smuzhiyun			clock-names = "cpu";
80*4882a593Smuzhiyun			operating-points-v2 = <&cpu_opp_table>;
81*4882a593Smuzhiyun			cpu-supply = <&ipq6018_s2>;
82*4882a593Smuzhiyun		};
83*4882a593Smuzhiyun
84*4882a593Smuzhiyun		L2_0: l2-cache {
85*4882a593Smuzhiyun			compatible = "cache";
86*4882a593Smuzhiyun			cache-level = <0x2>;
87*4882a593Smuzhiyun		};
88*4882a593Smuzhiyun	};
89*4882a593Smuzhiyun
90*4882a593Smuzhiyun	cpu_opp_table: cpu_opp_table {
91*4882a593Smuzhiyun		compatible = "operating-points-v2";
92*4882a593Smuzhiyun		opp-shared;
93*4882a593Smuzhiyun
94*4882a593Smuzhiyun		opp-864000000 {
95*4882a593Smuzhiyun			opp-hz = /bits/ 64 <864000000>;
96*4882a593Smuzhiyun			opp-microvolt = <725000>;
97*4882a593Smuzhiyun			clock-latency-ns = <200000>;
98*4882a593Smuzhiyun		};
99*4882a593Smuzhiyun		opp-1056000000 {
100*4882a593Smuzhiyun			opp-hz = /bits/ 64 <1056000000>;
101*4882a593Smuzhiyun			opp-microvolt = <787500>;
102*4882a593Smuzhiyun			clock-latency-ns = <200000>;
103*4882a593Smuzhiyun		};
104*4882a593Smuzhiyun		opp-1320000000 {
105*4882a593Smuzhiyun			opp-hz = /bits/ 64 <1320000000>;
106*4882a593Smuzhiyun			opp-microvolt = <862500>;
107*4882a593Smuzhiyun			clock-latency-ns = <200000>;
108*4882a593Smuzhiyun		};
109*4882a593Smuzhiyun		opp-1440000000 {
110*4882a593Smuzhiyun			opp-hz = /bits/ 64 <1440000000>;
111*4882a593Smuzhiyun			opp-microvolt = <925000>;
112*4882a593Smuzhiyun			clock-latency-ns = <200000>;
113*4882a593Smuzhiyun		};
114*4882a593Smuzhiyun		opp-1608000000 {
115*4882a593Smuzhiyun			opp-hz = /bits/ 64 <1608000000>;
116*4882a593Smuzhiyun			opp-microvolt = <987500>;
117*4882a593Smuzhiyun			clock-latency-ns = <200000>;
118*4882a593Smuzhiyun		};
119*4882a593Smuzhiyun		opp-1800000000 {
120*4882a593Smuzhiyun			opp-hz = /bits/ 64 <1800000000>;
121*4882a593Smuzhiyun			opp-microvolt = <1062500>;
122*4882a593Smuzhiyun			clock-latency-ns = <200000>;
123*4882a593Smuzhiyun		};
124*4882a593Smuzhiyun	};
125*4882a593Smuzhiyun
126*4882a593Smuzhiyun	firmware {
127*4882a593Smuzhiyun		scm {
128*4882a593Smuzhiyun			compatible = "qcom,scm";
129*4882a593Smuzhiyun		};
130*4882a593Smuzhiyun	};
131*4882a593Smuzhiyun
132*4882a593Smuzhiyun	tcsr_mutex: hwlock {
133*4882a593Smuzhiyun		compatible = "qcom,tcsr-mutex";
134*4882a593Smuzhiyun		syscon = <&tcsr_mutex_regs 0 0x80>;
135*4882a593Smuzhiyun		#hwlock-cells = <1>;
136*4882a593Smuzhiyun	};
137*4882a593Smuzhiyun
138*4882a593Smuzhiyun	pmuv8: pmu {
139*4882a593Smuzhiyun		compatible = "arm,cortex-a53-pmu";
140*4882a593Smuzhiyun		interrupts = <GIC_PPI 7 (GIC_CPU_MASK_SIMPLE(4) |
141*4882a593Smuzhiyun					 IRQ_TYPE_LEVEL_HIGH)>;
142*4882a593Smuzhiyun	};
143*4882a593Smuzhiyun
144*4882a593Smuzhiyun	psci: psci {
145*4882a593Smuzhiyun		compatible = "arm,psci-1.0";
146*4882a593Smuzhiyun		method = "smc";
147*4882a593Smuzhiyun	};
148*4882a593Smuzhiyun
149*4882a593Smuzhiyun	reserved-memory {
150*4882a593Smuzhiyun		#address-cells = <2>;
151*4882a593Smuzhiyun		#size-cells = <2>;
152*4882a593Smuzhiyun		ranges;
153*4882a593Smuzhiyun
154*4882a593Smuzhiyun		rpm_msg_ram: memory@60000 {
155*4882a593Smuzhiyun			reg = <0x0 0x60000 0x0 0x6000>;
156*4882a593Smuzhiyun			no-map;
157*4882a593Smuzhiyun		};
158*4882a593Smuzhiyun
159*4882a593Smuzhiyun		tz: memory@4a600000 {
160*4882a593Smuzhiyun			reg = <0x0 0x4a600000 0x0 0x00400000>;
161*4882a593Smuzhiyun			no-map;
162*4882a593Smuzhiyun		};
163*4882a593Smuzhiyun
164*4882a593Smuzhiyun		smem_region: memory@4aa00000 {
165*4882a593Smuzhiyun			reg = <0x0 0x4aa00000 0x0 0x00100000>;
166*4882a593Smuzhiyun			no-map;
167*4882a593Smuzhiyun		};
168*4882a593Smuzhiyun
169*4882a593Smuzhiyun		q6_region: memory@4ab00000 {
170*4882a593Smuzhiyun			reg = <0x0 0x4ab00000 0x0 0x05500000>;
171*4882a593Smuzhiyun			no-map;
172*4882a593Smuzhiyun		};
173*4882a593Smuzhiyun	};
174*4882a593Smuzhiyun
175*4882a593Smuzhiyun	smem {
176*4882a593Smuzhiyun		compatible = "qcom,smem";
177*4882a593Smuzhiyun		memory-region = <&smem_region>;
178*4882a593Smuzhiyun		hwlocks = <&tcsr_mutex 0>;
179*4882a593Smuzhiyun	};
180*4882a593Smuzhiyun
181*4882a593Smuzhiyun	soc: soc {
182*4882a593Smuzhiyun		#address-cells = <2>;
183*4882a593Smuzhiyun		#size-cells = <2>;
184*4882a593Smuzhiyun		ranges = <0 0 0 0 0x0 0xffffffff>;
185*4882a593Smuzhiyun		dma-ranges;
186*4882a593Smuzhiyun		compatible = "simple-bus";
187*4882a593Smuzhiyun
188*4882a593Smuzhiyun		prng: qrng@e1000 {
189*4882a593Smuzhiyun			compatible = "qcom,prng-ee";
190*4882a593Smuzhiyun			reg = <0x0 0xe3000 0x0 0x1000>;
191*4882a593Smuzhiyun			clocks = <&gcc GCC_PRNG_AHB_CLK>;
192*4882a593Smuzhiyun			clock-names = "core";
193*4882a593Smuzhiyun		};
194*4882a593Smuzhiyun
195*4882a593Smuzhiyun		cryptobam: dma@704000 {
196*4882a593Smuzhiyun			compatible = "qcom,bam-v1.7.0";
197*4882a593Smuzhiyun			reg = <0x0 0x00704000 0x0 0x20000>;
198*4882a593Smuzhiyun			interrupts = <GIC_SPI 207 IRQ_TYPE_LEVEL_HIGH>;
199*4882a593Smuzhiyun			clocks = <&gcc GCC_CRYPTO_AHB_CLK>;
200*4882a593Smuzhiyun			clock-names = "bam_clk";
201*4882a593Smuzhiyun			#dma-cells = <1>;
202*4882a593Smuzhiyun			qcom,ee = <1>;
203*4882a593Smuzhiyun			qcom,controlled-remotely;
204*4882a593Smuzhiyun			qcom,config-pipe-trust-reg = <0>;
205*4882a593Smuzhiyun		};
206*4882a593Smuzhiyun
207*4882a593Smuzhiyun		crypto: crypto@73a000 {
208*4882a593Smuzhiyun			compatible = "qcom,crypto-v5.1";
209*4882a593Smuzhiyun			reg = <0x0 0x0073a000 0x0 0x6000>;
210*4882a593Smuzhiyun			clocks = <&gcc GCC_CRYPTO_AHB_CLK>,
211*4882a593Smuzhiyun				<&gcc GCC_CRYPTO_AXI_CLK>,
212*4882a593Smuzhiyun				<&gcc GCC_CRYPTO_CLK>;
213*4882a593Smuzhiyun			clock-names = "iface", "bus", "core";
214*4882a593Smuzhiyun			dmas = <&cryptobam 2>, <&cryptobam 3>;
215*4882a593Smuzhiyun			dma-names = "rx", "tx";
216*4882a593Smuzhiyun		};
217*4882a593Smuzhiyun
218*4882a593Smuzhiyun		tlmm: pinctrl@1000000 {
219*4882a593Smuzhiyun			compatible = "qcom,ipq6018-pinctrl";
220*4882a593Smuzhiyun			reg = <0x0 0x01000000 0x0 0x300000>;
221*4882a593Smuzhiyun			interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
222*4882a593Smuzhiyun			gpio-controller;
223*4882a593Smuzhiyun			#gpio-cells = <2>;
224*4882a593Smuzhiyun			gpio-ranges = <&tlmm 0 0 80>;
225*4882a593Smuzhiyun			interrupt-controller;
226*4882a593Smuzhiyun			#interrupt-cells = <2>;
227*4882a593Smuzhiyun
228*4882a593Smuzhiyun			serial_3_pins: serial3-pinmux {
229*4882a593Smuzhiyun				pins = "gpio44", "gpio45";
230*4882a593Smuzhiyun				function = "blsp2_uart";
231*4882a593Smuzhiyun				drive-strength = <8>;
232*4882a593Smuzhiyun				bias-pull-down;
233*4882a593Smuzhiyun			};
234*4882a593Smuzhiyun		};
235*4882a593Smuzhiyun
236*4882a593Smuzhiyun		gcc: gcc@1800000 {
237*4882a593Smuzhiyun			compatible = "qcom,gcc-ipq6018";
238*4882a593Smuzhiyun			reg = <0x0 0x01800000 0x0 0x80000>;
239*4882a593Smuzhiyun			clocks = <&xo>, <&sleep_clk>;
240*4882a593Smuzhiyun			clock-names = "xo", "sleep_clk";
241*4882a593Smuzhiyun			#clock-cells = <1>;
242*4882a593Smuzhiyun			#reset-cells = <1>;
243*4882a593Smuzhiyun		};
244*4882a593Smuzhiyun
245*4882a593Smuzhiyun		tcsr_mutex_regs: syscon@1905000 {
246*4882a593Smuzhiyun			compatible = "syscon";
247*4882a593Smuzhiyun			reg = <0x0 0x01905000 0x0 0x8000>;
248*4882a593Smuzhiyun		};
249*4882a593Smuzhiyun
250*4882a593Smuzhiyun		tcsr_q6: syscon@1945000 {
251*4882a593Smuzhiyun			compatible = "syscon";
252*4882a593Smuzhiyun			reg = <0x0 0x01945000 0x0 0xe000>;
253*4882a593Smuzhiyun		};
254*4882a593Smuzhiyun
255*4882a593Smuzhiyun		blsp_dma: dma@7884000 {
256*4882a593Smuzhiyun			compatible = "qcom,bam-v1.7.0";
257*4882a593Smuzhiyun			reg = <0x0 0x07884000 0x0 0x2b000>;
258*4882a593Smuzhiyun			interrupts = <GIC_SPI 238 IRQ_TYPE_LEVEL_HIGH>;
259*4882a593Smuzhiyun			clocks = <&gcc GCC_BLSP1_AHB_CLK>;
260*4882a593Smuzhiyun			clock-names = "bam_clk";
261*4882a593Smuzhiyun			#dma-cells = <1>;
262*4882a593Smuzhiyun			qcom,ee = <0>;
263*4882a593Smuzhiyun		};
264*4882a593Smuzhiyun
265*4882a593Smuzhiyun		blsp1_uart3: serial@78b1000 {
266*4882a593Smuzhiyun			compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
267*4882a593Smuzhiyun			reg = <0x0 0x078b1000 0x0 0x200>;
268*4882a593Smuzhiyun			interrupts = <GIC_SPI 306 IRQ_TYPE_LEVEL_HIGH>;
269*4882a593Smuzhiyun			clocks = <&gcc GCC_BLSP1_UART3_APPS_CLK>,
270*4882a593Smuzhiyun				<&gcc GCC_BLSP1_AHB_CLK>;
271*4882a593Smuzhiyun			clock-names = "core", "iface";
272*4882a593Smuzhiyun			status = "disabled";
273*4882a593Smuzhiyun		};
274*4882a593Smuzhiyun
275*4882a593Smuzhiyun		spi_0: spi@78b5000 {
276*4882a593Smuzhiyun			compatible = "qcom,spi-qup-v2.2.1";
277*4882a593Smuzhiyun			#address-cells = <1>;
278*4882a593Smuzhiyun			#size-cells = <0>;
279*4882a593Smuzhiyun			reg = <0x0 0x078b5000 0x0 0x600>;
280*4882a593Smuzhiyun			interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
281*4882a593Smuzhiyun			spi-max-frequency = <50000000>;
282*4882a593Smuzhiyun			clocks = <&gcc GCC_BLSP1_QUP1_SPI_APPS_CLK>,
283*4882a593Smuzhiyun				<&gcc GCC_BLSP1_AHB_CLK>;
284*4882a593Smuzhiyun			clock-names = "core", "iface";
285*4882a593Smuzhiyun			dmas = <&blsp_dma 12>, <&blsp_dma 13>;
286*4882a593Smuzhiyun			dma-names = "tx", "rx";
287*4882a593Smuzhiyun			status = "disabled";
288*4882a593Smuzhiyun		};
289*4882a593Smuzhiyun
290*4882a593Smuzhiyun		spi_1: spi@78b6000 {
291*4882a593Smuzhiyun			compatible = "qcom,spi-qup-v2.2.1";
292*4882a593Smuzhiyun			#address-cells = <1>;
293*4882a593Smuzhiyun			#size-cells = <0>;
294*4882a593Smuzhiyun			reg = <0x0 0x078b6000 0x0 0x600>;
295*4882a593Smuzhiyun			interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
296*4882a593Smuzhiyun			spi-max-frequency = <50000000>;
297*4882a593Smuzhiyun			clocks = <&gcc GCC_BLSP1_QUP2_SPI_APPS_CLK>,
298*4882a593Smuzhiyun				<&gcc GCC_BLSP1_AHB_CLK>;
299*4882a593Smuzhiyun			clock-names = "core", "iface";
300*4882a593Smuzhiyun			dmas = <&blsp_dma 14>, <&blsp_dma 15>;
301*4882a593Smuzhiyun			dma-names = "tx", "rx";
302*4882a593Smuzhiyun			status = "disabled";
303*4882a593Smuzhiyun		};
304*4882a593Smuzhiyun
305*4882a593Smuzhiyun		i2c_0: i2c@78b6000 {
306*4882a593Smuzhiyun			compatible = "qcom,i2c-qup-v2.2.1";
307*4882a593Smuzhiyun			#address-cells = <1>;
308*4882a593Smuzhiyun			#size-cells = <0>;
309*4882a593Smuzhiyun			reg = <0x0 0x078b6000 0x0 0x600>;
310*4882a593Smuzhiyun			interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
311*4882a593Smuzhiyun			clocks = <&gcc GCC_BLSP1_AHB_CLK>,
312*4882a593Smuzhiyun				<&gcc GCC_BLSP1_QUP2_I2C_APPS_CLK>;
313*4882a593Smuzhiyun			clock-names = "iface", "core";
314*4882a593Smuzhiyun			clock-frequency  = <400000>;
315*4882a593Smuzhiyun			dmas = <&blsp_dma 15>, <&blsp_dma 14>;
316*4882a593Smuzhiyun			dma-names = "rx", "tx";
317*4882a593Smuzhiyun			status = "disabled";
318*4882a593Smuzhiyun		};
319*4882a593Smuzhiyun
320*4882a593Smuzhiyun		i2c_1: i2c@78b7000 { /* BLSP1 QUP2 */
321*4882a593Smuzhiyun			compatible = "qcom,i2c-qup-v2.2.1";
322*4882a593Smuzhiyun			#address-cells = <1>;
323*4882a593Smuzhiyun			#size-cells = <0>;
324*4882a593Smuzhiyun			reg = <0x0 0x078b7000 0x0 0x600>;
325*4882a593Smuzhiyun			interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
326*4882a593Smuzhiyun			clocks = <&gcc GCC_BLSP1_AHB_CLK>,
327*4882a593Smuzhiyun				<&gcc GCC_BLSP1_QUP3_I2C_APPS_CLK>;
328*4882a593Smuzhiyun			clock-names = "iface", "core";
329*4882a593Smuzhiyun			clock-frequency  = <400000>;
330*4882a593Smuzhiyun			dmas = <&blsp_dma 17>, <&blsp_dma 16>;
331*4882a593Smuzhiyun			dma-names = "rx", "tx";
332*4882a593Smuzhiyun			status = "disabled";
333*4882a593Smuzhiyun		};
334*4882a593Smuzhiyun
335*4882a593Smuzhiyun		intc: interrupt-controller@b000000 {
336*4882a593Smuzhiyun			compatible = "qcom,msm-qgic2";
337*4882a593Smuzhiyun			interrupt-controller;
338*4882a593Smuzhiyun			#interrupt-cells = <0x3>;
339*4882a593Smuzhiyun			reg =   <0x0 0x0b000000 0x0 0x1000>,  /*GICD*/
340*4882a593Smuzhiyun				<0x0 0x0b002000 0x0 0x1000>,  /*GICC*/
341*4882a593Smuzhiyun				<0x0 0x0b001000 0x0 0x1000>,  /*GICH*/
342*4882a593Smuzhiyun				<0x0 0x0b004000 0x0 0x1000>;  /*GICV*/
343*4882a593Smuzhiyun			interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
344*4882a593Smuzhiyun		};
345*4882a593Smuzhiyun
346*4882a593Smuzhiyun		watchdog@b017000 {
347*4882a593Smuzhiyun			compatible = "qcom,kpss-wdt";
348*4882a593Smuzhiyun			interrupts = <GIC_SPI 3 IRQ_TYPE_EDGE_RISING>;
349*4882a593Smuzhiyun			reg = <0x0 0x0b017000 0x0 0x40>;
350*4882a593Smuzhiyun			clocks = <&sleep_clk>;
351*4882a593Smuzhiyun			timeout-sec = <10>;
352*4882a593Smuzhiyun		};
353*4882a593Smuzhiyun
354*4882a593Smuzhiyun		apcs_glb: mailbox@b111000 {
355*4882a593Smuzhiyun			compatible = "qcom,ipq6018-apcs-apps-global";
356*4882a593Smuzhiyun			reg = <0x0 0x0b111000 0x0 0x1000>;
357*4882a593Smuzhiyun			#clock-cells = <1>;
358*4882a593Smuzhiyun			clocks = <&a53pll>, <&xo>;
359*4882a593Smuzhiyun			clock-names = "pll", "xo";
360*4882a593Smuzhiyun			#mbox-cells = <1>;
361*4882a593Smuzhiyun		};
362*4882a593Smuzhiyun
363*4882a593Smuzhiyun		a53pll: clock@b116000 {
364*4882a593Smuzhiyun			compatible = "qcom,ipq6018-a53pll";
365*4882a593Smuzhiyun			reg = <0x0 0x0b116000 0x0 0x40>;
366*4882a593Smuzhiyun			#clock-cells = <0>;
367*4882a593Smuzhiyun			clocks = <&xo>;
368*4882a593Smuzhiyun			clock-names = "xo";
369*4882a593Smuzhiyun		};
370*4882a593Smuzhiyun
371*4882a593Smuzhiyun		timer {
372*4882a593Smuzhiyun			compatible = "arm,armv8-timer";
373*4882a593Smuzhiyun			interrupts = <GIC_PPI 2 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
374*4882a593Smuzhiyun				     <GIC_PPI 3 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
375*4882a593Smuzhiyun				     <GIC_PPI 4 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
376*4882a593Smuzhiyun				     <GIC_PPI 1 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
377*4882a593Smuzhiyun		};
378*4882a593Smuzhiyun
379*4882a593Smuzhiyun		timer@b120000 {
380*4882a593Smuzhiyun			#address-cells = <2>;
381*4882a593Smuzhiyun			#size-cells = <2>;
382*4882a593Smuzhiyun			ranges;
383*4882a593Smuzhiyun			compatible = "arm,armv7-timer-mem";
384*4882a593Smuzhiyun			reg = <0x0 0x0b120000 0x0 0x1000>;
385*4882a593Smuzhiyun			clock-frequency = <19200000>;
386*4882a593Smuzhiyun
387*4882a593Smuzhiyun			frame@b120000 {
388*4882a593Smuzhiyun				frame-number = <0>;
389*4882a593Smuzhiyun				interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
390*4882a593Smuzhiyun					     <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
391*4882a593Smuzhiyun				reg = <0x0 0x0b121000 0x0 0x1000>,
392*4882a593Smuzhiyun				      <0x0 0x0b122000 0x0 0x1000>;
393*4882a593Smuzhiyun			};
394*4882a593Smuzhiyun
395*4882a593Smuzhiyun			frame@b123000 {
396*4882a593Smuzhiyun				frame-number = <1>;
397*4882a593Smuzhiyun				interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
398*4882a593Smuzhiyun				reg = <0x0 0xb123000 0x0 0x1000>;
399*4882a593Smuzhiyun				status = "disabled";
400*4882a593Smuzhiyun			};
401*4882a593Smuzhiyun
402*4882a593Smuzhiyun			frame@b124000 {
403*4882a593Smuzhiyun				frame-number = <2>;
404*4882a593Smuzhiyun				interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
405*4882a593Smuzhiyun				reg = <0x0 0x0b124000 0x0 0x1000>;
406*4882a593Smuzhiyun				status = "disabled";
407*4882a593Smuzhiyun			};
408*4882a593Smuzhiyun
409*4882a593Smuzhiyun			frame@b125000 {
410*4882a593Smuzhiyun				frame-number = <3>;
411*4882a593Smuzhiyun				interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
412*4882a593Smuzhiyun				reg = <0x0 0x0b125000 0x0 0x1000>;
413*4882a593Smuzhiyun				status = "disabled";
414*4882a593Smuzhiyun			};
415*4882a593Smuzhiyun
416*4882a593Smuzhiyun			frame@b126000 {
417*4882a593Smuzhiyun				frame-number = <4>;
418*4882a593Smuzhiyun				interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
419*4882a593Smuzhiyun				reg = <0x0 0x0b126000 0x0 0x1000>;
420*4882a593Smuzhiyun				status = "disabled";
421*4882a593Smuzhiyun			};
422*4882a593Smuzhiyun
423*4882a593Smuzhiyun			frame@b127000 {
424*4882a593Smuzhiyun				frame-number = <5>;
425*4882a593Smuzhiyun				interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
426*4882a593Smuzhiyun				reg = <0x0 0x0b127000 0x0 0x1000>;
427*4882a593Smuzhiyun				status = "disabled";
428*4882a593Smuzhiyun			};
429*4882a593Smuzhiyun
430*4882a593Smuzhiyun			frame@b128000 {
431*4882a593Smuzhiyun				frame-number = <6>;
432*4882a593Smuzhiyun				interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
433*4882a593Smuzhiyun				reg = <0x0 0x0b128000 0x0 0x1000>;
434*4882a593Smuzhiyun				status = "disabled";
435*4882a593Smuzhiyun			};
436*4882a593Smuzhiyun		};
437*4882a593Smuzhiyun
438*4882a593Smuzhiyun		q6v5_wcss: remoteproc@cd00000 {
439*4882a593Smuzhiyun			compatible = "qcom,ipq8074-wcss-pil";
440*4882a593Smuzhiyun			reg = <0x0 0x0cd00000 0x0 0x4040>,
441*4882a593Smuzhiyun			      <0x0 0x004ab000 0x0 0x20>;
442*4882a593Smuzhiyun			reg-names = "qdsp6",
443*4882a593Smuzhiyun				    "rmb";
444*4882a593Smuzhiyun			interrupts-extended = <&intc GIC_SPI 325 IRQ_TYPE_EDGE_RISING>,
445*4882a593Smuzhiyun					      <&wcss_smp2p_in 0 0>,
446*4882a593Smuzhiyun					      <&wcss_smp2p_in 1 0>,
447*4882a593Smuzhiyun					      <&wcss_smp2p_in 2 0>,
448*4882a593Smuzhiyun					      <&wcss_smp2p_in 3 0>;
449*4882a593Smuzhiyun			interrupt-names = "wdog",
450*4882a593Smuzhiyun					  "fatal",
451*4882a593Smuzhiyun					  "ready",
452*4882a593Smuzhiyun					  "handover",
453*4882a593Smuzhiyun					  "stop-ack";
454*4882a593Smuzhiyun
455*4882a593Smuzhiyun			resets = <&gcc GCC_WCSSAON_RESET>,
456*4882a593Smuzhiyun				 <&gcc GCC_WCSS_BCR>,
457*4882a593Smuzhiyun				 <&gcc GCC_WCSS_Q6_BCR>;
458*4882a593Smuzhiyun
459*4882a593Smuzhiyun			reset-names = "wcss_aon_reset",
460*4882a593Smuzhiyun				      "wcss_reset",
461*4882a593Smuzhiyun				      "wcss_q6_reset";
462*4882a593Smuzhiyun
463*4882a593Smuzhiyun			clocks = <&gcc GCC_PRNG_AHB_CLK>;
464*4882a593Smuzhiyun			clock-names = "prng";
465*4882a593Smuzhiyun
466*4882a593Smuzhiyun			qcom,halt-regs = <&tcsr_q6 0xa000 0xd000 0x0>;
467*4882a593Smuzhiyun
468*4882a593Smuzhiyun			qcom,smem-states = <&wcss_smp2p_out 0>,
469*4882a593Smuzhiyun					   <&wcss_smp2p_out 1>;
470*4882a593Smuzhiyun			qcom,smem-state-names = "shutdown",
471*4882a593Smuzhiyun						"stop";
472*4882a593Smuzhiyun
473*4882a593Smuzhiyun			memory-region = <&q6_region>;
474*4882a593Smuzhiyun
475*4882a593Smuzhiyun			glink-edge {
476*4882a593Smuzhiyun				interrupts = <GIC_SPI 321 IRQ_TYPE_EDGE_RISING>;
477*4882a593Smuzhiyun				qcom,remote-pid = <1>;
478*4882a593Smuzhiyun				mboxes = <&apcs_glb 8>;
479*4882a593Smuzhiyun
480*4882a593Smuzhiyun				qrtr_requests {
481*4882a593Smuzhiyun					qcom,glink-channels = "IPCRTR";
482*4882a593Smuzhiyun				};
483*4882a593Smuzhiyun			};
484*4882a593Smuzhiyun		};
485*4882a593Smuzhiyun
486*4882a593Smuzhiyun	};
487*4882a593Smuzhiyun
488*4882a593Smuzhiyun	wcss: wcss-smp2p {
489*4882a593Smuzhiyun		compatible = "qcom,smp2p";
490*4882a593Smuzhiyun		qcom,smem = <435>, <428>;
491*4882a593Smuzhiyun
492*4882a593Smuzhiyun		interrupt-parent = <&intc>;
493*4882a593Smuzhiyun		interrupts = <GIC_SPI 322 IRQ_TYPE_EDGE_RISING>;
494*4882a593Smuzhiyun
495*4882a593Smuzhiyun		mboxes = <&apcs_glb 9>;
496*4882a593Smuzhiyun
497*4882a593Smuzhiyun		qcom,local-pid = <0>;
498*4882a593Smuzhiyun		qcom,remote-pid = <1>;
499*4882a593Smuzhiyun
500*4882a593Smuzhiyun		wcss_smp2p_out: master-kernel {
501*4882a593Smuzhiyun			qcom,entry-name = "master-kernel";
502*4882a593Smuzhiyun			#qcom,smem-state-cells = <1>;
503*4882a593Smuzhiyun		};
504*4882a593Smuzhiyun
505*4882a593Smuzhiyun		wcss_smp2p_in: slave-kernel {
506*4882a593Smuzhiyun			qcom,entry-name = "slave-kernel";
507*4882a593Smuzhiyun			interrupt-controller;
508*4882a593Smuzhiyun			#interrupt-cells = <2>;
509*4882a593Smuzhiyun		};
510*4882a593Smuzhiyun	};
511*4882a593Smuzhiyun
512*4882a593Smuzhiyun	rpm-glink {
513*4882a593Smuzhiyun		compatible = "qcom,glink-rpm";
514*4882a593Smuzhiyun		interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>;
515*4882a593Smuzhiyun		qcom,rpm-msg-ram = <&rpm_msg_ram>;
516*4882a593Smuzhiyun		mboxes = <&apcs_glb 0>;
517*4882a593Smuzhiyun
518*4882a593Smuzhiyun		rpm_requests: glink-channel {
519*4882a593Smuzhiyun			compatible = "qcom,rpm-ipq6018";
520*4882a593Smuzhiyun			qcom,glink-channels = "rpm_requests";
521*4882a593Smuzhiyun
522*4882a593Smuzhiyun			regulators {
523*4882a593Smuzhiyun				compatible = "qcom,rpm-mp5496-regulators";
524*4882a593Smuzhiyun
525*4882a593Smuzhiyun				ipq6018_s2: s2 {
526*4882a593Smuzhiyun					regulator-min-microvolt = <725000>;
527*4882a593Smuzhiyun					regulator-max-microvolt = <1062500>;
528*4882a593Smuzhiyun					regulator-always-on;
529*4882a593Smuzhiyun				};
530*4882a593Smuzhiyun			};
531*4882a593Smuzhiyun		};
532*4882a593Smuzhiyun	};
533*4882a593Smuzhiyun};
534