msm8992.dtsi 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323
  1. /* Copyright (c) 2013-2016, 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. #include <dt-bindings/interrupt-controller/arm-gic.h>
  13. #include <dt-bindings/clock/qcom,gcc-msm8994.h>
  14. / {
  15. model = "Qualcomm Technologies, Inc. MSM 8992";
  16. compatible = "qcom,msm8992";
  17. // msm-id needed by bootloader for selecting correct blob
  18. qcom,msm-id = <251 0>, <252 0>;
  19. interrupt-parent = <&intc>;
  20. #address-cells = <2>;
  21. #size-cells = <2>;
  22. chosen { };
  23. cpus {
  24. #address-cells = <2>;
  25. #size-cells = <0>;
  26. cpu-map {
  27. cluster0 {
  28. core0 {
  29. cpu = <&CPU0>;
  30. };
  31. };
  32. };
  33. CPU0: cpu@0 {
  34. device_type = "cpu";
  35. compatible = "arm,cortex-a53", "arm,armv8";
  36. reg = <0x0 0x0>;
  37. next-level-cache = <&L2_0>;
  38. L2_0: l2-cache {
  39. compatible = "cache";
  40. cache-level = <2>;
  41. };
  42. };
  43. };
  44. timer {
  45. compatible = "arm,armv8-timer";
  46. interrupts = <GIC_PPI 2 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
  47. <GIC_PPI 3 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
  48. <GIC_PPI 4 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
  49. <GIC_PPI 1 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
  50. };
  51. xo_board: xo_board {
  52. compatible = "fixed-clock";
  53. #clock-cells = <0>;
  54. clock-frequency = <19200000>;
  55. };
  56. sleep_clk: sleep_clk {
  57. compatible = "fixed-clock";
  58. #clock-cells = <0>;
  59. clock-frequency = <32768>;
  60. };
  61. vreg_vph_pwr: vreg-vph-pwr {
  62. compatible = "regulator-fixed";
  63. status = "okay";
  64. regulator-name = "vph-pwr";
  65. regulator-min-microvolt = <3600000>;
  66. regulator-max-microvolt = <3600000>;
  67. regulator-always-on;
  68. };
  69. sfpb_mutex: hwmutex {
  70. compatible = "qcom,sfpb-mutex";
  71. syscon = <&sfpb_mutex_regs 0x0 0x100>;
  72. #hwlock-cells = <1>;
  73. };
  74. smem {
  75. compatible = "qcom,smem";
  76. memory-region = <&smem_region>;
  77. qcom,rpm-msg-ram = <&rpm_msg_ram>;
  78. hwlocks = <&sfpb_mutex 3>;
  79. };
  80. soc {
  81. #address-cells = <1>;
  82. #size-cells = <1>;
  83. ranges = <0 0 0 0xffffffff>;
  84. compatible = "simple-bus";
  85. intc: interrupt-controller@f9000000 {
  86. compatible = "qcom,msm-qgic2";
  87. interrupt-controller;
  88. #interrupt-cells = <3>;
  89. reg = <0xf9000000 0x1000>,
  90. <0xf9002000 0x1000>;
  91. };
  92. apcs: syscon@f900d000 {
  93. compatible = "syscon";
  94. reg = <0xf900d000 0x2000>;
  95. };
  96. timer@f9020000 {
  97. #address-cells = <1>;
  98. #size-cells = <1>;
  99. ranges;
  100. compatible = "arm,armv7-timer-mem";
  101. reg = <0xf9020000 0x1000>;
  102. frame@f9021000 {
  103. frame-number = <0>;
  104. interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>,
  105. <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
  106. reg = <0xf9021000 0x1000>,
  107. <0xf9022000 0x1000>;
  108. };
  109. frame@f9023000 {
  110. frame-number = <1>;
  111. interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
  112. reg = <0xf9023000 0x1000>;
  113. status = "disabled";
  114. };
  115. frame@f9024000 {
  116. frame-number = <2>;
  117. interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
  118. reg = <0xf9024000 0x1000>;
  119. status = "disabled";
  120. };
  121. frame@f9025000 {
  122. frame-number = <3>;
  123. interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
  124. reg = <0xf9025000 0x1000>;
  125. status = "disabled";
  126. };
  127. frame@f9026000 {
  128. frame-number = <4>;
  129. interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
  130. reg = <0xf9026000 0x1000>;
  131. status = "disabled";
  132. };
  133. frame@f9027000 {
  134. frame-number = <5>;
  135. interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
  136. reg = <0xf9027000 0x1000>;
  137. status = "disabled";
  138. };
  139. frame@f9028000 {
  140. frame-number = <6>;
  141. interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
  142. reg = <0xf9028000 0x1000>;
  143. status = "disabled";
  144. };
  145. };
  146. restart@fc4ab000 {
  147. compatible = "qcom,pshold";
  148. reg = <0xfc4ab000 0x4>;
  149. };
  150. msmgpio: pinctrl@fd510000 {
  151. compatible = "qcom,msm8994-pinctrl";
  152. reg = <0xfd510000 0x4000>;
  153. interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
  154. gpio-controller;
  155. #gpio-cells = <2>;
  156. interrupt-controller;
  157. #interrupt-cells = <2>;
  158. };
  159. blsp1_uart2: serial@f991e000 {
  160. compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
  161. reg = <0xf991e000 0x1000>;
  162. interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_LOW>;
  163. status = "disabled";
  164. clock-names = "core", "iface";
  165. clocks = <&clock_gcc GCC_BLSP1_UART2_APPS_CLK>,
  166. <&clock_gcc GCC_BLSP1_AHB_CLK>;
  167. };
  168. clock_gcc: clock-controller@fc400000 {
  169. compatible = "qcom,gcc-msm8994";
  170. #clock-cells = <1>;
  171. #reset-cells = <1>;
  172. #power-domain-cells = <1>;
  173. reg = <0xfc400000 0x2000>;
  174. };
  175. sdhci1: mmc@f9824900 {
  176. compatible = "qcom,sdhci-msm-v4";
  177. reg = <0xf9824900 0x1a0>, <0xf9824000 0x800>;
  178. reg-names = "hc_mem", "core_mem";
  179. interrupts = <GIC_SPI 123 IRQ_TYPE_NONE>,
  180. <GIC_SPI 138 IRQ_TYPE_NONE>;
  181. interrupt-names = "hc_irq", "pwr_irq";
  182. clocks = <&clock_gcc GCC_SDCC1_APPS_CLK>,
  183. <&clock_gcc GCC_SDCC1_AHB_CLK>;
  184. clock-names = "core", "iface";
  185. pinctrl-names = "default", "sleep";
  186. pinctrl-0 = <&sdc1_clk_on &sdc1_cmd_on &sdc1_data_on
  187. &sdc1_rclk_on>;
  188. pinctrl-1 = <&sdc1_clk_off &sdc1_cmd_off &sdc1_data_off
  189. &sdc1_rclk_off>;
  190. regulator-always-on;
  191. bus-width = <8>;
  192. mmc-hs400-1_8v;
  193. status = "okay";
  194. };
  195. rpm_msg_ram: memory@fc428000 {
  196. compatible = "qcom,rpm-msg-ram";
  197. reg = <0xfc428000 0x4000>;
  198. };
  199. sfpb_mutex_regs: syscon@fd484000 {
  200. #address-cells = <1>;
  201. #size-cells = <1>;
  202. compatible = "syscon";
  203. reg = <0xfd484000 0x400>;
  204. };
  205. };
  206. memory {
  207. device_type = "memory";
  208. reg = <0 0 0 0>; // bootloader will update
  209. };
  210. reserved-memory {
  211. #address-cells = <2>;
  212. #size-cells = <2>;
  213. ranges;
  214. smem_region: smem@6a00000 {
  215. reg = <0x0 0x6a00000 0x0 0x200000>;
  216. no-map;
  217. };
  218. };
  219. smd_rpm: smd {
  220. compatible = "qcom,smd";
  221. rpm {
  222. interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>;
  223. qcom,ipc = <&apcs 8 0>;
  224. qcom,smd-edge = <15>;
  225. qcom,local-pid = <0>;
  226. qcom,remote-pid = <6>;
  227. rpm-requests {
  228. compatible = "qcom,rpm-msm8994";
  229. qcom,smd-channels = "rpm_requests";
  230. pm8994-regulators {
  231. compatible = "qcom,rpm-pm8994-regulators";
  232. pm8994_s1: s1 {};
  233. pm8994_s2: s2 {};
  234. pm8994_s3: s3 {};
  235. pm8994_s4: s4 {};
  236. pm8994_s5: s5 {};
  237. pm8994_s6: s6 {};
  238. pm8994_s7: s7 {};
  239. pm8994_l1: l1 {};
  240. pm8994_l2: l2 {};
  241. pm8994_l3: l3 {};
  242. pm8994_l4: l4 {};
  243. pm8994_l6: l6 {};
  244. pm8994_l8: l8 {};
  245. pm8994_l9: l9 {};
  246. pm8994_l10: l10 {};
  247. pm8994_l11: l11 {};
  248. pm8994_l12: l12 {};
  249. pm8994_l13: l13 {};
  250. pm8994_l14: l14 {};
  251. pm8994_l15: l15 {};
  252. pm8994_l16: l16 {};
  253. pm8994_l17: l17 {};
  254. pm8994_l18: l18 {};
  255. pm8994_l19: l19 {};
  256. pm8994_l20: l20 {};
  257. pm8994_l21: l21 {};
  258. pm8994_l22: l22 {};
  259. pm8994_l23: l23 {};
  260. pm8994_l24: l24 {};
  261. pm8994_l25: l25 {};
  262. pm8994_l26: l26 {};
  263. pm8994_l27: l27 {};
  264. pm8994_l28: l28 {};
  265. pm8994_l29: l29 {};
  266. pm8994_l30: l30 {};
  267. pm8994_l31: l31 {};
  268. pm8994_l32: l32 {};
  269. pm8994_lvs1: lvs1 {};
  270. pm8994_lvs2: lvs2 {};
  271. };
  272. };
  273. };
  274. };
  275. };
  276. #include "msm8992-pins.dtsi"