msm8998-clamshell.dtsi 8.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398
  1. // SPDX-License-Identifier: GPL-2.0
  2. /* Copyright (c) 2019, Jeffrey Hugo. All rights reserved. */
  3. /*
  4. * Common include for MSM8998 clamshell devices, ie the Lenovo Miix 630,
  5. * Asus NovaGo TP370QL, and HP Envy x2. All three devices are basically the
  6. * same, with differences in peripherals.
  7. */
  8. #include "msm8998.dtsi"
  9. #include "pm8005.dtsi"
  10. #include "pm8998.dtsi"
  11. / {
  12. vph_pwr: vph-pwr-regulator {
  13. compatible = "regulator-fixed";
  14. regulator-name = "vph_pwr";
  15. regulator-always-on;
  16. regulator-boot-on;
  17. };
  18. };
  19. &blsp1_uart3 {
  20. status = "okay";
  21. bluetooth {
  22. compatible = "qcom,wcn3990-bt";
  23. vddio-supply = <&vreg_s4a_1p8>;
  24. vddxo-supply = <&vreg_l7a_1p8>;
  25. vddrf-supply = <&vreg_l17a_1p3>;
  26. vddch0-supply = <&vreg_l25a_3p3>;
  27. max-speed = <3200000>;
  28. };
  29. };
  30. &blsp1_uart3_on {
  31. rx {
  32. /delete-property/ bias-disable;
  33. /*
  34. * Configure a pull-up on 45 (RX). This is needed to
  35. * avoid garbage data when the TX pin of the Bluetooth
  36. * module is in tri-state (module powered off or not
  37. * driving the signal yet).
  38. */
  39. bias-pull-up;
  40. };
  41. cts {
  42. /delete-property/ bias-disable;
  43. /*
  44. * Configure a pull-down on 47 (CTS) to match the pull
  45. * of the Bluetooth module.
  46. */
  47. bias-pull-down;
  48. };
  49. };
  50. /*
  51. * The laptop FW does not appear to support the retention state as it is
  52. * not advertised as enabled in ACPI, and enabling it in DT can cause boot
  53. * hangs.
  54. */
  55. &CPU0 {
  56. cpu-idle-states = <&LITTLE_CPU_SLEEP_1>;
  57. };
  58. &CPU1 {
  59. cpu-idle-states = <&LITTLE_CPU_SLEEP_1>;
  60. };
  61. &CPU2 {
  62. cpu-idle-states = <&LITTLE_CPU_SLEEP_1>;
  63. };
  64. &CPU3 {
  65. cpu-idle-states = <&LITTLE_CPU_SLEEP_1>;
  66. };
  67. &CPU4 {
  68. cpu-idle-states = <&BIG_CPU_SLEEP_1>;
  69. };
  70. &CPU5 {
  71. cpu-idle-states = <&BIG_CPU_SLEEP_1>;
  72. };
  73. &CPU6 {
  74. cpu-idle-states = <&BIG_CPU_SLEEP_1>;
  75. };
  76. &CPU7 {
  77. cpu-idle-states = <&BIG_CPU_SLEEP_1>;
  78. };
  79. /*
  80. * If EFIFB is used, enabling MMCC will cause important MMSS clocks to be cleaned
  81. * up, because as far as Linux is concerned - they are unused. Disable it by default
  82. * on clamshell devices, as it will break them, unless either simplefb is configured to
  83. * hold a vote for these clocks, or panels are brought up properly, using drm/msm.
  84. */
  85. &mmcc {
  86. status = "disabled";
  87. };
  88. &mmss_smmu {
  89. status = "disabled";
  90. };
  91. &pcie0 {
  92. status = "okay";
  93. };
  94. &pcie_phy {
  95. status = "okay";
  96. };
  97. &pm8005_regulators {
  98. vdd_s1-supply = <&vph_pwr>;
  99. pm8005_s1: s1 { /* VDD_GFX supply */
  100. regulator-min-microvolt = <524000>;
  101. regulator-max-microvolt = <1100000>;
  102. regulator-enable-ramp-delay = <500>;
  103. /* hack until we rig up the gpu consumer */
  104. regulator-always-on;
  105. };
  106. };
  107. &qusb2phy {
  108. status = "okay";
  109. vdd-supply = <&vreg_l1a_0p875>;
  110. vdda-pll-supply = <&vreg_l12a_1p8>;
  111. vdda-phy-dpdm-supply = <&vreg_l24a_3p075>;
  112. };
  113. &rpm_requests {
  114. pm8998-regulators {
  115. compatible = "qcom,rpm-pm8998-regulators";
  116. vdd_s1-supply = <&vph_pwr>;
  117. vdd_s2-supply = <&vph_pwr>;
  118. vdd_s3-supply = <&vph_pwr>;
  119. vdd_s4-supply = <&vph_pwr>;
  120. vdd_s5-supply = <&vph_pwr>;
  121. vdd_s6-supply = <&vph_pwr>;
  122. vdd_s7-supply = <&vph_pwr>;
  123. vdd_s8-supply = <&vph_pwr>;
  124. vdd_s9-supply = <&vph_pwr>;
  125. vdd_s10-supply = <&vph_pwr>;
  126. vdd_s11-supply = <&vph_pwr>;
  127. vdd_s12-supply = <&vph_pwr>;
  128. vdd_s13-supply = <&vph_pwr>;
  129. vdd_l1_l27-supply = <&vreg_s7a_1p025>;
  130. vdd_l2_l8_l17-supply = <&vreg_s3a_1p35>;
  131. vdd_l3_l11-supply = <&vreg_s7a_1p025>;
  132. vdd_l4_l5-supply = <&vreg_s7a_1p025>;
  133. vdd_l6-supply = <&vreg_s5a_2p04>;
  134. vdd_l7_l12_l14_l15-supply = <&vreg_s5a_2p04>;
  135. vdd_l9-supply = <&vph_pwr>;
  136. vdd_l10_l23_l25-supply = <&vph_pwr>;
  137. vdd_l13_l19_l21-supply = <&vph_pwr>;
  138. vdd_l16_l28-supply = <&vph_pwr>;
  139. vdd_l18_l22-supply = <&vph_pwr>;
  140. vdd_l20_l24-supply = <&vph_pwr>;
  141. vdd_l26-supply = <&vreg_s3a_1p35>;
  142. vdd_lvs1_lvs2-supply = <&vreg_s4a_1p8>;
  143. vreg_s3a_1p35: s3 {
  144. regulator-min-microvolt = <1352000>;
  145. regulator-max-microvolt = <1352000>;
  146. };
  147. vreg_s4a_1p8: s4 {
  148. regulator-min-microvolt = <1800000>;
  149. regulator-max-microvolt = <1800000>;
  150. regulator-allow-set-load;
  151. };
  152. vreg_s5a_2p04: s5 {
  153. regulator-min-microvolt = <1904000>;
  154. regulator-max-microvolt = <2040000>;
  155. };
  156. vreg_s7a_1p025: s7 {
  157. regulator-min-microvolt = <900000>;
  158. regulator-max-microvolt = <1028000>;
  159. };
  160. vreg_l1a_0p875: l1 {
  161. regulator-min-microvolt = <880000>;
  162. regulator-max-microvolt = <880000>;
  163. regulator-allow-set-load;
  164. };
  165. vreg_l2a_1p2: l2 {
  166. regulator-min-microvolt = <1200000>;
  167. regulator-max-microvolt = <1200000>;
  168. regulator-allow-set-load;
  169. };
  170. vreg_l3a_1p0: l3 {
  171. regulator-min-microvolt = <1000000>;
  172. regulator-max-microvolt = <1000000>;
  173. };
  174. vreg_l5a_0p8: l5 {
  175. regulator-min-microvolt = <800000>;
  176. regulator-max-microvolt = <800000>;
  177. };
  178. vreg_l6a_1p8: l6 {
  179. regulator-min-microvolt = <1808000>;
  180. regulator-max-microvolt = <1808000>;
  181. };
  182. vreg_l7a_1p8: l7 {
  183. regulator-min-microvolt = <1800000>;
  184. regulator-max-microvolt = <1800000>;
  185. regulator-allow-set-load;
  186. };
  187. vreg_l8a_1p2: l8 {
  188. regulator-min-microvolt = <1200000>;
  189. regulator-max-microvolt = <1200000>;
  190. };
  191. vreg_l9a_1p8: l9 {
  192. regulator-min-microvolt = <1808000>;
  193. regulator-max-microvolt = <2960000>;
  194. };
  195. vreg_l10a_1p8: l10 {
  196. regulator-min-microvolt = <1808000>;
  197. regulator-max-microvolt = <2960000>;
  198. };
  199. vreg_l11a_1p0: l11 {
  200. regulator-min-microvolt = <1000000>;
  201. regulator-max-microvolt = <1000000>;
  202. };
  203. vreg_l12a_1p8: l12 {
  204. regulator-min-microvolt = <1800000>;
  205. regulator-max-microvolt = <1800000>;
  206. };
  207. vreg_l13a_2p95: l13 {
  208. regulator-min-microvolt = <1808000>;
  209. regulator-max-microvolt = <2960000>;
  210. };
  211. vreg_l14a_1p88: l14 {
  212. regulator-min-microvolt = <1880000>;
  213. regulator-max-microvolt = <1880000>;
  214. };
  215. vreg_l15a_1p8: l15 {
  216. regulator-min-microvolt = <1800000>;
  217. regulator-max-microvolt = <1800000>;
  218. };
  219. vreg_l16a_2p7: l16 {
  220. regulator-min-microvolt = <2704000>;
  221. regulator-max-microvolt = <2704000>;
  222. };
  223. vreg_l17a_1p3: l17 {
  224. regulator-min-microvolt = <1304000>;
  225. regulator-max-microvolt = <1304000>;
  226. regulator-allow-set-load;
  227. };
  228. vreg_l18a_2p7: l18 {
  229. regulator-min-microvolt = <2704000>;
  230. regulator-max-microvolt = <2704000>;
  231. };
  232. vreg_l19a_3p0: l19 {
  233. regulator-min-microvolt = <3008000>;
  234. regulator-max-microvolt = <3008000>;
  235. };
  236. vreg_l20a_2p95: l20 {
  237. regulator-min-microvolt = <2960000>;
  238. regulator-max-microvolt = <2960000>;
  239. regulator-allow-set-load;
  240. };
  241. vreg_l21a_2p95: l21 {
  242. regulator-min-microvolt = <2960000>;
  243. regulator-max-microvolt = <2960000>;
  244. regulator-allow-set-load;
  245. regulator-system-load = <800000>;
  246. };
  247. vreg_l22a_2p85: l22 {
  248. regulator-min-microvolt = <2864000>;
  249. regulator-max-microvolt = <2864000>;
  250. };
  251. vreg_l23a_3p3: l23 {
  252. regulator-min-microvolt = <3312000>;
  253. regulator-max-microvolt = <3312000>;
  254. };
  255. vreg_l24a_3p075: l24 {
  256. regulator-min-microvolt = <3088000>;
  257. regulator-max-microvolt = <3088000>;
  258. };
  259. vreg_l25a_3p3: l25 {
  260. regulator-min-microvolt = <3104000>;
  261. regulator-max-microvolt = <3312000>;
  262. regulator-allow-set-load;
  263. };
  264. vreg_l26a_1p2: l26 {
  265. regulator-min-microvolt = <1200000>;
  266. regulator-max-microvolt = <1200000>;
  267. };
  268. vreg_l28_3p0: l28 {
  269. regulator-min-microvolt = <3008000>;
  270. regulator-max-microvolt = <3008000>;
  271. };
  272. vreg_lvs1a_1p8: lvs1 {
  273. regulator-min-microvolt = <1800000>;
  274. regulator-max-microvolt = <1800000>;
  275. };
  276. vreg_lvs2a_1p8: lvs2 {
  277. regulator-min-microvolt = <1800000>;
  278. regulator-max-microvolt = <1800000>;
  279. };
  280. };
  281. };
  282. &remoteproc_mss {
  283. status = "okay";
  284. };
  285. &sdhc2 {
  286. status = "okay";
  287. vmmc-supply = <&vreg_l21a_2p95>;
  288. vqmmc-supply = <&vreg_l13a_2p95>;
  289. pinctrl-names = "default", "sleep";
  290. pinctrl-0 = <&sdc2_on &sdc2_cd>;
  291. pinctrl-1 = <&sdc2_off &sdc2_cd>;
  292. };
  293. &tlmm {
  294. gpio-reserved-ranges = <0 4>, <81 4>;
  295. touchpad: touchpad-pin {
  296. pins = "gpio123";
  297. bias-pull-up;
  298. };
  299. };
  300. &ufshc {
  301. status = "okay";
  302. };
  303. &ufsphy {
  304. status = "okay";
  305. vdda-phy-supply = <&vreg_l1a_0p875>;
  306. vdda-pll-supply = <&vreg_l2a_1p2>;
  307. };
  308. &usb3 {
  309. status = "okay";
  310. };
  311. &usb3_dwc3 {
  312. dr_mode = "host"; /* Force to host until we have Type-C hooked up */
  313. };
  314. &usb3phy {
  315. status = "okay";
  316. vdda-phy-supply = <&vreg_l1a_0p875>;
  317. vdda-pll-supply = <&vreg_l2a_1p2>;
  318. };
  319. &wifi {
  320. status = "okay";
  321. vdd-0.8-cx-mx-supply = <&vreg_l5a_0p8>;
  322. vdd-1.8-xo-supply = <&vreg_l7a_1p8>;
  323. vdd-1.3-rfa-supply = <&vreg_l17a_1p3>;
  324. vdd-3.3-ch0-supply = <&vreg_l25a_3p3>;
  325. };