qcom-apq8084.dtsi 11 KB

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