apq8096-db820c.dts 25 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150
  1. // SPDX-License-Identifier: GPL-2.0-only
  2. /*
  3. * Copyright (c) 2014-2016, The Linux Foundation. All rights reserved.
  4. */
  5. /dts-v1/;
  6. #include "msm8996.dtsi"
  7. #include "pm8994.dtsi"
  8. #include "pmi8994.dtsi"
  9. #include <dt-bindings/input/input.h>
  10. #include <dt-bindings/gpio/gpio.h>
  11. #include <dt-bindings/leds/common.h>
  12. #include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
  13. #include <dt-bindings/sound/qcom,q6afe.h>
  14. #include <dt-bindings/sound/qcom,q6asm.h>
  15. #include <dt-bindings/sound/qcom,wcd9335.h>
  16. /*
  17. * GPIO name legend: proper name = the GPIO line is used as GPIO
  18. * NC = not connected (pin out but not routed from the chip to
  19. * anything the board)
  20. * "[PER]" = pin is muxed for [peripheral] (not GPIO)
  21. * LSEC = Low Speed External Connector
  22. * P HSEC = Primary High Speed External Connector
  23. * S HSEC = Secondary High Speed External Connector
  24. * J14 = Camera Connector
  25. * TP = Test Points
  26. *
  27. * Line names are taken from the schematic "DragonBoard 820c",
  28. * drawing no: LM25-P2751-1
  29. *
  30. * For the lines routed to the external connectors the
  31. * lines are named after the 96Boards CE Specification 1.0,
  32. * Appendix "Expansion Connector Signal Description".
  33. *
  34. * When the 96Board naming of a line and the schematic name of
  35. * the same line are in conflict, the 96Board specification
  36. * takes precedence, which means that the external UART on the
  37. * LSEC is named UART0 while the schematic and SoC names this
  38. * UART3. This is only for the informational lines i.e. "[FOO]",
  39. * the GPIO named lines "GPIO-A" thru "GPIO-L" are the only
  40. * ones actually used for GPIO.
  41. */
  42. / {
  43. model = "Qualcomm Technologies, Inc. DB820c";
  44. compatible = "arrow,apq8096-db820c", "qcom,apq8096-sbc", "qcom,apq8096";
  45. aliases {
  46. serial0 = &blsp2_uart2;
  47. serial1 = &blsp2_uart3;
  48. serial2 = &blsp1_uart2;
  49. i2c0 = &blsp1_i2c3;
  50. i2c1 = &blsp2_i2c1;
  51. i2c2 = &blsp2_i2c1;
  52. spi0 = &blsp1_spi1;
  53. spi1 = &blsp2_spi6;
  54. };
  55. chosen {
  56. stdout-path = "serial0:115200n8";
  57. };
  58. clocks {
  59. compatible = "simple-bus";
  60. divclk4: divclk4 {
  61. compatible = "fixed-clock";
  62. #clock-cells = <0>;
  63. clock-frequency = <32768>;
  64. clock-output-names = "divclk4";
  65. pinctrl-names = "default";
  66. pinctrl-0 = <&divclk4_pin_a>;
  67. };
  68. div1_mclk: divclk1 {
  69. compatible = "gpio-gate-clock";
  70. pinctrl-0 = <&audio_mclk>;
  71. pinctrl-names = "default";
  72. clocks = <&rpmcc RPM_SMD_DIV_CLK1>;
  73. #clock-cells = <0>;
  74. enable-gpios = <&pm8994_gpios 15 0>;
  75. };
  76. };
  77. gpio-keys {
  78. compatible = "gpio-keys";
  79. autorepeat;
  80. pinctrl-names = "default";
  81. pinctrl-0 = <&volume_up_gpio>;
  82. button {
  83. label = "Volume Up";
  84. linux,code = <KEY_VOLUMEUP>;
  85. gpios = <&pm8994_gpios 2 GPIO_ACTIVE_LOW>;
  86. };
  87. };
  88. usb2_id: usb2-id {
  89. compatible = "linux,extcon-usb-gpio";
  90. id-gpio = <&pmi8994_gpios 6 GPIO_ACTIVE_HIGH>;
  91. pinctrl-names = "default";
  92. pinctrl-0 = <&usb2_vbus_det_gpio>;
  93. };
  94. usb3_id: usb3-id {
  95. compatible = "linux,extcon-usb-gpio";
  96. id-gpio = <&pm8994_gpios 22 GPIO_ACTIVE_HIGH>;
  97. pinctrl-names = "default";
  98. pinctrl-0 = <&usb3_vbus_det_gpio>;
  99. };
  100. vph_pwr: vph-pwr-regulator {
  101. compatible = "regulator-fixed";
  102. regulator-name = "vph_pwr";
  103. regulator-always-on;
  104. regulator-boot-on;
  105. regulator-min-microvolt = <3700000>;
  106. regulator-max-microvolt = <3700000>;
  107. };
  108. wlan_en: wlan-en-1-8v {
  109. pinctrl-names = "default";
  110. pinctrl-0 = <&wlan_en_gpios>;
  111. compatible = "regulator-fixed";
  112. regulator-name = "wlan-en-regulator";
  113. regulator-min-microvolt = <1800000>;
  114. regulator-max-microvolt = <1800000>;
  115. gpio = <&pm8994_gpios 8 0>;
  116. /* WLAN card specific delay */
  117. startup-delay-us = <70000>;
  118. enable-active-high;
  119. };
  120. };
  121. &blsp1_i2c3 {
  122. /* On Low speed expansion */
  123. label = "LS-I2C0";
  124. status = "okay";
  125. };
  126. &blsp1_spi1 {
  127. /* On Low speed expansion */
  128. label = "LS-SPI0";
  129. status = "okay";
  130. };
  131. &blsp1_uart2 {
  132. label = "BT-UART";
  133. status = "okay";
  134. bluetooth {
  135. compatible = "qcom,qca6174-bt";
  136. /* bt_disable_n gpio */
  137. enable-gpios = <&pm8994_gpios 19 GPIO_ACTIVE_HIGH>;
  138. clocks = <&divclk4>;
  139. };
  140. };
  141. &adsp_pil {
  142. status = "okay";
  143. firmware-name = "qcom/apq8096/adsp.mbn";
  144. };
  145. &blsp2_i2c1 {
  146. /* On High speed expansion */
  147. label = "HS-I2C2";
  148. status = "okay";
  149. };
  150. &blsp2_i2c1 {
  151. /* On Low speed expansion */
  152. label = "LS-I2C1";
  153. status = "okay";
  154. };
  155. &blsp2_spi6 {
  156. /* On High speed expansion */
  157. label = "HS-SPI1";
  158. status = "okay";
  159. };
  160. &blsp2_uart2 {
  161. label = "LS-UART1";
  162. status = "okay";
  163. pinctrl-names = "default", "sleep";
  164. pinctrl-0 = <&blsp2_uart2_2pins_default>;
  165. pinctrl-1 = <&blsp2_uart2_2pins_sleep>;
  166. };
  167. &blsp2_uart3 {
  168. label = "LS-UART0";
  169. status = "disabled";
  170. pinctrl-names = "default", "sleep";
  171. pinctrl-0 = <&blsp2_uart3_4pins_default>;
  172. pinctrl-1 = <&blsp2_uart3_4pins_sleep>;
  173. };
  174. &camss {
  175. vdda-supply = <&vreg_l2a_1p25>;
  176. };
  177. &gpu {
  178. status = "okay";
  179. };
  180. &hdmi {
  181. status = "okay";
  182. pinctrl-names = "default", "sleep";
  183. pinctrl-0 = <&hdmi_hpd_active &hdmi_ddc_active>;
  184. pinctrl-1 = <&hdmi_hpd_suspend &hdmi_ddc_suspend>;
  185. core-vdda-supply = <&vreg_l12a_1p8>;
  186. core-vcc-supply = <&vreg_s4a_1p8>;
  187. };
  188. &hdmi_phy {
  189. status = "okay";
  190. vddio-supply = <&vreg_l12a_1p8>;
  191. vcca-supply = <&vreg_l28a_0p925>;
  192. #phy-cells = <0>;
  193. };
  194. &hsusb_phy1 {
  195. status = "okay";
  196. vdd-supply = <&vreg_l28a_0p925>;
  197. vdda-pll-supply = <&vreg_l12a_1p8>;
  198. vdda-phy-dpdm-supply = <&vreg_l24a_3p075>;
  199. };
  200. &hsusb_phy2 {
  201. status = "okay";
  202. vdd-supply = <&vreg_l28a_0p925>;
  203. vdda-pll-supply = <&vreg_l12a_1p8>;
  204. vdda-phy-dpdm-supply = <&vreg_l24a_3p075>;
  205. };
  206. &mdp {
  207. status = "okay";
  208. };
  209. &mdss {
  210. status = "okay";
  211. };
  212. &mmcc {
  213. vdd-gfx-supply = <&vdd_gfx>;
  214. };
  215. &mss_pil {
  216. status = "okay";
  217. pll-supply = <&vreg_l12a_1p8>;
  218. firmware-name = "qcom/apq8096/mba.mbn", "qcom/apq8096/modem.mbn";
  219. };
  220. &pm8994_resin {
  221. status = "okay";
  222. linux,code = <KEY_VOLUMEDOWN>;
  223. };
  224. &tlmm {
  225. gpio-line-names =
  226. "[SPI0_DOUT]", /* GPIO_0, BLSP1_SPI_MOSI, LSEC pin 14 */
  227. "[SPI0_DIN]", /* GPIO_1, BLSP1_SPI_MISO, LSEC pin 10 */
  228. "[SPI0_CS]", /* GPIO_2, BLSP1_SPI_CS_N, LSEC pin 12 */
  229. "[SPI0_SCLK]", /* GPIO_3, BLSP1_SPI_CLK, LSEC pin 8 */
  230. "[UART1_TxD]", /* GPIO_4, BLSP8_UART_TX, LSEC pin 11 */
  231. "[UART1_RxD]", /* GPIO_5, BLSP8_UART_RX, LSEC pin 13 */
  232. "[I2C1_SDA]", /* GPIO_6, BLSP8_I2C_SDA, LSEC pin 21 */
  233. "[I2C1_SCL]", /* GPIO_7, BLSP8_I2C_SCL, LSEC pin 19 */
  234. "GPIO-H", /* GPIO_8, LCD0_RESET_N, LSEC pin 30 */
  235. "TP93", /* GPIO_9 */
  236. "GPIO-G", /* GPIO_10, MDP_VSYNC_P, LSEC pin 29 */
  237. "[MDP_VSYNC_S]", /* GPIO_11, S HSEC pin 55 */
  238. "NC", /* GPIO_12 */
  239. "[CSI0_MCLK]", /* GPIO_13, CAM_MCLK0, P HSEC pin 15 */
  240. "[CAM_MCLK1]", /* GPIO_14, J14 pin 11 */
  241. "[CSI1_MCLK]", /* GPIO_15, CAM_MCLK2, P HSEC pin 17 */
  242. "TP99", /* GPIO_16 */
  243. "[I2C2_SDA]", /* GPIO_17, CCI_I2C_SDA0, P HSEC pin 34 */
  244. "[I2C2_SCL]", /* GPIO_18, CCI_I2C_SCL0, P HSEC pin 32 */
  245. "[CCI_I2C_SDA1]", /* GPIO_19, S HSEC pin 38 */
  246. "[CCI_I2C_SCL1]", /* GPIO_20, S HSEC pin 36 */
  247. "FLASH_STROBE_EN", /* GPIO_21, S HSEC pin 5 */
  248. "FLASH_STROBE_TRIG", /* GPIO_22, S HSEC pin 1 */
  249. "GPIO-K", /* GPIO_23, CAM2_RST_N, LSEC pin 33 */
  250. "GPIO-D", /* GPIO_24, LSEC pin 26 */
  251. "GPIO-I", /* GPIO_25, CAM0_RST_N, LSEC pin 31 */
  252. "GPIO-J", /* GPIO_26, CAM0_STANDBY_N, LSEC pin 32 */
  253. "BLSP6_I2C_SDA", /* GPIO_27 */
  254. "BLSP6_I2C_SCL", /* GPIO_28 */
  255. "GPIO-B", /* GPIO_29, TS0_RESET_N, LSEC pin 24 */
  256. "GPIO30", /* GPIO_30, S HSEC pin 4 */
  257. "HDMI_CEC", /* GPIO_31 */
  258. "HDMI_DDC_CLOCK", /* GPIO_32 */
  259. "HDMI_DDC_DATA", /* GPIO_33 */
  260. "HDMI_HOT_PLUG_DETECT", /* GPIO_34 */
  261. "PCIE0_RST_N", /* GPIO_35 */
  262. "PCIE0_CLKREQ_N", /* GPIO_36 */
  263. "PCIE0_WAKE", /* GPIO_37 */
  264. "SD_CARD_DET_N", /* GPIO_38 */
  265. "TSIF1_SYNC", /* GPIO_39, S HSEC pin 48 */
  266. "W_DISABLE_N", /* GPIO_40 */
  267. "[BLSP9_UART_TX]", /* GPIO_41 */
  268. "[BLSP9_UART_RX]", /* GPIO_42 */
  269. "[BLSP2_UART_CTS_N]", /* GPIO_43 */
  270. "[BLSP2_UART_RFR_N]", /* GPIO_44 */
  271. "[BLSP3_UART_TX]", /* GPIO_45 */
  272. "[BLSP3_UART_RX]", /* GPIO_46 */
  273. "[I2C0_SDA]", /* GPIO_47, LS_I2C0_SDA, LSEC pin 17 */
  274. "[I2C0_SCL]", /* GPIO_48, LS_I2C0_SCL, LSEC pin 15 */
  275. "[UART0_TxD]", /* GPIO_49, BLSP9_UART_TX, LSEC pin 5 */
  276. "[UART0_RxD]", /* GPIO_50, BLSP9_UART_RX, LSEC pin 7 */
  277. "[UART0_CTS]", /* GPIO_51, BLSP9_UART_CTS_N, LSEC pin 3 */
  278. "[UART0_RTS]", /* GPIO_52, BLSP9_UART_RFR_N, LSEC pin 9 */
  279. "[CODEC_INT1_N]", /* GPIO_53 */
  280. "[CODEC_INT2_N]", /* GPIO_54 */
  281. "[BLSP7_I2C_SDA]", /* GPIO_55 */
  282. "[BLSP7_I2C_SCL]", /* GPIO_56 */
  283. "MI2S_MCLK", /* GPIO_57, S HSEC pin 3 */
  284. "[PCM_CLK]", /* GPIO_58, QUA_MI2S_SCK, LSEC pin 18 */
  285. "[PCM_FS]", /* GPIO_59, QUA_MI2S_WS, LSEC pin 16 */
  286. "[PCM_DO]", /* GPIO_60, QUA_MI2S_DATA0, LSEC pin 20 */
  287. "[PCM_DI]", /* GPIO_61, QUA_MI2S_DATA1, LSEC pin 22 */
  288. "GPIO-E", /* GPIO_62, LSEC pin 27 */
  289. "TP87", /* GPIO_63 */
  290. "[CODEC_RST_N]", /* GPIO_64 */
  291. "[PCM1_CLK]", /* GPIO_65 */
  292. "[PCM1_SYNC]", /* GPIO_66 */
  293. "[PCM1_DIN]", /* GPIO_67 */
  294. "[PCM1_DOUT]", /* GPIO_68 */
  295. "AUDIO_REF_CLK", /* GPIO_69 */
  296. "SLIMBUS_CLK", /* GPIO_70 */
  297. "SLIMBUS_DATA0", /* GPIO_71 */
  298. "SLIMBUS_DATA1", /* GPIO_72 */
  299. "NC", /* GPIO_73 */
  300. "NC", /* GPIO_74 */
  301. "NC", /* GPIO_75 */
  302. "NC", /* GPIO_76 */
  303. "TP94", /* GPIO_77 */
  304. "NC", /* GPIO_78 */
  305. "TP95", /* GPIO_79 */
  306. "GPIO-A", /* GPIO_80, MEMS_RESET_N, LSEC pin 23 */
  307. "TP88", /* GPIO_81 */
  308. "TP89", /* GPIO_82 */
  309. "TP90", /* GPIO_83 */
  310. "TP91", /* GPIO_84 */
  311. "[SD_DAT0]", /* GPIO_85, BLSP12_SPI_MOSI, P HSEC pin 1 */
  312. "[SD_CMD]", /* GPIO_86, BLSP12_SPI_MISO, P HSEC pin 11 */
  313. "[SD_DAT3]", /* GPIO_87, BLSP12_SPI_CS_N, P HSEC pin 7 */
  314. "[SD_SCLK]", /* GPIO_88, BLSP12_SPI_CLK, P HSEC pin 9 */
  315. "TSIF1_CLK", /* GPIO_89, S HSEC pin 42 */
  316. "TSIF1_EN", /* GPIO_90, S HSEC pin 46 */
  317. "TSIF1_DATA", /* GPIO_91, S HSEC pin 44 */
  318. "NC", /* GPIO_92 */
  319. "TSIF2_CLK", /* GPIO_93, S HSEC pin 52 */
  320. "TSIF2_EN", /* GPIO_94, S HSEC pin 56 */
  321. "TSIF2_DATA", /* GPIO_95, S HSEC pin 54 */
  322. "TSIF2_SYNC", /* GPIO_96, S HSEC pin 58 */
  323. "NC", /* GPIO_97 */
  324. "CAM1_STANDBY_N", /* GPIO_98 */
  325. "NC", /* GPIO_99 */
  326. "NC", /* GPIO_100 */
  327. "[LCD1_RESET_N]", /* GPIO_101, S HSEC pin 51 */
  328. "BOOT_CONFIG1", /* GPIO_102 */
  329. "USB_HUB_RESET", /* GPIO_103 */
  330. "CAM1_RST_N", /* GPIO_104 */
  331. "NC", /* GPIO_105 */
  332. "NC", /* GPIO_106 */
  333. "NC", /* GPIO_107 */
  334. "NC", /* GPIO_108 */
  335. "NC", /* GPIO_109 */
  336. "NC", /* GPIO_110 */
  337. "NC", /* GPIO_111 */
  338. "NC", /* GPIO_112 */
  339. "PMI8994_BUA", /* GPIO_113 */
  340. "PCIE2_RST_N", /* GPIO_114 */
  341. "PCIE2_CLKREQ_N", /* GPIO_115 */
  342. "PCIE2_WAKE", /* GPIO_116 */
  343. "SSC_IRQ_0", /* GPIO_117 */
  344. "SSC_IRQ_1", /* GPIO_118 */
  345. "SSC_IRQ_2", /* GPIO_119 */
  346. "NC", /* GPIO_120 */
  347. "GPIO121", /* GPIO_121, S HSEC pin 2 */
  348. "NC", /* GPIO_122 */
  349. "SSC_IRQ_6", /* GPIO_123 */
  350. "SSC_IRQ_7", /* GPIO_124 */
  351. "GPIO-C", /* GPIO_125, TS_INT0, LSEC pin 25 */
  352. "BOOT_CONFIG5", /* GPIO_126 */
  353. "NC", /* GPIO_127 */
  354. "NC", /* GPIO_128 */
  355. "BOOT_CONFIG7", /* GPIO_129 */
  356. "PCIE1_RST_N", /* GPIO_130 */
  357. "PCIE1_CLKREQ_N", /* GPIO_131 */
  358. "PCIE1_WAKE", /* GPIO_132 */
  359. "GPIO-L", /* GPIO_133, CAM2_STANDBY_N, LSEC pin 34 */
  360. "NC", /* GPIO_134 */
  361. "NC", /* GPIO_135 */
  362. "BOOT_CONFIG8", /* GPIO_136 */
  363. "NC", /* GPIO_137 */
  364. "NC", /* GPIO_138 */
  365. "GPS_SSBI2", /* GPIO_139 */
  366. "GPS_SSBI1", /* GPIO_140 */
  367. "NC", /* GPIO_141 */
  368. "NC", /* GPIO_142 */
  369. "NC", /* GPIO_143 */
  370. "BOOT_CONFIG6", /* GPIO_144 */
  371. "NC", /* GPIO_145 */
  372. "NC", /* GPIO_146 */
  373. "NC", /* GPIO_147 */
  374. "NC", /* GPIO_148 */
  375. "NC"; /* GPIO_149 */
  376. sdc2_cd_on: sdc2_cd_on {
  377. mux {
  378. pins = "gpio38";
  379. function = "gpio";
  380. };
  381. config {
  382. pins = "gpio38";
  383. bias-pull-up; /* pull up */
  384. drive-strength = <16>; /* 16 MA */
  385. };
  386. };
  387. sdc2_cd_off: sdc2_cd_off {
  388. mux {
  389. pins = "gpio38";
  390. function = "gpio";
  391. };
  392. config {
  393. pins = "gpio38";
  394. bias-pull-up; /* pull up */
  395. drive-strength = <2>; /* 2 MA */
  396. };
  397. };
  398. hdmi_hpd_active: hdmi_hpd_active {
  399. mux {
  400. pins = "gpio34";
  401. function = "hdmi_hot";
  402. };
  403. config {
  404. pins = "gpio34";
  405. bias-pull-down;
  406. drive-strength = <16>;
  407. };
  408. };
  409. hdmi_hpd_suspend: hdmi_hpd_suspend {
  410. mux {
  411. pins = "gpio34";
  412. function = "hdmi_hot";
  413. };
  414. config {
  415. pins = "gpio34";
  416. bias-pull-down;
  417. drive-strength = <2>;
  418. };
  419. };
  420. hdmi_ddc_active: hdmi_ddc_active {
  421. mux {
  422. pins = "gpio32", "gpio33";
  423. function = "hdmi_ddc";
  424. };
  425. config {
  426. pins = "gpio32", "gpio33";
  427. drive-strength = <2>;
  428. bias-pull-up;
  429. };
  430. };
  431. hdmi_ddc_suspend: hdmi_ddc_suspend {
  432. mux {
  433. pins = "gpio32", "gpio33";
  434. function = "hdmi_ddc";
  435. };
  436. config {
  437. pins = "gpio32", "gpio33";
  438. drive-strength = <2>;
  439. bias-pull-down;
  440. };
  441. };
  442. };
  443. &pcie0 {
  444. status = "okay";
  445. perst-gpios = <&tlmm 35 GPIO_ACTIVE_LOW>;
  446. vddpe-3v3-supply = <&wlan_en>;
  447. vdda-supply = <&vreg_l28a_0p925>;
  448. };
  449. &pcie1 {
  450. status = "okay";
  451. perst-gpios = <&tlmm 130 GPIO_ACTIVE_LOW>;
  452. vdda-supply = <&vreg_l28a_0p925>;
  453. };
  454. &pcie2 {
  455. status = "okay";
  456. perst-gpios = <&tlmm 114 GPIO_ACTIVE_LOW>;
  457. vdda-supply = <&vreg_l28a_0p925>;
  458. };
  459. &pcie_phy {
  460. status = "okay";
  461. vdda-phy-supply = <&vreg_l28a_0p925>;
  462. vdda-pll-supply = <&vreg_l12a_1p8>;
  463. };
  464. &pm8994_gpios {
  465. gpio-line-names =
  466. "NC",
  467. "KEY_VOLP_N",
  468. "NC",
  469. "BL1_PWM",
  470. "GPIO-F", /* BL0_PWM, LSEC pin 28 */
  471. "BL1_EN",
  472. "NC",
  473. "WLAN_EN",
  474. "NC",
  475. "NC",
  476. "NC",
  477. "NC",
  478. "NC",
  479. "NC",
  480. "DIVCLK1",
  481. "DIVCLK2",
  482. "DIVCLK3",
  483. "DIVCLK4",
  484. "BT_EN",
  485. "PMIC_SLB",
  486. "PMIC_BUA",
  487. "USB_VBUS_DET";
  488. pinctrl-names = "default";
  489. pinctrl-0 = <&ls_exp_gpio_f &bt_en_gpios>;
  490. ls_exp_gpio_f: pm8994-gpio5-state {
  491. pinconf {
  492. pins = "gpio5";
  493. function = PMIC_GPIO_FUNC_NORMAL;
  494. output-low;
  495. power-source = <2>; // PM8994_GPIO_S4, 1.8V
  496. };
  497. };
  498. bt_en_gpios: bt-en-pios-state {
  499. pinconf {
  500. pins = "gpio19";
  501. function = PMIC_GPIO_FUNC_NORMAL;
  502. output-low;
  503. power-source = <PM8994_GPIO_S4>; // 1.8V
  504. qcom,drive-strength = <PMIC_GPIO_STRENGTH_LOW>;
  505. bias-pull-down;
  506. };
  507. };
  508. wlan_en_gpios: wlan-en-gpios-state {
  509. pinconf {
  510. pins = "gpio8";
  511. function = PMIC_GPIO_FUNC_NORMAL;
  512. output-low;
  513. power-source = <PM8994_GPIO_S4>; // 1.8V
  514. qcom,drive-strength = <PMIC_GPIO_STRENGTH_LOW>;
  515. bias-pull-down;
  516. };
  517. };
  518. audio_mclk: clk-div1-state {
  519. pinconf {
  520. pins = "gpio15";
  521. function = "func1";
  522. power-source = <PM8994_GPIO_S4>; // 1.8V
  523. };
  524. };
  525. volume_up_gpio: pm8996-gpio2-state {
  526. pinconf {
  527. pins = "gpio2";
  528. function = "normal";
  529. input-enable;
  530. drive-push-pull;
  531. bias-pull-up;
  532. qcom,drive-strength = <PMIC_GPIO_STRENGTH_NO>;
  533. power-source = <PM8994_GPIO_S4>; // 1.8V
  534. };
  535. };
  536. divclk4_pin_a: divclk4-state {
  537. pinconf {
  538. pins = "gpio18";
  539. function = PMIC_GPIO_FUNC_FUNC2;
  540. bias-disable;
  541. power-source = <PM8994_GPIO_S4>;
  542. };
  543. };
  544. usb3_vbus_det_gpio: pm8996-gpio22-state {
  545. pinconf {
  546. pins = "gpio22";
  547. function = PMIC_GPIO_FUNC_NORMAL;
  548. input-enable;
  549. bias-pull-down;
  550. qcom,drive-strength = <PMIC_GPIO_STRENGTH_NO>;
  551. power-source = <PM8994_GPIO_S4>; // 1.8V
  552. };
  553. };
  554. };
  555. &pm8994_mpps {
  556. gpio-line-names =
  557. "VDDPX_BIAS",
  558. "WIFI_LED",
  559. "NC",
  560. "BT_LED",
  561. "PM_MPP05",
  562. "PM_MPP06",
  563. "PM_MPP07",
  564. "NC";
  565. };
  566. &pm8994_spmi_regulators {
  567. qcom,saw-reg = <&saw3>;
  568. vdd_s11-supply = <&vph_pwr>;
  569. s9 {
  570. qcom,saw-slave;
  571. };
  572. s10 {
  573. qcom,saw-slave;
  574. };
  575. s11 {
  576. qcom,saw-leader;
  577. regulator-name = "VDD_APCC";
  578. regulator-always-on;
  579. regulator-min-microvolt = <980000>;
  580. regulator-max-microvolt = <980000>;
  581. };
  582. };
  583. &pmi8994_gpios {
  584. gpio-line-names =
  585. "NC",
  586. "SPKR_AMP_EN1",
  587. "SPKR_AMP_EN2",
  588. "TP61",
  589. "NC",
  590. "USB2_VBUS_DET",
  591. "NC",
  592. "NC",
  593. "NC",
  594. "NC";
  595. usb2_vbus_det_gpio: pmi8996-gpio6-state {
  596. pinconf {
  597. pins = "gpio6";
  598. function = PMIC_GPIO_FUNC_NORMAL;
  599. input-enable;
  600. bias-pull-down;
  601. qcom,drive-strength = <PMIC_GPIO_STRENGTH_NO>;
  602. power-source = <PM8994_GPIO_S4>; // 1.8V
  603. };
  604. };
  605. };
  606. &pmi8994_lpg {
  607. qcom,power-source = <1>;
  608. pinctrl-names = "default";
  609. pinctrl-0 = <&pmi8994_mpp2_userled4>;
  610. qcom,dtest = <0 0>,
  611. <0 0>,
  612. <0 0>,
  613. <4 1>;
  614. status = "okay";
  615. led@1 {
  616. reg = <1>;
  617. color = <LED_COLOR_ID_GREEN>;
  618. function = LED_FUNCTION_HEARTBEAT;
  619. function-enumerator = <1>;
  620. linux,default-trigger = "heartbeat";
  621. default-state = "on";
  622. };
  623. led@2 {
  624. reg = <2>;
  625. color = <LED_COLOR_ID_GREEN>;
  626. function = LED_FUNCTION_HEARTBEAT;
  627. function-enumerator = <0>;
  628. };
  629. led@3 {
  630. reg = <3>;
  631. color = <LED_COLOR_ID_GREEN>;
  632. function = LED_FUNCTION_HEARTBEAT;
  633. function-enumerator = <2>;
  634. };
  635. led@4 {
  636. reg = <4>;
  637. color = <LED_COLOR_ID_GREEN>;
  638. function = LED_FUNCTION_HEARTBEAT;
  639. function-enumerator = <3>;
  640. };
  641. };
  642. &pmi8994_mpps {
  643. pmi8994_mpp2_userled4: mpp2-userled4-state {
  644. pins = "mpp2";
  645. function = "sink";
  646. output-low;
  647. qcom,dtest = <4>;
  648. };
  649. };
  650. &pmi8994_spmi_regulators {
  651. vdd_s2-supply = <&vph_pwr>;
  652. vdd_gfx: s2 {
  653. regulator-name = "VDD_GFX";
  654. regulator-min-microvolt = <980000>;
  655. regulator-max-microvolt = <980000>;
  656. };
  657. };
  658. &rpm_requests {
  659. pm8994-regulators {
  660. compatible = "qcom,rpm-pm8994-regulators";
  661. vdd_s1-supply = <&vph_pwr>;
  662. vdd_s2-supply = <&vph_pwr>;
  663. vdd_s3-supply = <&vph_pwr>;
  664. vdd_s4-supply = <&vph_pwr>;
  665. vdd_s5-supply = <&vph_pwr>;
  666. vdd_s6-supply = <&vph_pwr>;
  667. vdd_s7-supply = <&vph_pwr>;
  668. vdd_s8-supply = <&vph_pwr>;
  669. vdd_s9-supply = <&vph_pwr>;
  670. vdd_s10-supply = <&vph_pwr>;
  671. vdd_s11-supply = <&vph_pwr>;
  672. vdd_s12-supply = <&vph_pwr>;
  673. vdd_l1-supply = <&vreg_s1b_1p025>;
  674. vdd_l2_l26_l28-supply = <&vreg_s3a_1p3>;
  675. vdd_l3_l11-supply = <&vreg_s3a_1p3>;
  676. vdd_l4_l27_l31-supply = <&vreg_s3a_1p3>;
  677. vdd_l5_l7-supply = <&vreg_s5a_2p15>;
  678. vdd_l6_l12_l32-supply = <&vreg_s5a_2p15>;
  679. vdd_l8_l16_l30-supply = <&vph_pwr>;
  680. vdd_l9_l10_l18_l22-supply = <&vph_pwr_bbyp>;
  681. vdd_l13_l19_l23_l24-supply = <&vph_pwr_bbyp>;
  682. vdd_l14_l15-supply = <&vreg_s5a_2p15>;
  683. vdd_l17_l29-supply = <&vph_pwr_bbyp>;
  684. vdd_l20_l21-supply = <&vph_pwr_bbyp>;
  685. vdd_l25-supply = <&vreg_s3a_1p3>;
  686. vdd_lvs1_2-supply = <&vreg_s4a_1p8>;
  687. vreg_s3a_1p3: s3 {
  688. regulator-name = "vreg_s3a_1p3";
  689. regulator-min-microvolt = <1300000>;
  690. regulator-max-microvolt = <1300000>;
  691. };
  692. /**
  693. * 1.8v required on LS expansion
  694. * for mezzanine boards
  695. */
  696. vreg_s4a_1p8: s4 {
  697. regulator-name = "vreg_s4a_1p8";
  698. regulator-min-microvolt = <1800000>;
  699. regulator-max-microvolt = <1800000>;
  700. regulator-always-on;
  701. };
  702. vreg_s5a_2p15: s5 {
  703. regulator-name = "vreg_s5a_2p15";
  704. regulator-min-microvolt = <2150000>;
  705. regulator-max-microvolt = <2150000>;
  706. };
  707. vreg_s7a_1p0: s7 {
  708. regulator-name = "vreg_s7a_1p0";
  709. regulator-min-microvolt = <800000>;
  710. regulator-max-microvolt = <800000>;
  711. };
  712. vreg_l1a_1p0: l1 {
  713. regulator-name = "vreg_l1a_1p0";
  714. regulator-min-microvolt = <1000000>;
  715. regulator-max-microvolt = <1000000>;
  716. };
  717. vreg_l2a_1p25: l2 {
  718. regulator-name = "vreg_l2a_1p25";
  719. regulator-min-microvolt = <1250000>;
  720. regulator-max-microvolt = <1250000>;
  721. };
  722. vreg_l3a_0p875: l3 {
  723. regulator-name = "vreg_l3a_0p875";
  724. regulator-min-microvolt = <850000>;
  725. regulator-max-microvolt = <850000>;
  726. };
  727. vreg_l4a_1p225: l4 {
  728. regulator-name = "vreg_l4a_1p225";
  729. regulator-min-microvolt = <1225000>;
  730. regulator-max-microvolt = <1225000>;
  731. };
  732. vreg_l6a_1p2: l6 {
  733. regulator-name = "vreg_l6a_1p2";
  734. regulator-min-microvolt = <1200000>;
  735. regulator-max-microvolt = <1200000>;
  736. };
  737. vreg_l8a_1p8: l8 {
  738. regulator-name = "vreg_l8a_1p8";
  739. regulator-min-microvolt = <1800000>;
  740. regulator-max-microvolt = <1800000>;
  741. };
  742. vreg_l9a_1p8: l9 {
  743. regulator-name = "vreg_l9a_1p8";
  744. regulator-min-microvolt = <1800000>;
  745. regulator-max-microvolt = <1800000>;
  746. };
  747. vreg_l10a_1p8: l10 {
  748. regulator-name = "vreg_l10a_1p8";
  749. regulator-min-microvolt = <1800000>;
  750. regulator-max-microvolt = <1800000>;
  751. };
  752. vreg_l11a_1p15: l11 {
  753. regulator-name = "vreg_l11a_1p15";
  754. regulator-min-microvolt = <1150000>;
  755. regulator-max-microvolt = <1150000>;
  756. };
  757. vreg_l12a_1p8: l12 {
  758. regulator-name = "vreg_l12a_1p8";
  759. regulator-min-microvolt = <1800000>;
  760. regulator-max-microvolt = <1800000>;
  761. };
  762. vreg_l13a_2p95: l13 {
  763. regulator-name = "vreg_l13a_2p95";
  764. regulator-min-microvolt = <1800000>;
  765. regulator-max-microvolt = <2950000>;
  766. };
  767. vreg_l14a_1p8: l14 {
  768. regulator-name = "vreg_l14a_1p8";
  769. regulator-min-microvolt = <1800000>;
  770. regulator-max-microvolt = <1800000>;
  771. };
  772. vreg_l15a_1p8: l15 {
  773. regulator-name = "vreg_l15a_1p8";
  774. regulator-min-microvolt = <1800000>;
  775. regulator-max-microvolt = <1800000>;
  776. };
  777. vreg_l16a_2p7: l16 {
  778. regulator-name = "vreg_l16a_2p7";
  779. regulator-min-microvolt = <2700000>;
  780. regulator-max-microvolt = <2700000>;
  781. };
  782. vreg_l17a_2p8: l17 {
  783. regulator-name = "vreg_l17a_2p8";
  784. regulator-min-microvolt = <2500000>;
  785. regulator-max-microvolt = <2500000>;
  786. };
  787. vreg_l18a_2p85: l18 {
  788. regulator-name = "vreg_l18a_2p85";
  789. regulator-min-microvolt = <2700000>;
  790. regulator-max-microvolt = <2900000>;
  791. };
  792. vreg_l19a_2p8: l19 {
  793. regulator-name = "vreg_l19a_2p8";
  794. regulator-min-microvolt = <3000000>;
  795. regulator-max-microvolt = <3000000>;
  796. };
  797. vreg_l20a_2p95: l20 {
  798. regulator-name = "vreg_l20a_2p95";
  799. regulator-min-microvolt = <2950000>;
  800. regulator-max-microvolt = <2950000>;
  801. regulator-allow-set-load;
  802. };
  803. vreg_l21a_2p95: l21 {
  804. regulator-name = "vreg_l21a_2p95";
  805. regulator-min-microvolt = <2950000>;
  806. regulator-max-microvolt = <2950000>;
  807. regulator-allow-set-load;
  808. regulator-system-load = <200000>;
  809. };
  810. vreg_l22a_3p0: l22 {
  811. regulator-name = "vreg_l22a_3p0";
  812. regulator-min-microvolt = <3300000>;
  813. regulator-max-microvolt = <3300000>;
  814. };
  815. vreg_l23a_2p8: l23 {
  816. regulator-name = "vreg_l23a_2p8";
  817. regulator-min-microvolt = <2800000>;
  818. regulator-max-microvolt = <2800000>;
  819. };
  820. vreg_l24a_3p075: l24 {
  821. regulator-name = "vreg_l24a_3p075";
  822. regulator-min-microvolt = <3075000>;
  823. regulator-max-microvolt = <3075000>;
  824. };
  825. vreg_l25a_1p2: l25 {
  826. regulator-name = "vreg_l25a_1p2";
  827. regulator-min-microvolt = <1200000>;
  828. regulator-max-microvolt = <1200000>;
  829. regulator-allow-set-load;
  830. };
  831. vreg_l26a_0p8: l27 {
  832. regulator-name = "vreg_l26a_0p8";
  833. regulator-min-microvolt = <1000000>;
  834. regulator-max-microvolt = <1000000>;
  835. };
  836. vreg_l28a_0p925: l28 {
  837. regulator-name = "vreg_l28a_0p925";
  838. regulator-min-microvolt = <925000>;
  839. regulator-max-microvolt = <925000>;
  840. regulator-allow-set-load;
  841. };
  842. vreg_l29a_2p8: l29 {
  843. regulator-name = "vreg_l29a_2p8";
  844. regulator-min-microvolt = <2800000>;
  845. regulator-max-microvolt = <2800000>;
  846. };
  847. vreg_l30a_1p8: l30 {
  848. regulator-name = "vreg_l30a_1p8";
  849. regulator-min-microvolt = <1800000>;
  850. regulator-max-microvolt = <1800000>;
  851. };
  852. vreg_l32a_1p8: l32 {
  853. regulator-name = "vreg_l32a_1p8";
  854. regulator-min-microvolt = <1800000>;
  855. regulator-max-microvolt = <1800000>;
  856. };
  857. vreg_lvs1a_1p8: lvs1 {
  858. regulator-name = "vreg_lvs1a_1p8";
  859. };
  860. vreg_lvs2a_1p8: lvs2 {
  861. regulator-name = "vreg_lvs2a_1p8";
  862. };
  863. };
  864. pmi8994-regulators {
  865. compatible = "qcom,rpm-pmi8994-regulators";
  866. vdd_s1-supply = <&vph_pwr>;
  867. vdd_s2-supply = <&vph_pwr>;
  868. vdd_s3-supply = <&vph_pwr>;
  869. vdd_bst_byp-supply = <&vph_pwr>;
  870. vph_pwr_bbyp: boost-bypass {
  871. regulator-name = "vph_pwr_bbyp";
  872. regulator-min-microvolt = <3300000>;
  873. regulator-max-microvolt = <3300000>;
  874. };
  875. vreg_s1b_1p025: s1 {
  876. regulator-name = "vreg_s1b_1p025";
  877. regulator-min-microvolt = <1025000>;
  878. regulator-max-microvolt = <1025000>;
  879. };
  880. };
  881. };
  882. &sdhc2 {
  883. /* External SD card */
  884. pinctrl-names = "default", "sleep";
  885. pinctrl-0 = <&sdc2_state_on &sdc2_cd_on>;
  886. pinctrl-1 = <&sdc2_state_off &sdc2_cd_off>;
  887. cd-gpios = <&tlmm 38 GPIO_ACTIVE_LOW>;
  888. vmmc-supply = <&vreg_l21a_2p95>;
  889. vqmmc-supply = <&vreg_l13a_2p95>;
  890. status = "okay";
  891. };
  892. &q6asmdai {
  893. dai@0 {
  894. reg = <0>;
  895. };
  896. dai@1 {
  897. reg = <1>;
  898. };
  899. dai@2 {
  900. reg = <2>;
  901. };
  902. };
  903. &sound {
  904. compatible = "qcom,apq8096-sndcard";
  905. model = "DB820c";
  906. audio-routing = "RX_BIAS", "MCLK",
  907. "MM_DL1", "MultiMedia1 Playback",
  908. "MM_DL2", "MultiMedia2 Playback",
  909. "MultiMedia3 Capture", "MM_UL3";
  910. mm1-dai-link {
  911. link-name = "MultiMedia1";
  912. cpu {
  913. sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA1>;
  914. };
  915. };
  916. mm2-dai-link {
  917. link-name = "MultiMedia2";
  918. cpu {
  919. sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA2>;
  920. };
  921. };
  922. mm3-dai-link {
  923. link-name = "MultiMedia3";
  924. cpu {
  925. sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA3>;
  926. };
  927. };
  928. hdmi-dai-link {
  929. link-name = "HDMI";
  930. cpu {
  931. sound-dai = <&q6afedai HDMI_RX>;
  932. };
  933. platform {
  934. sound-dai = <&q6routing>;
  935. };
  936. codec {
  937. sound-dai = <&hdmi 0>;
  938. };
  939. };
  940. slim-dai-link {
  941. link-name = "SLIM Playback";
  942. cpu {
  943. sound-dai = <&q6afedai SLIMBUS_6_RX>;
  944. };
  945. platform {
  946. sound-dai = <&q6routing>;
  947. };
  948. codec {
  949. sound-dai = <&wcd9335 AIF4_PB>;
  950. };
  951. };
  952. slimcap-dai-link {
  953. link-name = "SLIM Capture";
  954. cpu {
  955. sound-dai = <&q6afedai SLIMBUS_0_TX>;
  956. };
  957. platform {
  958. sound-dai = <&q6routing>;
  959. };
  960. codec {
  961. sound-dai = <&wcd9335 AIF1_CAP>;
  962. };
  963. };
  964. };
  965. &ufsphy {
  966. status = "okay";
  967. vdda-phy-supply = <&vreg_l28a_0p925>;
  968. vdda-pll-supply = <&vreg_l12a_1p8>;
  969. vddp-ref-clk-supply = <&vreg_l25a_1p2>;
  970. };
  971. &ufshc {
  972. status = "okay";
  973. vcc-supply = <&vreg_l20a_2p95>;
  974. vccq-supply = <&vreg_l25a_1p2>;
  975. vccq2-supply = <&vreg_s4a_1p8>;
  976. vcc-max-microamp = <600000>;
  977. vccq-max-microamp = <450000>;
  978. vccq2-max-microamp = <450000>;
  979. };
  980. &usb2 {
  981. status = "okay";
  982. extcon = <&usb2_id>;
  983. };
  984. &usb2_dwc3 {
  985. extcon = <&usb2_id>;
  986. dr_mode = "otg";
  987. maximum-speed = "high-speed";
  988. };
  989. &usb3 {
  990. status = "okay";
  991. extcon = <&usb3_id>;
  992. };
  993. &usb3_dwc3 {
  994. extcon = <&usb3_id>;
  995. dr_mode = "otg";
  996. };
  997. &usb3phy {
  998. status = "okay";
  999. vdda-phy-supply = <&vreg_l28a_0p925>;
  1000. vdda-pll-supply = <&vreg_l12a_1p8>;
  1001. };
  1002. &venus {
  1003. status = "okay";
  1004. };
  1005. &wcd9335 {
  1006. clock-names = "mclk", "slimbus";
  1007. clocks = <&div1_mclk>,
  1008. <&rpmcc RPM_SMD_BB_CLK1>;
  1009. vdd-buck-supply = <&vreg_s4a_1p8>;
  1010. vdd-buck-sido-supply = <&vreg_s4a_1p8>;
  1011. vdd-tx-supply = <&vreg_s4a_1p8>;
  1012. vdd-rx-supply = <&vreg_s4a_1p8>;
  1013. vdd-io-supply = <&vreg_s4a_1p8>;
  1014. };