blob: 0703b696e97549369f8a1e4be6b5449dc1ea88b7 [file] [log] [blame]
Jeevan Shriramdcb8b912017-03-19 20:27:35 -07001/* Copyright (c) 2017, 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
Archana Sathyakumar3e365aa2017-04-27 13:35:54 -060013#include <dt-bindings/soc/qcom,tcs-mbox.h>
Jeevan Shriramdcb8b912017-03-19 20:27:35 -070014#include "skeleton.dtsi"
Osvaldo Banuelos139d7792017-05-03 13:58:54 -070015#include <dt-bindings/clock/qcom,rpmh.h>
Jonathan Avilad59c0df2017-12-04 13:53:45 -080016#include <dt-bindings/clock/qcom,cpu-a7.h>
Osvaldo Banuelos39641172017-04-10 13:51:35 -070017#include <dt-bindings/clock/qcom,gcc-sdxpoorwills.h>
Tirupathi Reddy242c1312017-08-17 11:01:16 +053018#include <dt-bindings/interrupt-controller/arm-gic.h>
Amit Nischal226ef5b2017-09-07 12:56:07 +053019#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
Jeevan Shriramdcb8b912017-03-19 20:27:35 -070020
21/ {
22 model = "Qualcomm Technologies, Inc. SDX POORWILLS";
23 compatible = "qcom,sdxpoorwills";
Jeevan Shriram71f2f492017-11-21 13:13:00 -080024 qcom,msm-id = <334 0x0>, <335 0x0>;
Jeevan Shriramdcb8b912017-03-19 20:27:35 -070025 interrupt-parent = <&intc>;
26
27 reserved-memory {
28 #address-cells = <1>;
29 #size-cells = <1>;
30 ranges;
31
32 peripheral2_mem: peripheral2_region@8fd00000 {
33 compatible = "removed-dma-pool";
34 no-map;
35 reg = <0x8fd00000 0x300000>;
36 label = "peripheral2_mem";
37 };
Satya Durga Srinivasu Prabhala12953b72017-07-24 16:50:55 -070038
39 mss_mem: mss_region@87800000 {
40 compatible = "removed-dma-pool";
41 no-map;
42 reg = <0x87800000 0x8000000>;
43 label = "mss_mem";
44 };
Xiaoyu Ye84364ce2017-10-20 16:02:43 -070045
46 audio_mem: audio_region@0 {
47 compatible = "shared-dma-pool";
48 reusable;
49 size = <0x400000>;
50 };
Jeevan Shriramdcb8b912017-03-19 20:27:35 -070051 };
52
53 cpus {
54 #size-cells = <0>;
55 #address-cells = <1>;
56
57 CPU0: cpu@0 {
58 device-type = "cpu";
59 compatible = "arm,cortex-a7";
60 reg = <0x0>;
Ram Chandrasekarc6b9e8c2017-10-11 15:52:31 -060061 #cooling-cells = <2>;
Jeevan Shriramdcb8b912017-03-19 20:27:35 -070062 };
63 };
64
Sahitya Tummala61f1d322017-06-06 13:49:19 +053065 aliases {
66 qpic_nand1 = &qnand_1;
67 };
68
Jeevan Shriramdcb8b912017-03-19 20:27:35 -070069 soc: soc { };
70};
71
72
73&soc {
74 #address-cells = <1>;
75 #size-cells = <1>;
76 ranges;
77
78 intc: interrupt-controller@17800000 {
79 compatible = "qcom,msm-qgic2";
80 interrupt-controller;
81 #interrupt-cells = <3>;
82 reg = <0x17800000 0x1000>,
83 <0x17802000 0x1000>;
84 };
85
86 timer {
87 compatible = "arm,armv7-timer";
88 interrupts = <1 13 0xf08>,
89 <1 12 0xf08>,
90 <1 10 0xf08>,
91 <1 11 0xf08>;
92 clock-frequency = <19200000>;
93 };
94
95 timer@17820000 {
96 #address-cells = <1>;
97 #size-cells = <1>;
98 ranges;
99 compatible = "arm,armv7-timer-mem";
100 reg = <0x17820000 0x1000>;
101 clock-frequency = <19200000>;
102
103 frame@17821000 {
104 frame-number = <0>;
105 interrupts = <0 7 0x4>,
106 <0 6 0x4>;
107 reg = <0x17821000 0x1000>,
108 <0x17822000 0x1000>;
109 };
110
111 frame@17823000 {
112 frame-number = <1>;
113 interrupts = <0 8 0x4>;
114 reg = <0x17823000 0x1000>;
115 status = "disabled";
116 };
117
118 frame@17824000 {
119 frame-number = <2>;
120 interrupts = <0 9 0x4>;
121 reg = <0x17824000 0x1000>;
122 status = "disabled";
123 };
124
125 frame@17825000 {
126 frame-number = <3>;
127 interrupts = <0 10 0x4>;
128 reg = <0x17825000 0x1000>;
129 status = "disabled";
130 };
131
132 frame@17826000 {
133 frame-number = <4>;
134 interrupts = <0 11 0x4>;
135 reg = <0x17826000 0x1000>;
136 status = "disabled";
137 };
138
139 frame@17827000 {
140 frame-number = <5>;
141 interrupts = <0 12 0x4>;
142 reg = <0x17827000 0x1000>;
143 status = "disabled";
144 };
145
146 frame@17828000 {
147 frame-number = <6>;
148 interrupts = <0 13 0x4>;
149 reg = <0x17828000 0x1000>;
150 status = "disabled";
151 };
152
153 frame@17829000 {
154 frame-number = <7>;
155 interrupts = <0 14 0x4>;
156 reg = <0x17829000 0x1000>;
157 status = "disabled";
158 };
159 };
160
Jonathan Avilad59c0df2017-12-04 13:53:45 -0800161 msm_cpufreq: qcom,msm-cpufreq {
162 compatible = "qcom,msm-cpufreq";
163 clocks = <&clock_cpu APCS_CLK>;
164 clock-names = "cpu0_clk";
165
166 qcom,cpufreq-table-0 =
167 < 153600 >,
168 < 300000 >,
169 < 345600 >,
170 < 576000 >,
171 < 1094400 >,
172 < 1497600 >;
173 };
174
Osvaldo Banuelos39641172017-04-10 13:51:35 -0700175 clock_gcc: qcom,gcc@100000 {
Vicky Wallace8ca25b92017-09-20 18:21:59 -0700176 compatible = "qcom,gcc-sdxpoorwills";
177 reg = <0x100000 0x1f0000>;
178 reg-names = "cc_base";
179 vdd_cx-supply = <&pmxpoorwills_s5_level>;
180 vdd_cx_ao-supply = <&pmxpoorwills_s5_level_ao>;
Osvaldo Banuelos39641172017-04-10 13:51:35 -0700181 #clock-cells = <1>;
Deepak Katragaddaef38d7b2017-05-30 15:29:19 -0700182 #reset-cells = <1>;
Osvaldo Banuelos39641172017-04-10 13:51:35 -0700183 };
184
Amit Nischal226ef5b2017-09-07 12:56:07 +0530185 clock_cpu: qcom,clock-a7@17808100 {
186 compatible = "qcom,cpu-sdxpoorwills";
187 clocks = <&clock_rpmh RPMH_CXO_CLK_A>;
188 clock-names = "xo_ao";
189 qcom,a7cc-init-rate = <1497600000>;
190 reg = <0x17808100 0x7F10>;
191 reg-names = "apcs_pll";
192 qcom,rcg-reg-offset = <0x7F08>;
193
194 vdd_dig_ao-supply = <&pmxpoorwills_s5_level_ao>;
195 cpu-vdd-supply = <&pmxpoorwills_s5_level_ao>;
196 qcom,speed0-bin-v0 =
197 < 0 RPMH_REGULATOR_LEVEL_OFF>,
198 < 345600000 RPMH_REGULATOR_LEVEL_LOW_SVS>,
199 < 576000000 RPMH_REGULATOR_LEVEL_SVS>,
200 < 1094400000 RPMH_REGULATOR_LEVEL_NOM>,
201 < 1497600000 RPMH_REGULATOR_LEVEL_TURBO>;
Osvaldo Banuelos39641172017-04-10 13:51:35 -0700202 #clock-cells = <1>;
203 };
204
Osvaldo Banuelos139d7792017-05-03 13:58:54 -0700205 clock_rpmh: qcom,rpmhclk {
Tirupathi Reddyeaf28a22017-10-31 09:32:02 +0530206 compatible = "qcom,rpmh-clk-sdxpoorwills";
Osvaldo Banuelos139d7792017-05-03 13:58:54 -0700207 #clock-cells = <1>;
Tirupathi Reddyeaf28a22017-10-31 09:32:02 +0530208 mboxes = <&apps_rsc 0>;
209 mbox-names = "apps";
Osvaldo Banuelos139d7792017-05-03 13:58:54 -0700210 };
211
Jeevan Shriramdcb8b912017-03-19 20:27:35 -0700212 blsp1_uart2: serial@831000 {
213 compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
214 reg = <0x831000 0x200>;
215 interrupts = <0 26 0>;
216 status = "disabled";
Vicky Wallacedf797782017-10-27 17:35:34 -0700217 clocks = <&clock_gcc GCC_BLSP1_UART3_APPS_CLK>,
Runmin Wang8dce58692017-05-01 15:19:18 -0700218 <&clock_gcc GCC_BLSP1_AHB_CLK>;
219 clock-names = "core", "iface";
Jeevan Shriramdcb8b912017-03-19 20:27:35 -0700220 };
Osvaldo Banuelos8d9c87b2017-05-08 11:36:39 -0700221
222 gdsc_usb30: qcom,gdsc@10b004 {
223 compatible = "qcom,gdsc";
224 regulator-name = "gdsc_usb30";
225 reg = <0x0010b004 0x4>;
Osvaldo Banuelos8d9c87b2017-05-08 11:36:39 -0700226 };
227
Yan Hebd0e9612017-07-06 16:21:41 -0700228 qcom,sps {
229 compatible = "qcom,msm_sps_4k";
230 qcom,pipe-attr-ee;
231 };
232
Osvaldo Banuelos8d9c87b2017-05-08 11:36:39 -0700233 gdsc_pcie: qcom,gdsc@137004 {
234 compatible = "qcom,gdsc";
235 regulator-name = "gdsc_pcie";
236 reg = <0x00137004 0x4>;
Vicky Wallace8ca25b92017-09-20 18:21:59 -0700237 };
238
239 gdsc_emac: qcom,gdsc@147004 {
240 compatible = "qcom,gdsc";
241 regulator-name = "gdsc_emac";
242 reg = <0x00147004 0x4>;
Osvaldo Banuelos8d9c87b2017-05-08 11:36:39 -0700243 };
Runmin Wangd039a4e2017-06-20 14:56:56 -0700244
Sahitya Tummala61f1d322017-06-06 13:49:19 +0530245 qnand_1: nand@1b00000 {
246 compatible = "qcom,msm-nand";
247 reg = < 0x01b00000 0x10000>,
248 <0x01b04000 0x1a000>;
249 reg-names = "nand_phys",
250 "bam_phys";
251 qcom,reg-adjustment-offset = <0x4000>;
252 qcom,qpic-clk-rpmh;
253
254 interrupts = <0 135 0>;
255 interrupt-names = "bam_irq";
256
257 qcom,msm-bus,name = "qpic_nand";
258 qcom,msm-bus,num-cases = <2>;
259 qcom,msm-bus,num-paths = <1>;
260
261 qcom,msm-bus,vectors-KBps =
262 <91 512 0 0>,
263 /* Voting for max b/w on PNOC bus for now */
264 <91 512 400000 400000>;
265
266 status = "disabled";
267 };
268
Runmin Wangd039a4e2017-06-20 14:56:56 -0700269 qcom,msm-imem@8600000 {
270 compatible = "qcom,msm-imem";
271 reg = <0x8600000 0x1000>; /* Address and size of IMEM */
272 ranges = <0x0 0x8600000 0x1000>;
273 #address-cells = <1>;
274 #size-cells = <1>;
275
276 mem_dump_table@10 {
277 compatible = "qcom,msm-imem-mem_dump_table";
278 reg = <0x10 8>;
279 };
280
281 restart_reason@65c {
282 compatible = "qcom,msm-imem-restart_reason";
283 reg = <0x65c 4>;
284 };
285
286 boot_stats@6b0 {
287 compatible = "qcom,msm-imem-boot_stats";
288 reg = <0x6b0 32>;
289 };
290 };
291
292 restart@4ab000 {
293 compatible = "qcom,pshold";
294 reg = <0x4ab000 0x4>,
295 <0x193d100 0x4>;
296 reg-names = "pshold-base", "tcsr-boot-misc-detect";
297 };
298
Siddartha Mohanadoss6bbf8592017-07-13 14:15:41 -0700299 tsens0: tsens@c222000 {
300 compatible = "qcom,tsens24xx";
301 reg = <0xc222000 0x4>,
302 <0xc263000 0x1ff>;
303 reg-names = "tsens_srot_physical",
304 "tsens_tm_physical";
305 interrupts = <0 163 0>, <0 165 0>;
306 interrupt-names = "tsens-upper-lower", "tsens-critical";
307 #thermal-sensor-cells = <1>;
308 };
309
Ram Chandrasekarc6b9e8c2017-10-11 15:52:31 -0600310 thermal_zones: thermal-zones { };
Siddartha Mohanadoss6bbf8592017-07-13 14:15:41 -0700311
Ghanim Fodic389d572017-08-03 17:56:27 +0300312 qcom,ipa_fws {
313 compatible = "qcom,pil-tz-generic";
314 qcom,pas-id = <0xf>;
315 qcom,firmware-name = "ipa_fws";
316 };
Tirupathi Reddy242c1312017-08-17 11:01:16 +0530317
318 spmi_bus: qcom,spmi@c440000 {
319 compatible = "qcom,spmi-pmic-arb";
320 reg = <0xc440000 0x1100>,
321 <0xc600000 0x2000000>,
322 <0xe600000 0x100000>,
323 <0xe700000 0xa0000>,
324 <0xc40a000 0x26000>;
325 reg-names = "core", "chnls", "obsrvr", "intr", "cnfg";
326 interrupt-names = "periph_irq";
327 interrupts = <GIC_SPI 148 IRQ_TYPE_NONE>;
328 qcom,ee = <0>;
329 qcom,channel = <0>;
330 #address-cells = <2>;
331 #size-cells = <0>;
332 interrupt-controller;
333 #interrupt-cells = <4>;
334 cell-index = <0>;
335 };
Chris Lew929d9ba2017-08-11 14:42:55 -0700336
337 qcom,ipc-spinlock@1f40000 {
338 compatible = "qcom,ipc-spinlock-sfpb";
339 reg = <0x1f40000 0x8000>;
340 qcom,num-locks = <8>;
341 };
342
343 qcom,smem@8fe40000 {
344 compatible = "qcom,smem";
345 reg = <0x8fe40000 0xc0000>,
346 <0x17811008 0x4>,
347 <0x1fd4000 0x8>;
348 reg-names = "smem", "irq-reg-base",
349 "smem_targ_info_reg";
350 qcom,mpu-enabled;
351 };
352
353 qcom,glink-smem-native-xprt-modem@8fe40000 {
354 compatible = "qcom,glink-smem-native-xprt";
355 reg = <0x8fe40000 0xc0000>,
356 <0x17811008 0x4>;
357 reg-names = "smem", "irq-reg-base";
Chris Lewb9a1e962017-10-20 10:31:55 -0700358 qcom,irq-mask = <0x8000>;
359 interrupts = <GIC_SPI 114 IRQ_TYPE_EDGE_RISING>;
Chris Lew929d9ba2017-08-11 14:42:55 -0700360 label = "mpss";
361 };
362
363 qcom,ipc_router {
364 compatible = "qcom,ipc_router";
365 qcom,node-id = <1>;
366 };
367
368 qcom,ipc_router_modem_xprt {
369 compatible = "qcom,ipc_router_glink_xprt";
370 qcom,ch-name = "IPCRTR";
371 qcom,xprt-remote = "mpss";
372 qcom,glink-xprt = "smem";
373 qcom,xprt-linkid = <1>;
374 qcom,xprt-version = <1>;
375 qcom,fragmented-data;
376 };
377
378 qcom,glink_pkt {
379 compatible = "qcom,glinkpkt";
380
381 qcom,glinkpkt-at-mdm0 {
382 qcom,glinkpkt-transport = "smem";
383 qcom,glinkpkt-edge = "mpss";
384 qcom,glinkpkt-ch-name = "DS";
385 qcom,glinkpkt-dev-name = "at_mdm0";
386 };
387
388 qcom,glinkpkt-loopback_cntl {
389 qcom,glinkpkt-transport = "lloop";
390 qcom,glinkpkt-edge = "local";
391 qcom,glinkpkt-ch-name = "LOCAL_LOOPBACK_CLNT";
392 qcom,glinkpkt-dev-name = "glink_pkt_loopback_ctrl";
393 };
394
395 qcom,glinkpkt-loopback_data {
396 qcom,glinkpkt-transport = "lloop";
397 qcom,glinkpkt-edge = "local";
398 qcom,glinkpkt-ch-name = "glink_pkt_lloop_CLNT";
399 qcom,glinkpkt-dev-name = "glink_pkt_loopback";
400 };
401
402 qcom,glinkpkt-data40-cntl {
403 qcom,glinkpkt-transport = "smem";
404 qcom,glinkpkt-edge = "mpss";
405 qcom,glinkpkt-ch-name = "DATA40_CNTL";
406 qcom,glinkpkt-dev-name = "smdcntl8";
407 };
408
409 qcom,glinkpkt-data1 {
410 qcom,glinkpkt-transport = "smem";
411 qcom,glinkpkt-edge = "mpss";
412 qcom,glinkpkt-ch-name = "DATA1";
413 qcom,glinkpkt-dev-name = "smd7";
414 };
415
416 qcom,glinkpkt-data4 {
417 qcom,glinkpkt-transport = "smem";
418 qcom,glinkpkt-edge = "mpss";
419 qcom,glinkpkt-ch-name = "DATA4";
420 qcom,glinkpkt-dev-name = "smd8";
421 };
422
423 qcom,glinkpkt-data11 {
424 qcom,glinkpkt-transport = "smem";
425 qcom,glinkpkt-edge = "mpss";
426 qcom,glinkpkt-ch-name = "DATA11";
427 qcom,glinkpkt-dev-name = "smd11";
428 };
429 };
Satya Durga Srinivasu Prabhala12953b72017-07-24 16:50:55 -0700430
431 pil_modem: qcom,mss@4080000 {
432 compatible = "qcom,pil-tz-generic";
433 reg = <0x4080000 0x100>;
434 interrupts = <0 250 1>;
435
436 clocks = <&clock_rpmh RPMH_CXO_CLK>;
437 clock-names = "xo";
438 qcom,proxy-clock-names = "xo";
439
440 vdd_cx-supply = <&pmxpoorwills_s5_level>;
441 qcom,proxy-reg-names = "vdd_cx";
442
443 qcom,pas-id = <0>;
444 qcom,smem-id = <421>;
445 qcom,proxy-timeout-ms = <10000>;
446 qcom,sysmon-id = <0>;
447 qcom,ssctl-instance-id = <0x12>;
448 qcom,firmware-name = "modem";
449 memory-region = <&mss_mem>;
450 status = "ok";
451
452 /* GPIO inputs from mss */
453 qcom,gpio-err-fatal = <&smp2pgpio_ssr_smp2p_1_in 0 0>;
454 qcom,gpio-err-ready = <&smp2pgpio_ssr_smp2p_1_in 1 0>;
455 qcom,gpio-proxy-unvote = <&smp2pgpio_ssr_smp2p_1_in 2 0>;
456 qcom,gpio-stop-ack = <&smp2pgpio_ssr_smp2p_1_in 3 0>;
457
458 /* GPIO output to mss */
459 qcom,gpio-force-stop = <&smp2pgpio_ssr_smp2p_1_out 0 0>;
460 };
Archana Sathyakumar3e365aa2017-04-27 13:35:54 -0600461
462 apps_rsc: mailbox@17840000 {
463 compatible = "qcom,tcs-drv";
464 label = "apps_rsc";
465 reg = <0x17840000 0x100>, <0x17840d00 0x3000>;
466 interrupts = <0 17 0>;
467 #mbox-cells = <1>;
468 qcom,drv-id = <1>;
469 qcom,tcs-config = <ACTIVE_TCS 2>,
470 <SLEEP_TCS 2>,
471 <WAKE_TCS 2>,
472 <CONTROL_TCS 1>;
473 };
474
Mahesh Sivasubramaniand306a2c2017-11-09 10:09:26 -0700475 cmd_db: qcom,cmd-db@c37000c {
Archana Sathyakumar3e365aa2017-04-27 13:35:54 -0600476 compatible = "qcom,cmd-db";
Mahesh Sivasubramaniand306a2c2017-11-09 10:09:26 -0700477 reg = <0xc37000c 8>;
Archana Sathyakumar3e365aa2017-04-27 13:35:54 -0600478 };
479
480 system_pm {
481 compatible = "qcom,system-pm";
482 mboxes = <&apps_rsc 0>;
483 };
Sunil Paidimarri6c422bc2017-10-05 12:41:32 -0700484
485 emac_hw: qcom,emac@00020000 {
486 compatible = "qcom,emac-dwc-eqos";
487 reg = <0x20000 0x10000>,
488 <0x36000 0x100>;
489 reg-names = "emac-base", "rgmii-base";
490 interrupts = <0 62 4>, <0 60 4>,
491 <0 45 4>, <0 49 4>,
492 <0 50 4>, <0 51 4>,
493 <0 52 4>, <0 53 4>,
494 <0 54 4>, <0 55 4>,
495 <0 56 4>, <0 57 4>;
496 interrupt-names = "sbd-intr", "lpi-intr",
497 "wol-intr", "tx-ch0-intr",
498 "tx-ch1-intr", "tx-ch2-intr",
499 "tx-ch3-intr", "tx-ch4-intr",
500 "rx-ch0-intr", "rx-ch1-intr",
501 "rx-ch2-intr", "rx-ch3-intr";
502 io-macro-info {
503 io-macro-bypass-mode = <0>;
504 io-interface = "rgmii";
505 };
506 };
Chris Lewa4245c92017-10-11 16:34:51 -0700507
508 qmp_aop: qcom,qmp-aop@c300000 {
509 compatible = "qcom,qmp-mbox";
510 label = "aop";
511 reg = <0xc300000 0x400>,
512 <0x17811008 0x4>;
513 reg-names = "msgram", "irq-reg-base";
514 qcom,irq-mask = <0x1>;
515 interrupts = <GIC_SPI 221 IRQ_TYPE_EDGE_RISING>;
516 priority = <0>;
517 mbox-desc-offset = <0x0>;
518 #mbox-cells = <1>;
519 };
Jeevan Shriramdcb8b912017-03-19 20:27:35 -0700520};
Anirudh Ghayal1a97b5c2017-05-03 16:16:26 +0530521
Tirupathi Reddy8cbe4982017-08-17 12:01:11 +0530522#include "pmxpoorwills.dtsi"
Shrey Vijaya139af92017-08-10 12:00:44 +0530523#include "sdxpoorwills-blsp.dtsi"
Anirudh Ghayal1a97b5c2017-05-03 16:16:26 +0530524#include "sdxpoorwills-regulator.dtsi"
Chris Lew929d9ba2017-08-11 14:42:55 -0700525#include "sdxpoorwills-smp2p.dtsi"
Devdutt Patnaik4ff5bcd62017-05-05 19:45:01 -0700526#include "sdxpoorwills-usb.dtsi"
David Dai8e41b1f2017-06-19 16:01:01 -0700527#include "sdxpoorwills-bus.dtsi"
Ram Chandrasekarc6b9e8c2017-10-11 15:52:31 -0600528#include "sdxpoorwills-thermal.dtsi"
Xiaoyu Ye84364ce2017-10-20 16:02:43 -0700529#include "sdxpoorwills-audio.dtsi"