Merge remote-tracking branch 'lightnvm/for-next'
[deliverable/linux.git] / arch / arm64 / boot / dts / qcom / msm8996.dtsi
1 /* Copyright (c) 2014-2015, The Linux Foundation. All rights reserved.
2 *
3 * This program is free software; you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License version 2 and
5 * only version 2 as published by the Free Software Foundation.
6 *
7 * This program is distributed in the hope that it will be useful,
8 * but WITHOUT ANY WARRANTY; without even the implied warranty of
9 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10 * GNU General Public License for more details.
11 */
12
13 #include <dt-bindings/interrupt-controller/arm-gic.h>
14 #include <dt-bindings/clock/qcom,gcc-msm8996.h>
15 #include <dt-bindings/clock/qcom,mmcc-msm8996.h>
16
17 / {
18 model = "Qualcomm Technologies, Inc. MSM8996";
19
20 interrupt-parent = <&intc>;
21
22 #address-cells = <2>;
23 #size-cells = <2>;
24
25 chosen { };
26
27 memory {
28 device_type = "memory";
29 /* We expect the bootloader to fill in the reg */
30 reg = <0 0 0 0>;
31 };
32
33 cpus {
34 #address-cells = <2>;
35 #size-cells = <0>;
36
37 CPU0: cpu@0 {
38 device_type = "cpu";
39 compatible = "qcom,kryo";
40 reg = <0x0 0x0>;
41 enable-method = "psci";
42 next-level-cache = <&L2_0>;
43 L2_0: l2-cache {
44 compatible = "cache";
45 cache-level = <2>;
46 };
47 };
48
49 CPU1: cpu@1 {
50 device_type = "cpu";
51 compatible = "qcom,kryo";
52 reg = <0x0 0x1>;
53 enable-method = "psci";
54 next-level-cache = <&L2_0>;
55 };
56
57 CPU2: cpu@100 {
58 device_type = "cpu";
59 compatible = "qcom,kryo";
60 reg = <0x0 0x100>;
61 enable-method = "psci";
62 next-level-cache = <&L2_1>;
63 L2_1: l2-cache {
64 compatible = "cache";
65 cache-level = <2>;
66 };
67 };
68
69 CPU3: cpu@101 {
70 device_type = "cpu";
71 compatible = "qcom,kryo";
72 reg = <0x0 0x101>;
73 enable-method = "psci";
74 next-level-cache = <&L2_1>;
75 };
76
77 cpu-map {
78 cluster0 {
79 core0 {
80 cpu = <&CPU0>;
81 };
82
83 core1 {
84 cpu = <&CPU1>;
85 };
86 };
87
88 cluster1 {
89 core0 {
90 cpu = <&CPU2>;
91 };
92
93 core1 {
94 cpu = <&CPU3>;
95 };
96 };
97 };
98 };
99
100 thermal-zones {
101 cpu-thermal0 {
102 polling-delay-passive = <250>;
103 polling-delay = <1000>;
104
105 thermal-sensors = <&tsens0 3>;
106
107 trips {
108 cpu_alert0: trip0 {
109 temperature = <75000>;
110 hysteresis = <2000>;
111 type = "passive";
112 };
113
114 cpu_crit0: trip1 {
115 temperature = <110000>;
116 hysteresis = <2000>;
117 type = "critical";
118 };
119 };
120 };
121
122 cpu-thermal1 {
123 polling-delay-passive = <250>;
124 polling-delay = <1000>;
125
126 thermal-sensors = <&tsens0 5>;
127
128 trips {
129 cpu_alert1: trip0 {
130 temperature = <75000>;
131 hysteresis = <2000>;
132 type = "passive";
133 };
134
135 cpu_crit1: trip1 {
136 temperature = <110000>;
137 hysteresis = <2000>;
138 type = "critical";
139 };
140 };
141 };
142
143 cpu-thermal2 {
144 polling-delay-passive = <250>;
145 polling-delay = <1000>;
146
147 thermal-sensors = <&tsens0 8>;
148
149 trips {
150 cpu_alert2: trip0 {
151 temperature = <75000>;
152 hysteresis = <2000>;
153 type = "passive";
154 };
155
156 cpu_crit2: trip1 {
157 temperature = <110000>;
158 hysteresis = <2000>;
159 type = "critical";
160 };
161 };
162 };
163
164 cpu-thermal3 {
165 polling-delay-passive = <250>;
166 polling-delay = <1000>;
167
168 thermal-sensors = <&tsens0 10>;
169
170 trips {
171 cpu_alert3: trip0 {
172 temperature = <75000>;
173 hysteresis = <2000>;
174 type = "passive";
175 };
176
177 cpu_crit3: trip1 {
178 temperature = <110000>;
179 hysteresis = <2000>;
180 type = "critical";
181 };
182 };
183 };
184 };
185
186 timer {
187 compatible = "arm,armv8-timer";
188 interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
189 <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
190 <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
191 <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
192 };
193
194 clocks {
195 xo_board {
196 compatible = "fixed-clock";
197 #clock-cells = <0>;
198 clock-frequency = <19200000>;
199 clock-output-names = "xo_board";
200 };
201
202 sleep_clk {
203 compatible = "fixed-clock";
204 #clock-cells = <0>;
205 clock-frequency = <32764>;
206 clock-output-names = "sleep_clk";
207 };
208 };
209
210 psci {
211 compatible = "arm,psci-1.0";
212 method = "smc";
213 };
214
215 soc: soc {
216 #address-cells = <1>;
217 #size-cells = <1>;
218 ranges = <0 0 0 0xffffffff>;
219 compatible = "simple-bus";
220
221 intc: interrupt-controller@9bc0000 {
222 compatible = "arm,gic-v3";
223 #interrupt-cells = <3>;
224 interrupt-controller;
225 #redistributor-regions = <1>;
226 redistributor-stride = <0x0 0x40000>;
227 reg = <0x09bc0000 0x10000>,
228 <0x09c00000 0x100000>;
229 interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
230 };
231
232 gcc: clock-controller@300000 {
233 compatible = "qcom,gcc-msm8996";
234 #clock-cells = <1>;
235 #reset-cells = <1>;
236 #power-domain-cells = <1>;
237 reg = <0x300000 0x90000>;
238 };
239
240 blsp1_spi0: spi@07575000 {
241 compatible = "qcom,spi-qup-v2.2.1";
242 reg = <0x07575000 0x600>;
243 interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
244 clocks = <&gcc GCC_BLSP1_QUP1_SPI_APPS_CLK>,
245 <&gcc GCC_BLSP1_AHB_CLK>;
246 clock-names = "core", "iface";
247 pinctrl-names = "default", "sleep";
248 pinctrl-0 = <&blsp1_spi0_default>;
249 pinctrl-1 = <&blsp1_spi0_sleep>;
250 #address-cells = <1>;
251 #size-cells = <0>;
252 status = "disabled";
253 };
254
255 blsp2_i2c0: i2c@075b5000 {
256 compatible = "qcom,i2c-qup-v2.2.1";
257 reg = <0x075b5000 0x1000>;
258 interrupts = <GIC_SPI 101 0>;
259 clocks = <&gcc GCC_BLSP2_AHB_CLK>,
260 <&gcc GCC_BLSP2_QUP1_I2C_APPS_CLK>;
261 clock-names = "iface", "core";
262 pinctrl-names = "default", "sleep";
263 pinctrl-0 = <&blsp2_i2c0_default>;
264 pinctrl-1 = <&blsp2_i2c0_sleep>;
265 #address-cells = <1>;
266 #size-cells = <0>;
267 status = "disabled";
268 };
269
270 tsens0: thermal-sensor@4a8000 {
271 compatible = "qcom,msm8996-tsens";
272 reg = <0x4a8000 0x2000>;
273 #thermal-sensor-cells = <1>;
274 };
275
276 blsp2_uart1: serial@75b0000 {
277 compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
278 reg = <0x75b0000 0x1000>;
279 interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
280 clocks = <&gcc GCC_BLSP2_UART2_APPS_CLK>,
281 <&gcc GCC_BLSP2_AHB_CLK>;
282 clock-names = "core", "iface";
283 status = "disabled";
284 };
285
286 blsp2_i2c1: i2c@075b6000 {
287 compatible = "qcom,i2c-qup-v2.2.1";
288 reg = <0x075b6000 0x1000>;
289 interrupts = <GIC_SPI 102 0>;
290 clocks = <&gcc GCC_BLSP2_AHB_CLK>,
291 <&gcc GCC_BLSP2_QUP2_I2C_APPS_CLK>;
292 clock-names = "iface", "core";
293 pinctrl-names = "default", "sleep";
294 pinctrl-0 = <&blsp2_i2c1_default>;
295 pinctrl-1 = <&blsp2_i2c1_sleep>;
296 #address-cells = <1>;
297 #size-cells = <0>;
298 status = "disabled";
299 };
300
301 blsp2_uart2: serial@75b1000 {
302 compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
303 reg = <0x075b1000 0x1000>;
304 interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>;
305 clocks = <&gcc GCC_BLSP2_UART3_APPS_CLK>,
306 <&gcc GCC_BLSP2_AHB_CLK>;
307 clock-names = "core", "iface";
308 status = "disabled";
309 };
310
311 blsp1_i2c2: i2c@07577000 {
312 compatible = "qcom,i2c-qup-v2.2.1";
313 reg = <0x07577000 0x1000>;
314 interrupts = <GIC_SPI 97 0>;
315 clocks = <&gcc GCC_BLSP1_AHB_CLK>,
316 <&gcc GCC_BLSP1_QUP3_I2C_APPS_CLK>;
317 clock-names = "iface", "core";
318 pinctrl-names = "default", "sleep";
319 pinctrl-0 = <&blsp1_i2c2_default>;
320 pinctrl-1 = <&blsp1_i2c2_sleep>;
321 #address-cells = <1>;
322 #size-cells = <0>;
323 status = "disabled";
324 };
325
326 blsp2_spi5: spi@075ba000{
327 compatible = "qcom,spi-qup-v2.2.1";
328 reg = <0x075ba000 0x600>;
329 interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
330 clocks = <&gcc GCC_BLSP2_QUP5_SPI_APPS_CLK>,
331 <&gcc GCC_BLSP2_AHB_CLK>;
332 clock-names = "core", "iface";
333 pinctrl-names = "default", "sleep";
334 pinctrl-0 = <&blsp2_spi5_default>;
335 pinctrl-1 = <&blsp2_spi5_sleep>;
336 #address-cells = <1>;
337 #size-cells = <0>;
338 status = "disabled";
339 };
340
341 sdhc2: sdhci@74a4900 {
342 status = "disabled";
343 compatible = "qcom,sdhci-msm-v4";
344 reg = <0x74a4900 0x314>, <0x74a4000 0x800>;
345 reg-names = "hc_mem", "core_mem";
346
347 interrupts = <0 125 0>, <0 221 0>;
348 interrupt-names = "hc_irq", "pwr_irq";
349
350 clock-names = "iface", "core";
351 clocks = <&gcc GCC_SDCC2_AHB_CLK>,
352 <&gcc GCC_SDCC2_APPS_CLK>;
353 bus-width = <4>;
354 };
355
356 msmgpio: pinctrl@1010000 {
357 compatible = "qcom,msm8996-pinctrl";
358 reg = <0x01010000 0x300000>;
359 interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
360 gpio-controller;
361 #gpio-cells = <2>;
362 interrupt-controller;
363 #interrupt-cells = <2>;
364 };
365
366 timer@09840000 {
367 #address-cells = <1>;
368 #size-cells = <1>;
369 ranges;
370 compatible = "arm,armv7-timer-mem";
371 reg = <0x09840000 0x1000>;
372 clock-frequency = <19200000>;
373
374 frame@9850000 {
375 frame-number = <0>;
376 interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>,
377 <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
378 reg = <0x09850000 0x1000>,
379 <0x09860000 0x1000>;
380 };
381
382 frame@9870000 {
383 frame-number = <1>;
384 interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
385 reg = <0x09870000 0x1000>;
386 status = "disabled";
387 };
388
389 frame@9880000 {
390 frame-number = <2>;
391 interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
392 reg = <0x09880000 0x1000>;
393 status = "disabled";
394 };
395
396 frame@9890000 {
397 frame-number = <3>;
398 interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
399 reg = <0x09890000 0x1000>;
400 status = "disabled";
401 };
402
403 frame@98a0000 {
404 frame-number = <4>;
405 interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
406 reg = <0x098a0000 0x1000>;
407 status = "disabled";
408 };
409
410 frame@98b0000 {
411 frame-number = <5>;
412 interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
413 reg = <0x098b0000 0x1000>;
414 status = "disabled";
415 };
416
417 frame@98c0000 {
418 frame-number = <6>;
419 interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
420 reg = <0x098c0000 0x1000>;
421 status = "disabled";
422 };
423 };
424
425 spmi_bus: qcom,spmi@400f000 {
426 compatible = "qcom,spmi-pmic-arb";
427 reg = <0x400f000 0x1000>,
428 <0x4400000 0x800000>,
429 <0x4c00000 0x800000>,
430 <0x5800000 0x200000>,
431 <0x400a000 0x002100>;
432 reg-names = "core", "chnls", "obsrvr", "intr", "cnfg";
433 interrupt-names = "periph_irq";
434 interrupts = <GIC_SPI 326 IRQ_TYPE_LEVEL_HIGH>;
435 qcom,ee = <0>;
436 qcom,channel = <0>;
437 #address-cells = <2>;
438 #size-cells = <0>;
439 interrupt-controller;
440 #interrupt-cells = <4>;
441 };
442
443 mmcc: clock-controller@8c0000 {
444 compatible = "qcom,mmcc-msm8996";
445 #clock-cells = <1>;
446 #reset-cells = <1>;
447 #power-domain-cells = <1>;
448 reg = <0x8c0000 0x40000>;
449 assigned-clocks = <&mmcc MMPLL9_PLL>,
450 <&mmcc MMPLL1_PLL>,
451 <&mmcc MMPLL3_PLL>,
452 <&mmcc MMPLL4_PLL>,
453 <&mmcc MMPLL5_PLL>;
454 assigned-clock-rates = <624000000>,
455 <810000000>,
456 <980000000>,
457 <960000000>,
458 <825000000>;
459 };
460 };
461 };
462 #include "msm8996-pins.dtsi"
This page took 0.040236 seconds and 5 git commands to generate.