msm8992-xiaomi-libra.dts 8.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429
  1. // SPDX-License-Identifier: BSD-3-Clause
  2. /*
  3. * Copyright (c) 2020, Konrad Dybcio
  4. */
  5. /dts-v1/;
  6. #include "msm8992.dtsi"
  7. #include "pm8994.dtsi"
  8. #include "pmi8994.dtsi"
  9. #include <dt-bindings/gpio/gpio.h>
  10. #include <dt-bindings/input/gpio-keys.h>
  11. /delete-node/ &adsp_mem;
  12. /delete-node/ &audio_mem;
  13. /delete-node/ &mpss_mem;
  14. /delete-node/ &peripheral_region;
  15. /delete-node/ &rmtfs_mem;
  16. / {
  17. model = "Xiaomi Mi 4C";
  18. compatible = "xiaomi,libra", "qcom,msm8992";
  19. chassis-type = "handset";
  20. /* required for bootloader to select correct board */
  21. qcom,msm-id = <251 0>, <252 0>;
  22. qcom,pmic-id = <65545 65546 0 0>;
  23. qcom,board-id = <12 0>;
  24. /* This enables graphical output via bootloader-enabled display */
  25. chosen {
  26. bootargs = "earlycon=tty0 console=tty0 maxcpus=1";
  27. #address-cells = <2>;
  28. #size-cells = <2>;
  29. ranges;
  30. framebuffer0: framebuffer@3400000 {
  31. compatible = "simple-framebuffer";
  32. reg = <0 0x3400000 0 (1080 * 1920 * 3)>;
  33. width = <1080>;
  34. height = <1920>;
  35. stride = <(1080 * 3)>;
  36. format = "r8g8b8";
  37. /*
  38. * That's a lot of clocks, but it's necessary due
  39. * to unused clk cleanup & no panel driver yet..
  40. */
  41. clocks = <&mmcc MDSS_AHB_CLK>,
  42. <&mmcc MDSS_AXI_CLK>,
  43. <&mmcc MDSS_VSYNC_CLK>,
  44. <&mmcc MDSS_MDP_CLK>,
  45. <&mmcc MDSS_BYTE0_CLK>,
  46. <&mmcc MDSS_PCLK0_CLK>,
  47. <&mmcc MDSS_ESC0_CLK>;
  48. power-domains = <&mmcc MDSS_GDSC>;
  49. };
  50. };
  51. gpio-keys {
  52. compatible = "gpio-keys";
  53. autorepeat;
  54. button {
  55. label = "Volume Up";
  56. gpios = <&pm8994_gpios 3 GPIO_ACTIVE_LOW>;
  57. linux,input-type = <1>;
  58. linux,code = <KEY_VOLUMEUP>;
  59. wakeup-source;
  60. debounce-interval = <15>;
  61. };
  62. };
  63. reserved-memory {
  64. #address-cells = <2>;
  65. #size-cells = <2>;
  66. ranges;
  67. memory_hole: hole@6400000 {
  68. reg = <0 0x06400000 0 0x600000>;
  69. no-map;
  70. };
  71. memory_hole2: hole2@6c00000 {
  72. reg = <0 0x06c00000 0 0x2400000>;
  73. no-map;
  74. };
  75. mpss_mem: mpss@9000000 {
  76. reg = <0 0x09000000 0 0x5a00000>;
  77. no-map;
  78. };
  79. tzapp: tzapp@ea00000 {
  80. reg = <0 0x0ea00000 0 0x1900000>;
  81. no-map;
  82. };
  83. mdm_rfsa_mem: mdm-rfsa@ca0b0000 {
  84. reg = <0 0xca0b0000 0 0x10000>;
  85. no-map;
  86. };
  87. rmtfs_mem: rmtfs@ca100000 {
  88. compatible = "qcom,rmtfs-mem";
  89. reg = <0 0xca100000 0 0x180000>;
  90. no-map;
  91. qcom,client-id = <1>;
  92. };
  93. qseecom_mem: qseecom@cb400000 {
  94. reg = <0 0xcb400000 0 0x1c00000>;
  95. no-mem;
  96. };
  97. adsp_rfsa_mem: adsp-rfsa@cd000000 {
  98. reg = <0 0xcd000000 0 0x10000>;
  99. no-map;
  100. };
  101. sensor_rfsa_mem: sensor-rfsa@cd010000 {
  102. reg = <0 0xcd010000 0 0x10000>;
  103. no-map;
  104. };
  105. ramoops@dfc00000 {
  106. compatible = "ramoops";
  107. reg = <0 0xdfc00000 0 0x40000>;
  108. console-size = <0x10000>;
  109. record-size = <0x10000>;
  110. ftrace-size = <0x10000>;
  111. pmsg-size = <0x20000>;
  112. };
  113. };
  114. };
  115. &blsp1_i2c2 {
  116. status = "okay";
  117. /* Atmel or Synaptics touchscreen */
  118. };
  119. &blsp1_i2c5 {
  120. status = "okay";
  121. /* ST lsm6db0 gyro/accelerometer */
  122. };
  123. &blsp1_i2c6 {
  124. status = "okay";
  125. /*
  126. * NXP NCI NFC,
  127. * TI USB320 Type-C controller,
  128. * Pericom 30216a USB (de)mux switch
  129. */
  130. };
  131. &blsp2_i2c1 {
  132. status = "okay";
  133. /* cm36686 proximity and ambient light sensor */
  134. };
  135. &blsp2_i2c5 {
  136. status = "okay";
  137. /* Silabs si4705 FM transmitter */
  138. };
  139. &blsp2_uart2 {
  140. status = "okay";
  141. };
  142. &pm8994_spmi_regulators {
  143. VDD_APC0: s8 {
  144. regulator-min-microvolt = <680000>;
  145. regulator-max-microvolt = <1180000>;
  146. regulator-always-on;
  147. regulator-boot-on;
  148. };
  149. /* APC1 is 3-phase, but quoting downstream, s11 is "the gang leader" */
  150. VDD_APC1: s11 {
  151. regulator-min-microvolt = <700000>;
  152. regulator-max-microvolt = <1225000>;
  153. regulator-always-on;
  154. regulator-boot-on;
  155. };
  156. };
  157. &rpm_requests {
  158. pm8994-regulators {
  159. compatible = "qcom,rpm-pm8994-regulators";
  160. vdd_l1-supply = <&pm8994_s7>;
  161. vdd_l2_26_28-supply = <&pm8994_s3>;
  162. vdd_l3_11-supply = <&pm8994_s3>;
  163. vdd_l4_27_31-supply = <&pm8994_s3>;
  164. vdd_l5_7-supply = <&pm8994_s3>;
  165. vdd_l6_12_32-supply = <&pm8994_s5>;
  166. vdd_l8_16_30-supply = <&vph_pwr>;
  167. vdd_l9_10_18_22-supply = <&vph_pwr>;
  168. vdd_l13_19_23_24-supply = <&vph_pwr>;
  169. vdd_l14_15-supply = <&pm8994_s5>;
  170. vdd_l17_29-supply = <&vph_pwr>;
  171. vdd_l20_21-supply = <&vph_pwr>;
  172. vdd_l25-supply = <&pm8994_s5>;
  173. vdd_lvs1_2-supply = <&pm8994_s4>;
  174. /* S1, S2, S6 and S12 are managed by RPMPD */
  175. pm8994_s3: s3 {
  176. regulator-min-microvolt = <1300000>;
  177. regulator-max-microvolt = <1300000>;
  178. };
  179. pm8994_s4: s4 {
  180. regulator-min-microvolt = <1800000>;
  181. regulator-max-microvolt = <1800000>;
  182. regulator-allow-set-load;
  183. regulator-always-on;
  184. regulator-system-load = <325000>;
  185. };
  186. pm8994_s5: s5 {
  187. regulator-min-microvolt = <2150000>;
  188. regulator-max-microvolt = <2150000>;
  189. };
  190. pm8994_s7: s7 {
  191. regulator-min-microvolt = <1000000>;
  192. regulator-max-microvolt = <1000000>;
  193. };
  194. /* S8, S9, S10 and S11 - SPMI-managed VDD_APC */
  195. pm8994_l1: l1 {
  196. regulator-min-microvolt = <1000000>;
  197. regulator-max-microvolt = <1000000>;
  198. };
  199. pm8994_l2: l2 {
  200. regulator-min-microvolt = <1250000>;
  201. regulator-max-microvolt = <1250000>;
  202. };
  203. pm8994_l3: l3 {
  204. regulator-min-microvolt = <1200000>;
  205. regulator-max-microvolt = <1200000>;
  206. };
  207. pm8994_l4: l4 {
  208. regulator-min-microvolt = <1225000>;
  209. regulator-max-microvolt = <1225000>;
  210. };
  211. /* L5 is inaccessible from RPM */
  212. pm8994_l6: l6 {
  213. regulator-min-microvolt = <1800000>;
  214. regulator-max-microvolt = <1800000>;
  215. };
  216. /* L7 is inaccessible from RPM */
  217. pm8994_l8: l8 {
  218. regulator-min-microvolt = <1800000>;
  219. regulator-max-microvolt = <1800000>;
  220. };
  221. pm8994_l9: l9 {
  222. regulator-min-microvolt = <1800000>;
  223. regulator-max-microvolt = <1800000>;
  224. };
  225. pm8994_l10: l10 {
  226. regulator-min-microvolt = <1800000>;
  227. regulator-max-microvolt = <1800000>;
  228. };
  229. pm8994_l11: l11 {
  230. regulator-min-microvolt = <1200000>;
  231. regulator-max-microvolt = <1200000>;
  232. };
  233. pm8994_l12: l12 {
  234. regulator-min-microvolt = <1800000>;
  235. regulator-max-microvolt = <1800000>;
  236. };
  237. pm8994_l13: l13 {
  238. regulator-min-microvolt = <1800000>;
  239. regulator-max-microvolt = <2950000>;
  240. };
  241. pm8994_l14: l14 {
  242. regulator-min-microvolt = <1800000>;
  243. regulator-max-microvolt = <1800000>;
  244. };
  245. pm8994_l15: l15 {
  246. regulator-min-microvolt = <1800000>;
  247. regulator-max-microvolt = <1800000>;
  248. };
  249. pm8994_l16: l16 {
  250. regulator-min-microvolt = <2700000>;
  251. regulator-max-microvolt = <2700000>;
  252. };
  253. pm8994_l17: l17 {
  254. regulator-min-microvolt = <2700000>;
  255. regulator-max-microvolt = <2700000>;
  256. };
  257. pm8994_l18: l18 {
  258. regulator-min-microvolt = <2850000>;
  259. regulator-max-microvolt = <2850000>;
  260. regulator-always-on;
  261. };
  262. pm8994_l19: l19 {
  263. regulator-min-microvolt = <2800000>;
  264. regulator-max-microvolt = <2800000>;
  265. };
  266. pm8994_l20: l20 {
  267. regulator-min-microvolt = <2950000>;
  268. regulator-max-microvolt = <2950000>;
  269. regulator-always-on;
  270. regulator-boot-on;
  271. regulator-allow-set-load;
  272. regulator-system-load = <570000>;
  273. };
  274. pm8994_l21: l21 {
  275. regulator-min-microvolt = <2950000>;
  276. regulator-max-microvolt = <2950000>;
  277. regulator-always-on;
  278. };
  279. pm8994_l22: l22 {
  280. regulator-min-microvolt = <3000000>;
  281. regulator-max-microvolt = <3000000>;
  282. };
  283. pm8994_l23: l23 {
  284. regulator-min-microvolt = <2800000>;
  285. regulator-max-microvolt = <2800000>;
  286. };
  287. pm8994_l24: l24 {
  288. regulator-min-microvolt = <3075000>;
  289. regulator-max-microvolt = <3150000>;
  290. };
  291. pm8994_l25: l25 {
  292. regulator-min-microvolt = <1000000>;
  293. regulator-max-microvolt = <1000000>;
  294. };
  295. pm8994_l26: l26 {
  296. regulator-min-microvolt = <987500>;
  297. regulator-max-microvolt = <987500>;
  298. };
  299. pm8994_l27: l27 {
  300. regulator-min-microvolt = <1050000>;
  301. regulator-max-microvolt = <1050000>;
  302. };
  303. pm8994_l28: l28 {
  304. regulator-min-microvolt = <1000000>;
  305. regulator-max-microvolt = <1000000>;
  306. };
  307. pm8994_l29: l29 {
  308. regulator-min-microvolt = <2800000>;
  309. regulator-max-microvolt = <2800000>;
  310. };
  311. pm8994_l30: l30 {
  312. regulator-min-microvolt = <1800000>;
  313. regulator-max-microvolt = <1800000>;
  314. };
  315. pm8994_l31: l31 {
  316. regulator-min-microvolt = <1262500>;
  317. regulator-max-microvolt = <1262500>;
  318. };
  319. pm8994_l32: l32 {
  320. regulator-min-microvolt = <1800000>;
  321. regulator-max-microvolt = <1800000>;
  322. };
  323. pm8994_lvs1: lvs1 {};
  324. pm8994_lvs2: lvs2 {};
  325. };
  326. pmi8994_regulators: pmi8994-regulators {
  327. compatible = "qcom,rpm-pmi8994-regulators";
  328. vdd_s1-supply = <&vph_pwr>;
  329. vdd_bst_byp-supply = <&vph_pwr>;
  330. pmi8994_s1: s1 {
  331. regulator-min-microvolt = <1025000>;
  332. regulator-max-microvolt = <1025000>;
  333. };
  334. /* S2 & S3 - VDD_GFX */
  335. pmi8994_bby: boost-bypass {
  336. regulator-min-microvolt = <3150000>;
  337. regulator-max-microvolt = <3600000>;
  338. };
  339. };
  340. };
  341. &sdhc1 {
  342. status = "okay";
  343. mmc-hs400-1_8v;
  344. vmmc-supply = <&pm8994_l20>;
  345. vqmmc-supply = <&pm8994_s4>;
  346. };