qcom-msm8660.dtsi 9.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417
  1. /dts-v1/;
  2. /include/ "skeleton.dtsi"
  3. #include <dt-bindings/interrupt-controller/irq.h>
  4. #include <dt-bindings/interrupt-controller/arm-gic.h>
  5. #include <dt-bindings/clock/qcom,gcc-msm8660.h>
  6. #include <dt-bindings/soc/qcom,gsbi.h>
  7. / {
  8. model = "Qualcomm MSM8660";
  9. compatible = "qcom,msm8660";
  10. interrupt-parent = <&intc>;
  11. cpus {
  12. #address-cells = <1>;
  13. #size-cells = <0>;
  14. cpu@0 {
  15. compatible = "qcom,scorpion";
  16. enable-method = "qcom,gcc-msm8660";
  17. device_type = "cpu";
  18. reg = <0>;
  19. next-level-cache = <&L2>;
  20. };
  21. cpu@1 {
  22. compatible = "qcom,scorpion";
  23. enable-method = "qcom,gcc-msm8660";
  24. device_type = "cpu";
  25. reg = <1>;
  26. next-level-cache = <&L2>;
  27. };
  28. L2: l2-cache {
  29. compatible = "cache";
  30. cache-level = <2>;
  31. };
  32. };
  33. cpu-pmu {
  34. compatible = "qcom,scorpion-mp-pmu";
  35. interrupts = <1 9 0x304>;
  36. };
  37. clocks {
  38. cxo_board {
  39. compatible = "fixed-clock";
  40. #clock-cells = <0>;
  41. clock-frequency = <19200000>;
  42. };
  43. pxo_board {
  44. compatible = "fixed-clock";
  45. #clock-cells = <0>;
  46. clock-frequency = <27000000>;
  47. };
  48. sleep_clk {
  49. compatible = "fixed-clock";
  50. #clock-cells = <0>;
  51. clock-frequency = <32768>;
  52. };
  53. };
  54. soc: soc {
  55. #address-cells = <1>;
  56. #size-cells = <1>;
  57. ranges;
  58. compatible = "simple-bus";
  59. intc: interrupt-controller@2080000 {
  60. compatible = "qcom,msm-8660-qgic";
  61. interrupt-controller;
  62. #interrupt-cells = <3>;
  63. reg = < 0x02080000 0x1000 >,
  64. < 0x02081000 0x1000 >;
  65. };
  66. timer@2000000 {
  67. compatible = "qcom,scss-timer", "qcom,msm-timer";
  68. interrupts = <1 0 0x301>,
  69. <1 1 0x301>,
  70. <1 2 0x301>;
  71. reg = <0x02000000 0x100>;
  72. clock-frequency = <27000000>,
  73. <32768>;
  74. cpu-offset = <0x40000>;
  75. };
  76. tlmm: pinctrl@800000 {
  77. compatible = "qcom,msm8660-pinctrl";
  78. reg = <0x800000 0x4000>;
  79. gpio-controller;
  80. #gpio-cells = <2>;
  81. interrupts = <0 16 0x4>;
  82. interrupt-controller;
  83. #interrupt-cells = <2>;
  84. };
  85. gcc: clock-controller@900000 {
  86. compatible = "qcom,gcc-msm8660";
  87. #clock-cells = <1>;
  88. #reset-cells = <1>;
  89. reg = <0x900000 0x4000>;
  90. };
  91. gsbi12: gsbi@19c00000 {
  92. compatible = "qcom,gsbi-v1.0.0";
  93. cell-index = <12>;
  94. reg = <0x19c00000 0x100>;
  95. clocks = <&gcc GSBI12_H_CLK>;
  96. clock-names = "iface";
  97. #address-cells = <1>;
  98. #size-cells = <1>;
  99. ranges;
  100. syscon-tcsr = <&tcsr>;
  101. gsbi12_serial: serial@19c40000 {
  102. compatible = "qcom,msm-uartdm-v1.3", "qcom,msm-uartdm";
  103. reg = <0x19c40000 0x1000>,
  104. <0x19c00000 0x1000>;
  105. interrupts = <0 195 IRQ_TYPE_NONE>;
  106. clocks = <&gcc GSBI12_UART_CLK>, <&gcc GSBI12_H_CLK>;
  107. clock-names = "core", "iface";
  108. status = "disabled";
  109. };
  110. gsbi12_i2c: i2c@19c80000 {
  111. compatible = "qcom,i2c-qup-v1.1.1";
  112. reg = <0x19c80000 0x1000>;
  113. interrupts = <0 196 IRQ_TYPE_NONE>;
  114. clocks = <&gcc GSBI12_QUP_CLK>, <&gcc GSBI12_H_CLK>;
  115. clock-names = "core", "iface";
  116. #address-cells = <1>;
  117. #size-cells = <0>;
  118. status = "disabled";
  119. };
  120. };
  121. qcom,ssbi@500000 {
  122. compatible = "qcom,ssbi";
  123. reg = <0x500000 0x1000>;
  124. qcom,controller-type = "pmic-arbiter";
  125. pmicintc: pmic@0 {
  126. compatible = "qcom,pm8058";
  127. interrupt-parent = <&tlmm>;
  128. interrupts = <88 8>;
  129. #interrupt-cells = <2>;
  130. interrupt-controller;
  131. #address-cells = <1>;
  132. #size-cells = <0>;
  133. pm8058_gpio: gpio@150 {
  134. compatible = "qcom,pm8058-gpio",
  135. "qcom,ssbi-gpio";
  136. reg = <0x150>;
  137. interrupt-parent = <&pmicintc>;
  138. interrupts = <192 IRQ_TYPE_NONE>,
  139. <193 IRQ_TYPE_NONE>,
  140. <194 IRQ_TYPE_NONE>,
  141. <195 IRQ_TYPE_NONE>,
  142. <196 IRQ_TYPE_NONE>,
  143. <197 IRQ_TYPE_NONE>,
  144. <198 IRQ_TYPE_NONE>,
  145. <199 IRQ_TYPE_NONE>,
  146. <200 IRQ_TYPE_NONE>,
  147. <201 IRQ_TYPE_NONE>,
  148. <202 IRQ_TYPE_NONE>,
  149. <203 IRQ_TYPE_NONE>,
  150. <204 IRQ_TYPE_NONE>,
  151. <205 IRQ_TYPE_NONE>,
  152. <206 IRQ_TYPE_NONE>,
  153. <207 IRQ_TYPE_NONE>,
  154. <208 IRQ_TYPE_NONE>,
  155. <209 IRQ_TYPE_NONE>,
  156. <210 IRQ_TYPE_NONE>,
  157. <211 IRQ_TYPE_NONE>,
  158. <212 IRQ_TYPE_NONE>,
  159. <213 IRQ_TYPE_NONE>,
  160. <214 IRQ_TYPE_NONE>,
  161. <215 IRQ_TYPE_NONE>,
  162. <216 IRQ_TYPE_NONE>,
  163. <217 IRQ_TYPE_NONE>,
  164. <218 IRQ_TYPE_NONE>,
  165. <219 IRQ_TYPE_NONE>,
  166. <220 IRQ_TYPE_NONE>,
  167. <221 IRQ_TYPE_NONE>,
  168. <222 IRQ_TYPE_NONE>,
  169. <223 IRQ_TYPE_NONE>,
  170. <224 IRQ_TYPE_NONE>,
  171. <225 IRQ_TYPE_NONE>,
  172. <226 IRQ_TYPE_NONE>,
  173. <227 IRQ_TYPE_NONE>,
  174. <228 IRQ_TYPE_NONE>,
  175. <229 IRQ_TYPE_NONE>,
  176. <230 IRQ_TYPE_NONE>,
  177. <231 IRQ_TYPE_NONE>,
  178. <232 IRQ_TYPE_NONE>,
  179. <233 IRQ_TYPE_NONE>,
  180. <234 IRQ_TYPE_NONE>,
  181. <235 IRQ_TYPE_NONE>;
  182. gpio-controller;
  183. #gpio-cells = <2>;
  184. };
  185. pm8058_mpps: mpps@50 {
  186. compatible = "qcom,pm8058-mpp",
  187. "qcom,ssbi-mpp";
  188. reg = <0x50>;
  189. gpio-controller;
  190. #gpio-cells = <2>;
  191. interrupt-parent = <&pmicintc>;
  192. interrupts =
  193. <128 IRQ_TYPE_NONE>,
  194. <129 IRQ_TYPE_NONE>,
  195. <130 IRQ_TYPE_NONE>,
  196. <131 IRQ_TYPE_NONE>,
  197. <132 IRQ_TYPE_NONE>,
  198. <133 IRQ_TYPE_NONE>,
  199. <134 IRQ_TYPE_NONE>,
  200. <135 IRQ_TYPE_NONE>,
  201. <136 IRQ_TYPE_NONE>,
  202. <137 IRQ_TYPE_NONE>,
  203. <138 IRQ_TYPE_NONE>,
  204. <139 IRQ_TYPE_NONE>;
  205. };
  206. pwrkey@1c {
  207. compatible = "qcom,pm8058-pwrkey";
  208. reg = <0x1c>;
  209. interrupt-parent = <&pmicintc>;
  210. interrupts = <50 1>, <51 1>;
  211. debounce = <15625>;
  212. pull-up;
  213. };
  214. keypad@148 {
  215. compatible = "qcom,pm8058-keypad";
  216. reg = <0x148>;
  217. interrupt-parent = <&pmicintc>;
  218. interrupts = <74 1>, <75 1>;
  219. debounce = <15>;
  220. scan-delay = <32>;
  221. row-hold = <91500>;
  222. };
  223. rtc@1e8 {
  224. compatible = "qcom,pm8058-rtc";
  225. reg = <0x1e8>;
  226. interrupt-parent = <&pmicintc>;
  227. interrupts = <39 1>;
  228. allow-set-time;
  229. };
  230. vibrator@4a {
  231. compatible = "qcom,pm8058-vib";
  232. reg = <0x4a>;
  233. };
  234. };
  235. };
  236. l2cc: clock-controller@2082000 {
  237. compatible = "syscon";
  238. reg = <0x02082000 0x1000>;
  239. };
  240. rpm: rpm@104000 {
  241. compatible = "qcom,rpm-msm8660";
  242. reg = <0x00104000 0x1000>;
  243. qcom,ipc = <&l2cc 0x8 2>;
  244. interrupts = <GIC_SPI 19 IRQ_TYPE_EDGE_RISING>,
  245. <GIC_SPI 21 IRQ_TYPE_EDGE_RISING>,
  246. <GIC_SPI 22 IRQ_TYPE_EDGE_RISING>;
  247. interrupt-names = "ack", "err", "wakeup";
  248. clocks = <&gcc RPM_MSG_RAM_H_CLK>;
  249. clock-names = "ram";
  250. rpmcc: clock-controller {
  251. compatible = "qcom,rpmcc-apq8660", "qcom,rpmcc";
  252. #clock-cells = <1>;
  253. };
  254. pm8901-regulators {
  255. compatible = "qcom,rpm-pm8901-regulators";
  256. pm8901_l0: l0 {};
  257. pm8901_l1: l1 {};
  258. pm8901_l2: l2 {};
  259. pm8901_l3: l3 {};
  260. pm8901_l4: l4 {};
  261. pm8901_l5: l5 {};
  262. pm8901_l6: l6 {};
  263. /* S0 and S1 Handled as SAW regulators by SPM */
  264. pm8901_s2: s2 {};
  265. pm8901_s3: s3 {};
  266. pm8901_s4: s4 {};
  267. pm8901_lvs0: lvs0 {};
  268. pm8901_lvs1: lvs1 {};
  269. pm8901_lvs2: lvs2 {};
  270. pm8901_lvs3: lvs3 {};
  271. pm8901_mvs: mvs {};
  272. };
  273. pm8058-regulators {
  274. compatible = "qcom,rpm-pm8058-regulators";
  275. pm8058_l0: l0 {};
  276. pm8058_l1: l1 {};
  277. pm8058_l2: l2 {};
  278. pm8058_l3: l3 {};
  279. pm8058_l4: l4 {};
  280. pm8058_l5: l5 {};
  281. pm8058_l6: l6 {};
  282. pm8058_l7: l7 {};
  283. pm8058_l8: l8 {};
  284. pm8058_l9: l9 {};
  285. pm8058_l10: l10 {};
  286. pm8058_l11: l11 {};
  287. pm8058_l12: l12 {};
  288. pm8058_l13: l13 {};
  289. pm8058_l14: l14 {};
  290. pm8058_l15: l15 {};
  291. pm8058_l16: l16 {};
  292. pm8058_l17: l17 {};
  293. pm8058_l18: l18 {};
  294. pm8058_l19: l19 {};
  295. pm8058_l20: l20 {};
  296. pm8058_l21: l21 {};
  297. pm8058_l22: l22 {};
  298. pm8058_l23: l23 {};
  299. pm8058_l24: l24 {};
  300. pm8058_l25: l25 {};
  301. pm8058_s0: s0 {};
  302. pm8058_s1: s1 {};
  303. pm8058_s2: s2 {};
  304. pm8058_s3: s3 {};
  305. pm8058_s4: s4 {};
  306. pm8058_lvs0: lvs0 {};
  307. pm8058_lvs1: lvs1 {};
  308. pm8058_ncp: ncp {};
  309. };
  310. };
  311. amba {
  312. compatible = "simple-bus";
  313. #address-cells = <1>;
  314. #size-cells = <1>;
  315. ranges;
  316. sdcc1: sdcc@12400000 {
  317. status = "disabled";
  318. compatible = "arm,pl18x", "arm,primecell";
  319. arm,primecell-periphid = <0x00051180>;
  320. reg = <0x12400000 0x8000>;
  321. interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>;
  322. interrupt-names = "cmd_irq";
  323. clocks = <&gcc SDC1_CLK>, <&gcc SDC1_H_CLK>;
  324. clock-names = "mclk", "apb_pclk";
  325. bus-width = <8>;
  326. max-frequency = <48000000>;
  327. non-removable;
  328. cap-sd-highspeed;
  329. cap-mmc-highspeed;
  330. };
  331. sdcc3: sdcc@12180000 {
  332. compatible = "arm,pl18x", "arm,primecell";
  333. arm,primecell-periphid = <0x00051180>;
  334. status = "disabled";
  335. reg = <0x12180000 0x8000>;
  336. interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>;
  337. interrupt-names = "cmd_irq";
  338. clocks = <&gcc SDC3_CLK>, <&gcc SDC3_H_CLK>;
  339. clock-names = "mclk", "apb_pclk";
  340. bus-width = <4>;
  341. cap-sd-highspeed;
  342. cap-mmc-highspeed;
  343. max-frequency = <48000000>;
  344. no-1-8-v;
  345. };
  346. sdcc5: sdcc@12200000 {
  347. compatible = "arm,pl18x", "arm,primecell";
  348. arm,primecell-periphid = <0x00051180>;
  349. status = "disabled";
  350. reg = <0x12200000 0x8000>;
  351. interrupts = <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>;
  352. interrupt-names = "cmd_irq";
  353. clocks = <&gcc SDC5_CLK>, <&gcc SDC5_H_CLK>;
  354. clock-names = "mclk", "apb_pclk";
  355. bus-width = <4>;
  356. cap-sd-highspeed;
  357. cap-mmc-highspeed;
  358. max-frequency = <48000000>;
  359. };
  360. };
  361. tcsr: syscon@1a400000 {
  362. compatible = "qcom,tcsr-msm8660", "syscon";
  363. reg = <0x1a400000 0x100>;
  364. };
  365. };
  366. };