qcom-apq8084.dtsi 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531
  1. // SPDX-License-Identifier: GPL-2.0
  2. /dts-v1/;
  3. #include <dt-bindings/interrupt-controller/arm-gic.h>
  4. #include <dt-bindings/clock/qcom,gcc-apq8084.h>
  5. #include <dt-bindings/gpio/gpio.h>
  6. / {
  7. #address-cells = <1>;
  8. #size-cells = <1>;
  9. model = "Qualcomm APQ 8084";
  10. compatible = "qcom,apq8084";
  11. interrupt-parent = <&intc>;
  12. reserved-memory {
  13. #address-cells = <1>;
  14. #size-cells = <1>;
  15. ranges;
  16. smem_mem: smem_region@fa00000 {
  17. reg = <0xfa00000 0x200000>;
  18. no-map;
  19. };
  20. };
  21. cpus {
  22. #address-cells = <1>;
  23. #size-cells = <0>;
  24. cpu@0 {
  25. device_type = "cpu";
  26. compatible = "qcom,krait";
  27. reg = <0>;
  28. enable-method = "qcom,kpss-acc-v2";
  29. next-level-cache = <&L2>;
  30. qcom,acc = <&acc0>;
  31. qcom,saw = <&saw0>;
  32. cpu-idle-states = <&CPU_SPC>;
  33. };
  34. cpu@1 {
  35. device_type = "cpu";
  36. compatible = "qcom,krait";
  37. reg = <1>;
  38. enable-method = "qcom,kpss-acc-v2";
  39. next-level-cache = <&L2>;
  40. qcom,acc = <&acc1>;
  41. qcom,saw = <&saw1>;
  42. cpu-idle-states = <&CPU_SPC>;
  43. };
  44. cpu@2 {
  45. device_type = "cpu";
  46. compatible = "qcom,krait";
  47. reg = <2>;
  48. enable-method = "qcom,kpss-acc-v2";
  49. next-level-cache = <&L2>;
  50. qcom,acc = <&acc2>;
  51. qcom,saw = <&saw2>;
  52. cpu-idle-states = <&CPU_SPC>;
  53. };
  54. cpu@3 {
  55. device_type = "cpu";
  56. compatible = "qcom,krait";
  57. reg = <3>;
  58. enable-method = "qcom,kpss-acc-v2";
  59. next-level-cache = <&L2>;
  60. qcom,acc = <&acc3>;
  61. qcom,saw = <&saw3>;
  62. cpu-idle-states = <&CPU_SPC>;
  63. };
  64. L2: l2-cache {
  65. compatible = "qcom,arch-cache";
  66. cache-level = <2>;
  67. qcom,saw = <&saw_l2>;
  68. };
  69. idle-states {
  70. CPU_SPC: spc {
  71. compatible = "qcom,idle-state-spc",
  72. "arm,idle-state";
  73. entry-latency-us = <150>;
  74. exit-latency-us = <200>;
  75. min-residency-us = <2000>;
  76. };
  77. };
  78. };
  79. memory {
  80. device_type = "memory";
  81. reg = <0x0 0x0>;
  82. };
  83. firmware {
  84. scm {
  85. compatible = "qcom,scm-apq8084", "qcom,scm";
  86. clocks = <&gcc GCC_CE1_CLK> , <&gcc GCC_CE1_AXI_CLK>, <&gcc GCC_CE1_AHB_CLK>;
  87. clock-names = "core", "bus", "iface";
  88. };
  89. };
  90. thermal-zones {
  91. cpu0-thermal {
  92. polling-delay-passive = <250>;
  93. polling-delay = <1000>;
  94. thermal-sensors = <&tsens 5>;
  95. trips {
  96. cpu_alert0: trip0 {
  97. temperature = <75000>;
  98. hysteresis = <2000>;
  99. type = "passive";
  100. };
  101. cpu_crit0: trip1 {
  102. temperature = <110000>;
  103. hysteresis = <2000>;
  104. type = "critical";
  105. };
  106. };
  107. };
  108. cpu1-thermal {
  109. polling-delay-passive = <250>;
  110. polling-delay = <1000>;
  111. thermal-sensors = <&tsens 6>;
  112. trips {
  113. cpu_alert1: trip0 {
  114. temperature = <75000>;
  115. hysteresis = <2000>;
  116. type = "passive";
  117. };
  118. cpu_crit1: trip1 {
  119. temperature = <110000>;
  120. hysteresis = <2000>;
  121. type = "critical";
  122. };
  123. };
  124. };
  125. cpu2-thermal {
  126. polling-delay-passive = <250>;
  127. polling-delay = <1000>;
  128. thermal-sensors = <&tsens 7>;
  129. trips {
  130. cpu_alert2: trip0 {
  131. temperature = <75000>;
  132. hysteresis = <2000>;
  133. type = "passive";
  134. };
  135. cpu_crit2: trip1 {
  136. temperature = <110000>;
  137. hysteresis = <2000>;
  138. type = "critical";
  139. };
  140. };
  141. };
  142. cpu3-thermal {
  143. polling-delay-passive = <250>;
  144. polling-delay = <1000>;
  145. thermal-sensors = <&tsens 8>;
  146. trips {
  147. cpu_alert3: trip0 {
  148. temperature = <75000>;
  149. hysteresis = <2000>;
  150. type = "passive";
  151. };
  152. cpu_crit3: trip1 {
  153. temperature = <110000>;
  154. hysteresis = <2000>;
  155. type = "critical";
  156. };
  157. };
  158. };
  159. };
  160. cpu-pmu {
  161. compatible = "qcom,krait-pmu";
  162. interrupts = <GIC_PPI 7 0xf04>;
  163. };
  164. clocks {
  165. xo_board: xo_board {
  166. compatible = "fixed-clock";
  167. #clock-cells = <0>;
  168. clock-frequency = <19200000>;
  169. };
  170. sleep_clk: sleep_clk {
  171. compatible = "fixed-clock";
  172. #clock-cells = <0>;
  173. clock-frequency = <32768>;
  174. };
  175. };
  176. timer {
  177. compatible = "arm,armv7-timer";
  178. interrupts = <GIC_PPI 2 0xf08>,
  179. <GIC_PPI 3 0xf08>,
  180. <GIC_PPI 4 0xf08>,
  181. <GIC_PPI 1 0xf08>;
  182. clock-frequency = <19200000>;
  183. };
  184. smem {
  185. compatible = "qcom,smem";
  186. qcom,rpm-msg-ram = <&rpm_msg_ram>;
  187. memory-region = <&smem_mem>;
  188. hwlocks = <&tcsr_mutex 3>;
  189. };
  190. soc: soc {
  191. #address-cells = <1>;
  192. #size-cells = <1>;
  193. ranges;
  194. compatible = "simple-bus";
  195. intc: interrupt-controller@f9000000 {
  196. compatible = "qcom,msm-qgic2";
  197. interrupt-controller;
  198. #interrupt-cells = <3>;
  199. reg = <0xf9000000 0x1000>,
  200. <0xf9002000 0x1000>;
  201. };
  202. apcs: syscon@f9011000 {
  203. compatible = "syscon";
  204. reg = <0xf9011000 0x1000>;
  205. };
  206. sram@fc190000 {
  207. compatible = "qcom,apq8084-rpm-stats";
  208. reg = <0xfc190000 0x10000>;
  209. };
  210. qfprom: qfprom@fc4bc000 {
  211. compatible = "qcom,apq8084-qfprom", "qcom,qfprom";
  212. reg = <0xfc4bc000 0x1000>;
  213. #address-cells = <1>;
  214. #size-cells = <1>;
  215. tsens_calib: calib@d0 {
  216. reg = <0xd0 0x18>;
  217. };
  218. tsens_backup: backup@440 {
  219. reg = <0x440 0x10>;
  220. };
  221. };
  222. tsens: thermal-sensor@fc4a8000 {
  223. compatible = "qcom,msm8974-tsens";
  224. reg = <0xfc4a9000 0x1000>, /* TM */
  225. <0xfc4a8000 0x1000>; /* SROT */
  226. nvmem-cells = <&tsens_calib>, <&tsens_backup>;
  227. nvmem-cell-names = "calib", "calib_backup";
  228. #qcom,sensors = <11>;
  229. #thermal-sensor-cells = <1>;
  230. };
  231. timer@f9020000 {
  232. #address-cells = <1>;
  233. #size-cells = <1>;
  234. ranges;
  235. compatible = "arm,armv7-timer-mem";
  236. reg = <0xf9020000 0x1000>;
  237. clock-frequency = <19200000>;
  238. frame@f9021000 {
  239. frame-number = <0>;
  240. interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
  241. <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
  242. reg = <0xf9021000 0x1000>,
  243. <0xf9022000 0x1000>;
  244. };
  245. frame@f9023000 {
  246. frame-number = <1>;
  247. interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
  248. reg = <0xf9023000 0x1000>;
  249. status = "disabled";
  250. };
  251. frame@f9024000 {
  252. frame-number = <2>;
  253. interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
  254. reg = <0xf9024000 0x1000>;
  255. status = "disabled";
  256. };
  257. frame@f9025000 {
  258. frame-number = <3>;
  259. interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
  260. reg = <0xf9025000 0x1000>;
  261. status = "disabled";
  262. };
  263. frame@f9026000 {
  264. frame-number = <4>;
  265. interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
  266. reg = <0xf9026000 0x1000>;
  267. status = "disabled";
  268. };
  269. frame@f9027000 {
  270. frame-number = <5>;
  271. interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
  272. reg = <0xf9027000 0x1000>;
  273. status = "disabled";
  274. };
  275. frame@f9028000 {
  276. frame-number = <6>;
  277. interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
  278. reg = <0xf9028000 0x1000>;
  279. status = "disabled";
  280. };
  281. };
  282. saw0: power-controller@f9089000 {
  283. compatible = "qcom,apq8084-saw2-v2.1-cpu", "qcom,saw2";
  284. reg = <0xf9089000 0x1000>, <0xf9009000 0x1000>;
  285. };
  286. saw1: power-controller@f9099000 {
  287. compatible = "qcom,apq8084-saw2-v2.1-cpu", "qcom,saw2";
  288. reg = <0xf9099000 0x1000>, <0xf9009000 0x1000>;
  289. };
  290. saw2: power-controller@f90a9000 {
  291. compatible = "qcom,apq8084-saw2-v2.1-cpu", "qcom,saw2";
  292. reg = <0xf90a9000 0x1000>, <0xf9009000 0x1000>;
  293. };
  294. saw3: power-controller@f90b9000 {
  295. compatible = "qcom,apq8084-saw2-v2.1-cpu", "qcom,saw2";
  296. reg = <0xf90b9000 0x1000>, <0xf9009000 0x1000>;
  297. };
  298. saw_l2: power-controller@f9012000 {
  299. compatible = "qcom,saw2";
  300. reg = <0xf9012000 0x1000>;
  301. regulator;
  302. };
  303. acc0: clock-controller@f9088000 {
  304. compatible = "qcom,kpss-acc-v2";
  305. reg = <0xf9088000 0x1000>,
  306. <0xf9008000 0x1000>;
  307. };
  308. acc1: clock-controller@f9098000 {
  309. compatible = "qcom,kpss-acc-v2";
  310. reg = <0xf9098000 0x1000>,
  311. <0xf9008000 0x1000>;
  312. };
  313. acc2: clock-controller@f90a8000 {
  314. compatible = "qcom,kpss-acc-v2";
  315. reg = <0xf90a8000 0x1000>,
  316. <0xf9008000 0x1000>;
  317. };
  318. acc3: clock-controller@f90b8000 {
  319. compatible = "qcom,kpss-acc-v2";
  320. reg = <0xf90b8000 0x1000>,
  321. <0xf9008000 0x1000>;
  322. };
  323. restart@fc4ab000 {
  324. compatible = "qcom,pshold";
  325. reg = <0xfc4ab000 0x4>;
  326. };
  327. gcc: clock-controller@fc400000 {
  328. compatible = "qcom,gcc-apq8084";
  329. #clock-cells = <1>;
  330. #reset-cells = <1>;
  331. #power-domain-cells = <1>;
  332. reg = <0xfc400000 0x4000>;
  333. };
  334. tcsr_mutex: hwlock@fd484000 {
  335. compatible = "qcom,apq8084-tcsr-mutex", "qcom,tcsr-mutex";
  336. reg = <0xfd484000 0x1000>;
  337. #hwlock-cells = <1>;
  338. };
  339. rpm_msg_ram: memory@fc428000 {
  340. compatible = "qcom,rpm-msg-ram";
  341. reg = <0xfc428000 0x4000>;
  342. };
  343. tlmm: pinctrl@fd510000 {
  344. compatible = "qcom,apq8084-pinctrl";
  345. reg = <0xfd510000 0x4000>;
  346. gpio-controller;
  347. gpio-ranges = <&tlmm 0 0 147>;
  348. #gpio-cells = <2>;
  349. interrupt-controller;
  350. #interrupt-cells = <2>;
  351. interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
  352. };
  353. blsp2_uart2: serial@f995e000 {
  354. compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
  355. reg = <0xf995e000 0x1000>;
  356. interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
  357. clocks = <&gcc GCC_BLSP2_UART2_APPS_CLK>, <&gcc GCC_BLSP2_AHB_CLK>;
  358. clock-names = "core", "iface";
  359. status = "disabled";
  360. };
  361. sdhc_1: mmc@f9824900 {
  362. compatible = "qcom,apq8084-sdhci", "qcom,sdhci-msm-v4";
  363. reg = <0xf9824900 0x11c>, <0xf9824000 0x800>;
  364. reg-names = "hc", "core";
  365. interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>;
  366. interrupt-names = "hc_irq", "pwr_irq";
  367. clocks = <&gcc GCC_SDCC1_AHB_CLK>,
  368. <&gcc GCC_SDCC1_APPS_CLK>,
  369. <&xo_board>;
  370. clock-names = "iface", "core", "xo";
  371. status = "disabled";
  372. };
  373. sdhc_2: mmc@f98a4900 {
  374. compatible = "qcom,apq8084-sdhci", "qcom,sdhci-msm-v4";
  375. reg = <0xf98a4900 0x11c>, <0xf98a4000 0x800>;
  376. reg-names = "hc", "core";
  377. interrupts = <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 221 IRQ_TYPE_LEVEL_HIGH>;
  378. interrupt-names = "hc_irq", "pwr_irq";
  379. clocks = <&gcc GCC_SDCC2_AHB_CLK>,
  380. <&gcc GCC_SDCC2_APPS_CLK>,
  381. <&xo_board>;
  382. clock-names = "iface", "core", "xo";
  383. status = "disabled";
  384. };
  385. spmi_bus: spmi@fc4cf000 {
  386. compatible = "qcom,spmi-pmic-arb";
  387. reg-names = "core", "intr", "cnfg";
  388. reg = <0xfc4cf000 0x1000>,
  389. <0xfc4cb000 0x1000>,
  390. <0xfc4ca000 0x1000>;
  391. interrupt-names = "periph_irq";
  392. interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>;
  393. qcom,ee = <0>;
  394. qcom,channel = <0>;
  395. #address-cells = <2>;
  396. #size-cells = <0>;
  397. interrupt-controller;
  398. #interrupt-cells = <4>;
  399. };
  400. };
  401. smd {
  402. compatible = "qcom,smd";
  403. rpm {
  404. interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>;
  405. qcom,ipc = <&apcs 8 0>;
  406. qcom,smd-edge = <15>;
  407. rpm-requests {
  408. compatible = "qcom,rpm-apq8084";
  409. qcom,smd-channels = "rpm_requests";
  410. pma8084-regulators {
  411. compatible = "qcom,rpm-pma8084-regulators";
  412. pma8084_s1: s1 {};
  413. pma8084_s2: s2 {};
  414. pma8084_s3: s3 {};
  415. pma8084_s4: s4 {};
  416. pma8084_s5: s5 {};
  417. pma8084_s6: s6 {};
  418. pma8084_s7: s7 {};
  419. pma8084_s8: s8 {};
  420. pma8084_s9: s9 {};
  421. pma8084_s10: s10 {};
  422. pma8084_s11: s11 {};
  423. pma8084_s12: s12 {};
  424. pma8084_l1: l1 {};
  425. pma8084_l2: l2 {};
  426. pma8084_l3: l3 {};
  427. pma8084_l4: l4 {};
  428. pma8084_l5: l5 {};
  429. pma8084_l6: l6 {};
  430. pma8084_l7: l7 {};
  431. pma8084_l8: l8 {};
  432. pma8084_l9: l9 {};
  433. pma8084_l10: l10 {};
  434. pma8084_l11: l11 {};
  435. pma8084_l12: l12 {};
  436. pma8084_l13: l13 {};
  437. pma8084_l14: l14 {};
  438. pma8084_l15: l15 {};
  439. pma8084_l16: l16 {};
  440. pma8084_l17: l17 {};
  441. pma8084_l18: l18 {};
  442. pma8084_l19: l19 {};
  443. pma8084_l20: l20 {};
  444. pma8084_l21: l21 {};
  445. pma8084_l22: l22 {};
  446. pma8084_l23: l23 {};
  447. pma8084_l24: l24 {};
  448. pma8084_l25: l25 {};
  449. pma8084_l26: l26 {};
  450. pma8084_l27: l27 {};
  451. pma8084_lvs1: lvs1 {};
  452. pma8084_lvs2: lvs2 {};
  453. pma8084_lvs3: lvs3 {};
  454. pma8084_lvs4: lvs4 {};
  455. pma8084_5vs1: 5vs1 {};
  456. };
  457. };
  458. };
  459. };
  460. };