xref: /OK3568_Linux_fs/kernel/arch/arm/boot/dts/qcom-apq8064.dtsi (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun// SPDX-License-Identifier: GPL-2.0
2*4882a593Smuzhiyun/dts-v1/;
3*4882a593Smuzhiyun
4*4882a593Smuzhiyun#include <dt-bindings/clock/qcom,gcc-msm8960.h>
5*4882a593Smuzhiyun#include <dt-bindings/reset/qcom,gcc-msm8960.h>
6*4882a593Smuzhiyun#include <dt-bindings/clock/qcom,mmcc-msm8960.h>
7*4882a593Smuzhiyun#include <dt-bindings/clock/qcom,rpmcc.h>
8*4882a593Smuzhiyun#include <dt-bindings/soc/qcom,gsbi.h>
9*4882a593Smuzhiyun#include <dt-bindings/interrupt-controller/irq.h>
10*4882a593Smuzhiyun#include <dt-bindings/interrupt-controller/arm-gic.h>
11*4882a593Smuzhiyun/ {
12*4882a593Smuzhiyun	#address-cells = <1>;
13*4882a593Smuzhiyun	#size-cells = <1>;
14*4882a593Smuzhiyun	model = "Qualcomm APQ8064";
15*4882a593Smuzhiyun	compatible = "qcom,apq8064";
16*4882a593Smuzhiyun	interrupt-parent = <&intc>;
17*4882a593Smuzhiyun
18*4882a593Smuzhiyun	reserved-memory {
19*4882a593Smuzhiyun		#address-cells = <1>;
20*4882a593Smuzhiyun		#size-cells = <1>;
21*4882a593Smuzhiyun		ranges;
22*4882a593Smuzhiyun
23*4882a593Smuzhiyun		smem_region: smem@80000000 {
24*4882a593Smuzhiyun			reg = <0x80000000 0x200000>;
25*4882a593Smuzhiyun			no-map;
26*4882a593Smuzhiyun		};
27*4882a593Smuzhiyun
28*4882a593Smuzhiyun		wcnss_mem: wcnss@8f000000 {
29*4882a593Smuzhiyun			reg = <0x8f000000 0x700000>;
30*4882a593Smuzhiyun			no-map;
31*4882a593Smuzhiyun		};
32*4882a593Smuzhiyun	};
33*4882a593Smuzhiyun
34*4882a593Smuzhiyun	cpus {
35*4882a593Smuzhiyun		#address-cells = <1>;
36*4882a593Smuzhiyun		#size-cells = <0>;
37*4882a593Smuzhiyun
38*4882a593Smuzhiyun		CPU0: cpu@0 {
39*4882a593Smuzhiyun			compatible = "qcom,krait";
40*4882a593Smuzhiyun			enable-method = "qcom,kpss-acc-v1";
41*4882a593Smuzhiyun			device_type = "cpu";
42*4882a593Smuzhiyun			reg = <0>;
43*4882a593Smuzhiyun			next-level-cache = <&L2>;
44*4882a593Smuzhiyun			qcom,acc = <&acc0>;
45*4882a593Smuzhiyun			qcom,saw = <&saw0>;
46*4882a593Smuzhiyun			cpu-idle-states = <&CPU_SPC>;
47*4882a593Smuzhiyun		};
48*4882a593Smuzhiyun
49*4882a593Smuzhiyun		CPU1: cpu@1 {
50*4882a593Smuzhiyun			compatible = "qcom,krait";
51*4882a593Smuzhiyun			enable-method = "qcom,kpss-acc-v1";
52*4882a593Smuzhiyun			device_type = "cpu";
53*4882a593Smuzhiyun			reg = <1>;
54*4882a593Smuzhiyun			next-level-cache = <&L2>;
55*4882a593Smuzhiyun			qcom,acc = <&acc1>;
56*4882a593Smuzhiyun			qcom,saw = <&saw1>;
57*4882a593Smuzhiyun			cpu-idle-states = <&CPU_SPC>;
58*4882a593Smuzhiyun		};
59*4882a593Smuzhiyun
60*4882a593Smuzhiyun		CPU2: cpu@2 {
61*4882a593Smuzhiyun			compatible = "qcom,krait";
62*4882a593Smuzhiyun			enable-method = "qcom,kpss-acc-v1";
63*4882a593Smuzhiyun			device_type = "cpu";
64*4882a593Smuzhiyun			reg = <2>;
65*4882a593Smuzhiyun			next-level-cache = <&L2>;
66*4882a593Smuzhiyun			qcom,acc = <&acc2>;
67*4882a593Smuzhiyun			qcom,saw = <&saw2>;
68*4882a593Smuzhiyun			cpu-idle-states = <&CPU_SPC>;
69*4882a593Smuzhiyun		};
70*4882a593Smuzhiyun
71*4882a593Smuzhiyun		CPU3: cpu@3 {
72*4882a593Smuzhiyun			compatible = "qcom,krait";
73*4882a593Smuzhiyun			enable-method = "qcom,kpss-acc-v1";
74*4882a593Smuzhiyun			device_type = "cpu";
75*4882a593Smuzhiyun			reg = <3>;
76*4882a593Smuzhiyun			next-level-cache = <&L2>;
77*4882a593Smuzhiyun			qcom,acc = <&acc3>;
78*4882a593Smuzhiyun			qcom,saw = <&saw3>;
79*4882a593Smuzhiyun			cpu-idle-states = <&CPU_SPC>;
80*4882a593Smuzhiyun		};
81*4882a593Smuzhiyun
82*4882a593Smuzhiyun		L2: l2-cache {
83*4882a593Smuzhiyun			compatible = "cache";
84*4882a593Smuzhiyun			cache-level = <2>;
85*4882a593Smuzhiyun		};
86*4882a593Smuzhiyun
87*4882a593Smuzhiyun		idle-states {
88*4882a593Smuzhiyun			CPU_SPC: spc {
89*4882a593Smuzhiyun				compatible = "qcom,idle-state-spc",
90*4882a593Smuzhiyun						"arm,idle-state";
91*4882a593Smuzhiyun				entry-latency-us = <400>;
92*4882a593Smuzhiyun				exit-latency-us = <900>;
93*4882a593Smuzhiyun				min-residency-us = <3000>;
94*4882a593Smuzhiyun			};
95*4882a593Smuzhiyun		};
96*4882a593Smuzhiyun	};
97*4882a593Smuzhiyun
98*4882a593Smuzhiyun	memory {
99*4882a593Smuzhiyun		device_type = "memory";
100*4882a593Smuzhiyun		reg = <0x0 0x0>;
101*4882a593Smuzhiyun	};
102*4882a593Smuzhiyun
103*4882a593Smuzhiyun	thermal-zones {
104*4882a593Smuzhiyun		cpu-thermal0 {
105*4882a593Smuzhiyun			polling-delay-passive = <250>;
106*4882a593Smuzhiyun			polling-delay = <1000>;
107*4882a593Smuzhiyun
108*4882a593Smuzhiyun			thermal-sensors = <&gcc 7>;
109*4882a593Smuzhiyun			coefficients = <1199 0>;
110*4882a593Smuzhiyun
111*4882a593Smuzhiyun			trips {
112*4882a593Smuzhiyun				cpu_alert0: trip0 {
113*4882a593Smuzhiyun					temperature = <75000>;
114*4882a593Smuzhiyun					hysteresis = <2000>;
115*4882a593Smuzhiyun					type = "passive";
116*4882a593Smuzhiyun				};
117*4882a593Smuzhiyun				cpu_crit0: trip1 {
118*4882a593Smuzhiyun					temperature = <110000>;
119*4882a593Smuzhiyun					hysteresis = <2000>;
120*4882a593Smuzhiyun					type = "critical";
121*4882a593Smuzhiyun				};
122*4882a593Smuzhiyun			};
123*4882a593Smuzhiyun		};
124*4882a593Smuzhiyun
125*4882a593Smuzhiyun		cpu-thermal1 {
126*4882a593Smuzhiyun			polling-delay-passive = <250>;
127*4882a593Smuzhiyun			polling-delay = <1000>;
128*4882a593Smuzhiyun
129*4882a593Smuzhiyun			thermal-sensors = <&gcc 8>;
130*4882a593Smuzhiyun			coefficients = <1132 0>;
131*4882a593Smuzhiyun
132*4882a593Smuzhiyun			trips {
133*4882a593Smuzhiyun				cpu_alert1: trip0 {
134*4882a593Smuzhiyun					temperature = <75000>;
135*4882a593Smuzhiyun					hysteresis = <2000>;
136*4882a593Smuzhiyun					type = "passive";
137*4882a593Smuzhiyun				};
138*4882a593Smuzhiyun				cpu_crit1: trip1 {
139*4882a593Smuzhiyun					temperature = <110000>;
140*4882a593Smuzhiyun					hysteresis = <2000>;
141*4882a593Smuzhiyun					type = "critical";
142*4882a593Smuzhiyun				};
143*4882a593Smuzhiyun			};
144*4882a593Smuzhiyun		};
145*4882a593Smuzhiyun
146*4882a593Smuzhiyun		cpu-thermal2 {
147*4882a593Smuzhiyun			polling-delay-passive = <250>;
148*4882a593Smuzhiyun			polling-delay = <1000>;
149*4882a593Smuzhiyun
150*4882a593Smuzhiyun			thermal-sensors = <&gcc 9>;
151*4882a593Smuzhiyun			coefficients = <1199 0>;
152*4882a593Smuzhiyun
153*4882a593Smuzhiyun			trips {
154*4882a593Smuzhiyun				cpu_alert2: trip0 {
155*4882a593Smuzhiyun					temperature = <75000>;
156*4882a593Smuzhiyun					hysteresis = <2000>;
157*4882a593Smuzhiyun					type = "passive";
158*4882a593Smuzhiyun				};
159*4882a593Smuzhiyun				cpu_crit2: trip1 {
160*4882a593Smuzhiyun					temperature = <110000>;
161*4882a593Smuzhiyun					hysteresis = <2000>;
162*4882a593Smuzhiyun					type = "critical";
163*4882a593Smuzhiyun				};
164*4882a593Smuzhiyun			};
165*4882a593Smuzhiyun		};
166*4882a593Smuzhiyun
167*4882a593Smuzhiyun		cpu-thermal3 {
168*4882a593Smuzhiyun			polling-delay-passive = <250>;
169*4882a593Smuzhiyun			polling-delay = <1000>;
170*4882a593Smuzhiyun
171*4882a593Smuzhiyun			thermal-sensors = <&gcc 10>;
172*4882a593Smuzhiyun			coefficients = <1132 0>;
173*4882a593Smuzhiyun
174*4882a593Smuzhiyun			trips {
175*4882a593Smuzhiyun				cpu_alert3: trip0 {
176*4882a593Smuzhiyun					temperature = <75000>;
177*4882a593Smuzhiyun					hysteresis = <2000>;
178*4882a593Smuzhiyun					type = "passive";
179*4882a593Smuzhiyun				};
180*4882a593Smuzhiyun				cpu_crit3: trip1 {
181*4882a593Smuzhiyun					temperature = <110000>;
182*4882a593Smuzhiyun					hysteresis = <2000>;
183*4882a593Smuzhiyun					type = "critical";
184*4882a593Smuzhiyun				};
185*4882a593Smuzhiyun			};
186*4882a593Smuzhiyun		};
187*4882a593Smuzhiyun	};
188*4882a593Smuzhiyun
189*4882a593Smuzhiyun	cpu-pmu {
190*4882a593Smuzhiyun		compatible = "qcom,krait-pmu";
191*4882a593Smuzhiyun		interrupts = <1 10 0x304>;
192*4882a593Smuzhiyun	};
193*4882a593Smuzhiyun
194*4882a593Smuzhiyun	clocks {
195*4882a593Smuzhiyun		cxo_board: cxo_board {
196*4882a593Smuzhiyun			compatible = "fixed-clock";
197*4882a593Smuzhiyun			#clock-cells = <0>;
198*4882a593Smuzhiyun			clock-frequency = <19200000>;
199*4882a593Smuzhiyun		};
200*4882a593Smuzhiyun
201*4882a593Smuzhiyun		pxo_board: pxo_board {
202*4882a593Smuzhiyun			compatible = "fixed-clock";
203*4882a593Smuzhiyun			#clock-cells = <0>;
204*4882a593Smuzhiyun			clock-frequency = <27000000>;
205*4882a593Smuzhiyun		};
206*4882a593Smuzhiyun
207*4882a593Smuzhiyun		sleep_clk: sleep_clk {
208*4882a593Smuzhiyun			compatible = "fixed-clock";
209*4882a593Smuzhiyun			#clock-cells = <0>;
210*4882a593Smuzhiyun			clock-frequency = <32768>;
211*4882a593Smuzhiyun		};
212*4882a593Smuzhiyun	};
213*4882a593Smuzhiyun
214*4882a593Smuzhiyun	sfpb_mutex: hwmutex {
215*4882a593Smuzhiyun		compatible = "qcom,sfpb-mutex";
216*4882a593Smuzhiyun		syscon = <&sfpb_wrapper_mutex 0x604 0x4>;
217*4882a593Smuzhiyun		#hwlock-cells = <1>;
218*4882a593Smuzhiyun	};
219*4882a593Smuzhiyun
220*4882a593Smuzhiyun	smem {
221*4882a593Smuzhiyun		compatible = "qcom,smem";
222*4882a593Smuzhiyun		memory-region = <&smem_region>;
223*4882a593Smuzhiyun
224*4882a593Smuzhiyun		hwlocks = <&sfpb_mutex 3>;
225*4882a593Smuzhiyun	};
226*4882a593Smuzhiyun
227*4882a593Smuzhiyun	smd {
228*4882a593Smuzhiyun		compatible = "qcom,smd";
229*4882a593Smuzhiyun
230*4882a593Smuzhiyun		modem@0 {
231*4882a593Smuzhiyun			interrupts = <0 37 IRQ_TYPE_EDGE_RISING>;
232*4882a593Smuzhiyun
233*4882a593Smuzhiyun			qcom,ipc = <&l2cc 8 3>;
234*4882a593Smuzhiyun			qcom,smd-edge = <0>;
235*4882a593Smuzhiyun
236*4882a593Smuzhiyun			status = "disabled";
237*4882a593Smuzhiyun		};
238*4882a593Smuzhiyun
239*4882a593Smuzhiyun		q6@1 {
240*4882a593Smuzhiyun			interrupts = <0 90 IRQ_TYPE_EDGE_RISING>;
241*4882a593Smuzhiyun
242*4882a593Smuzhiyun			qcom,ipc = <&l2cc 8 15>;
243*4882a593Smuzhiyun			qcom,smd-edge = <1>;
244*4882a593Smuzhiyun
245*4882a593Smuzhiyun			status = "disabled";
246*4882a593Smuzhiyun		};
247*4882a593Smuzhiyun
248*4882a593Smuzhiyun		dsps@3 {
249*4882a593Smuzhiyun			interrupts = <0 138 IRQ_TYPE_EDGE_RISING>;
250*4882a593Smuzhiyun
251*4882a593Smuzhiyun			qcom,ipc = <&sps_sic_non_secure 0x4080 0>;
252*4882a593Smuzhiyun			qcom,smd-edge = <3>;
253*4882a593Smuzhiyun
254*4882a593Smuzhiyun			status = "disabled";
255*4882a593Smuzhiyun		};
256*4882a593Smuzhiyun
257*4882a593Smuzhiyun		riva@6 {
258*4882a593Smuzhiyun			interrupts = <0 198 IRQ_TYPE_EDGE_RISING>;
259*4882a593Smuzhiyun
260*4882a593Smuzhiyun			qcom,ipc = <&l2cc 8 25>;
261*4882a593Smuzhiyun			qcom,smd-edge = <6>;
262*4882a593Smuzhiyun
263*4882a593Smuzhiyun			status = "disabled";
264*4882a593Smuzhiyun		};
265*4882a593Smuzhiyun	};
266*4882a593Smuzhiyun
267*4882a593Smuzhiyun	smsm {
268*4882a593Smuzhiyun		compatible = "qcom,smsm";
269*4882a593Smuzhiyun
270*4882a593Smuzhiyun		#address-cells = <1>;
271*4882a593Smuzhiyun		#size-cells = <0>;
272*4882a593Smuzhiyun
273*4882a593Smuzhiyun		qcom,ipc-1 = <&l2cc 8 4>;
274*4882a593Smuzhiyun		qcom,ipc-2 = <&l2cc 8 14>;
275*4882a593Smuzhiyun		qcom,ipc-3 = <&l2cc 8 23>;
276*4882a593Smuzhiyun		qcom,ipc-4 = <&sps_sic_non_secure 0x4094 0>;
277*4882a593Smuzhiyun
278*4882a593Smuzhiyun		apps_smsm: apps@0 {
279*4882a593Smuzhiyun			reg = <0>;
280*4882a593Smuzhiyun			#qcom,smem-state-cells = <1>;
281*4882a593Smuzhiyun		};
282*4882a593Smuzhiyun
283*4882a593Smuzhiyun		modem_smsm: modem@1 {
284*4882a593Smuzhiyun			reg = <1>;
285*4882a593Smuzhiyun			interrupts = <0 38 IRQ_TYPE_EDGE_RISING>;
286*4882a593Smuzhiyun
287*4882a593Smuzhiyun			interrupt-controller;
288*4882a593Smuzhiyun			#interrupt-cells = <2>;
289*4882a593Smuzhiyun		};
290*4882a593Smuzhiyun
291*4882a593Smuzhiyun		q6_smsm: q6@2 {
292*4882a593Smuzhiyun			reg = <2>;
293*4882a593Smuzhiyun			interrupts = <0 89 IRQ_TYPE_EDGE_RISING>;
294*4882a593Smuzhiyun
295*4882a593Smuzhiyun			interrupt-controller;
296*4882a593Smuzhiyun			#interrupt-cells = <2>;
297*4882a593Smuzhiyun		};
298*4882a593Smuzhiyun
299*4882a593Smuzhiyun		wcnss_smsm: wcnss@3 {
300*4882a593Smuzhiyun			reg = <3>;
301*4882a593Smuzhiyun			interrupts = <0 204 IRQ_TYPE_EDGE_RISING>;
302*4882a593Smuzhiyun
303*4882a593Smuzhiyun			interrupt-controller;
304*4882a593Smuzhiyun			#interrupt-cells = <2>;
305*4882a593Smuzhiyun		};
306*4882a593Smuzhiyun
307*4882a593Smuzhiyun		dsps_smsm: dsps@4 {
308*4882a593Smuzhiyun			reg = <4>;
309*4882a593Smuzhiyun			interrupts = <0 137 IRQ_TYPE_EDGE_RISING>;
310*4882a593Smuzhiyun
311*4882a593Smuzhiyun			interrupt-controller;
312*4882a593Smuzhiyun			#interrupt-cells = <2>;
313*4882a593Smuzhiyun		};
314*4882a593Smuzhiyun	};
315*4882a593Smuzhiyun
316*4882a593Smuzhiyun	firmware {
317*4882a593Smuzhiyun		scm {
318*4882a593Smuzhiyun			compatible = "qcom,scm-apq8064";
319*4882a593Smuzhiyun
320*4882a593Smuzhiyun			clocks = <&rpmcc RPM_DAYTONA_FABRIC_CLK>;
321*4882a593Smuzhiyun			clock-names = "core";
322*4882a593Smuzhiyun		};
323*4882a593Smuzhiyun	};
324*4882a593Smuzhiyun
325*4882a593Smuzhiyun
326*4882a593Smuzhiyun	/*
327*4882a593Smuzhiyun	 * These channels from the ADC are simply hardware monitors.
328*4882a593Smuzhiyun	 * That is why the ADC is referred to as "HKADC" - HouseKeeping
329*4882a593Smuzhiyun	 * ADC.
330*4882a593Smuzhiyun	 */
331*4882a593Smuzhiyun	iio-hwmon {
332*4882a593Smuzhiyun		compatible = "iio-hwmon";
333*4882a593Smuzhiyun		io-channels = <&xoadc 0x00 0x01>, /* Battery */
334*4882a593Smuzhiyun			    <&xoadc 0x00 0x02>, /* DC in (charger) */
335*4882a593Smuzhiyun			    <&xoadc 0x00 0x04>, /* VPH the main system voltage */
336*4882a593Smuzhiyun			    <&xoadc 0x00 0x0b>, /* Die temperature */
337*4882a593Smuzhiyun			    <&xoadc 0x00 0x0c>, /* Reference voltage 1.25V */
338*4882a593Smuzhiyun			    <&xoadc 0x00 0x0d>, /* Reference voltage 0.625V */
339*4882a593Smuzhiyun			    <&xoadc 0x00 0x0e>; /* Charger temperature */
340*4882a593Smuzhiyun	};
341*4882a593Smuzhiyun
342*4882a593Smuzhiyun	soc: soc {
343*4882a593Smuzhiyun		#address-cells = <1>;
344*4882a593Smuzhiyun		#size-cells = <1>;
345*4882a593Smuzhiyun		ranges;
346*4882a593Smuzhiyun		compatible = "simple-bus";
347*4882a593Smuzhiyun
348*4882a593Smuzhiyun		tlmm_pinmux: pinctrl@800000 {
349*4882a593Smuzhiyun			compatible = "qcom,apq8064-pinctrl";
350*4882a593Smuzhiyun			reg = <0x800000 0x4000>;
351*4882a593Smuzhiyun
352*4882a593Smuzhiyun			gpio-controller;
353*4882a593Smuzhiyun			gpio-ranges = <&tlmm_pinmux 0 0 90>;
354*4882a593Smuzhiyun			#gpio-cells = <2>;
355*4882a593Smuzhiyun			interrupt-controller;
356*4882a593Smuzhiyun			#interrupt-cells = <2>;
357*4882a593Smuzhiyun			interrupts = <0 16 IRQ_TYPE_LEVEL_HIGH>;
358*4882a593Smuzhiyun
359*4882a593Smuzhiyun			pinctrl-names = "default";
360*4882a593Smuzhiyun			pinctrl-0 = <&ps_hold>;
361*4882a593Smuzhiyun		};
362*4882a593Smuzhiyun
363*4882a593Smuzhiyun		sfpb_wrapper_mutex: syscon@1200000 {
364*4882a593Smuzhiyun			compatible = "syscon";
365*4882a593Smuzhiyun			reg = <0x01200000 0x8000>;
366*4882a593Smuzhiyun		};
367*4882a593Smuzhiyun
368*4882a593Smuzhiyun		intc: interrupt-controller@2000000 {
369*4882a593Smuzhiyun			compatible = "qcom,msm-qgic2";
370*4882a593Smuzhiyun			interrupt-controller;
371*4882a593Smuzhiyun			#interrupt-cells = <3>;
372*4882a593Smuzhiyun			reg = <0x02000000 0x1000>,
373*4882a593Smuzhiyun			      <0x02002000 0x1000>;
374*4882a593Smuzhiyun		};
375*4882a593Smuzhiyun
376*4882a593Smuzhiyun		timer@200a000 {
377*4882a593Smuzhiyun			compatible = "qcom,kpss-timer",
378*4882a593Smuzhiyun				     "qcom,kpss-wdt-apq8064", "qcom,msm-timer";
379*4882a593Smuzhiyun			interrupts = <1 1 0x301>,
380*4882a593Smuzhiyun				     <1 2 0x301>,
381*4882a593Smuzhiyun				     <1 3 0x301>;
382*4882a593Smuzhiyun			reg = <0x0200a000 0x100>;
383*4882a593Smuzhiyun			clock-frequency = <27000000>,
384*4882a593Smuzhiyun					  <32768>;
385*4882a593Smuzhiyun			cpu-offset = <0x80000>;
386*4882a593Smuzhiyun		};
387*4882a593Smuzhiyun
388*4882a593Smuzhiyun		acc0: clock-controller@2088000 {
389*4882a593Smuzhiyun			compatible = "qcom,kpss-acc-v1";
390*4882a593Smuzhiyun			reg = <0x02088000 0x1000>, <0x02008000 0x1000>;
391*4882a593Smuzhiyun		};
392*4882a593Smuzhiyun
393*4882a593Smuzhiyun		acc1: clock-controller@2098000 {
394*4882a593Smuzhiyun			compatible = "qcom,kpss-acc-v1";
395*4882a593Smuzhiyun			reg = <0x02098000 0x1000>, <0x02008000 0x1000>;
396*4882a593Smuzhiyun		};
397*4882a593Smuzhiyun
398*4882a593Smuzhiyun		acc2: clock-controller@20a8000 {
399*4882a593Smuzhiyun			compatible = "qcom,kpss-acc-v1";
400*4882a593Smuzhiyun			reg = <0x020a8000 0x1000>, <0x02008000 0x1000>;
401*4882a593Smuzhiyun		};
402*4882a593Smuzhiyun
403*4882a593Smuzhiyun		acc3: clock-controller@20b8000 {
404*4882a593Smuzhiyun			compatible = "qcom,kpss-acc-v1";
405*4882a593Smuzhiyun			reg = <0x020b8000 0x1000>, <0x02008000 0x1000>;
406*4882a593Smuzhiyun		};
407*4882a593Smuzhiyun
408*4882a593Smuzhiyun		saw0: power-controller@2089000 {
409*4882a593Smuzhiyun			compatible = "qcom,apq8064-saw2-v1.1-cpu", "qcom,saw2";
410*4882a593Smuzhiyun			reg = <0x02089000 0x1000>, <0x02009000 0x1000>;
411*4882a593Smuzhiyun			regulator;
412*4882a593Smuzhiyun		};
413*4882a593Smuzhiyun
414*4882a593Smuzhiyun		saw1: power-controller@2099000 {
415*4882a593Smuzhiyun			compatible = "qcom,apq8064-saw2-v1.1-cpu", "qcom,saw2";
416*4882a593Smuzhiyun			reg = <0x02099000 0x1000>, <0x02009000 0x1000>;
417*4882a593Smuzhiyun			regulator;
418*4882a593Smuzhiyun		};
419*4882a593Smuzhiyun
420*4882a593Smuzhiyun		saw2: power-controller@20a9000 {
421*4882a593Smuzhiyun			compatible = "qcom,apq8064-saw2-v1.1-cpu", "qcom,saw2";
422*4882a593Smuzhiyun			reg = <0x020a9000 0x1000>, <0x02009000 0x1000>;
423*4882a593Smuzhiyun			regulator;
424*4882a593Smuzhiyun		};
425*4882a593Smuzhiyun
426*4882a593Smuzhiyun		saw3: power-controller@20b9000 {
427*4882a593Smuzhiyun			compatible = "qcom,apq8064-saw2-v1.1-cpu", "qcom,saw2";
428*4882a593Smuzhiyun			reg = <0x020b9000 0x1000>, <0x02009000 0x1000>;
429*4882a593Smuzhiyun			regulator;
430*4882a593Smuzhiyun		};
431*4882a593Smuzhiyun
432*4882a593Smuzhiyun		sps_sic_non_secure: sps-sic-non-secure@12100000 {
433*4882a593Smuzhiyun			compatible	= "syscon";
434*4882a593Smuzhiyun			reg		= <0x12100000 0x10000>;
435*4882a593Smuzhiyun		};
436*4882a593Smuzhiyun
437*4882a593Smuzhiyun		gsbi1: gsbi@12440000 {
438*4882a593Smuzhiyun			status = "disabled";
439*4882a593Smuzhiyun			compatible = "qcom,gsbi-v1.0.0";
440*4882a593Smuzhiyun			cell-index = <1>;
441*4882a593Smuzhiyun			reg = <0x12440000 0x100>;
442*4882a593Smuzhiyun			clocks = <&gcc GSBI1_H_CLK>;
443*4882a593Smuzhiyun			clock-names = "iface";
444*4882a593Smuzhiyun			#address-cells = <1>;
445*4882a593Smuzhiyun			#size-cells = <1>;
446*4882a593Smuzhiyun			ranges;
447*4882a593Smuzhiyun
448*4882a593Smuzhiyun			syscon-tcsr = <&tcsr>;
449*4882a593Smuzhiyun
450*4882a593Smuzhiyun			gsbi1_serial: serial@12450000 {
451*4882a593Smuzhiyun				compatible = "qcom,msm-uartdm-v1.3", "qcom,msm-uartdm";
452*4882a593Smuzhiyun				reg = <0x12450000 0x100>,
453*4882a593Smuzhiyun				      <0x12400000 0x03>;
454*4882a593Smuzhiyun				interrupts = <0 193 IRQ_TYPE_LEVEL_HIGH>;
455*4882a593Smuzhiyun				clocks = <&gcc GSBI1_UART_CLK>, <&gcc GSBI1_H_CLK>;
456*4882a593Smuzhiyun				clock-names = "core", "iface";
457*4882a593Smuzhiyun				status = "disabled";
458*4882a593Smuzhiyun			};
459*4882a593Smuzhiyun
460*4882a593Smuzhiyun			gsbi1_i2c: i2c@12460000 {
461*4882a593Smuzhiyun				compatible = "qcom,i2c-qup-v1.1.1";
462*4882a593Smuzhiyun				pinctrl-0 = <&i2c1_pins>;
463*4882a593Smuzhiyun				pinctrl-1 = <&i2c1_pins_sleep>;
464*4882a593Smuzhiyun				pinctrl-names = "default", "sleep";
465*4882a593Smuzhiyun				reg = <0x12460000 0x1000>;
466*4882a593Smuzhiyun				interrupts = <0 194 IRQ_TYPE_LEVEL_HIGH>;
467*4882a593Smuzhiyun				clocks = <&gcc GSBI1_QUP_CLK>, <&gcc GSBI1_H_CLK>;
468*4882a593Smuzhiyun				clock-names = "core", "iface";
469*4882a593Smuzhiyun				#address-cells = <1>;
470*4882a593Smuzhiyun				#size-cells = <0>;
471*4882a593Smuzhiyun				status = "disabled";
472*4882a593Smuzhiyun			};
473*4882a593Smuzhiyun
474*4882a593Smuzhiyun		};
475*4882a593Smuzhiyun
476*4882a593Smuzhiyun		gsbi2: gsbi@12480000 {
477*4882a593Smuzhiyun			status = "disabled";
478*4882a593Smuzhiyun			compatible = "qcom,gsbi-v1.0.0";
479*4882a593Smuzhiyun			cell-index = <2>;
480*4882a593Smuzhiyun			reg = <0x12480000 0x100>;
481*4882a593Smuzhiyun			clocks = <&gcc GSBI2_H_CLK>;
482*4882a593Smuzhiyun			clock-names = "iface";
483*4882a593Smuzhiyun			#address-cells = <1>;
484*4882a593Smuzhiyun			#size-cells = <1>;
485*4882a593Smuzhiyun			ranges;
486*4882a593Smuzhiyun
487*4882a593Smuzhiyun			syscon-tcsr = <&tcsr>;
488*4882a593Smuzhiyun
489*4882a593Smuzhiyun			gsbi2_i2c: i2c@124a0000 {
490*4882a593Smuzhiyun				compatible = "qcom,i2c-qup-v1.1.1";
491*4882a593Smuzhiyun				reg = <0x124a0000 0x1000>;
492*4882a593Smuzhiyun				pinctrl-0 = <&i2c2_pins>;
493*4882a593Smuzhiyun				pinctrl-1 = <&i2c2_pins_sleep>;
494*4882a593Smuzhiyun				pinctrl-names = "default", "sleep";
495*4882a593Smuzhiyun				interrupts = <0 196 IRQ_TYPE_LEVEL_HIGH>;
496*4882a593Smuzhiyun				clocks = <&gcc GSBI2_QUP_CLK>, <&gcc GSBI2_H_CLK>;
497*4882a593Smuzhiyun				clock-names = "core", "iface";
498*4882a593Smuzhiyun				#address-cells = <1>;
499*4882a593Smuzhiyun				#size-cells = <0>;
500*4882a593Smuzhiyun				status = "disabled";
501*4882a593Smuzhiyun			};
502*4882a593Smuzhiyun		};
503*4882a593Smuzhiyun
504*4882a593Smuzhiyun		gsbi3: gsbi@16200000 {
505*4882a593Smuzhiyun			status = "disabled";
506*4882a593Smuzhiyun			compatible = "qcom,gsbi-v1.0.0";
507*4882a593Smuzhiyun			cell-index = <3>;
508*4882a593Smuzhiyun			reg = <0x16200000 0x100>;
509*4882a593Smuzhiyun			clocks = <&gcc GSBI3_H_CLK>;
510*4882a593Smuzhiyun			clock-names = "iface";
511*4882a593Smuzhiyun			#address-cells = <1>;
512*4882a593Smuzhiyun			#size-cells = <1>;
513*4882a593Smuzhiyun			ranges;
514*4882a593Smuzhiyun			gsbi3_i2c: i2c@16280000 {
515*4882a593Smuzhiyun				compatible = "qcom,i2c-qup-v1.1.1";
516*4882a593Smuzhiyun				pinctrl-0 = <&i2c3_pins>;
517*4882a593Smuzhiyun				pinctrl-1 = <&i2c3_pins_sleep>;
518*4882a593Smuzhiyun				pinctrl-names = "default", "sleep";
519*4882a593Smuzhiyun				reg = <0x16280000 0x1000>;
520*4882a593Smuzhiyun				interrupts = <GIC_SPI 151 IRQ_TYPE_LEVEL_HIGH>;
521*4882a593Smuzhiyun				clocks = <&gcc GSBI3_QUP_CLK>,
522*4882a593Smuzhiyun					 <&gcc GSBI3_H_CLK>;
523*4882a593Smuzhiyun				clock-names = "core", "iface";
524*4882a593Smuzhiyun				#address-cells = <1>;
525*4882a593Smuzhiyun				#size-cells = <0>;
526*4882a593Smuzhiyun				status = "disabled";
527*4882a593Smuzhiyun			};
528*4882a593Smuzhiyun		};
529*4882a593Smuzhiyun
530*4882a593Smuzhiyun		gsbi4: gsbi@16300000 {
531*4882a593Smuzhiyun			status = "disabled";
532*4882a593Smuzhiyun			compatible = "qcom,gsbi-v1.0.0";
533*4882a593Smuzhiyun			cell-index = <4>;
534*4882a593Smuzhiyun			reg = <0x16300000 0x03>;
535*4882a593Smuzhiyun			clocks = <&gcc GSBI4_H_CLK>;
536*4882a593Smuzhiyun			clock-names = "iface";
537*4882a593Smuzhiyun			#address-cells = <1>;
538*4882a593Smuzhiyun			#size-cells = <1>;
539*4882a593Smuzhiyun			ranges;
540*4882a593Smuzhiyun
541*4882a593Smuzhiyun			gsbi4_i2c: i2c@16380000 {
542*4882a593Smuzhiyun				compatible = "qcom,i2c-qup-v1.1.1";
543*4882a593Smuzhiyun				pinctrl-0 = <&i2c4_pins>;
544*4882a593Smuzhiyun				pinctrl-1 = <&i2c4_pins_sleep>;
545*4882a593Smuzhiyun				pinctrl-names = "default", "sleep";
546*4882a593Smuzhiyun				reg = <0x16380000 0x1000>;
547*4882a593Smuzhiyun				interrupts = <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>;
548*4882a593Smuzhiyun				clocks = <&gcc GSBI4_QUP_CLK>,
549*4882a593Smuzhiyun					 <&gcc GSBI4_H_CLK>;
550*4882a593Smuzhiyun				clock-names = "core", "iface";
551*4882a593Smuzhiyun				status = "disabled";
552*4882a593Smuzhiyun			};
553*4882a593Smuzhiyun		};
554*4882a593Smuzhiyun
555*4882a593Smuzhiyun		gsbi5: gsbi@1a200000 {
556*4882a593Smuzhiyun			status = "disabled";
557*4882a593Smuzhiyun			compatible = "qcom,gsbi-v1.0.0";
558*4882a593Smuzhiyun			cell-index = <5>;
559*4882a593Smuzhiyun			reg = <0x1a200000 0x03>;
560*4882a593Smuzhiyun			clocks = <&gcc GSBI5_H_CLK>;
561*4882a593Smuzhiyun			clock-names = "iface";
562*4882a593Smuzhiyun			#address-cells = <1>;
563*4882a593Smuzhiyun			#size-cells = <1>;
564*4882a593Smuzhiyun			ranges;
565*4882a593Smuzhiyun
566*4882a593Smuzhiyun			gsbi5_serial: serial@1a240000 {
567*4882a593Smuzhiyun				compatible = "qcom,msm-uartdm-v1.3", "qcom,msm-uartdm";
568*4882a593Smuzhiyun				reg = <0x1a240000 0x100>,
569*4882a593Smuzhiyun				      <0x1a200000 0x03>;
570*4882a593Smuzhiyun				interrupts = <0 154 IRQ_TYPE_LEVEL_HIGH>;
571*4882a593Smuzhiyun				clocks = <&gcc GSBI5_UART_CLK>, <&gcc GSBI5_H_CLK>;
572*4882a593Smuzhiyun				clock-names = "core", "iface";
573*4882a593Smuzhiyun				status = "disabled";
574*4882a593Smuzhiyun			};
575*4882a593Smuzhiyun
576*4882a593Smuzhiyun			gsbi5_spi: spi@1a280000 {
577*4882a593Smuzhiyun				compatible = "qcom,spi-qup-v1.1.1";
578*4882a593Smuzhiyun				reg = <0x1a280000 0x1000>;
579*4882a593Smuzhiyun				interrupts = <0 155 IRQ_TYPE_LEVEL_HIGH>;
580*4882a593Smuzhiyun				pinctrl-0 = <&spi5_default>;
581*4882a593Smuzhiyun				pinctrl-1 = <&spi5_sleep>;
582*4882a593Smuzhiyun				pinctrl-names = "default", "sleep";
583*4882a593Smuzhiyun				clocks = <&gcc GSBI5_QUP_CLK>, <&gcc GSBI5_H_CLK>;
584*4882a593Smuzhiyun				clock-names = "core", "iface";
585*4882a593Smuzhiyun				status = "disabled";
586*4882a593Smuzhiyun				#address-cells = <1>;
587*4882a593Smuzhiyun				#size-cells = <0>;
588*4882a593Smuzhiyun			};
589*4882a593Smuzhiyun		};
590*4882a593Smuzhiyun
591*4882a593Smuzhiyun		gsbi6: gsbi@16500000 {
592*4882a593Smuzhiyun			status = "disabled";
593*4882a593Smuzhiyun			compatible = "qcom,gsbi-v1.0.0";
594*4882a593Smuzhiyun			cell-index = <6>;
595*4882a593Smuzhiyun			reg = <0x16500000 0x03>;
596*4882a593Smuzhiyun			clocks = <&gcc GSBI6_H_CLK>;
597*4882a593Smuzhiyun			clock-names = "iface";
598*4882a593Smuzhiyun			#address-cells = <1>;
599*4882a593Smuzhiyun			#size-cells = <1>;
600*4882a593Smuzhiyun			ranges;
601*4882a593Smuzhiyun
602*4882a593Smuzhiyun			gsbi6_serial: serial@16540000 {
603*4882a593Smuzhiyun				compatible = "qcom,msm-uartdm-v1.3", "qcom,msm-uartdm";
604*4882a593Smuzhiyun				reg = <0x16540000 0x100>,
605*4882a593Smuzhiyun				      <0x16500000 0x03>;
606*4882a593Smuzhiyun				interrupts = <0 156 IRQ_TYPE_LEVEL_HIGH>;
607*4882a593Smuzhiyun				clocks = <&gcc GSBI6_UART_CLK>, <&gcc GSBI6_H_CLK>;
608*4882a593Smuzhiyun				clock-names = "core", "iface";
609*4882a593Smuzhiyun				status = "disabled";
610*4882a593Smuzhiyun			};
611*4882a593Smuzhiyun
612*4882a593Smuzhiyun			gsbi6_i2c: i2c@16580000 {
613*4882a593Smuzhiyun				compatible = "qcom,i2c-qup-v1.1.1";
614*4882a593Smuzhiyun				pinctrl-0 = <&i2c6_pins>;
615*4882a593Smuzhiyun				pinctrl-1 = <&i2c6_pins_sleep>;
616*4882a593Smuzhiyun				pinctrl-names = "default", "sleep";
617*4882a593Smuzhiyun				reg = <0x16580000 0x1000>;
618*4882a593Smuzhiyun				interrupts = <GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>;
619*4882a593Smuzhiyun				clocks = <&gcc GSBI6_QUP_CLK>,
620*4882a593Smuzhiyun					 <&gcc GSBI6_H_CLK>;
621*4882a593Smuzhiyun				clock-names = "core", "iface";
622*4882a593Smuzhiyun				status = "disabled";
623*4882a593Smuzhiyun			};
624*4882a593Smuzhiyun		};
625*4882a593Smuzhiyun
626*4882a593Smuzhiyun		gsbi7: gsbi@16600000 {
627*4882a593Smuzhiyun			status = "disabled";
628*4882a593Smuzhiyun			compatible = "qcom,gsbi-v1.0.0";
629*4882a593Smuzhiyun			cell-index = <7>;
630*4882a593Smuzhiyun			reg = <0x16600000 0x100>;
631*4882a593Smuzhiyun			clocks = <&gcc GSBI7_H_CLK>;
632*4882a593Smuzhiyun			clock-names = "iface";
633*4882a593Smuzhiyun			#address-cells = <1>;
634*4882a593Smuzhiyun			#size-cells = <1>;
635*4882a593Smuzhiyun			ranges;
636*4882a593Smuzhiyun			syscon-tcsr = <&tcsr>;
637*4882a593Smuzhiyun
638*4882a593Smuzhiyun			gsbi7_serial: serial@16640000 {
639*4882a593Smuzhiyun				compatible = "qcom,msm-uartdm-v1.3", "qcom,msm-uartdm";
640*4882a593Smuzhiyun				reg = <0x16640000 0x1000>,
641*4882a593Smuzhiyun				      <0x16600000 0x1000>;
642*4882a593Smuzhiyun				interrupts = <0 158 IRQ_TYPE_LEVEL_HIGH>;
643*4882a593Smuzhiyun				clocks = <&gcc GSBI7_UART_CLK>, <&gcc GSBI7_H_CLK>;
644*4882a593Smuzhiyun				clock-names = "core", "iface";
645*4882a593Smuzhiyun				status = "disabled";
646*4882a593Smuzhiyun			};
647*4882a593Smuzhiyun
648*4882a593Smuzhiyun			gsbi7_i2c: i2c@16680000 {
649*4882a593Smuzhiyun				compatible = "qcom,i2c-qup-v1.1.1";
650*4882a593Smuzhiyun				pinctrl-0 = <&i2c7_pins>;
651*4882a593Smuzhiyun				pinctrl-1 = <&i2c7_pins_sleep>;
652*4882a593Smuzhiyun				pinctrl-names = "default", "sleep";
653*4882a593Smuzhiyun				reg = <0x16680000 0x1000>;
654*4882a593Smuzhiyun				interrupts = <GIC_SPI 159 IRQ_TYPE_LEVEL_HIGH>;
655*4882a593Smuzhiyun				clocks = <&gcc GSBI7_QUP_CLK>,
656*4882a593Smuzhiyun					 <&gcc GSBI7_H_CLK>;
657*4882a593Smuzhiyun				clock-names = "core", "iface";
658*4882a593Smuzhiyun				status = "disabled";
659*4882a593Smuzhiyun			};
660*4882a593Smuzhiyun		};
661*4882a593Smuzhiyun
662*4882a593Smuzhiyun		rng@1a500000 {
663*4882a593Smuzhiyun			compatible = "qcom,prng";
664*4882a593Smuzhiyun			reg = <0x1a500000 0x200>;
665*4882a593Smuzhiyun			clocks = <&gcc PRNG_CLK>;
666*4882a593Smuzhiyun			clock-names = "core";
667*4882a593Smuzhiyun		};
668*4882a593Smuzhiyun
669*4882a593Smuzhiyun		ssbi@c00000 {
670*4882a593Smuzhiyun			compatible = "qcom,ssbi";
671*4882a593Smuzhiyun			reg = <0x00c00000 0x1000>;
672*4882a593Smuzhiyun			qcom,controller-type = "pmic-arbiter";
673*4882a593Smuzhiyun
674*4882a593Smuzhiyun			pm8821: pmic@1 {
675*4882a593Smuzhiyun				compatible = "qcom,pm8821";
676*4882a593Smuzhiyun				interrupt-parent = <&tlmm_pinmux>;
677*4882a593Smuzhiyun				interrupts = <76 IRQ_TYPE_LEVEL_LOW>;
678*4882a593Smuzhiyun				#interrupt-cells = <2>;
679*4882a593Smuzhiyun				interrupt-controller;
680*4882a593Smuzhiyun				#address-cells = <1>;
681*4882a593Smuzhiyun				#size-cells = <0>;
682*4882a593Smuzhiyun
683*4882a593Smuzhiyun				pm8821_mpps: mpps@50 {
684*4882a593Smuzhiyun					compatible = "qcom,pm8821-mpp", "qcom,ssbi-mpp";
685*4882a593Smuzhiyun					reg = <0x50>;
686*4882a593Smuzhiyun					interrupts = <24 IRQ_TYPE_NONE>,
687*4882a593Smuzhiyun						     <25 IRQ_TYPE_NONE>,
688*4882a593Smuzhiyun						     <26 IRQ_TYPE_NONE>,
689*4882a593Smuzhiyun						     <27 IRQ_TYPE_NONE>;
690*4882a593Smuzhiyun					gpio-controller;
691*4882a593Smuzhiyun					#gpio-cells = <2>;
692*4882a593Smuzhiyun				};
693*4882a593Smuzhiyun			};
694*4882a593Smuzhiyun		};
695*4882a593Smuzhiyun
696*4882a593Smuzhiyun		qcom,ssbi@500000 {
697*4882a593Smuzhiyun			compatible = "qcom,ssbi";
698*4882a593Smuzhiyun			reg = <0x00500000 0x1000>;
699*4882a593Smuzhiyun			qcom,controller-type = "pmic-arbiter";
700*4882a593Smuzhiyun
701*4882a593Smuzhiyun			pmicintc: pmic@0 {
702*4882a593Smuzhiyun				compatible = "qcom,pm8921";
703*4882a593Smuzhiyun				interrupt-parent = <&tlmm_pinmux>;
704*4882a593Smuzhiyun				interrupts = <74 8>;
705*4882a593Smuzhiyun				#interrupt-cells = <2>;
706*4882a593Smuzhiyun				interrupt-controller;
707*4882a593Smuzhiyun				#address-cells = <1>;
708*4882a593Smuzhiyun				#size-cells = <0>;
709*4882a593Smuzhiyun
710*4882a593Smuzhiyun				pm8921_gpio: gpio@150 {
711*4882a593Smuzhiyun
712*4882a593Smuzhiyun					compatible = "qcom,pm8921-gpio",
713*4882a593Smuzhiyun						     "qcom,ssbi-gpio";
714*4882a593Smuzhiyun					reg = <0x150>;
715*4882a593Smuzhiyun					interrupt-controller;
716*4882a593Smuzhiyun					#interrupt-cells = <2>;
717*4882a593Smuzhiyun					gpio-controller;
718*4882a593Smuzhiyun					gpio-ranges = <&pm8921_gpio 0 0 44>;
719*4882a593Smuzhiyun					#gpio-cells = <2>;
720*4882a593Smuzhiyun
721*4882a593Smuzhiyun				};
722*4882a593Smuzhiyun
723*4882a593Smuzhiyun				pm8921_mpps: mpps@50 {
724*4882a593Smuzhiyun					compatible = "qcom,pm8921-mpp",
725*4882a593Smuzhiyun						     "qcom,ssbi-mpp";
726*4882a593Smuzhiyun					reg = <0x50>;
727*4882a593Smuzhiyun					gpio-controller;
728*4882a593Smuzhiyun					#gpio-cells = <2>;
729*4882a593Smuzhiyun					interrupts =
730*4882a593Smuzhiyun					<128 IRQ_TYPE_NONE>,
731*4882a593Smuzhiyun					<129 IRQ_TYPE_NONE>,
732*4882a593Smuzhiyun					<130 IRQ_TYPE_NONE>,
733*4882a593Smuzhiyun					<131 IRQ_TYPE_NONE>,
734*4882a593Smuzhiyun					<132 IRQ_TYPE_NONE>,
735*4882a593Smuzhiyun					<133 IRQ_TYPE_NONE>,
736*4882a593Smuzhiyun					<134 IRQ_TYPE_NONE>,
737*4882a593Smuzhiyun					<135 IRQ_TYPE_NONE>,
738*4882a593Smuzhiyun					<136 IRQ_TYPE_NONE>,
739*4882a593Smuzhiyun					<137 IRQ_TYPE_NONE>,
740*4882a593Smuzhiyun					<138 IRQ_TYPE_NONE>,
741*4882a593Smuzhiyun					<139 IRQ_TYPE_NONE>;
742*4882a593Smuzhiyun				};
743*4882a593Smuzhiyun
744*4882a593Smuzhiyun				rtc@11d {
745*4882a593Smuzhiyun					compatible = "qcom,pm8921-rtc";
746*4882a593Smuzhiyun					interrupt-parent = <&pmicintc>;
747*4882a593Smuzhiyun					interrupts = <39 1>;
748*4882a593Smuzhiyun					reg = <0x11d>;
749*4882a593Smuzhiyun					allow-set-time;
750*4882a593Smuzhiyun				};
751*4882a593Smuzhiyun
752*4882a593Smuzhiyun				pwrkey@1c {
753*4882a593Smuzhiyun					compatible = "qcom,pm8921-pwrkey";
754*4882a593Smuzhiyun					reg = <0x1c>;
755*4882a593Smuzhiyun					interrupt-parent = <&pmicintc>;
756*4882a593Smuzhiyun					interrupts = <50 1>, <51 1>;
757*4882a593Smuzhiyun					debounce = <15625>;
758*4882a593Smuzhiyun					pull-up;
759*4882a593Smuzhiyun				};
760*4882a593Smuzhiyun
761*4882a593Smuzhiyun				xoadc: xoadc@197 {
762*4882a593Smuzhiyun					compatible = "qcom,pm8921-adc";
763*4882a593Smuzhiyun					reg = <197>;
764*4882a593Smuzhiyun					interrupts-extended = <&pmicintc 78 IRQ_TYPE_EDGE_RISING>;
765*4882a593Smuzhiyun					#address-cells = <2>;
766*4882a593Smuzhiyun					#size-cells = <0>;
767*4882a593Smuzhiyun					#io-channel-cells = <2>;
768*4882a593Smuzhiyun
769*4882a593Smuzhiyun					vcoin: adc-channel@00 {
770*4882a593Smuzhiyun						reg = <0x00 0x00>;
771*4882a593Smuzhiyun					};
772*4882a593Smuzhiyun					vbat: adc-channel@01 {
773*4882a593Smuzhiyun						reg = <0x00 0x01>;
774*4882a593Smuzhiyun					};
775*4882a593Smuzhiyun					dcin: adc-channel@02 {
776*4882a593Smuzhiyun						reg = <0x00 0x02>;
777*4882a593Smuzhiyun					};
778*4882a593Smuzhiyun					vph_pwr: adc-channel@04 {
779*4882a593Smuzhiyun						reg = <0x00 0x04>;
780*4882a593Smuzhiyun					};
781*4882a593Smuzhiyun					batt_therm: adc-channel@08 {
782*4882a593Smuzhiyun						reg = <0x00 0x08>;
783*4882a593Smuzhiyun					};
784*4882a593Smuzhiyun					batt_id: adc-channel@09 {
785*4882a593Smuzhiyun						reg = <0x00 0x09>;
786*4882a593Smuzhiyun					};
787*4882a593Smuzhiyun					usb_vbus: adc-channel@0a {
788*4882a593Smuzhiyun						reg = <0x00 0x0a>;
789*4882a593Smuzhiyun					};
790*4882a593Smuzhiyun					die_temp: adc-channel@0b {
791*4882a593Smuzhiyun						reg = <0x00 0x0b>;
792*4882a593Smuzhiyun					};
793*4882a593Smuzhiyun					ref_625mv: adc-channel@0c {
794*4882a593Smuzhiyun						reg = <0x00 0x0c>;
795*4882a593Smuzhiyun					};
796*4882a593Smuzhiyun					ref_1250mv: adc-channel@0d {
797*4882a593Smuzhiyun						reg = <0x00 0x0d>;
798*4882a593Smuzhiyun					};
799*4882a593Smuzhiyun					chg_temp: adc-channel@0e {
800*4882a593Smuzhiyun						reg = <0x00 0x0e>;
801*4882a593Smuzhiyun					};
802*4882a593Smuzhiyun					ref_muxoff: adc-channel@0f {
803*4882a593Smuzhiyun						reg = <0x00 0x0f>;
804*4882a593Smuzhiyun					};
805*4882a593Smuzhiyun				};
806*4882a593Smuzhiyun			};
807*4882a593Smuzhiyun		};
808*4882a593Smuzhiyun
809*4882a593Smuzhiyun		qfprom: qfprom@700000 {
810*4882a593Smuzhiyun			compatible	= "qcom,qfprom";
811*4882a593Smuzhiyun			reg		= <0x00700000 0x1000>;
812*4882a593Smuzhiyun			#address-cells	= <1>;
813*4882a593Smuzhiyun			#size-cells	= <1>;
814*4882a593Smuzhiyun			ranges;
815*4882a593Smuzhiyun			tsens_calib: calib {
816*4882a593Smuzhiyun				reg = <0x404 0x10>;
817*4882a593Smuzhiyun			};
818*4882a593Smuzhiyun			tsens_backup: backup_calib {
819*4882a593Smuzhiyun				reg = <0x414 0x10>;
820*4882a593Smuzhiyun			};
821*4882a593Smuzhiyun		};
822*4882a593Smuzhiyun
823*4882a593Smuzhiyun		gcc: clock-controller@900000 {
824*4882a593Smuzhiyun			compatible = "qcom,gcc-apq8064";
825*4882a593Smuzhiyun			reg = <0x00900000 0x4000>;
826*4882a593Smuzhiyun			nvmem-cells = <&tsens_calib>, <&tsens_backup>;
827*4882a593Smuzhiyun			nvmem-cell-names = "calib", "calib_backup";
828*4882a593Smuzhiyun			#clock-cells = <1>;
829*4882a593Smuzhiyun			#reset-cells = <1>;
830*4882a593Smuzhiyun			#thermal-sensor-cells = <1>;
831*4882a593Smuzhiyun		};
832*4882a593Smuzhiyun
833*4882a593Smuzhiyun		lcc: clock-controller@28000000 {
834*4882a593Smuzhiyun			compatible = "qcom,lcc-apq8064";
835*4882a593Smuzhiyun			reg = <0x28000000 0x1000>;
836*4882a593Smuzhiyun			#clock-cells = <1>;
837*4882a593Smuzhiyun			#reset-cells = <1>;
838*4882a593Smuzhiyun		};
839*4882a593Smuzhiyun
840*4882a593Smuzhiyun		mmcc: clock-controller@4000000 {
841*4882a593Smuzhiyun			compatible = "qcom,mmcc-apq8064";
842*4882a593Smuzhiyun			reg = <0x4000000 0x1000>;
843*4882a593Smuzhiyun			#clock-cells = <1>;
844*4882a593Smuzhiyun			#reset-cells = <1>;
845*4882a593Smuzhiyun		};
846*4882a593Smuzhiyun
847*4882a593Smuzhiyun		l2cc: clock-controller@2011000 {
848*4882a593Smuzhiyun			compatible	= "syscon";
849*4882a593Smuzhiyun			reg		= <0x2011000 0x1000>;
850*4882a593Smuzhiyun		};
851*4882a593Smuzhiyun
852*4882a593Smuzhiyun		rpm@108000 {
853*4882a593Smuzhiyun			compatible	= "qcom,rpm-apq8064";
854*4882a593Smuzhiyun			reg		= <0x108000 0x1000>;
855*4882a593Smuzhiyun			qcom,ipc	= <&l2cc 0x8 2>;
856*4882a593Smuzhiyun
857*4882a593Smuzhiyun			interrupts	= <GIC_SPI 19 IRQ_TYPE_EDGE_RISING>,
858*4882a593Smuzhiyun					  <GIC_SPI 21 IRQ_TYPE_EDGE_RISING>,
859*4882a593Smuzhiyun					  <GIC_SPI 22 IRQ_TYPE_EDGE_RISING>;
860*4882a593Smuzhiyun			interrupt-names	= "ack", "err", "wakeup";
861*4882a593Smuzhiyun
862*4882a593Smuzhiyun			rpmcc: clock-controller {
863*4882a593Smuzhiyun				compatible	= "qcom,rpmcc-apq8064", "qcom,rpmcc";
864*4882a593Smuzhiyun				#clock-cells = <1>;
865*4882a593Smuzhiyun			};
866*4882a593Smuzhiyun
867*4882a593Smuzhiyun			regulators {
868*4882a593Smuzhiyun				compatible = "qcom,rpm-pm8921-regulators";
869*4882a593Smuzhiyun
870*4882a593Smuzhiyun				pm8921_s1: s1 {};
871*4882a593Smuzhiyun				pm8921_s2: s2 {};
872*4882a593Smuzhiyun				pm8921_s3: s3 {};
873*4882a593Smuzhiyun				pm8921_s4: s4 {};
874*4882a593Smuzhiyun				pm8921_s7: s7 {};
875*4882a593Smuzhiyun				pm8921_s8: s8 {};
876*4882a593Smuzhiyun
877*4882a593Smuzhiyun				pm8921_l1: l1 {};
878*4882a593Smuzhiyun				pm8921_l2: l2 {};
879*4882a593Smuzhiyun				pm8921_l3: l3 {};
880*4882a593Smuzhiyun				pm8921_l4: l4 {};
881*4882a593Smuzhiyun				pm8921_l5: l5 {};
882*4882a593Smuzhiyun				pm8921_l6: l6 {};
883*4882a593Smuzhiyun				pm8921_l7: l7 {};
884*4882a593Smuzhiyun				pm8921_l8: l8 {};
885*4882a593Smuzhiyun				pm8921_l9: l9 {};
886*4882a593Smuzhiyun				pm8921_l10: l10 {};
887*4882a593Smuzhiyun				pm8921_l11: l11 {};
888*4882a593Smuzhiyun				pm8921_l12: l12 {};
889*4882a593Smuzhiyun				pm8921_l14: l14 {};
890*4882a593Smuzhiyun				pm8921_l15: l15 {};
891*4882a593Smuzhiyun				pm8921_l16: l16 {};
892*4882a593Smuzhiyun				pm8921_l17: l17 {};
893*4882a593Smuzhiyun				pm8921_l18: l18 {};
894*4882a593Smuzhiyun				pm8921_l21: l21 {};
895*4882a593Smuzhiyun				pm8921_l22: l22 {};
896*4882a593Smuzhiyun				pm8921_l23: l23 {};
897*4882a593Smuzhiyun				pm8921_l24: l24 {};
898*4882a593Smuzhiyun				pm8921_l25: l25 {};
899*4882a593Smuzhiyun				pm8921_l26: l26 {};
900*4882a593Smuzhiyun				pm8921_l27: l27 {};
901*4882a593Smuzhiyun				pm8921_l28: l28 {};
902*4882a593Smuzhiyun				pm8921_l29: l29 {};
903*4882a593Smuzhiyun
904*4882a593Smuzhiyun				pm8921_lvs1: lvs1 {};
905*4882a593Smuzhiyun				pm8921_lvs2: lvs2 {};
906*4882a593Smuzhiyun				pm8921_lvs3: lvs3 {};
907*4882a593Smuzhiyun				pm8921_lvs4: lvs4 {};
908*4882a593Smuzhiyun				pm8921_lvs5: lvs5 {};
909*4882a593Smuzhiyun				pm8921_lvs6: lvs6 {};
910*4882a593Smuzhiyun				pm8921_lvs7: lvs7 {};
911*4882a593Smuzhiyun
912*4882a593Smuzhiyun				pm8921_usb_switch: usb-switch {};
913*4882a593Smuzhiyun
914*4882a593Smuzhiyun				pm8921_hdmi_switch: hdmi-switch {
915*4882a593Smuzhiyun					bias-pull-down;
916*4882a593Smuzhiyun				};
917*4882a593Smuzhiyun
918*4882a593Smuzhiyun				pm8921_ncp: ncp {};
919*4882a593Smuzhiyun			};
920*4882a593Smuzhiyun		};
921*4882a593Smuzhiyun
922*4882a593Smuzhiyun		usb1: usb@12500000 {
923*4882a593Smuzhiyun			compatible = "qcom,ci-hdrc";
924*4882a593Smuzhiyun			reg = <0x12500000 0x200>,
925*4882a593Smuzhiyun			      <0x12500200 0x200>;
926*4882a593Smuzhiyun			interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
927*4882a593Smuzhiyun			clocks = <&gcc USB_HS1_XCVR_CLK>, <&gcc USB_HS1_H_CLK>;
928*4882a593Smuzhiyun			clock-names = "core", "iface";
929*4882a593Smuzhiyun			assigned-clocks = <&gcc USB_HS1_XCVR_CLK>;
930*4882a593Smuzhiyun			assigned-clock-rates = <60000000>;
931*4882a593Smuzhiyun			resets = <&gcc USB_HS1_RESET>;
932*4882a593Smuzhiyun			reset-names = "core";
933*4882a593Smuzhiyun			phy_type = "ulpi";
934*4882a593Smuzhiyun			ahb-burst-config = <0>;
935*4882a593Smuzhiyun			phys = <&usb_hs1_phy>;
936*4882a593Smuzhiyun			phy-names = "usb-phy";
937*4882a593Smuzhiyun			status = "disabled";
938*4882a593Smuzhiyun			#reset-cells = <1>;
939*4882a593Smuzhiyun
940*4882a593Smuzhiyun			ulpi {
941*4882a593Smuzhiyun				usb_hs1_phy: phy {
942*4882a593Smuzhiyun					compatible = "qcom,usb-hs-phy-apq8064",
943*4882a593Smuzhiyun						     "qcom,usb-hs-phy";
944*4882a593Smuzhiyun					clocks = <&sleep_clk>, <&cxo_board>;
945*4882a593Smuzhiyun					clock-names = "sleep", "ref";
946*4882a593Smuzhiyun					resets = <&usb1 0>;
947*4882a593Smuzhiyun					reset-names = "por";
948*4882a593Smuzhiyun					#phy-cells = <0>;
949*4882a593Smuzhiyun				};
950*4882a593Smuzhiyun			};
951*4882a593Smuzhiyun		};
952*4882a593Smuzhiyun
953*4882a593Smuzhiyun		usb3: usb@12520000 {
954*4882a593Smuzhiyun			compatible = "qcom,ci-hdrc";
955*4882a593Smuzhiyun			reg = <0x12520000 0x200>,
956*4882a593Smuzhiyun			      <0x12520200 0x200>;
957*4882a593Smuzhiyun			interrupts = <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>;
958*4882a593Smuzhiyun			clocks = <&gcc USB_HS3_XCVR_CLK>, <&gcc USB_HS3_H_CLK>;
959*4882a593Smuzhiyun			clock-names = "core", "iface";
960*4882a593Smuzhiyun			assigned-clocks = <&gcc USB_HS3_XCVR_CLK>;
961*4882a593Smuzhiyun			assigned-clock-rates = <60000000>;
962*4882a593Smuzhiyun			resets = <&gcc USB_HS3_RESET>;
963*4882a593Smuzhiyun			reset-names = "core";
964*4882a593Smuzhiyun			phy_type = "ulpi";
965*4882a593Smuzhiyun			ahb-burst-config = <0>;
966*4882a593Smuzhiyun			phys = <&usb_hs3_phy>;
967*4882a593Smuzhiyun			phy-names = "usb-phy";
968*4882a593Smuzhiyun			status = "disabled";
969*4882a593Smuzhiyun			#reset-cells = <1>;
970*4882a593Smuzhiyun
971*4882a593Smuzhiyun			ulpi {
972*4882a593Smuzhiyun				usb_hs3_phy: phy {
973*4882a593Smuzhiyun					compatible = "qcom,usb-hs-phy-apq8064",
974*4882a593Smuzhiyun						     "qcom,usb-hs-phy";
975*4882a593Smuzhiyun					#phy-cells = <0>;
976*4882a593Smuzhiyun					clocks = <&sleep_clk>, <&cxo_board>;
977*4882a593Smuzhiyun					clock-names = "sleep", "ref";
978*4882a593Smuzhiyun					resets = <&usb3 0>;
979*4882a593Smuzhiyun					reset-names = "por";
980*4882a593Smuzhiyun				};
981*4882a593Smuzhiyun			};
982*4882a593Smuzhiyun		};
983*4882a593Smuzhiyun
984*4882a593Smuzhiyun		usb4: usb@12530000 {
985*4882a593Smuzhiyun			compatible = "qcom,ci-hdrc";
986*4882a593Smuzhiyun			reg = <0x12530000 0x200>,
987*4882a593Smuzhiyun			      <0x12530200 0x200>;
988*4882a593Smuzhiyun			interrupts = <GIC_SPI 215 IRQ_TYPE_LEVEL_HIGH>;
989*4882a593Smuzhiyun			clocks = <&gcc USB_HS4_XCVR_CLK>, <&gcc USB_HS4_H_CLK>;
990*4882a593Smuzhiyun			clock-names = "core", "iface";
991*4882a593Smuzhiyun			assigned-clocks = <&gcc USB_HS4_XCVR_CLK>;
992*4882a593Smuzhiyun			assigned-clock-rates = <60000000>;
993*4882a593Smuzhiyun			resets = <&gcc USB_HS4_RESET>;
994*4882a593Smuzhiyun			reset-names = "core";
995*4882a593Smuzhiyun			phy_type = "ulpi";
996*4882a593Smuzhiyun			ahb-burst-config = <0>;
997*4882a593Smuzhiyun			phys = <&usb_hs4_phy>;
998*4882a593Smuzhiyun			phy-names = "usb-phy";
999*4882a593Smuzhiyun			status = "disabled";
1000*4882a593Smuzhiyun			#reset-cells = <1>;
1001*4882a593Smuzhiyun
1002*4882a593Smuzhiyun			ulpi {
1003*4882a593Smuzhiyun				usb_hs4_phy: phy {
1004*4882a593Smuzhiyun					compatible = "qcom,usb-hs-phy-apq8064",
1005*4882a593Smuzhiyun						     "qcom,usb-hs-phy";
1006*4882a593Smuzhiyun					#phy-cells = <0>;
1007*4882a593Smuzhiyun					clocks = <&sleep_clk>, <&cxo_board>;
1008*4882a593Smuzhiyun					clock-names = "sleep", "ref";
1009*4882a593Smuzhiyun					resets = <&usb4 0>;
1010*4882a593Smuzhiyun					reset-names = "por";
1011*4882a593Smuzhiyun				};
1012*4882a593Smuzhiyun			};
1013*4882a593Smuzhiyun		};
1014*4882a593Smuzhiyun
1015*4882a593Smuzhiyun		sata_phy0: phy@1b400000 {
1016*4882a593Smuzhiyun			compatible	= "qcom,apq8064-sata-phy";
1017*4882a593Smuzhiyun			status		= "disabled";
1018*4882a593Smuzhiyun			reg		= <0x1b400000 0x200>;
1019*4882a593Smuzhiyun			reg-names	= "phy_mem";
1020*4882a593Smuzhiyun			clocks		= <&gcc SATA_PHY_CFG_CLK>;
1021*4882a593Smuzhiyun			clock-names	= "cfg";
1022*4882a593Smuzhiyun			#phy-cells	= <0>;
1023*4882a593Smuzhiyun		};
1024*4882a593Smuzhiyun
1025*4882a593Smuzhiyun		sata0: sata@29000000 {
1026*4882a593Smuzhiyun			compatible		= "qcom,apq8064-ahci", "generic-ahci";
1027*4882a593Smuzhiyun			status			= "disabled";
1028*4882a593Smuzhiyun			reg			= <0x29000000 0x180>;
1029*4882a593Smuzhiyun			interrupts		= <GIC_SPI 209 IRQ_TYPE_LEVEL_HIGH>;
1030*4882a593Smuzhiyun
1031*4882a593Smuzhiyun			clocks			= <&gcc SFAB_SATA_S_H_CLK>,
1032*4882a593Smuzhiyun						<&gcc SATA_H_CLK>,
1033*4882a593Smuzhiyun						<&gcc SATA_A_CLK>,
1034*4882a593Smuzhiyun						<&gcc SATA_RXOOB_CLK>,
1035*4882a593Smuzhiyun						<&gcc SATA_PMALIVE_CLK>;
1036*4882a593Smuzhiyun			clock-names		= "slave_iface",
1037*4882a593Smuzhiyun						"iface",
1038*4882a593Smuzhiyun						"bus",
1039*4882a593Smuzhiyun						"rxoob",
1040*4882a593Smuzhiyun						"core_pmalive";
1041*4882a593Smuzhiyun
1042*4882a593Smuzhiyun			assigned-clocks		= <&gcc SATA_RXOOB_CLK>,
1043*4882a593Smuzhiyun						<&gcc SATA_PMALIVE_CLK>;
1044*4882a593Smuzhiyun			assigned-clock-rates	= <100000000>, <100000000>;
1045*4882a593Smuzhiyun
1046*4882a593Smuzhiyun			phys			= <&sata_phy0>;
1047*4882a593Smuzhiyun			phy-names		= "sata-phy";
1048*4882a593Smuzhiyun			ports-implemented	= <0x1>;
1049*4882a593Smuzhiyun		};
1050*4882a593Smuzhiyun
1051*4882a593Smuzhiyun		/* Temporary fixed regulator */
1052*4882a593Smuzhiyun		sdcc1bam:dma@12402000{
1053*4882a593Smuzhiyun			compatible = "qcom,bam-v1.3.0";
1054*4882a593Smuzhiyun			reg = <0x12402000 0x8000>;
1055*4882a593Smuzhiyun			interrupts = <0 98 IRQ_TYPE_LEVEL_HIGH>;
1056*4882a593Smuzhiyun			clocks = <&gcc SDC1_H_CLK>;
1057*4882a593Smuzhiyun			clock-names = "bam_clk";
1058*4882a593Smuzhiyun			#dma-cells = <1>;
1059*4882a593Smuzhiyun			qcom,ee = <0>;
1060*4882a593Smuzhiyun		};
1061*4882a593Smuzhiyun
1062*4882a593Smuzhiyun		sdcc3bam:dma@12182000{
1063*4882a593Smuzhiyun			compatible = "qcom,bam-v1.3.0";
1064*4882a593Smuzhiyun			reg = <0x12182000 0x8000>;
1065*4882a593Smuzhiyun			interrupts = <0 96 IRQ_TYPE_LEVEL_HIGH>;
1066*4882a593Smuzhiyun			clocks = <&gcc SDC3_H_CLK>;
1067*4882a593Smuzhiyun			clock-names = "bam_clk";
1068*4882a593Smuzhiyun			#dma-cells = <1>;
1069*4882a593Smuzhiyun			qcom,ee = <0>;
1070*4882a593Smuzhiyun		};
1071*4882a593Smuzhiyun
1072*4882a593Smuzhiyun		sdcc4bam:dma@121c2000{
1073*4882a593Smuzhiyun			compatible = "qcom,bam-v1.3.0";
1074*4882a593Smuzhiyun			reg = <0x121c2000 0x8000>;
1075*4882a593Smuzhiyun			interrupts = <0 95 IRQ_TYPE_LEVEL_HIGH>;
1076*4882a593Smuzhiyun			clocks = <&gcc SDC4_H_CLK>;
1077*4882a593Smuzhiyun			clock-names = "bam_clk";
1078*4882a593Smuzhiyun			#dma-cells = <1>;
1079*4882a593Smuzhiyun			qcom,ee = <0>;
1080*4882a593Smuzhiyun		};
1081*4882a593Smuzhiyun
1082*4882a593Smuzhiyun		amba {
1083*4882a593Smuzhiyun			compatible = "simple-bus";
1084*4882a593Smuzhiyun			#address-cells = <1>;
1085*4882a593Smuzhiyun			#size-cells = <1>;
1086*4882a593Smuzhiyun			ranges;
1087*4882a593Smuzhiyun			sdcc1: sdcc@12400000 {
1088*4882a593Smuzhiyun				status		= "disabled";
1089*4882a593Smuzhiyun				compatible	= "arm,pl18x", "arm,primecell";
1090*4882a593Smuzhiyun				pinctrl-names	= "default";
1091*4882a593Smuzhiyun				pinctrl-0	= <&sdcc1_pins>;
1092*4882a593Smuzhiyun				arm,primecell-periphid = <0x00051180>;
1093*4882a593Smuzhiyun				reg		= <0x12400000 0x2000>;
1094*4882a593Smuzhiyun				interrupts	= <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>;
1095*4882a593Smuzhiyun				interrupt-names	= "cmd_irq";
1096*4882a593Smuzhiyun				clocks		= <&gcc SDC1_CLK>, <&gcc SDC1_H_CLK>;
1097*4882a593Smuzhiyun				clock-names	= "mclk", "apb_pclk";
1098*4882a593Smuzhiyun				bus-width	= <8>;
1099*4882a593Smuzhiyun				max-frequency	= <96000000>;
1100*4882a593Smuzhiyun				non-removable;
1101*4882a593Smuzhiyun				cap-sd-highspeed;
1102*4882a593Smuzhiyun				cap-mmc-highspeed;
1103*4882a593Smuzhiyun				dmas = <&sdcc1bam 2>, <&sdcc1bam 1>;
1104*4882a593Smuzhiyun				dma-names = "tx", "rx";
1105*4882a593Smuzhiyun			};
1106*4882a593Smuzhiyun
1107*4882a593Smuzhiyun			sdcc3: sdcc@12180000 {
1108*4882a593Smuzhiyun				compatible	= "arm,pl18x", "arm,primecell";
1109*4882a593Smuzhiyun				arm,primecell-periphid = <0x00051180>;
1110*4882a593Smuzhiyun				status		= "disabled";
1111*4882a593Smuzhiyun				reg		= <0x12180000 0x2000>;
1112*4882a593Smuzhiyun				interrupts	= <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>;
1113*4882a593Smuzhiyun				interrupt-names	= "cmd_irq";
1114*4882a593Smuzhiyun				clocks		= <&gcc SDC3_CLK>, <&gcc SDC3_H_CLK>;
1115*4882a593Smuzhiyun				clock-names	= "mclk", "apb_pclk";
1116*4882a593Smuzhiyun				bus-width	= <4>;
1117*4882a593Smuzhiyun				cap-sd-highspeed;
1118*4882a593Smuzhiyun				cap-mmc-highspeed;
1119*4882a593Smuzhiyun				max-frequency	= <192000000>;
1120*4882a593Smuzhiyun				no-1-8-v;
1121*4882a593Smuzhiyun				dmas = <&sdcc3bam 2>, <&sdcc3bam 1>;
1122*4882a593Smuzhiyun				dma-names = "tx", "rx";
1123*4882a593Smuzhiyun			};
1124*4882a593Smuzhiyun
1125*4882a593Smuzhiyun			sdcc4: sdcc@121c0000 {
1126*4882a593Smuzhiyun				compatible	= "arm,pl18x", "arm,primecell";
1127*4882a593Smuzhiyun				arm,primecell-periphid = <0x00051180>;
1128*4882a593Smuzhiyun				status		= "disabled";
1129*4882a593Smuzhiyun				reg		= <0x121c0000 0x2000>;
1130*4882a593Smuzhiyun				interrupts	= <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
1131*4882a593Smuzhiyun				interrupt-names	= "cmd_irq";
1132*4882a593Smuzhiyun				clocks		= <&gcc SDC4_CLK>, <&gcc SDC4_H_CLK>;
1133*4882a593Smuzhiyun				clock-names	= "mclk", "apb_pclk";
1134*4882a593Smuzhiyun				bus-width	= <4>;
1135*4882a593Smuzhiyun				cap-sd-highspeed;
1136*4882a593Smuzhiyun				cap-mmc-highspeed;
1137*4882a593Smuzhiyun				max-frequency	= <48000000>;
1138*4882a593Smuzhiyun				dmas = <&sdcc4bam 2>, <&sdcc4bam 1>;
1139*4882a593Smuzhiyun				dma-names = "tx", "rx";
1140*4882a593Smuzhiyun				pinctrl-names = "default";
1141*4882a593Smuzhiyun				pinctrl-0 = <&sdc4_gpios>;
1142*4882a593Smuzhiyun			};
1143*4882a593Smuzhiyun		};
1144*4882a593Smuzhiyun
1145*4882a593Smuzhiyun		tcsr: syscon@1a400000 {
1146*4882a593Smuzhiyun			compatible = "qcom,tcsr-apq8064", "syscon";
1147*4882a593Smuzhiyun			reg = <0x1a400000 0x100>;
1148*4882a593Smuzhiyun		};
1149*4882a593Smuzhiyun
1150*4882a593Smuzhiyun		gpu: adreno-3xx@4300000 {
1151*4882a593Smuzhiyun			compatible = "qcom,adreno-320.2", "qcom,adreno";
1152*4882a593Smuzhiyun			reg = <0x04300000 0x20000>;
1153*4882a593Smuzhiyun			reg-names = "kgsl_3d0_reg_memory";
1154*4882a593Smuzhiyun			interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
1155*4882a593Smuzhiyun			interrupt-names = "kgsl_3d0_irq";
1156*4882a593Smuzhiyun			clock-names =
1157*4882a593Smuzhiyun			    "core_clk",
1158*4882a593Smuzhiyun			    "iface_clk",
1159*4882a593Smuzhiyun			    "mem_clk",
1160*4882a593Smuzhiyun			    "mem_iface_clk";
1161*4882a593Smuzhiyun			clocks =
1162*4882a593Smuzhiyun			    <&mmcc GFX3D_CLK>,
1163*4882a593Smuzhiyun			    <&mmcc GFX3D_AHB_CLK>,
1164*4882a593Smuzhiyun			    <&mmcc GFX3D_AXI_CLK>,
1165*4882a593Smuzhiyun			    <&mmcc MMSS_IMEM_AHB_CLK>;
1166*4882a593Smuzhiyun
1167*4882a593Smuzhiyun			iommus = <&gfx3d 0
1168*4882a593Smuzhiyun				  &gfx3d 1
1169*4882a593Smuzhiyun				  &gfx3d 2
1170*4882a593Smuzhiyun				  &gfx3d 3
1171*4882a593Smuzhiyun				  &gfx3d 4
1172*4882a593Smuzhiyun				  &gfx3d 5
1173*4882a593Smuzhiyun				  &gfx3d 6
1174*4882a593Smuzhiyun				  &gfx3d 7
1175*4882a593Smuzhiyun				  &gfx3d 8
1176*4882a593Smuzhiyun				  &gfx3d 9
1177*4882a593Smuzhiyun				  &gfx3d 10
1178*4882a593Smuzhiyun				  &gfx3d 11
1179*4882a593Smuzhiyun				  &gfx3d 12
1180*4882a593Smuzhiyun				  &gfx3d 13
1181*4882a593Smuzhiyun				  &gfx3d 14
1182*4882a593Smuzhiyun				  &gfx3d 15
1183*4882a593Smuzhiyun				  &gfx3d 16
1184*4882a593Smuzhiyun				  &gfx3d 17
1185*4882a593Smuzhiyun				  &gfx3d 18
1186*4882a593Smuzhiyun				  &gfx3d 19
1187*4882a593Smuzhiyun				  &gfx3d 20
1188*4882a593Smuzhiyun				  &gfx3d 21
1189*4882a593Smuzhiyun				  &gfx3d 22
1190*4882a593Smuzhiyun				  &gfx3d 23
1191*4882a593Smuzhiyun				  &gfx3d 24
1192*4882a593Smuzhiyun				  &gfx3d 25
1193*4882a593Smuzhiyun				  &gfx3d 26
1194*4882a593Smuzhiyun				  &gfx3d 27
1195*4882a593Smuzhiyun				  &gfx3d 28
1196*4882a593Smuzhiyun				  &gfx3d 29
1197*4882a593Smuzhiyun				  &gfx3d 30
1198*4882a593Smuzhiyun				  &gfx3d 31
1199*4882a593Smuzhiyun				  &gfx3d1 0
1200*4882a593Smuzhiyun				  &gfx3d1 1
1201*4882a593Smuzhiyun				  &gfx3d1 2
1202*4882a593Smuzhiyun				  &gfx3d1 3
1203*4882a593Smuzhiyun				  &gfx3d1 4
1204*4882a593Smuzhiyun				  &gfx3d1 5
1205*4882a593Smuzhiyun				  &gfx3d1 6
1206*4882a593Smuzhiyun				  &gfx3d1 7
1207*4882a593Smuzhiyun				  &gfx3d1 8
1208*4882a593Smuzhiyun				  &gfx3d1 9
1209*4882a593Smuzhiyun				  &gfx3d1 10
1210*4882a593Smuzhiyun				  &gfx3d1 11
1211*4882a593Smuzhiyun				  &gfx3d1 12
1212*4882a593Smuzhiyun				  &gfx3d1 13
1213*4882a593Smuzhiyun				  &gfx3d1 14
1214*4882a593Smuzhiyun				  &gfx3d1 15
1215*4882a593Smuzhiyun				  &gfx3d1 16
1216*4882a593Smuzhiyun				  &gfx3d1 17
1217*4882a593Smuzhiyun				  &gfx3d1 18
1218*4882a593Smuzhiyun				  &gfx3d1 19
1219*4882a593Smuzhiyun				  &gfx3d1 20
1220*4882a593Smuzhiyun				  &gfx3d1 21
1221*4882a593Smuzhiyun				  &gfx3d1 22
1222*4882a593Smuzhiyun				  &gfx3d1 23
1223*4882a593Smuzhiyun				  &gfx3d1 24
1224*4882a593Smuzhiyun				  &gfx3d1 25
1225*4882a593Smuzhiyun				  &gfx3d1 26
1226*4882a593Smuzhiyun				  &gfx3d1 27
1227*4882a593Smuzhiyun				  &gfx3d1 28
1228*4882a593Smuzhiyun				  &gfx3d1 29
1229*4882a593Smuzhiyun				  &gfx3d1 30
1230*4882a593Smuzhiyun				  &gfx3d1 31>;
1231*4882a593Smuzhiyun
1232*4882a593Smuzhiyun			qcom,gpu-pwrlevels {
1233*4882a593Smuzhiyun				compatible = "qcom,gpu-pwrlevels";
1234*4882a593Smuzhiyun				qcom,gpu-pwrlevel@0 {
1235*4882a593Smuzhiyun					qcom,gpu-freq = <450000000>;
1236*4882a593Smuzhiyun				};
1237*4882a593Smuzhiyun				qcom,gpu-pwrlevel@1 {
1238*4882a593Smuzhiyun					qcom,gpu-freq = <27000000>;
1239*4882a593Smuzhiyun				};
1240*4882a593Smuzhiyun			};
1241*4882a593Smuzhiyun		};
1242*4882a593Smuzhiyun
1243*4882a593Smuzhiyun		mmss_sfpb: syscon@5700000 {
1244*4882a593Smuzhiyun			compatible = "syscon";
1245*4882a593Smuzhiyun			reg = <0x5700000 0x70>;
1246*4882a593Smuzhiyun		};
1247*4882a593Smuzhiyun
1248*4882a593Smuzhiyun		dsi0: mdss_dsi@4700000 {
1249*4882a593Smuzhiyun			compatible = "qcom,mdss-dsi-ctrl";
1250*4882a593Smuzhiyun			label = "MDSS DSI CTRL->0";
1251*4882a593Smuzhiyun			#address-cells = <1>;
1252*4882a593Smuzhiyun			#size-cells = <0>;
1253*4882a593Smuzhiyun			interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
1254*4882a593Smuzhiyun			reg = <0x04700000 0x200>;
1255*4882a593Smuzhiyun			reg-names = "dsi_ctrl";
1256*4882a593Smuzhiyun
1257*4882a593Smuzhiyun			clocks = <&mmcc DSI_M_AHB_CLK>,
1258*4882a593Smuzhiyun				<&mmcc DSI_S_AHB_CLK>,
1259*4882a593Smuzhiyun				<&mmcc AMP_AHB_CLK>,
1260*4882a593Smuzhiyun				<&mmcc DSI_CLK>,
1261*4882a593Smuzhiyun				<&mmcc DSI1_BYTE_CLK>,
1262*4882a593Smuzhiyun				<&mmcc DSI_PIXEL_CLK>,
1263*4882a593Smuzhiyun				<&mmcc DSI1_ESC_CLK>;
1264*4882a593Smuzhiyun			clock-names = "iface", "bus", "core_mmss",
1265*4882a593Smuzhiyun					"src", "byte", "pixel",
1266*4882a593Smuzhiyun					"core";
1267*4882a593Smuzhiyun
1268*4882a593Smuzhiyun			assigned-clocks = <&mmcc DSI1_BYTE_SRC>,
1269*4882a593Smuzhiyun					<&mmcc DSI1_ESC_SRC>,
1270*4882a593Smuzhiyun					<&mmcc DSI_SRC>,
1271*4882a593Smuzhiyun					<&mmcc DSI_PIXEL_SRC>;
1272*4882a593Smuzhiyun			assigned-clock-parents = <&dsi0_phy 0>,
1273*4882a593Smuzhiyun						<&dsi0_phy 0>,
1274*4882a593Smuzhiyun						<&dsi0_phy 1>,
1275*4882a593Smuzhiyun						<&dsi0_phy 1>;
1276*4882a593Smuzhiyun			syscon-sfpb = <&mmss_sfpb>;
1277*4882a593Smuzhiyun			phys = <&dsi0_phy>;
1278*4882a593Smuzhiyun			ports {
1279*4882a593Smuzhiyun				#address-cells = <1>;
1280*4882a593Smuzhiyun				#size-cells = <0>;
1281*4882a593Smuzhiyun
1282*4882a593Smuzhiyun				port@0 {
1283*4882a593Smuzhiyun					reg = <0>;
1284*4882a593Smuzhiyun					dsi0_in: endpoint {
1285*4882a593Smuzhiyun					};
1286*4882a593Smuzhiyun				};
1287*4882a593Smuzhiyun
1288*4882a593Smuzhiyun				port@1 {
1289*4882a593Smuzhiyun					reg = <1>;
1290*4882a593Smuzhiyun					dsi0_out: endpoint {
1291*4882a593Smuzhiyun					};
1292*4882a593Smuzhiyun				};
1293*4882a593Smuzhiyun			};
1294*4882a593Smuzhiyun		};
1295*4882a593Smuzhiyun
1296*4882a593Smuzhiyun
1297*4882a593Smuzhiyun		dsi0_phy: dsi-phy@4700200 {
1298*4882a593Smuzhiyun			compatible = "qcom,dsi-phy-28nm-8960";
1299*4882a593Smuzhiyun			#clock-cells = <1>;
1300*4882a593Smuzhiyun			#phy-cells = <0>;
1301*4882a593Smuzhiyun
1302*4882a593Smuzhiyun			reg = <0x04700200 0x100>,
1303*4882a593Smuzhiyun				<0x04700300 0x200>,
1304*4882a593Smuzhiyun				<0x04700500 0x5c>;
1305*4882a593Smuzhiyun			reg-names = "dsi_pll", "dsi_phy", "dsi_phy_regulator";
1306*4882a593Smuzhiyun			clock-names = "iface_clk", "ref";
1307*4882a593Smuzhiyun			clocks = <&mmcc DSI_M_AHB_CLK>,
1308*4882a593Smuzhiyun				 <&pxo_board>;
1309*4882a593Smuzhiyun		};
1310*4882a593Smuzhiyun
1311*4882a593Smuzhiyun
1312*4882a593Smuzhiyun		mdp_port0: iommu@7500000 {
1313*4882a593Smuzhiyun			compatible = "qcom,apq8064-iommu";
1314*4882a593Smuzhiyun			#iommu-cells = <1>;
1315*4882a593Smuzhiyun			clock-names =
1316*4882a593Smuzhiyun			    "smmu_pclk",
1317*4882a593Smuzhiyun			    "iommu_clk";
1318*4882a593Smuzhiyun			clocks =
1319*4882a593Smuzhiyun			    <&mmcc SMMU_AHB_CLK>,
1320*4882a593Smuzhiyun			    <&mmcc MDP_AXI_CLK>;
1321*4882a593Smuzhiyun			reg = <0x07500000 0x100000>;
1322*4882a593Smuzhiyun			interrupts =
1323*4882a593Smuzhiyun			    <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>,
1324*4882a593Smuzhiyun			    <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>;
1325*4882a593Smuzhiyun			qcom,ncb = <2>;
1326*4882a593Smuzhiyun		};
1327*4882a593Smuzhiyun
1328*4882a593Smuzhiyun		mdp_port1: iommu@7600000 {
1329*4882a593Smuzhiyun			compatible = "qcom,apq8064-iommu";
1330*4882a593Smuzhiyun			#iommu-cells = <1>;
1331*4882a593Smuzhiyun			clock-names =
1332*4882a593Smuzhiyun			    "smmu_pclk",
1333*4882a593Smuzhiyun			    "iommu_clk";
1334*4882a593Smuzhiyun			clocks =
1335*4882a593Smuzhiyun			    <&mmcc SMMU_AHB_CLK>,
1336*4882a593Smuzhiyun			    <&mmcc MDP_AXI_CLK>;
1337*4882a593Smuzhiyun			reg = <0x07600000 0x100000>;
1338*4882a593Smuzhiyun			interrupts =
1339*4882a593Smuzhiyun			    <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>,
1340*4882a593Smuzhiyun			    <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>;
1341*4882a593Smuzhiyun			qcom,ncb = <2>;
1342*4882a593Smuzhiyun		};
1343*4882a593Smuzhiyun
1344*4882a593Smuzhiyun		gfx3d: iommu@7c00000 {
1345*4882a593Smuzhiyun			compatible = "qcom,apq8064-iommu";
1346*4882a593Smuzhiyun			#iommu-cells = <1>;
1347*4882a593Smuzhiyun			clock-names =
1348*4882a593Smuzhiyun			    "smmu_pclk",
1349*4882a593Smuzhiyun			    "iommu_clk";
1350*4882a593Smuzhiyun			clocks =
1351*4882a593Smuzhiyun			    <&mmcc SMMU_AHB_CLK>,
1352*4882a593Smuzhiyun			    <&mmcc GFX3D_AXI_CLK>;
1353*4882a593Smuzhiyun			reg = <0x07c00000 0x100000>;
1354*4882a593Smuzhiyun			interrupts =
1355*4882a593Smuzhiyun			    <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>,
1356*4882a593Smuzhiyun			    <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
1357*4882a593Smuzhiyun			qcom,ncb = <3>;
1358*4882a593Smuzhiyun		};
1359*4882a593Smuzhiyun
1360*4882a593Smuzhiyun		gfx3d1: iommu@7d00000 {
1361*4882a593Smuzhiyun			compatible = "qcom,apq8064-iommu";
1362*4882a593Smuzhiyun			#iommu-cells = <1>;
1363*4882a593Smuzhiyun			clock-names =
1364*4882a593Smuzhiyun			    "smmu_pclk",
1365*4882a593Smuzhiyun			    "iommu_clk";
1366*4882a593Smuzhiyun			clocks =
1367*4882a593Smuzhiyun			    <&mmcc SMMU_AHB_CLK>,
1368*4882a593Smuzhiyun			    <&mmcc GFX3D_AXI_CLK>;
1369*4882a593Smuzhiyun			reg = <0x07d00000 0x100000>;
1370*4882a593Smuzhiyun			interrupts =
1371*4882a593Smuzhiyun			    <GIC_SPI 210 IRQ_TYPE_LEVEL_HIGH>,
1372*4882a593Smuzhiyun			    <GIC_SPI 211 IRQ_TYPE_LEVEL_HIGH>;
1373*4882a593Smuzhiyun			qcom,ncb = <3>;
1374*4882a593Smuzhiyun		};
1375*4882a593Smuzhiyun
1376*4882a593Smuzhiyun		pcie: pci@1b500000 {
1377*4882a593Smuzhiyun			compatible = "qcom,pcie-apq8064", "snps,dw-pcie";
1378*4882a593Smuzhiyun			reg = <0x1b500000 0x1000
1379*4882a593Smuzhiyun			       0x1b502000 0x80
1380*4882a593Smuzhiyun			       0x1b600000 0x100
1381*4882a593Smuzhiyun			       0x0ff00000 0x100000>;
1382*4882a593Smuzhiyun			reg-names = "dbi", "elbi", "parf", "config";
1383*4882a593Smuzhiyun			device_type = "pci";
1384*4882a593Smuzhiyun			linux,pci-domain = <0>;
1385*4882a593Smuzhiyun			bus-range = <0x00 0xff>;
1386*4882a593Smuzhiyun			num-lanes = <1>;
1387*4882a593Smuzhiyun			#address-cells = <3>;
1388*4882a593Smuzhiyun			#size-cells = <2>;
1389*4882a593Smuzhiyun			ranges = <0x81000000 0 0 0x0fe00000 0 0x00100000   /* I/O */
1390*4882a593Smuzhiyun				  0x82000000 0 0x08000000 0x08000000 0 0x07e00000>; /* memory */
1391*4882a593Smuzhiyun			interrupts = <GIC_SPI 238 IRQ_TYPE_LEVEL_HIGH>;
1392*4882a593Smuzhiyun			interrupt-names = "msi";
1393*4882a593Smuzhiyun			#interrupt-cells = <1>;
1394*4882a593Smuzhiyun			interrupt-map-mask = <0 0 0 0x7>;
1395*4882a593Smuzhiyun			interrupt-map = <0 0 0 1 &intc 0 36 IRQ_TYPE_LEVEL_HIGH>, /* int_a */
1396*4882a593Smuzhiyun					<0 0 0 2 &intc 0 37 IRQ_TYPE_LEVEL_HIGH>, /* int_b */
1397*4882a593Smuzhiyun					<0 0 0 3 &intc 0 38 IRQ_TYPE_LEVEL_HIGH>, /* int_c */
1398*4882a593Smuzhiyun					<0 0 0 4 &intc 0 39 IRQ_TYPE_LEVEL_HIGH>; /* int_d */
1399*4882a593Smuzhiyun			clocks = <&gcc PCIE_A_CLK>,
1400*4882a593Smuzhiyun				 <&gcc PCIE_H_CLK>,
1401*4882a593Smuzhiyun				 <&gcc PCIE_PHY_REF_CLK>;
1402*4882a593Smuzhiyun			clock-names = "core", "iface", "phy";
1403*4882a593Smuzhiyun			resets = <&gcc PCIE_ACLK_RESET>,
1404*4882a593Smuzhiyun				 <&gcc PCIE_HCLK_RESET>,
1405*4882a593Smuzhiyun				 <&gcc PCIE_POR_RESET>,
1406*4882a593Smuzhiyun				 <&gcc PCIE_PCI_RESET>,
1407*4882a593Smuzhiyun				 <&gcc PCIE_PHY_RESET>;
1408*4882a593Smuzhiyun			reset-names = "axi", "ahb", "por", "pci", "phy";
1409*4882a593Smuzhiyun			status = "disabled";
1410*4882a593Smuzhiyun		};
1411*4882a593Smuzhiyun
1412*4882a593Smuzhiyun		hdmi: hdmi-tx@4a00000 {
1413*4882a593Smuzhiyun			compatible = "qcom,hdmi-tx-8960";
1414*4882a593Smuzhiyun			pinctrl-names = "default";
1415*4882a593Smuzhiyun			pinctrl-0 = <&hdmi_pinctrl>;
1416*4882a593Smuzhiyun			reg = <0x04a00000 0x2f0>;
1417*4882a593Smuzhiyun			reg-names = "core_physical";
1418*4882a593Smuzhiyun			interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
1419*4882a593Smuzhiyun			clocks = <&mmcc HDMI_APP_CLK>,
1420*4882a593Smuzhiyun				 <&mmcc HDMI_M_AHB_CLK>,
1421*4882a593Smuzhiyun				 <&mmcc HDMI_S_AHB_CLK>;
1422*4882a593Smuzhiyun			clock-names = "core_clk",
1423*4882a593Smuzhiyun				      "master_iface_clk",
1424*4882a593Smuzhiyun				      "slave_iface_clk";
1425*4882a593Smuzhiyun
1426*4882a593Smuzhiyun			phys = <&hdmi_phy>;
1427*4882a593Smuzhiyun			phy-names = "hdmi-phy";
1428*4882a593Smuzhiyun
1429*4882a593Smuzhiyun			ports {
1430*4882a593Smuzhiyun				#address-cells = <1>;
1431*4882a593Smuzhiyun				#size-cells = <0>;
1432*4882a593Smuzhiyun
1433*4882a593Smuzhiyun				port@0 {
1434*4882a593Smuzhiyun					reg = <0>;
1435*4882a593Smuzhiyun					hdmi_in: endpoint {
1436*4882a593Smuzhiyun					};
1437*4882a593Smuzhiyun				};
1438*4882a593Smuzhiyun
1439*4882a593Smuzhiyun				port@1 {
1440*4882a593Smuzhiyun					reg = <1>;
1441*4882a593Smuzhiyun					hdmi_out: endpoint {
1442*4882a593Smuzhiyun					};
1443*4882a593Smuzhiyun				};
1444*4882a593Smuzhiyun			};
1445*4882a593Smuzhiyun		};
1446*4882a593Smuzhiyun
1447*4882a593Smuzhiyun		hdmi_phy: hdmi-phy@4a00400 {
1448*4882a593Smuzhiyun			compatible = "qcom,hdmi-phy-8960";
1449*4882a593Smuzhiyun			reg = <0x4a00400 0x60>,
1450*4882a593Smuzhiyun			      <0x4a00500 0x100>;
1451*4882a593Smuzhiyun			reg-names = "hdmi_phy",
1452*4882a593Smuzhiyun				    "hdmi_pll";
1453*4882a593Smuzhiyun
1454*4882a593Smuzhiyun			clocks = <&mmcc HDMI_S_AHB_CLK>;
1455*4882a593Smuzhiyun			clock-names = "slave_iface_clk";
1456*4882a593Smuzhiyun			#phy-cells = <0>;
1457*4882a593Smuzhiyun		};
1458*4882a593Smuzhiyun
1459*4882a593Smuzhiyun		mdp: mdp@5100000 {
1460*4882a593Smuzhiyun			compatible = "qcom,mdp4";
1461*4882a593Smuzhiyun			reg = <0x05100000 0xf0000>;
1462*4882a593Smuzhiyun			interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
1463*4882a593Smuzhiyun			clocks = <&mmcc MDP_CLK>,
1464*4882a593Smuzhiyun				 <&mmcc MDP_AHB_CLK>,
1465*4882a593Smuzhiyun				 <&mmcc MDP_AXI_CLK>,
1466*4882a593Smuzhiyun				 <&mmcc MDP_LUT_CLK>,
1467*4882a593Smuzhiyun				 <&mmcc HDMI_TV_CLK>,
1468*4882a593Smuzhiyun				 <&mmcc MDP_TV_CLK>;
1469*4882a593Smuzhiyun			clock-names = "core_clk",
1470*4882a593Smuzhiyun				      "iface_clk",
1471*4882a593Smuzhiyun				      "bus_clk",
1472*4882a593Smuzhiyun				      "lut_clk",
1473*4882a593Smuzhiyun				      "hdmi_clk",
1474*4882a593Smuzhiyun				      "tv_clk";
1475*4882a593Smuzhiyun
1476*4882a593Smuzhiyun			iommus = <&mdp_port0 0
1477*4882a593Smuzhiyun				  &mdp_port0 2
1478*4882a593Smuzhiyun				  &mdp_port1 0
1479*4882a593Smuzhiyun				  &mdp_port1 2>;
1480*4882a593Smuzhiyun
1481*4882a593Smuzhiyun			ports {
1482*4882a593Smuzhiyun				#address-cells = <1>;
1483*4882a593Smuzhiyun				#size-cells = <0>;
1484*4882a593Smuzhiyun
1485*4882a593Smuzhiyun				port@0 {
1486*4882a593Smuzhiyun					reg = <0>;
1487*4882a593Smuzhiyun					mdp_lvds_out: endpoint {
1488*4882a593Smuzhiyun					};
1489*4882a593Smuzhiyun				};
1490*4882a593Smuzhiyun
1491*4882a593Smuzhiyun				port@1 {
1492*4882a593Smuzhiyun					reg = <1>;
1493*4882a593Smuzhiyun					mdp_dsi1_out: endpoint {
1494*4882a593Smuzhiyun					};
1495*4882a593Smuzhiyun				};
1496*4882a593Smuzhiyun
1497*4882a593Smuzhiyun				port@2 {
1498*4882a593Smuzhiyun					reg = <2>;
1499*4882a593Smuzhiyun					mdp_dsi2_out: endpoint {
1500*4882a593Smuzhiyun					};
1501*4882a593Smuzhiyun				};
1502*4882a593Smuzhiyun
1503*4882a593Smuzhiyun				port@3 {
1504*4882a593Smuzhiyun					reg = <3>;
1505*4882a593Smuzhiyun					mdp_dtv_out: endpoint {
1506*4882a593Smuzhiyun					};
1507*4882a593Smuzhiyun				};
1508*4882a593Smuzhiyun			};
1509*4882a593Smuzhiyun		};
1510*4882a593Smuzhiyun
1511*4882a593Smuzhiyun		riva: riva-pil@3204000 {
1512*4882a593Smuzhiyun			compatible = "qcom,riva-pil";
1513*4882a593Smuzhiyun
1514*4882a593Smuzhiyun			reg = <0x03200800 0x1000>, <0x03202000 0x2000>, <0x03204000 0x100>;
1515*4882a593Smuzhiyun			reg-names = "ccu", "dxe", "pmu";
1516*4882a593Smuzhiyun
1517*4882a593Smuzhiyun			interrupts-extended = <&intc GIC_SPI 199 IRQ_TYPE_EDGE_RISING>,
1518*4882a593Smuzhiyun					      <&wcnss_smsm 6 IRQ_TYPE_EDGE_RISING>;
1519*4882a593Smuzhiyun			interrupt-names = "wdog", "fatal";
1520*4882a593Smuzhiyun
1521*4882a593Smuzhiyun			memory-region = <&wcnss_mem>;
1522*4882a593Smuzhiyun
1523*4882a593Smuzhiyun			vddcx-supply = <&pm8921_s3>;
1524*4882a593Smuzhiyun			vddmx-supply = <&pm8921_l24>;
1525*4882a593Smuzhiyun			vddpx-supply = <&pm8921_s4>;
1526*4882a593Smuzhiyun
1527*4882a593Smuzhiyun			status = "disabled";
1528*4882a593Smuzhiyun
1529*4882a593Smuzhiyun			iris {
1530*4882a593Smuzhiyun				compatible = "qcom,wcn3660";
1531*4882a593Smuzhiyun
1532*4882a593Smuzhiyun				clocks = <&cxo_board>;
1533*4882a593Smuzhiyun				clock-names = "xo";
1534*4882a593Smuzhiyun
1535*4882a593Smuzhiyun				vddxo-supply = <&pm8921_l4>;
1536*4882a593Smuzhiyun				vddrfa-supply = <&pm8921_s2>;
1537*4882a593Smuzhiyun				vddpa-supply = <&pm8921_l10>;
1538*4882a593Smuzhiyun				vdddig-supply = <&pm8921_lvs2>;
1539*4882a593Smuzhiyun			};
1540*4882a593Smuzhiyun
1541*4882a593Smuzhiyun			smd-edge {
1542*4882a593Smuzhiyun				interrupts = <GIC_SPI 198 IRQ_TYPE_EDGE_RISING>;
1543*4882a593Smuzhiyun
1544*4882a593Smuzhiyun				qcom,ipc = <&l2cc 8 25>;
1545*4882a593Smuzhiyun				qcom,smd-edge = <6>;
1546*4882a593Smuzhiyun
1547*4882a593Smuzhiyun				label = "riva";
1548*4882a593Smuzhiyun
1549*4882a593Smuzhiyun				wcnss {
1550*4882a593Smuzhiyun					compatible = "qcom,wcnss";
1551*4882a593Smuzhiyun					qcom,smd-channels = "WCNSS_CTRL";
1552*4882a593Smuzhiyun
1553*4882a593Smuzhiyun					qcom,mmio = <&riva>;
1554*4882a593Smuzhiyun
1555*4882a593Smuzhiyun					bt {
1556*4882a593Smuzhiyun						compatible = "qcom,wcnss-bt";
1557*4882a593Smuzhiyun					};
1558*4882a593Smuzhiyun
1559*4882a593Smuzhiyun					wifi {
1560*4882a593Smuzhiyun						compatible = "qcom,wcnss-wlan";
1561*4882a593Smuzhiyun
1562*4882a593Smuzhiyun						interrupts = <GIC_SPI 203 IRQ_TYPE_LEVEL_HIGH>,
1563*4882a593Smuzhiyun							     <GIC_SPI 202 IRQ_TYPE_LEVEL_HIGH>;
1564*4882a593Smuzhiyun						interrupt-names = "tx", "rx";
1565*4882a593Smuzhiyun
1566*4882a593Smuzhiyun						qcom,smem-states = <&apps_smsm 10>, <&apps_smsm 9>;
1567*4882a593Smuzhiyun						qcom,smem-state-names = "tx-enable", "tx-rings-empty";
1568*4882a593Smuzhiyun					};
1569*4882a593Smuzhiyun				};
1570*4882a593Smuzhiyun			};
1571*4882a593Smuzhiyun		};
1572*4882a593Smuzhiyun
1573*4882a593Smuzhiyun		etb@1a01000 {
1574*4882a593Smuzhiyun			compatible = "coresight-etb10", "arm,primecell";
1575*4882a593Smuzhiyun			reg = <0x1a01000 0x1000>;
1576*4882a593Smuzhiyun
1577*4882a593Smuzhiyun			clocks = <&rpmcc RPM_QDSS_CLK>;
1578*4882a593Smuzhiyun			clock-names = "apb_pclk";
1579*4882a593Smuzhiyun
1580*4882a593Smuzhiyun			in-ports {
1581*4882a593Smuzhiyun				port {
1582*4882a593Smuzhiyun					etb_in: endpoint {
1583*4882a593Smuzhiyun						remote-endpoint = <&replicator_out0>;
1584*4882a593Smuzhiyun					};
1585*4882a593Smuzhiyun				};
1586*4882a593Smuzhiyun			};
1587*4882a593Smuzhiyun		};
1588*4882a593Smuzhiyun
1589*4882a593Smuzhiyun		tpiu@1a03000 {
1590*4882a593Smuzhiyun			compatible = "arm,coresight-tpiu", "arm,primecell";
1591*4882a593Smuzhiyun			reg = <0x1a03000 0x1000>;
1592*4882a593Smuzhiyun
1593*4882a593Smuzhiyun			clocks = <&rpmcc RPM_QDSS_CLK>;
1594*4882a593Smuzhiyun			clock-names = "apb_pclk";
1595*4882a593Smuzhiyun
1596*4882a593Smuzhiyun			in-ports {
1597*4882a593Smuzhiyun				port {
1598*4882a593Smuzhiyun					tpiu_in: endpoint {
1599*4882a593Smuzhiyun						remote-endpoint = <&replicator_out1>;
1600*4882a593Smuzhiyun					};
1601*4882a593Smuzhiyun				};
1602*4882a593Smuzhiyun			};
1603*4882a593Smuzhiyun		};
1604*4882a593Smuzhiyun
1605*4882a593Smuzhiyun		replicator {
1606*4882a593Smuzhiyun			compatible = "arm,coresight-static-replicator";
1607*4882a593Smuzhiyun
1608*4882a593Smuzhiyun			clocks = <&rpmcc RPM_QDSS_CLK>;
1609*4882a593Smuzhiyun			clock-names = "apb_pclk";
1610*4882a593Smuzhiyun
1611*4882a593Smuzhiyun			out-ports {
1612*4882a593Smuzhiyun				#address-cells = <1>;
1613*4882a593Smuzhiyun				#size-cells = <0>;
1614*4882a593Smuzhiyun
1615*4882a593Smuzhiyun				port@0 {
1616*4882a593Smuzhiyun					reg = <0>;
1617*4882a593Smuzhiyun					replicator_out0: endpoint {
1618*4882a593Smuzhiyun						remote-endpoint = <&etb_in>;
1619*4882a593Smuzhiyun					};
1620*4882a593Smuzhiyun				};
1621*4882a593Smuzhiyun				port@1 {
1622*4882a593Smuzhiyun					reg = <1>;
1623*4882a593Smuzhiyun					replicator_out1: endpoint {
1624*4882a593Smuzhiyun						remote-endpoint = <&tpiu_in>;
1625*4882a593Smuzhiyun					};
1626*4882a593Smuzhiyun				};
1627*4882a593Smuzhiyun			};
1628*4882a593Smuzhiyun
1629*4882a593Smuzhiyun			in-ports {
1630*4882a593Smuzhiyun				port {
1631*4882a593Smuzhiyun					replicator_in: endpoint {
1632*4882a593Smuzhiyun						remote-endpoint = <&funnel_out>;
1633*4882a593Smuzhiyun					};
1634*4882a593Smuzhiyun				};
1635*4882a593Smuzhiyun			};
1636*4882a593Smuzhiyun		};
1637*4882a593Smuzhiyun
1638*4882a593Smuzhiyun		funnel@1a04000 {
1639*4882a593Smuzhiyun			compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
1640*4882a593Smuzhiyun			reg = <0x1a04000 0x1000>;
1641*4882a593Smuzhiyun
1642*4882a593Smuzhiyun			clocks = <&rpmcc RPM_QDSS_CLK>;
1643*4882a593Smuzhiyun			clock-names = "apb_pclk";
1644*4882a593Smuzhiyun
1645*4882a593Smuzhiyun			in-ports {
1646*4882a593Smuzhiyun				#address-cells = <1>;
1647*4882a593Smuzhiyun				#size-cells = <0>;
1648*4882a593Smuzhiyun
1649*4882a593Smuzhiyun				/*
1650*4882a593Smuzhiyun				 * Not described input ports:
1651*4882a593Smuzhiyun				 * 2 - connected to STM component
1652*4882a593Smuzhiyun				 * 3 - not-connected
1653*4882a593Smuzhiyun				 * 6 - not-connected
1654*4882a593Smuzhiyun				 * 7 - not-connected
1655*4882a593Smuzhiyun				 */
1656*4882a593Smuzhiyun				port@0 {
1657*4882a593Smuzhiyun					reg = <0>;
1658*4882a593Smuzhiyun					funnel_in0: endpoint {
1659*4882a593Smuzhiyun						remote-endpoint = <&etm0_out>;
1660*4882a593Smuzhiyun					};
1661*4882a593Smuzhiyun				};
1662*4882a593Smuzhiyun				port@1 {
1663*4882a593Smuzhiyun					reg = <1>;
1664*4882a593Smuzhiyun					funnel_in1: endpoint {
1665*4882a593Smuzhiyun						remote-endpoint = <&etm1_out>;
1666*4882a593Smuzhiyun					};
1667*4882a593Smuzhiyun				};
1668*4882a593Smuzhiyun				port@4 {
1669*4882a593Smuzhiyun					reg = <4>;
1670*4882a593Smuzhiyun					funnel_in4: endpoint {
1671*4882a593Smuzhiyun						remote-endpoint = <&etm2_out>;
1672*4882a593Smuzhiyun					};
1673*4882a593Smuzhiyun				};
1674*4882a593Smuzhiyun				port@5 {
1675*4882a593Smuzhiyun					reg = <5>;
1676*4882a593Smuzhiyun					funnel_in5: endpoint {
1677*4882a593Smuzhiyun						remote-endpoint = <&etm3_out>;
1678*4882a593Smuzhiyun					};
1679*4882a593Smuzhiyun				};
1680*4882a593Smuzhiyun			};
1681*4882a593Smuzhiyun
1682*4882a593Smuzhiyun			out-ports {
1683*4882a593Smuzhiyun				port {
1684*4882a593Smuzhiyun					funnel_out: endpoint {
1685*4882a593Smuzhiyun						remote-endpoint = <&replicator_in>;
1686*4882a593Smuzhiyun					};
1687*4882a593Smuzhiyun				};
1688*4882a593Smuzhiyun			};
1689*4882a593Smuzhiyun		};
1690*4882a593Smuzhiyun
1691*4882a593Smuzhiyun		etm@1a1c000 {
1692*4882a593Smuzhiyun			compatible = "arm,coresight-etm3x", "arm,primecell";
1693*4882a593Smuzhiyun			reg = <0x1a1c000 0x1000>;
1694*4882a593Smuzhiyun
1695*4882a593Smuzhiyun			clocks = <&rpmcc RPM_QDSS_CLK>;
1696*4882a593Smuzhiyun			clock-names = "apb_pclk";
1697*4882a593Smuzhiyun
1698*4882a593Smuzhiyun			cpu = <&CPU0>;
1699*4882a593Smuzhiyun
1700*4882a593Smuzhiyun			out-ports {
1701*4882a593Smuzhiyun				port {
1702*4882a593Smuzhiyun					etm0_out: endpoint {
1703*4882a593Smuzhiyun						remote-endpoint = <&funnel_in0>;
1704*4882a593Smuzhiyun					};
1705*4882a593Smuzhiyun				};
1706*4882a593Smuzhiyun			};
1707*4882a593Smuzhiyun		};
1708*4882a593Smuzhiyun
1709*4882a593Smuzhiyun		etm@1a1d000 {
1710*4882a593Smuzhiyun			compatible = "arm,coresight-etm3x", "arm,primecell";
1711*4882a593Smuzhiyun			reg = <0x1a1d000 0x1000>;
1712*4882a593Smuzhiyun
1713*4882a593Smuzhiyun			clocks = <&rpmcc RPM_QDSS_CLK>;
1714*4882a593Smuzhiyun			clock-names = "apb_pclk";
1715*4882a593Smuzhiyun
1716*4882a593Smuzhiyun			cpu = <&CPU1>;
1717*4882a593Smuzhiyun
1718*4882a593Smuzhiyun			out-ports {
1719*4882a593Smuzhiyun				port {
1720*4882a593Smuzhiyun					etm1_out: endpoint {
1721*4882a593Smuzhiyun						remote-endpoint = <&funnel_in1>;
1722*4882a593Smuzhiyun					};
1723*4882a593Smuzhiyun				};
1724*4882a593Smuzhiyun			};
1725*4882a593Smuzhiyun		};
1726*4882a593Smuzhiyun
1727*4882a593Smuzhiyun		etm@1a1e000 {
1728*4882a593Smuzhiyun			compatible = "arm,coresight-etm3x", "arm,primecell";
1729*4882a593Smuzhiyun			reg = <0x1a1e000 0x1000>;
1730*4882a593Smuzhiyun
1731*4882a593Smuzhiyun			clocks = <&rpmcc RPM_QDSS_CLK>;
1732*4882a593Smuzhiyun			clock-names = "apb_pclk";
1733*4882a593Smuzhiyun
1734*4882a593Smuzhiyun			cpu = <&CPU2>;
1735*4882a593Smuzhiyun
1736*4882a593Smuzhiyun			out-ports {
1737*4882a593Smuzhiyun				port {
1738*4882a593Smuzhiyun					etm2_out: endpoint {
1739*4882a593Smuzhiyun						remote-endpoint = <&funnel_in4>;
1740*4882a593Smuzhiyun					};
1741*4882a593Smuzhiyun				};
1742*4882a593Smuzhiyun			};
1743*4882a593Smuzhiyun		};
1744*4882a593Smuzhiyun
1745*4882a593Smuzhiyun		etm@1a1f000 {
1746*4882a593Smuzhiyun			compatible = "arm,coresight-etm3x", "arm,primecell";
1747*4882a593Smuzhiyun			reg = <0x1a1f000 0x1000>;
1748*4882a593Smuzhiyun
1749*4882a593Smuzhiyun			clocks = <&rpmcc RPM_QDSS_CLK>;
1750*4882a593Smuzhiyun			clock-names = "apb_pclk";
1751*4882a593Smuzhiyun
1752*4882a593Smuzhiyun			cpu = <&CPU3>;
1753*4882a593Smuzhiyun
1754*4882a593Smuzhiyun			out-ports {
1755*4882a593Smuzhiyun				port {
1756*4882a593Smuzhiyun					etm3_out: endpoint {
1757*4882a593Smuzhiyun						remote-endpoint = <&funnel_in5>;
1758*4882a593Smuzhiyun					};
1759*4882a593Smuzhiyun				};
1760*4882a593Smuzhiyun			};
1761*4882a593Smuzhiyun		};
1762*4882a593Smuzhiyun	};
1763*4882a593Smuzhiyun};
1764*4882a593Smuzhiyun#include "qcom-apq8064-pins.dtsi"
1765