xref: /linux/scripts/dtc/include-prefixes/arm/qcom/qcom-msm8960.dtsi (revision 1cf6313648753e489ece516d05f77b39e52ff07e)
1724ba675SRob Herring// SPDX-License-Identifier: GPL-2.0
2724ba675SRob Herring/dts-v1/;
3724ba675SRob Herring
4724ba675SRob Herring#include <dt-bindings/interrupt-controller/arm-gic.h>
5724ba675SRob Herring#include <dt-bindings/clock/qcom,gcc-msm8960.h>
6724ba675SRob Herring#include <dt-bindings/reset/qcom,gcc-msm8960.h>
7724ba675SRob Herring#include <dt-bindings/clock/qcom,lcc-msm8960.h>
8724ba675SRob Herring#include <dt-bindings/mfd/qcom-rpm.h>
9724ba675SRob Herring#include <dt-bindings/soc/qcom,gsbi.h>
10724ba675SRob Herring
11724ba675SRob Herring/ {
12724ba675SRob Herring	#address-cells = <1>;
13724ba675SRob Herring	#size-cells = <1>;
14724ba675SRob Herring	model = "Qualcomm MSM8960";
15724ba675SRob Herring	compatible = "qcom,msm8960";
16724ba675SRob Herring	interrupt-parent = <&intc>;
17724ba675SRob Herring
18724ba675SRob Herring	cpus {
19724ba675SRob Herring		#address-cells = <1>;
20724ba675SRob Herring		#size-cells = <0>;
21724ba675SRob Herring		interrupts = <GIC_PPI 14 0x304>;
22724ba675SRob Herring
23724ba675SRob Herring		cpu@0 {
24724ba675SRob Herring			compatible = "qcom,krait";
25724ba675SRob Herring			enable-method = "qcom,kpss-acc-v1";
26724ba675SRob Herring			device_type = "cpu";
27724ba675SRob Herring			reg = <0>;
28724ba675SRob Herring			next-level-cache = <&L2>;
29724ba675SRob Herring			qcom,acc = <&acc0>;
30724ba675SRob Herring			qcom,saw = <&saw0>;
31724ba675SRob Herring		};
32724ba675SRob Herring
33724ba675SRob Herring		cpu@1 {
34724ba675SRob Herring			compatible = "qcom,krait";
35724ba675SRob Herring			enable-method = "qcom,kpss-acc-v1";
36724ba675SRob Herring			device_type = "cpu";
37724ba675SRob Herring			reg = <1>;
38724ba675SRob Herring			next-level-cache = <&L2>;
39724ba675SRob Herring			qcom,acc = <&acc1>;
40724ba675SRob Herring			qcom,saw = <&saw1>;
41724ba675SRob Herring		};
42724ba675SRob Herring
43724ba675SRob Herring		L2: l2-cache {
44724ba675SRob Herring			compatible = "cache";
45724ba675SRob Herring			cache-level = <2>;
466c1561fbSLinus Torvalds			cache-unified;
47724ba675SRob Herring		};
48724ba675SRob Herring	};
49724ba675SRob Herring
50724ba675SRob Herring	memory {
51724ba675SRob Herring		device_type = "memory";
52724ba675SRob Herring		reg = <0x0 0x0>;
53724ba675SRob Herring	};
54724ba675SRob Herring
55724ba675SRob Herring	cpu-pmu {
56724ba675SRob Herring		compatible = "qcom,krait-pmu";
57724ba675SRob Herring		interrupts = <GIC_PPI 10 0x304>;
58724ba675SRob Herring		qcom,no-pc-write;
59724ba675SRob Herring	};
60724ba675SRob Herring
61724ba675SRob Herring	clocks {
62724ba675SRob Herring		cxo_board: cxo_board {
63724ba675SRob Herring			compatible = "fixed-clock";
64724ba675SRob Herring			#clock-cells = <0>;
65724ba675SRob Herring			clock-frequency = <19200000>;
66724ba675SRob Herring			clock-output-names = "cxo_board";
67724ba675SRob Herring		};
68724ba675SRob Herring
69724ba675SRob Herring		pxo_board: pxo_board {
70724ba675SRob Herring			compatible = "fixed-clock";
71724ba675SRob Herring			#clock-cells = <0>;
72724ba675SRob Herring			clock-frequency = <27000000>;
73724ba675SRob Herring			clock-output-names = "pxo_board";
74724ba675SRob Herring		};
75724ba675SRob Herring
76724ba675SRob Herring		sleep_clk: sleep_clk {
77724ba675SRob Herring			compatible = "fixed-clock";
78724ba675SRob Herring			#clock-cells = <0>;
79724ba675SRob Herring			clock-frequency = <32768>;
80724ba675SRob Herring			clock-output-names = "sleep_clk";
81724ba675SRob Herring		};
82724ba675SRob Herring	};
83724ba675SRob Herring
84724ba675SRob Herring	/* Temporary fixed regulator */
85724ba675SRob Herring	vsdcc_fixed: vsdcc-regulator {
86724ba675SRob Herring		compatible = "regulator-fixed";
87724ba675SRob Herring		regulator-name = "SDCC Power";
88724ba675SRob Herring		regulator-min-microvolt = <2700000>;
89724ba675SRob Herring		regulator-max-microvolt = <2700000>;
90724ba675SRob Herring		regulator-always-on;
91724ba675SRob Herring	};
92724ba675SRob Herring
93724ba675SRob Herring	soc: soc {
94724ba675SRob Herring		#address-cells = <1>;
95724ba675SRob Herring		#size-cells = <1>;
96724ba675SRob Herring		ranges;
97724ba675SRob Herring		compatible = "simple-bus";
98724ba675SRob Herring
99724ba675SRob Herring		intc: interrupt-controller@2000000 {
100724ba675SRob Herring			compatible = "qcom,msm-qgic2";
101724ba675SRob Herring			interrupt-controller;
102724ba675SRob Herring			#interrupt-cells = <3>;
103724ba675SRob Herring			reg = <0x02000000 0x1000>,
104724ba675SRob Herring			      <0x02002000 0x1000>;
105724ba675SRob Herring		};
106724ba675SRob Herring
107724ba675SRob Herring		timer@200a000 {
108724ba675SRob Herring			compatible = "qcom,kpss-wdt-msm8960", "qcom,kpss-timer",
109724ba675SRob Herring				     "qcom,msm-timer";
110724ba675SRob Herring			interrupts = <GIC_PPI 1 0x301>,
111724ba675SRob Herring				     <GIC_PPI 2 0x301>,
112724ba675SRob Herring				     <GIC_PPI 3 0x301>;
113724ba675SRob Herring			reg = <0x0200a000 0x100>;
114724ba675SRob Herring			clock-frequency = <27000000>;
115724ba675SRob Herring			cpu-offset = <0x80000>;
116724ba675SRob Herring		};
117724ba675SRob Herring
118724ba675SRob Herring		msmgpio: pinctrl@800000 {
119724ba675SRob Herring			compatible = "qcom,msm8960-pinctrl";
120724ba675SRob Herring			gpio-controller;
121724ba675SRob Herring			gpio-ranges = <&msmgpio 0 0 152>;
122724ba675SRob Herring			#gpio-cells = <2>;
123724ba675SRob Herring			interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
124724ba675SRob Herring			interrupt-controller;
125724ba675SRob Herring			#interrupt-cells = <2>;
126724ba675SRob Herring			reg = <0x800000 0x4000>;
127724ba675SRob Herring		};
128724ba675SRob Herring
129724ba675SRob Herring		gcc: clock-controller@900000 {
130724ba675SRob Herring			compatible = "qcom,gcc-msm8960";
131724ba675SRob Herring			#clock-cells = <1>;
132724ba675SRob Herring			#power-domain-cells = <1>;
133724ba675SRob Herring			#reset-cells = <1>;
134724ba675SRob Herring			reg = <0x900000 0x4000>;
135724ba675SRob Herring			clocks = <&cxo_board>,
136724ba675SRob Herring				 <&pxo_board>,
137724ba675SRob Herring				 <&lcc PLL4>;
138724ba675SRob Herring			clock-names = "cxo", "pxo", "pll4";
139724ba675SRob Herring		};
140724ba675SRob Herring
141724ba675SRob Herring		lcc: clock-controller@28000000 {
142724ba675SRob Herring			compatible = "qcom,lcc-msm8960";
143724ba675SRob Herring			reg = <0x28000000 0x1000>;
144724ba675SRob Herring			#clock-cells = <1>;
145724ba675SRob Herring			#reset-cells = <1>;
146724ba675SRob Herring			clocks = <&pxo_board>,
147724ba675SRob Herring				 <&gcc PLL4_VOTE>,
148724ba675SRob Herring				 <0>,
149724ba675SRob Herring				 <0>, <0>,
150724ba675SRob Herring				 <0>, <0>,
151724ba675SRob Herring				 <0>;
152724ba675SRob Herring			clock-names = "pxo",
153724ba675SRob Herring				      "pll4_vote",
154724ba675SRob Herring				      "mi2s_codec_clk",
155724ba675SRob Herring				      "codec_i2s_mic_codec_clk",
156724ba675SRob Herring				      "spare_i2s_mic_codec_clk",
157724ba675SRob Herring				      "codec_i2s_spkr_codec_clk",
158724ba675SRob Herring				      "spare_i2s_spkr_codec_clk",
159724ba675SRob Herring				      "pcm_codec_clk";
160724ba675SRob Herring		};
161724ba675SRob Herring
162724ba675SRob Herring		clock-controller@4000000 {
163724ba675SRob Herring			compatible = "qcom,mmcc-msm8960";
164724ba675SRob Herring			reg = <0x4000000 0x1000>;
165724ba675SRob Herring			#clock-cells = <1>;
166724ba675SRob Herring			#power-domain-cells = <1>;
167724ba675SRob Herring			#reset-cells = <1>;
168724ba675SRob Herring			clocks = <&pxo_board>,
169724ba675SRob Herring				 <&gcc PLL3>,
170724ba675SRob Herring				 <&gcc PLL8_VOTE>,
171724ba675SRob Herring				 <0>,
172724ba675SRob Herring				 <0>,
173724ba675SRob Herring				 <0>,
174724ba675SRob Herring				 <0>,
175724ba675SRob Herring				 <0>;
176724ba675SRob Herring			clock-names = "pxo",
177724ba675SRob Herring				      "pll3",
178724ba675SRob Herring				      "pll8_vote",
179724ba675SRob Herring				      "dsi1pll",
180724ba675SRob Herring				      "dsi1pllbyte",
181724ba675SRob Herring				      "dsi2pll",
182724ba675SRob Herring				      "dsi2pllbyte",
183724ba675SRob Herring				      "hdmipll";
184724ba675SRob Herring		};
185724ba675SRob Herring
186724ba675SRob Herring		l2cc: clock-controller@2011000 {
187724ba675SRob Herring			compatible = "qcom,kpss-gcc-msm8960", "qcom,kpss-gcc", "syscon";
188724ba675SRob Herring			reg = <0x2011000 0x1000>;
189724ba675SRob Herring			clocks = <&gcc PLL8_VOTE>, <&pxo_board>;
190724ba675SRob Herring			clock-names = "pll8_vote", "pxo";
191724ba675SRob Herring			#clock-cells = <0>;
192724ba675SRob Herring		};
193724ba675SRob Herring
194724ba675SRob Herring		rpm: rpm@108000 {
195724ba675SRob Herring			compatible = "qcom,rpm-msm8960";
196724ba675SRob Herring			reg = <0x108000 0x1000>;
197724ba675SRob Herring			qcom,ipc = <&l2cc 0x8 2>;
198724ba675SRob Herring
199724ba675SRob Herring			interrupts = <GIC_SPI 19 IRQ_TYPE_EDGE_RISING>,
200724ba675SRob Herring				     <GIC_SPI 21 IRQ_TYPE_EDGE_RISING>,
201724ba675SRob Herring				     <GIC_SPI 22 IRQ_TYPE_EDGE_RISING>;
202724ba675SRob Herring			interrupt-names = "ack", "err", "wakeup";
203724ba675SRob Herring		};
204724ba675SRob Herring
205724ba675SRob Herring		acc0: clock-controller@2088000 {
206724ba675SRob Herring			compatible = "qcom,kpss-acc-v1";
207724ba675SRob Herring			reg = <0x02088000 0x1000>, <0x02008000 0x1000>;
208724ba675SRob Herring			clocks = <&gcc PLL8_VOTE>, <&pxo_board>;
209724ba675SRob Herring			clock-names = "pll8_vote", "pxo";
210724ba675SRob Herring			clock-output-names = "acpu0_aux";
211724ba675SRob Herring			#clock-cells = <0>;
212724ba675SRob Herring		};
213724ba675SRob Herring
214724ba675SRob Herring		acc1: clock-controller@2098000 {
215724ba675SRob Herring			compatible = "qcom,kpss-acc-v1";
216724ba675SRob Herring			reg = <0x02098000 0x1000>, <0x02008000 0x1000>;
217724ba675SRob Herring			clocks = <&gcc PLL8_VOTE>, <&pxo_board>;
218724ba675SRob Herring			clock-names = "pll8_vote", "pxo";
219724ba675SRob Herring			clock-output-names = "acpu1_aux";
220724ba675SRob Herring			#clock-cells = <0>;
221724ba675SRob Herring		};
222724ba675SRob Herring
223724ba675SRob Herring		saw0: regulator@2089000 {
224724ba675SRob Herring			compatible = "qcom,saw2";
225724ba675SRob Herring			reg = <0x02089000 0x1000>, <0x02009000 0x1000>;
226724ba675SRob Herring			regulator;
227724ba675SRob Herring		};
228724ba675SRob Herring
229724ba675SRob Herring		saw1: regulator@2099000 {
230724ba675SRob Herring			compatible = "qcom,saw2";
231724ba675SRob Herring			reg = <0x02099000 0x1000>, <0x02009000 0x1000>;
232724ba675SRob Herring			regulator;
233724ba675SRob Herring		};
234724ba675SRob Herring
235724ba675SRob Herring		gsbi5: gsbi@16400000 {
236724ba675SRob Herring			compatible = "qcom,gsbi-v1.0.0";
237724ba675SRob Herring			cell-index = <5>;
238724ba675SRob Herring			reg = <0x16400000 0x100>;
239724ba675SRob Herring			clocks = <&gcc GSBI5_H_CLK>;
240724ba675SRob Herring			clock-names = "iface";
241724ba675SRob Herring			#address-cells = <1>;
242724ba675SRob Herring			#size-cells = <1>;
243724ba675SRob Herring			ranges;
244724ba675SRob Herring
245724ba675SRob Herring			syscon-tcsr = <&tcsr>;
246724ba675SRob Herring
247724ba675SRob Herring			gsbi5_serial: serial@16440000 {
248724ba675SRob Herring				compatible = "qcom,msm-uartdm-v1.3", "qcom,msm-uartdm";
249724ba675SRob Herring				reg = <0x16440000 0x1000>,
250724ba675SRob Herring				      <0x16400000 0x1000>;
251724ba675SRob Herring				interrupts = <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>;
252724ba675SRob Herring				clocks = <&gcc GSBI5_UART_CLK>, <&gcc GSBI5_H_CLK>;
253724ba675SRob Herring				clock-names = "core", "iface";
254724ba675SRob Herring				status = "disabled";
255724ba675SRob Herring			};
256724ba675SRob Herring		};
257724ba675SRob Herring
2585c903b85SDmitry Baryshkov		ssbi: ssbi@500000 {
259724ba675SRob Herring			compatible = "qcom,ssbi";
260724ba675SRob Herring			reg = <0x500000 0x1000>;
261724ba675SRob Herring			qcom,controller-type = "pmic-arbiter";
262724ba675SRob Herring		};
263724ba675SRob Herring
264724ba675SRob Herring		rng@1a500000 {
265724ba675SRob Herring			compatible = "qcom,prng";
266724ba675SRob Herring			reg = <0x1a500000 0x200>;
267724ba675SRob Herring			clocks = <&gcc PRNG_CLK>;
268724ba675SRob Herring			clock-names = "core";
269724ba675SRob Herring		};
270724ba675SRob Herring
271724ba675SRob Herring		sdcc3: mmc@12180000 {
272724ba675SRob Herring			compatible = "arm,pl18x", "arm,primecell";
273724ba675SRob Herring			arm,primecell-periphid = <0x00051180>;
274724ba675SRob Herring			status = "disabled";
275724ba675SRob Herring			reg = <0x12180000 0x8000>;
276724ba675SRob Herring			interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>;
277724ba675SRob Herring			clocks = <&gcc SDC3_CLK>, <&gcc SDC3_H_CLK>;
278724ba675SRob Herring			clock-names = "mclk", "apb_pclk";
279724ba675SRob Herring			bus-width = <4>;
280724ba675SRob Herring			cap-sd-highspeed;
281724ba675SRob Herring			cap-mmc-highspeed;
282724ba675SRob Herring			max-frequency = <192000000>;
283724ba675SRob Herring			no-1-8-v;
284724ba675SRob Herring			vmmc-supply = <&vsdcc_fixed>;
285724ba675SRob Herring		};
286724ba675SRob Herring
287724ba675SRob Herring		sdcc1: mmc@12400000 {
288724ba675SRob Herring			status = "disabled";
289724ba675SRob Herring			compatible = "arm,pl18x", "arm,primecell";
290724ba675SRob Herring			arm,primecell-periphid = <0x00051180>;
291724ba675SRob Herring			reg = <0x12400000 0x8000>;
292724ba675SRob Herring			interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>;
293724ba675SRob Herring			clocks = <&gcc SDC1_CLK>, <&gcc SDC1_H_CLK>;
294724ba675SRob Herring			clock-names = "mclk", "apb_pclk";
295724ba675SRob Herring			bus-width = <8>;
296724ba675SRob Herring			max-frequency = <96000000>;
297724ba675SRob Herring			non-removable;
298724ba675SRob Herring			cap-sd-highspeed;
299724ba675SRob Herring			cap-mmc-highspeed;
300724ba675SRob Herring			vmmc-supply = <&vsdcc_fixed>;
301724ba675SRob Herring		};
302724ba675SRob Herring
303724ba675SRob Herring		tcsr: syscon@1a400000 {
304724ba675SRob Herring			compatible = "qcom,tcsr-msm8960", "syscon";
305724ba675SRob Herring			reg = <0x1a400000 0x100>;
306724ba675SRob Herring		};
307724ba675SRob Herring
308724ba675SRob Herring		gsbi1: gsbi@16000000 {
309724ba675SRob Herring			compatible = "qcom,gsbi-v1.0.0";
310724ba675SRob Herring			cell-index = <1>;
311724ba675SRob Herring			reg = <0x16000000 0x100>;
312724ba675SRob Herring			clocks = <&gcc GSBI1_H_CLK>;
313724ba675SRob Herring			clock-names = "iface";
314724ba675SRob Herring			#address-cells = <1>;
315724ba675SRob Herring			#size-cells = <1>;
316724ba675SRob Herring			ranges;
317724ba675SRob Herring
318724ba675SRob Herring			gsbi1_spi: spi@16080000 {
319724ba675SRob Herring				compatible = "qcom,spi-qup-v1.1.1";
320724ba675SRob Herring				#address-cells = <1>;
321724ba675SRob Herring				#size-cells = <0>;
322724ba675SRob Herring				reg = <0x16080000 0x1000>;
323724ba675SRob Herring				interrupts = <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>;
324724ba675SRob Herring				cs-gpios = <&msmgpio 8 0>;
325724ba675SRob Herring
326724ba675SRob Herring				clocks = <&gcc GSBI1_QUP_CLK>, <&gcc GSBI1_H_CLK>;
327724ba675SRob Herring				clock-names = "core", "iface";
328724ba675SRob Herring				status = "disabled";
329724ba675SRob Herring			};
330724ba675SRob Herring		};
331724ba675SRob Herring
332724ba675SRob Herring		usb1: usb@12500000 {
333724ba675SRob Herring			compatible = "qcom,ci-hdrc";
334724ba675SRob Herring			reg = <0x12500000 0x200>,
335724ba675SRob Herring			      <0x12500200 0x200>;
336724ba675SRob Herring			interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
337724ba675SRob Herring			clocks = <&gcc USB_HS1_XCVR_CLK>, <&gcc USB_HS1_H_CLK>;
338724ba675SRob Herring			clock-names = "core", "iface";
339724ba675SRob Herring			assigned-clocks = <&gcc USB_HS1_XCVR_CLK>;
340724ba675SRob Herring			assigned-clock-rates = <60000000>;
341724ba675SRob Herring			resets = <&gcc USB_HS1_RESET>;
342724ba675SRob Herring			reset-names = "core";
343724ba675SRob Herring			phy_type = "ulpi";
344724ba675SRob Herring			ahb-burst-config = <0>;
345724ba675SRob Herring			phys = <&usb_hs1_phy>;
346724ba675SRob Herring			phy-names = "usb-phy";
347724ba675SRob Herring			#reset-cells = <1>;
348724ba675SRob Herring			status = "disabled";
349724ba675SRob Herring
350724ba675SRob Herring			ulpi {
351724ba675SRob Herring				usb_hs1_phy: phy {
352724ba675SRob Herring					compatible = "qcom,usb-hs-phy-msm8960",
353724ba675SRob Herring						     "qcom,usb-hs-phy";
354724ba675SRob Herring					clocks = <&sleep_clk>, <&cxo_board>;
355724ba675SRob Herring					clock-names = "sleep", "ref";
356724ba675SRob Herring					resets = <&usb1 0>;
357724ba675SRob Herring					reset-names = "por";
358724ba675SRob Herring					#phy-cells = <0>;
359724ba675SRob Herring				};
360724ba675SRob Herring			};
361724ba675SRob Herring		};
362*1cf63136SRudraksha Gupta
363*1cf63136SRudraksha Gupta		gsbi3: gsbi@16200000 {
364*1cf63136SRudraksha Gupta			compatible = "qcom,gsbi-v1.0.0";
365*1cf63136SRudraksha Gupta			reg = <0x16200000 0x100>;
366*1cf63136SRudraksha Gupta			ranges;
367*1cf63136SRudraksha Gupta			cell-index = <3>;
368*1cf63136SRudraksha Gupta			clocks = <&gcc GSBI3_H_CLK>;
369*1cf63136SRudraksha Gupta			clock-names = "iface";
370*1cf63136SRudraksha Gupta			#address-cells = <1>;
371*1cf63136SRudraksha Gupta			#size-cells = <1>;
372*1cf63136SRudraksha Gupta			status = "disabled";
373*1cf63136SRudraksha Gupta
374*1cf63136SRudraksha Gupta			gsbi3_i2c: i2c@16280000 {
375*1cf63136SRudraksha Gupta				compatible = "qcom,i2c-qup-v1.1.1";
376*1cf63136SRudraksha Gupta				reg = <0x16280000 0x1000>;
377*1cf63136SRudraksha Gupta				pinctrl-0 = <&i2c3_default_state>;
378*1cf63136SRudraksha Gupta				pinctrl-1 = <&i2c3_sleep_state>;
379*1cf63136SRudraksha Gupta				pinctrl-names = "default", "sleep";
380*1cf63136SRudraksha Gupta				interrupts = <GIC_SPI 151 IRQ_TYPE_LEVEL_HIGH>;
381*1cf63136SRudraksha Gupta				clocks = <&gcc GSBI3_QUP_CLK>,
382*1cf63136SRudraksha Gupta					 <&gcc GSBI3_H_CLK>;
383*1cf63136SRudraksha Gupta				clock-names = "core", "iface";
384*1cf63136SRudraksha Gupta				#address-cells = <1>;
385*1cf63136SRudraksha Gupta				#size-cells = <0>;
386*1cf63136SRudraksha Gupta				status = "disabled";
387724ba675SRob Herring			};
388724ba675SRob Herring		};
389*1cf63136SRudraksha Gupta	};
390*1cf63136SRudraksha Gupta};
391*1cf63136SRudraksha Gupta#include "qcom-msm8960-pins.dtsi"
392