xref: /OK3568_Linux_fs/kernel/scripts/dtc/include-prefixes/arm64/qcom/msm8994.dtsi (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun// SPDX-License-Identifier: GPL-2.0-only
2*4882a593Smuzhiyun/* Copyright (c) 2013-2016, The Linux Foundation. All rights reserved.
3*4882a593Smuzhiyun */
4*4882a593Smuzhiyun
5*4882a593Smuzhiyun#include <dt-bindings/interrupt-controller/arm-gic.h>
6*4882a593Smuzhiyun#include <dt-bindings/clock/qcom,gcc-msm8994.h>
7*4882a593Smuzhiyun
8*4882a593Smuzhiyun/ {
9*4882a593Smuzhiyun	interrupt-parent = <&intc>;
10*4882a593Smuzhiyun
11*4882a593Smuzhiyun	#address-cells = <2>;
12*4882a593Smuzhiyun	#size-cells = <2>;
13*4882a593Smuzhiyun
14*4882a593Smuzhiyun	chosen { };
15*4882a593Smuzhiyun
16*4882a593Smuzhiyun	clocks {
17*4882a593Smuzhiyun		xo_board: xo-board {
18*4882a593Smuzhiyun			compatible = "fixed-clock";
19*4882a593Smuzhiyun			#clock-cells = <0>;
20*4882a593Smuzhiyun			clock-frequency = <19200000>;
21*4882a593Smuzhiyun			clock-output-names = "xo_board";
22*4882a593Smuzhiyun		};
23*4882a593Smuzhiyun
24*4882a593Smuzhiyun		sleep_clk: sleep-clk {
25*4882a593Smuzhiyun			compatible = "fixed-clock";
26*4882a593Smuzhiyun			#clock-cells = <0>;
27*4882a593Smuzhiyun			clock-frequency = <32768>;
28*4882a593Smuzhiyun			clock-output-names = "sleep_clk";
29*4882a593Smuzhiyun		};
30*4882a593Smuzhiyun	};
31*4882a593Smuzhiyun
32*4882a593Smuzhiyun	cpus {
33*4882a593Smuzhiyun		#address-cells = <2>;
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 0x0>;
40*4882a593Smuzhiyun			enable-method = "psci";
41*4882a593Smuzhiyun			next-level-cache = <&L2_0>;
42*4882a593Smuzhiyun			L2_0: l2-cache {
43*4882a593Smuzhiyun				compatible = "cache";
44*4882a593Smuzhiyun				cache-level = <2>;
45*4882a593Smuzhiyun			};
46*4882a593Smuzhiyun		};
47*4882a593Smuzhiyun
48*4882a593Smuzhiyun		CPU1: cpu@1 {
49*4882a593Smuzhiyun			device_type = "cpu";
50*4882a593Smuzhiyun			compatible = "arm,cortex-a53";
51*4882a593Smuzhiyun			reg = <0x0 0x1>;
52*4882a593Smuzhiyun			enable-method = "psci";
53*4882a593Smuzhiyun			next-level-cache = <&L2_0>;
54*4882a593Smuzhiyun		};
55*4882a593Smuzhiyun
56*4882a593Smuzhiyun		CPU2: cpu@2 {
57*4882a593Smuzhiyun			device_type = "cpu";
58*4882a593Smuzhiyun			compatible = "arm,cortex-a53";
59*4882a593Smuzhiyun			reg = <0x0 0x2>;
60*4882a593Smuzhiyun			enable-method = "psci";
61*4882a593Smuzhiyun			next-level-cache = <&L2_0>;
62*4882a593Smuzhiyun		};
63*4882a593Smuzhiyun
64*4882a593Smuzhiyun		CPU3: cpu@3 {
65*4882a593Smuzhiyun			device_type = "cpu";
66*4882a593Smuzhiyun			compatible = "arm,cortex-a53";
67*4882a593Smuzhiyun			reg = <0x0 0x3>;
68*4882a593Smuzhiyun			enable-method = "psci";
69*4882a593Smuzhiyun			next-level-cache = <&L2_0>;
70*4882a593Smuzhiyun		};
71*4882a593Smuzhiyun
72*4882a593Smuzhiyun		CPU4: cpu@100 {
73*4882a593Smuzhiyun			device_type = "cpu";
74*4882a593Smuzhiyun			compatible = "arm,cortex-a57";
75*4882a593Smuzhiyun			reg = <0x0 0x100>;
76*4882a593Smuzhiyun			enable-method = "psci";
77*4882a593Smuzhiyun			next-level-cache = <&L2_1>;
78*4882a593Smuzhiyun			L2_1: l2-cache {
79*4882a593Smuzhiyun				compatible = "cache";
80*4882a593Smuzhiyun				cache-level = <2>;
81*4882a593Smuzhiyun			};
82*4882a593Smuzhiyun		};
83*4882a593Smuzhiyun
84*4882a593Smuzhiyun		CPU5: cpu@101 {
85*4882a593Smuzhiyun			device_type = "cpu";
86*4882a593Smuzhiyun			compatible = "arm,cortex-a57";
87*4882a593Smuzhiyun			reg = <0x0 0x101>;
88*4882a593Smuzhiyun			enable-method = "psci";
89*4882a593Smuzhiyun			next-level-cache = <&L2_1>;
90*4882a593Smuzhiyun		};
91*4882a593Smuzhiyun
92*4882a593Smuzhiyun		CPU6: cpu@102 {
93*4882a593Smuzhiyun			device_type = "cpu";
94*4882a593Smuzhiyun			compatible = "arm,cortex-a57";
95*4882a593Smuzhiyun			reg = <0x0 0x102>;
96*4882a593Smuzhiyun			enable-method = "psci";
97*4882a593Smuzhiyun			next-level-cache = <&L2_1>;
98*4882a593Smuzhiyun		};
99*4882a593Smuzhiyun
100*4882a593Smuzhiyun		CPU7: cpu@103 {
101*4882a593Smuzhiyun			device_type = "cpu";
102*4882a593Smuzhiyun			compatible = "arm,cortex-a57";
103*4882a593Smuzhiyun			reg = <0x0 0x103>;
104*4882a593Smuzhiyun			enable-method = "psci";
105*4882a593Smuzhiyun			next-level-cache = <&L2_1>;
106*4882a593Smuzhiyun		};
107*4882a593Smuzhiyun
108*4882a593Smuzhiyun		cpu-map {
109*4882a593Smuzhiyun			cluster0 {
110*4882a593Smuzhiyun				core0 {
111*4882a593Smuzhiyun					cpu = <&CPU0>;
112*4882a593Smuzhiyun				};
113*4882a593Smuzhiyun
114*4882a593Smuzhiyun				core1 {
115*4882a593Smuzhiyun					cpu = <&CPU1>;
116*4882a593Smuzhiyun				};
117*4882a593Smuzhiyun
118*4882a593Smuzhiyun				core2 {
119*4882a593Smuzhiyun					cpu = <&CPU2>;
120*4882a593Smuzhiyun				};
121*4882a593Smuzhiyun
122*4882a593Smuzhiyun				core3 {
123*4882a593Smuzhiyun					cpu = <&CPU3>;
124*4882a593Smuzhiyun				};
125*4882a593Smuzhiyun			};
126*4882a593Smuzhiyun
127*4882a593Smuzhiyun			cluster1 {
128*4882a593Smuzhiyun				core0 {
129*4882a593Smuzhiyun					cpu = <&CPU4>;
130*4882a593Smuzhiyun				};
131*4882a593Smuzhiyun
132*4882a593Smuzhiyun				core1 {
133*4882a593Smuzhiyun					cpu = <&CPU5>;
134*4882a593Smuzhiyun				};
135*4882a593Smuzhiyun
136*4882a593Smuzhiyun				core2 {
137*4882a593Smuzhiyun					cpu = <&CPU6>;
138*4882a593Smuzhiyun				};
139*4882a593Smuzhiyun
140*4882a593Smuzhiyun				core3 {
141*4882a593Smuzhiyun					cpu = <&CPU7>;
142*4882a593Smuzhiyun				};
143*4882a593Smuzhiyun			};
144*4882a593Smuzhiyun		};
145*4882a593Smuzhiyun	};
146*4882a593Smuzhiyun
147*4882a593Smuzhiyun	firmware {
148*4882a593Smuzhiyun		scm {
149*4882a593Smuzhiyun			compatible = "qcom,scm-msm8994", "qcom,scm";
150*4882a593Smuzhiyun		};
151*4882a593Smuzhiyun	};
152*4882a593Smuzhiyun
153*4882a593Smuzhiyun	memory {
154*4882a593Smuzhiyun		device_type = "memory";
155*4882a593Smuzhiyun		/* We expect the bootloader to fill in the reg */
156*4882a593Smuzhiyun		reg = <0 0 0 0>;
157*4882a593Smuzhiyun	};
158*4882a593Smuzhiyun
159*4882a593Smuzhiyun	pmu {
160*4882a593Smuzhiyun		compatible = "arm,cortex-a53-pmu";
161*4882a593Smuzhiyun		interrupts = <GIC_PPI 7 (GIC_CPU_MASK_SIMPLE(4)| IRQ_TYPE_LEVEL_HIGH)>;
162*4882a593Smuzhiyun	};
163*4882a593Smuzhiyun
164*4882a593Smuzhiyun	psci {
165*4882a593Smuzhiyun		compatible = "arm,psci-0.2";
166*4882a593Smuzhiyun		method = "hvc";
167*4882a593Smuzhiyun	};
168*4882a593Smuzhiyun
169*4882a593Smuzhiyun	reserved-memory {
170*4882a593Smuzhiyun		#address-cells = <2>;
171*4882a593Smuzhiyun		#size-cells = <2>;
172*4882a593Smuzhiyun		ranges;
173*4882a593Smuzhiyun
174*4882a593Smuzhiyun		smem_mem: smem_region@6a00000 {
175*4882a593Smuzhiyun			reg = <0x0 0x6a00000 0x0 0x200000>;
176*4882a593Smuzhiyun			no-map;
177*4882a593Smuzhiyun		};
178*4882a593Smuzhiyun	};
179*4882a593Smuzhiyun
180*4882a593Smuzhiyun	smd {
181*4882a593Smuzhiyun		compatible = "qcom,smd";
182*4882a593Smuzhiyun		rpm {
183*4882a593Smuzhiyun			interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>;
184*4882a593Smuzhiyun			qcom,ipc = <&apcs 8 0>;
185*4882a593Smuzhiyun			qcom,smd-edge = <15>;
186*4882a593Smuzhiyun			qcom,local-pid = <0>;
187*4882a593Smuzhiyun			qcom,remote-pid = <6>;
188*4882a593Smuzhiyun
189*4882a593Smuzhiyun			rpm_requests: rpm-requests {
190*4882a593Smuzhiyun				compatible = "qcom,rpm-msm8994";
191*4882a593Smuzhiyun				qcom,smd-channels = "rpm_requests";
192*4882a593Smuzhiyun
193*4882a593Smuzhiyun				rpmcc: rpmcc {
194*4882a593Smuzhiyun					compatible = "qcom,rpmcc-msm8994";
195*4882a593Smuzhiyun					#clock-cells = <1>;
196*4882a593Smuzhiyun				};
197*4882a593Smuzhiyun			};
198*4882a593Smuzhiyun		};
199*4882a593Smuzhiyun	};
200*4882a593Smuzhiyun
201*4882a593Smuzhiyun	smem {
202*4882a593Smuzhiyun		compatible = "qcom,smem";
203*4882a593Smuzhiyun		memory-region = <&smem_mem>;
204*4882a593Smuzhiyun		qcom,rpm-msg-ram = <&rpm_msg_ram>;
205*4882a593Smuzhiyun		hwlocks = <&tcsr_mutex 3>;
206*4882a593Smuzhiyun	};
207*4882a593Smuzhiyun
208*4882a593Smuzhiyun	soc: soc {
209*4882a593Smuzhiyun
210*4882a593Smuzhiyun		#address-cells = <1>;
211*4882a593Smuzhiyun		#size-cells = <1>;
212*4882a593Smuzhiyun		ranges = <0 0 0 0xffffffff>;
213*4882a593Smuzhiyun		compatible = "simple-bus";
214*4882a593Smuzhiyun
215*4882a593Smuzhiyun		intc: interrupt-controller@f9000000 {
216*4882a593Smuzhiyun			compatible = "qcom,msm-qgic2";
217*4882a593Smuzhiyun			interrupt-controller;
218*4882a593Smuzhiyun			#interrupt-cells = <3>;
219*4882a593Smuzhiyun			reg = <0xf9000000 0x1000>,
220*4882a593Smuzhiyun			      <0xf9002000 0x1000>;
221*4882a593Smuzhiyun		};
222*4882a593Smuzhiyun
223*4882a593Smuzhiyun		apcs: mailbox@f900d000 {
224*4882a593Smuzhiyun			compatible = "qcom,msm8994-apcs-kpss-global", "syscon";
225*4882a593Smuzhiyun			reg = <0xf900d000 0x2000>;
226*4882a593Smuzhiyun			#mbox-cells = <1>;
227*4882a593Smuzhiyun		};
228*4882a593Smuzhiyun
229*4882a593Smuzhiyun		timer@f9020000 {
230*4882a593Smuzhiyun			#address-cells = <1>;
231*4882a593Smuzhiyun			#size-cells = <1>;
232*4882a593Smuzhiyun			ranges;
233*4882a593Smuzhiyun			compatible = "arm,armv7-timer-mem";
234*4882a593Smuzhiyun			reg = <0xf9020000 0x1000>;
235*4882a593Smuzhiyun
236*4882a593Smuzhiyun			frame@f9021000 {
237*4882a593Smuzhiyun				frame-number = <0>;
238*4882a593Smuzhiyun				interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>,
239*4882a593Smuzhiyun					     <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
240*4882a593Smuzhiyun				reg = <0xf9021000 0x1000>,
241*4882a593Smuzhiyun				      <0xf9022000 0x1000>;
242*4882a593Smuzhiyun			};
243*4882a593Smuzhiyun
244*4882a593Smuzhiyun			frame@f9023000 {
245*4882a593Smuzhiyun				frame-number = <1>;
246*4882a593Smuzhiyun				interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
247*4882a593Smuzhiyun				reg = <0xf9023000 0x1000>;
248*4882a593Smuzhiyun				status = "disabled";
249*4882a593Smuzhiyun			};
250*4882a593Smuzhiyun
251*4882a593Smuzhiyun			frame@f9024000 {
252*4882a593Smuzhiyun				frame-number = <2>;
253*4882a593Smuzhiyun				interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
254*4882a593Smuzhiyun				reg = <0xf9024000 0x1000>;
255*4882a593Smuzhiyun				status = "disabled";
256*4882a593Smuzhiyun			};
257*4882a593Smuzhiyun
258*4882a593Smuzhiyun			frame@f9025000 {
259*4882a593Smuzhiyun				frame-number = <3>;
260*4882a593Smuzhiyun				interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
261*4882a593Smuzhiyun				reg = <0xf9025000 0x1000>;
262*4882a593Smuzhiyun				status = "disabled";
263*4882a593Smuzhiyun			};
264*4882a593Smuzhiyun
265*4882a593Smuzhiyun			frame@f9026000 {
266*4882a593Smuzhiyun				frame-number = <4>;
267*4882a593Smuzhiyun				interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
268*4882a593Smuzhiyun				reg = <0xf9026000 0x1000>;
269*4882a593Smuzhiyun				status = "disabled";
270*4882a593Smuzhiyun			};
271*4882a593Smuzhiyun
272*4882a593Smuzhiyun			frame@f9027000 {
273*4882a593Smuzhiyun				frame-number = <5>;
274*4882a593Smuzhiyun				interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
275*4882a593Smuzhiyun				reg = <0xf9027000 0x1000>;
276*4882a593Smuzhiyun				status = "disabled";
277*4882a593Smuzhiyun			};
278*4882a593Smuzhiyun
279*4882a593Smuzhiyun			frame@f9028000 {
280*4882a593Smuzhiyun				frame-number = <6>;
281*4882a593Smuzhiyun				interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
282*4882a593Smuzhiyun				reg = <0xf9028000 0x1000>;
283*4882a593Smuzhiyun				status = "disabled";
284*4882a593Smuzhiyun			};
285*4882a593Smuzhiyun		};
286*4882a593Smuzhiyun
287*4882a593Smuzhiyun		sdhc1: sdhci@f9824900 {
288*4882a593Smuzhiyun			compatible = "qcom,sdhci-msm-v4";
289*4882a593Smuzhiyun			reg = <0xf9824900 0x1a0>, <0xf9824000 0x800>;
290*4882a593Smuzhiyun			reg-names = "hc_mem", "core_mem";
291*4882a593Smuzhiyun
292*4882a593Smuzhiyun			interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>,
293*4882a593Smuzhiyun				     <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>;
294*4882a593Smuzhiyun			interrupt-names = "hc_irq", "pwr_irq";
295*4882a593Smuzhiyun
296*4882a593Smuzhiyun			clocks = <&gcc GCC_SDCC1_APPS_CLK>,
297*4882a593Smuzhiyun			         <&gcc GCC_SDCC1_AHB_CLK>,
298*4882a593Smuzhiyun				 <&xo_board>;
299*4882a593Smuzhiyun			clock-names = "core", "iface", "xo";
300*4882a593Smuzhiyun
301*4882a593Smuzhiyun			pinctrl-names = "default", "sleep";
302*4882a593Smuzhiyun			pinctrl-0 = <&sdc1_clk_on &sdc1_cmd_on &sdc1_data_on &sdc1_rclk_on>;
303*4882a593Smuzhiyun			pinctrl-1 = <&sdc1_clk_off &sdc1_cmd_off &sdc1_data_off &sdc1_rclk_off>;
304*4882a593Smuzhiyun
305*4882a593Smuzhiyun			bus-width = <8>;
306*4882a593Smuzhiyun			non-removable;
307*4882a593Smuzhiyun			status = "disabled";
308*4882a593Smuzhiyun		};
309*4882a593Smuzhiyun
310*4882a593Smuzhiyun		blsp1_dma: dma@f9904000 {
311*4882a593Smuzhiyun			compatible = "qcom,bam-v1.7.0";
312*4882a593Smuzhiyun			reg = <0xf9904000 0x19000>;
313*4882a593Smuzhiyun			interrupts = <GIC_SPI 238 IRQ_TYPE_LEVEL_HIGH>;
314*4882a593Smuzhiyun			clocks = <&gcc GCC_BLSP1_AHB_CLK>;
315*4882a593Smuzhiyun			clock-names = "bam_clk";
316*4882a593Smuzhiyun			#dma-cells = <1>;
317*4882a593Smuzhiyun			qcom,ee = <0>;
318*4882a593Smuzhiyun			qcom,controlled-remotely;
319*4882a593Smuzhiyun			num-channels = <24>;
320*4882a593Smuzhiyun			qcom,num-ees = <4>;
321*4882a593Smuzhiyun		};
322*4882a593Smuzhiyun
323*4882a593Smuzhiyun		blsp1_uart2: serial@f991e000 {
324*4882a593Smuzhiyun			compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
325*4882a593Smuzhiyun			reg = <0xf991e000 0x1000>;
326*4882a593Smuzhiyun			interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
327*4882a593Smuzhiyun			clock-names = "core", "iface";
328*4882a593Smuzhiyun			clocks = <&gcc GCC_BLSP1_UART2_APPS_CLK>,
329*4882a593Smuzhiyun				 <&gcc GCC_BLSP1_AHB_CLK>;
330*4882a593Smuzhiyun			pinctrl-names = "default", "sleep";
331*4882a593Smuzhiyun			pinctrl-0 = <&blsp1_uart2_default>;
332*4882a593Smuzhiyun			pinctrl-1 = <&blsp1_uart2_sleep>;
333*4882a593Smuzhiyun			status = "disabled";
334*4882a593Smuzhiyun		};
335*4882a593Smuzhiyun
336*4882a593Smuzhiyun		blsp_i2c1: i2c@f9923000 {
337*4882a593Smuzhiyun			compatible = "qcom,i2c-qup-v2.2.1";
338*4882a593Smuzhiyun			reg = <0xf9923000 0x500>;
339*4882a593Smuzhiyun			interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
340*4882a593Smuzhiyun			clocks = <&gcc GCC_BLSP1_AHB_CLK>,
341*4882a593Smuzhiyun						<&gcc GCC_BLSP1_QUP1_I2C_APPS_CLK>;
342*4882a593Smuzhiyun			clock-names = "iface", "core";
343*4882a593Smuzhiyun			clock-frequency = <400000>;
344*4882a593Smuzhiyun			pinctrl-names = "default", "sleep";
345*4882a593Smuzhiyun			pinctrl-0 = <&i2c1_default>;
346*4882a593Smuzhiyun			pinctrl-1 = <&i2c1_sleep>;
347*4882a593Smuzhiyun			#address-cells = <1>;
348*4882a593Smuzhiyun			#size-cells = <0>;
349*4882a593Smuzhiyun			status = "disabled";
350*4882a593Smuzhiyun		};
351*4882a593Smuzhiyun
352*4882a593Smuzhiyun		blsp_spi0: spi@f9923000 {
353*4882a593Smuzhiyun			compatible = "qcom,spi-qup-v2.2.1";
354*4882a593Smuzhiyun			reg = <0xf9923000 0x500>;
355*4882a593Smuzhiyun			interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
356*4882a593Smuzhiyun			clocks = <&gcc GCC_BLSP1_QUP1_SPI_APPS_CLK>,
357*4882a593Smuzhiyun				 <&gcc GCC_BLSP1_AHB_CLK>;
358*4882a593Smuzhiyun			clock-names = "core", "iface";
359*4882a593Smuzhiyun			spi-max-frequency = <19200000>;
360*4882a593Smuzhiyun			dmas = <&blsp1_dma 12>, <&blsp1_dma 13>;
361*4882a593Smuzhiyun			dma-names = "tx", "rx";
362*4882a593Smuzhiyun			pinctrl-names = "default", "sleep";
363*4882a593Smuzhiyun			pinctrl-0 = <&blsp1_spi0_default>;
364*4882a593Smuzhiyun			pinctrl-1 = <&blsp1_spi0_sleep>;
365*4882a593Smuzhiyun			#address-cells = <1>;
366*4882a593Smuzhiyun			#size-cells = <0>;
367*4882a593Smuzhiyun			status = "disabled";
368*4882a593Smuzhiyun		};
369*4882a593Smuzhiyun
370*4882a593Smuzhiyun		blsp_i2c2: i2c@f9924000 {
371*4882a593Smuzhiyun			compatible = "qcom,i2c-qup-v2.2.1";
372*4882a593Smuzhiyun			reg = <0xf9924000 0x500>;
373*4882a593Smuzhiyun			interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
374*4882a593Smuzhiyun			clocks = <&gcc GCC_BLSP1_AHB_CLK>,
375*4882a593Smuzhiyun						<&gcc GCC_BLSP1_QUP2_I2C_APPS_CLK>;
376*4882a593Smuzhiyun			clock-names = "iface", "core";
377*4882a593Smuzhiyun			clock-frequency = <355000>;
378*4882a593Smuzhiyun			dmas = <&blsp1_dma 14>, <&blsp1_dma 15>;
379*4882a593Smuzhiyun			dma-names = "tx", "rx";
380*4882a593Smuzhiyun			pinctrl-names = "default", "sleep";
381*4882a593Smuzhiyun			pinctrl-0 = <&i2c2_default>;
382*4882a593Smuzhiyun			pinctrl-1 = <&i2c2_sleep>;
383*4882a593Smuzhiyun			#address-cells = <1>;
384*4882a593Smuzhiyun			#size-cells = <0>;
385*4882a593Smuzhiyun			status = "disabled";
386*4882a593Smuzhiyun		};
387*4882a593Smuzhiyun
388*4882a593Smuzhiyun		/* I2C3 doesn't exist */
389*4882a593Smuzhiyun
390*4882a593Smuzhiyun		blsp_i2c4: i2c@f9926000 {
391*4882a593Smuzhiyun			compatible = "qcom,i2c-qup-v2.2.1";
392*4882a593Smuzhiyun			reg = <0xf9926000 0x500>;
393*4882a593Smuzhiyun			interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
394*4882a593Smuzhiyun			clocks = <&gcc GCC_BLSP1_AHB_CLK>,
395*4882a593Smuzhiyun						<&gcc GCC_BLSP1_QUP4_I2C_APPS_CLK>;
396*4882a593Smuzhiyun			clock-names = "iface", "core";
397*4882a593Smuzhiyun			clock-frequency = <355000>;
398*4882a593Smuzhiyun			pinctrl-names = "default", "sleep";
399*4882a593Smuzhiyun			pinctrl-0 = <&i2c4_default>;
400*4882a593Smuzhiyun			pinctrl-1 = <&i2c4_sleep>;
401*4882a593Smuzhiyun			#address-cells = <1>;
402*4882a593Smuzhiyun			#size-cells = <0>;
403*4882a593Smuzhiyun			status = "disabled";
404*4882a593Smuzhiyun		};
405*4882a593Smuzhiyun
406*4882a593Smuzhiyun		blsp2_dma: dma@f9944000 {
407*4882a593Smuzhiyun			compatible = "qcom,bam-v1.7.0";
408*4882a593Smuzhiyun			reg = <0xf9944000 0x19000>;
409*4882a593Smuzhiyun			interrupts = <GIC_SPI 239 IRQ_TYPE_LEVEL_HIGH>;
410*4882a593Smuzhiyun			clocks = <&gcc GCC_BLSP2_AHB_CLK>;
411*4882a593Smuzhiyun			clock-names = "bam_clk";
412*4882a593Smuzhiyun			#dma-cells = <1>;
413*4882a593Smuzhiyun			qcom,ee = <0>;
414*4882a593Smuzhiyun			qcom,controlled-remotely;
415*4882a593Smuzhiyun			num-channels = <24>;
416*4882a593Smuzhiyun			qcom,num-ees = <4>;
417*4882a593Smuzhiyun		};
418*4882a593Smuzhiyun
419*4882a593Smuzhiyun		/* According to downstream kernels, i2c6
420*4882a593Smuzhiyun		 * comes before i2c5 address-wise...
421*4882a593Smuzhiyun		 */
422*4882a593Smuzhiyun
423*4882a593Smuzhiyun		blsp_i2c6: i2c@f9928000 {
424*4882a593Smuzhiyun			compatible = "qcom,i2c-qup-v2.2.1";
425*4882a593Smuzhiyun			reg = <0xf9928000 0x500>;
426*4882a593Smuzhiyun			interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
427*4882a593Smuzhiyun			clocks = <&gcc GCC_BLSP1_AHB_CLK>,
428*4882a593Smuzhiyun						<&gcc GCC_BLSP1_QUP6_I2C_APPS_CLK>;
429*4882a593Smuzhiyun			clock-names = "iface", "core";
430*4882a593Smuzhiyun			clock-frequency = <355000>;
431*4882a593Smuzhiyun			dmas = <&blsp1_dma 22>, <&blsp1_dma 23>;
432*4882a593Smuzhiyun			dma-names = "tx", "rx";
433*4882a593Smuzhiyun			pinctrl-names = "default", "sleep";
434*4882a593Smuzhiyun			pinctrl-0 = <&i2c6_default>;
435*4882a593Smuzhiyun			pinctrl-1 = <&i2c6_sleep>;
436*4882a593Smuzhiyun			#address-cells = <1>;
437*4882a593Smuzhiyun			#size-cells = <0>;
438*4882a593Smuzhiyun			status = "disabled";
439*4882a593Smuzhiyun		};
440*4882a593Smuzhiyun
441*4882a593Smuzhiyun		blsp2_uart2: serial@f995e000 {
442*4882a593Smuzhiyun			compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
443*4882a593Smuzhiyun			reg = <0xf995e000 0x1000>;
444*4882a593Smuzhiyun			interrupts = <GIC_SPI 146 IRQ_TYPE_EDGE_FALLING>;
445*4882a593Smuzhiyun			clock-names = "core", "iface";
446*4882a593Smuzhiyun			clocks = <&gcc GCC_BLSP2_UART2_APPS_CLK>,
447*4882a593Smuzhiyun					<&gcc GCC_BLSP2_AHB_CLK>;
448*4882a593Smuzhiyun			dmas = <&blsp2_dma 2>, <&blsp2_dma 3>;
449*4882a593Smuzhiyun			dma-names = "tx", "rx";
450*4882a593Smuzhiyun			pinctrl-names = "default", "sleep";
451*4882a593Smuzhiyun			pinctrl-0 = <&blsp2_uart2_default>;
452*4882a593Smuzhiyun			pinctrl-1 = <&blsp2_uart2_sleep>;
453*4882a593Smuzhiyun			status = "disabled";
454*4882a593Smuzhiyun		};
455*4882a593Smuzhiyun
456*4882a593Smuzhiyun		blsp_i2c5: i2c@f9967000 {
457*4882a593Smuzhiyun			compatible = "qcom,i2c-qup-v2.2.1";
458*4882a593Smuzhiyun			reg = <0xf9967000 0x500>;
459*4882a593Smuzhiyun			interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>;
460*4882a593Smuzhiyun			clocks = <&gcc GCC_BLSP2_AHB_CLK>,
461*4882a593Smuzhiyun						<&gcc GCC_BLSP2_QUP5_I2C_APPS_CLK>;
462*4882a593Smuzhiyun			clock-names = "iface", "core";
463*4882a593Smuzhiyun			clock-frequency = <355000>;
464*4882a593Smuzhiyun			dmas = <&blsp2_dma 20>, <&blsp2_dma 21>;
465*4882a593Smuzhiyun			dma-names = "tx", "rx";
466*4882a593Smuzhiyun			pinctrl-names = "default", "sleep";
467*4882a593Smuzhiyun			pinctrl-0 = <&i2c5_default>;
468*4882a593Smuzhiyun			pinctrl-1 = <&i2c5_sleep>;
469*4882a593Smuzhiyun			#address-cells = <1>;
470*4882a593Smuzhiyun			#size-cells = <0>;
471*4882a593Smuzhiyun			status = "disabled";
472*4882a593Smuzhiyun		};
473*4882a593Smuzhiyun
474*4882a593Smuzhiyun		gcc: clock-controller@fc400000 {
475*4882a593Smuzhiyun			compatible = "qcom,gcc-msm8994";
476*4882a593Smuzhiyun			#clock-cells = <1>;
477*4882a593Smuzhiyun			#reset-cells = <1>;
478*4882a593Smuzhiyun			#power-domain-cells = <1>;
479*4882a593Smuzhiyun			reg = <0xfc400000 0x2000>;
480*4882a593Smuzhiyun		};
481*4882a593Smuzhiyun
482*4882a593Smuzhiyun		rpm_msg_ram: memory@fc428000 {
483*4882a593Smuzhiyun			compatible = "qcom,rpm-msg-ram";
484*4882a593Smuzhiyun			reg = <0xfc428000 0x4000>;
485*4882a593Smuzhiyun		};
486*4882a593Smuzhiyun
487*4882a593Smuzhiyun		restart@fc4ab000 {
488*4882a593Smuzhiyun			compatible = "qcom,pshold";
489*4882a593Smuzhiyun			reg = <0xfc4ab000 0x4>;
490*4882a593Smuzhiyun		};
491*4882a593Smuzhiyun
492*4882a593Smuzhiyun		spmi_bus: spmi@fc4c0000 {
493*4882a593Smuzhiyun			compatible = "qcom,spmi-pmic-arb";
494*4882a593Smuzhiyun			reg = <0xfc4cf000 0x1000>,
495*4882a593Smuzhiyun			      <0xfc4cb000 0x1000>,
496*4882a593Smuzhiyun			      <0xfc4ca000 0x1000>;
497*4882a593Smuzhiyun			reg-names = "core", "intr", "cnfg";
498*4882a593Smuzhiyun			interrupt-names = "periph_irq";
499*4882a593Smuzhiyun			interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>;
500*4882a593Smuzhiyun			qcom,ee = <0>;
501*4882a593Smuzhiyun			qcom,channel = <0>;
502*4882a593Smuzhiyun			#address-cells = <2>;
503*4882a593Smuzhiyun			#size-cells = <0>;
504*4882a593Smuzhiyun			interrupt-controller;
505*4882a593Smuzhiyun			#interrupt-cells = <4>;
506*4882a593Smuzhiyun		};
507*4882a593Smuzhiyun
508*4882a593Smuzhiyun		tcsr_mutex_regs: syscon@fd484000 {
509*4882a593Smuzhiyun			compatible = "syscon";
510*4882a593Smuzhiyun			reg = <0xfd484000 0x2000>;
511*4882a593Smuzhiyun		};
512*4882a593Smuzhiyun
513*4882a593Smuzhiyun		tlmm: pinctrl@fd510000 {
514*4882a593Smuzhiyun			compatible = "qcom,msm8994-pinctrl";
515*4882a593Smuzhiyun			reg = <0xfd510000 0x4000>;
516*4882a593Smuzhiyun			interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
517*4882a593Smuzhiyun			gpio-controller;
518*4882a593Smuzhiyun			gpio-ranges = <&tlmm 0 0 146>;
519*4882a593Smuzhiyun			#gpio-cells = <2>;
520*4882a593Smuzhiyun			interrupt-controller;
521*4882a593Smuzhiyun			#interrupt-cells = <2>;
522*4882a593Smuzhiyun
523*4882a593Smuzhiyun			blsp1_uart2_default: blsp1-uart2-default {
524*4882a593Smuzhiyun				function = "blsp_uart2";
525*4882a593Smuzhiyun				pins = "gpio4", "gpio5";
526*4882a593Smuzhiyun				drive-strength = <16>;
527*4882a593Smuzhiyun				bias-disable;
528*4882a593Smuzhiyun			};
529*4882a593Smuzhiyun
530*4882a593Smuzhiyun			blsp1_uart2_sleep: blsp1-uart2-sleep {
531*4882a593Smuzhiyun				function = "gpio";
532*4882a593Smuzhiyun				pins = "gpio4", "gpio5";
533*4882a593Smuzhiyun				drive-strength = <2>;
534*4882a593Smuzhiyun				bias-pull-down;
535*4882a593Smuzhiyun			};
536*4882a593Smuzhiyun
537*4882a593Smuzhiyun			blsp2_uart2_default: blsp2-uart2-default {
538*4882a593Smuzhiyun				function = "blsp_uart8";
539*4882a593Smuzhiyun				pins = "gpio45", "gpio46";
540*4882a593Smuzhiyun				drive-strength = <2>;
541*4882a593Smuzhiyun				bias-disable;
542*4882a593Smuzhiyun			};
543*4882a593Smuzhiyun
544*4882a593Smuzhiyun			blsp2_uart2_sleep: blsp2-uart2-sleep {
545*4882a593Smuzhiyun				function = "gpio";
546*4882a593Smuzhiyun				pins = "gpio45", "gpio46";
547*4882a593Smuzhiyun				drive-strength = <2>;
548*4882a593Smuzhiyun				bias-pull-down;
549*4882a593Smuzhiyun			};
550*4882a593Smuzhiyun
551*4882a593Smuzhiyun			i2c1_default: i2c1-default {
552*4882a593Smuzhiyun				function = "blsp_i2c1";
553*4882a593Smuzhiyun				pins = "gpio2", "gpio3";
554*4882a593Smuzhiyun				drive-strength = <2>;
555*4882a593Smuzhiyun				bias-disable;
556*4882a593Smuzhiyun			};
557*4882a593Smuzhiyun
558*4882a593Smuzhiyun			i2c1_sleep: i2c1-sleep {
559*4882a593Smuzhiyun				function = "gpio";
560*4882a593Smuzhiyun				pins = "gpio2", "gpio3";
561*4882a593Smuzhiyun				drive-strength = <2>;
562*4882a593Smuzhiyun				bias-disable;
563*4882a593Smuzhiyun			};
564*4882a593Smuzhiyun
565*4882a593Smuzhiyun			i2c2_default: i2c2-default {
566*4882a593Smuzhiyun				function = "blsp_i2c2";
567*4882a593Smuzhiyun				pins = "gpio6", "gpio7";
568*4882a593Smuzhiyun				drive-strength = <2>;
569*4882a593Smuzhiyun				bias-disable;
570*4882a593Smuzhiyun			};
571*4882a593Smuzhiyun
572*4882a593Smuzhiyun			i2c2_sleep: i2c2-sleep {
573*4882a593Smuzhiyun				function = "gpio";
574*4882a593Smuzhiyun				pins = "gpio6", "gpio7";
575*4882a593Smuzhiyun				drive-strength = <2>;
576*4882a593Smuzhiyun				bias-disable;
577*4882a593Smuzhiyun			};
578*4882a593Smuzhiyun
579*4882a593Smuzhiyun			i2c4_default: i2c4-default {
580*4882a593Smuzhiyun				function = "blsp_i2c4";
581*4882a593Smuzhiyun				pins = "gpio19", "gpio20";
582*4882a593Smuzhiyun				drive-strength = <2>;
583*4882a593Smuzhiyun				bias-disable;
584*4882a593Smuzhiyun			};
585*4882a593Smuzhiyun
586*4882a593Smuzhiyun			i2c4_sleep: i2c4-sleep {
587*4882a593Smuzhiyun				function = "gpio";
588*4882a593Smuzhiyun				pins = "gpio19", "gpio20";
589*4882a593Smuzhiyun				drive-strength = <2>;
590*4882a593Smuzhiyun				bias-pull-down;
591*4882a593Smuzhiyun				input-enable;
592*4882a593Smuzhiyun			};
593*4882a593Smuzhiyun
594*4882a593Smuzhiyun			i2c5_default: i2c5-default {
595*4882a593Smuzhiyun				function = "blsp_i2c5";
596*4882a593Smuzhiyun				pins = "gpio23", "gpio24";
597*4882a593Smuzhiyun				drive-strength = <2>;
598*4882a593Smuzhiyun				bias-disable;
599*4882a593Smuzhiyun			};
600*4882a593Smuzhiyun
601*4882a593Smuzhiyun			i2c5_sleep: i2c5-sleep {
602*4882a593Smuzhiyun				function = "gpio";
603*4882a593Smuzhiyun				pins = "gpio23", "gpio24";
604*4882a593Smuzhiyun				drive-strength = <2>;
605*4882a593Smuzhiyun				bias-disable;
606*4882a593Smuzhiyun			};
607*4882a593Smuzhiyun
608*4882a593Smuzhiyun			i2c6_default: i2c6-default {
609*4882a593Smuzhiyun				function = "blsp_i2c6";
610*4882a593Smuzhiyun				pins = "gpio28", "gpio27";
611*4882a593Smuzhiyun				drive-strength = <2>;
612*4882a593Smuzhiyun				bias-disable;
613*4882a593Smuzhiyun			};
614*4882a593Smuzhiyun
615*4882a593Smuzhiyun			i2c6_sleep: i2c6-sleep {
616*4882a593Smuzhiyun				function = "gpio";
617*4882a593Smuzhiyun				pins = "gpio28", "gpio27";
618*4882a593Smuzhiyun				drive-strength = <2>;
619*4882a593Smuzhiyun				bias-disable;
620*4882a593Smuzhiyun			};
621*4882a593Smuzhiyun
622*4882a593Smuzhiyun			blsp1_spi0_default: blsp1-spi0-default {
623*4882a593Smuzhiyun				default {
624*4882a593Smuzhiyun					function = "blsp_spi1";
625*4882a593Smuzhiyun					pins = "gpio0", "gpio1", "gpio3";
626*4882a593Smuzhiyun					drive-strength = <10>;
627*4882a593Smuzhiyun					bias-pull-down;
628*4882a593Smuzhiyun				};
629*4882a593Smuzhiyun				cs {
630*4882a593Smuzhiyun					function = "gpio";
631*4882a593Smuzhiyun					pins = "gpio8";
632*4882a593Smuzhiyun					drive-strength = <2>;
633*4882a593Smuzhiyun					bias-disable;
634*4882a593Smuzhiyun				};
635*4882a593Smuzhiyun			};
636*4882a593Smuzhiyun
637*4882a593Smuzhiyun			blsp1_spi0_sleep: blsp1-spi0-sleep {
638*4882a593Smuzhiyun				pins = "gpio0", "gpio1", "gpio3";
639*4882a593Smuzhiyun				drive-strength = <2>;
640*4882a593Smuzhiyun				bias-disable;
641*4882a593Smuzhiyun			};
642*4882a593Smuzhiyun
643*4882a593Smuzhiyun			sdc1_clk_on: clk-on {
644*4882a593Smuzhiyun				pins = "sdc1_clk";
645*4882a593Smuzhiyun				bias-disable;
646*4882a593Smuzhiyun				drive-strength = <16>;
647*4882a593Smuzhiyun			};
648*4882a593Smuzhiyun
649*4882a593Smuzhiyun			sdc1_clk_off: clk-off {
650*4882a593Smuzhiyun				pins = "sdc1_clk";
651*4882a593Smuzhiyun				bias-disable;
652*4882a593Smuzhiyun				drive-strength = <2>;
653*4882a593Smuzhiyun			};
654*4882a593Smuzhiyun
655*4882a593Smuzhiyun			sdc1_cmd_on: cmd-on {
656*4882a593Smuzhiyun				pins = "sdc1_cmd";
657*4882a593Smuzhiyun				bias-pull-up;
658*4882a593Smuzhiyun				drive-strength = <8>;
659*4882a593Smuzhiyun			};
660*4882a593Smuzhiyun
661*4882a593Smuzhiyun			sdc1_cmd_off: cmd-off {
662*4882a593Smuzhiyun				pins = "sdc1_cmd";
663*4882a593Smuzhiyun				bias-pull-up;
664*4882a593Smuzhiyun				drive-strength = <2>;
665*4882a593Smuzhiyun			};
666*4882a593Smuzhiyun
667*4882a593Smuzhiyun			sdc1_data_on: data-on {
668*4882a593Smuzhiyun				pins = "sdc1_data";
669*4882a593Smuzhiyun				bias-pull-up;
670*4882a593Smuzhiyun				drive-strength = <8>;
671*4882a593Smuzhiyun			};
672*4882a593Smuzhiyun
673*4882a593Smuzhiyun			sdc1_data_off: data-off {
674*4882a593Smuzhiyun				pins = "sdc1_data";
675*4882a593Smuzhiyun				bias-pull-up;
676*4882a593Smuzhiyun				drive-strength = <2>;
677*4882a593Smuzhiyun			};
678*4882a593Smuzhiyun
679*4882a593Smuzhiyun			sdc1_rclk_on: rclk-on {
680*4882a593Smuzhiyun				pins = "sdc1_rclk";
681*4882a593Smuzhiyun				bias-pull-down;
682*4882a593Smuzhiyun			};
683*4882a593Smuzhiyun
684*4882a593Smuzhiyun			sdc1_rclk_off: rclk-off {
685*4882a593Smuzhiyun				pins = "sdc1_rclk";
686*4882a593Smuzhiyun				bias-pull-down;
687*4882a593Smuzhiyun			};
688*4882a593Smuzhiyun		};
689*4882a593Smuzhiyun	};
690*4882a593Smuzhiyun
691*4882a593Smuzhiyun	tcsr_mutex: hwlock {
692*4882a593Smuzhiyun		compatible = "qcom,tcsr-mutex";
693*4882a593Smuzhiyun		syscon = <&tcsr_mutex_regs 0 0x80>;
694*4882a593Smuzhiyun		#hwlock-cells = <1>;
695*4882a593Smuzhiyun	};
696*4882a593Smuzhiyun
697*4882a593Smuzhiyun	timer {
698*4882a593Smuzhiyun		compatible = "arm,armv8-timer";
699*4882a593Smuzhiyun		interrupts = <GIC_PPI 2 0xff08>,
700*4882a593Smuzhiyun			     <GIC_PPI 3 0xff08>,
701*4882a593Smuzhiyun			     <GIC_PPI 4 0xff08>,
702*4882a593Smuzhiyun			     <GIC_PPI 1 0xff08>;
703*4882a593Smuzhiyun	};
704*4882a593Smuzhiyun
705*4882a593Smuzhiyun	vreg_vph_pwr: vreg-vph-pwr {
706*4882a593Smuzhiyun		compatible = "regulator-fixed";
707*4882a593Smuzhiyun		regulator-name = "vph-pwr";
708*4882a593Smuzhiyun
709*4882a593Smuzhiyun		regulator-min-microvolt = <3600000>;
710*4882a593Smuzhiyun		regulator-max-microvolt = <3600000>;
711*4882a593Smuzhiyun
712*4882a593Smuzhiyun		regulator-always-on;
713*4882a593Smuzhiyun	};
714*4882a593Smuzhiyun};
715*4882a593Smuzhiyun
716