apq8016-sbc.dts 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862
  1. // SPDX-License-Identifier: GPL-2.0-only
  2. /*
  3. * Copyright (c) 2015, The Linux Foundation. All rights reserved.
  4. */
  5. /dts-v1/;
  6. #include "msm8916-pm8916.dtsi"
  7. #include <dt-bindings/gpio/gpio.h>
  8. #include <dt-bindings/input/input.h>
  9. #include <dt-bindings/leds/common.h>
  10. #include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
  11. #include <dt-bindings/pinctrl/qcom,pmic-mpp.h>
  12. #include <dt-bindings/sound/apq8016-lpass.h>
  13. / {
  14. model = "Qualcomm Technologies, Inc. APQ 8016 SBC";
  15. compatible = "qcom,apq8016-sbc", "qcom,apq8016";
  16. aliases {
  17. serial0 = &blsp1_uart2;
  18. serial1 = &blsp1_uart1;
  19. usid0 = &pm8916_0;
  20. i2c0 = &blsp_i2c2;
  21. i2c1 = &blsp_i2c6;
  22. i2c3 = &blsp_i2c4;
  23. spi0 = &blsp_spi5;
  24. spi1 = &blsp_spi3;
  25. };
  26. chosen {
  27. stdout-path = "serial0";
  28. };
  29. camera_vdddo_1v8: camera-vdddo-1v8 {
  30. compatible = "regulator-fixed";
  31. regulator-name = "camera_vdddo";
  32. regulator-min-microvolt = <1800000>;
  33. regulator-max-microvolt = <1800000>;
  34. regulator-always-on;
  35. };
  36. camera_vdda_2v8: camera-vdda-2v8 {
  37. compatible = "regulator-fixed";
  38. regulator-name = "camera_vdda";
  39. regulator-min-microvolt = <2800000>;
  40. regulator-max-microvolt = <2800000>;
  41. regulator-always-on;
  42. };
  43. camera_vddd_1v5: camera-vddd-1v5 {
  44. compatible = "regulator-fixed";
  45. regulator-name = "camera_vddd";
  46. regulator-min-microvolt = <1500000>;
  47. regulator-max-microvolt = <1500000>;
  48. regulator-always-on;
  49. };
  50. reserved-memory {
  51. ramoops@bff00000 {
  52. compatible = "ramoops";
  53. reg = <0x0 0xbff00000 0x0 0x100000>;
  54. record-size = <0x20000>;
  55. console-size = <0x20000>;
  56. ftrace-size = <0x20000>;
  57. };
  58. };
  59. usb2513 {
  60. compatible = "smsc,usb3503";
  61. reset-gpios = <&pm8916_gpios 3 GPIO_ACTIVE_LOW>;
  62. initial-mode = <1>;
  63. };
  64. usb_id: usb-id {
  65. compatible = "linux,extcon-usb-gpio";
  66. id-gpio = <&msmgpio 121 GPIO_ACTIVE_HIGH>;
  67. pinctrl-names = "default";
  68. pinctrl-0 = <&usb_id_default>;
  69. };
  70. hdmi-out {
  71. compatible = "hdmi-connector";
  72. type = "a";
  73. port {
  74. hdmi_con: endpoint {
  75. remote-endpoint = <&adv7533_out>;
  76. };
  77. };
  78. };
  79. gpio-keys {
  80. compatible = "gpio-keys";
  81. autorepeat;
  82. pinctrl-names = "default";
  83. pinctrl-0 = <&msm_key_volp_n_default>;
  84. button {
  85. label = "Volume Up";
  86. linux,code = <KEY_VOLUMEUP>;
  87. gpios = <&msmgpio 107 GPIO_ACTIVE_LOW>;
  88. };
  89. };
  90. leds {
  91. pinctrl-names = "default";
  92. pinctrl-0 = <&msmgpio_leds>,
  93. <&pm8916_gpios_leds>,
  94. <&pm8916_mpps_leds>;
  95. compatible = "gpio-leds";
  96. led@1 {
  97. label = "apq8016-sbc:green:user1";
  98. function = LED_FUNCTION_HEARTBEAT;
  99. color = <LED_COLOR_ID_GREEN>;
  100. gpios = <&msmgpio 21 GPIO_ACTIVE_HIGH>;
  101. linux,default-trigger = "heartbeat";
  102. default-state = "off";
  103. };
  104. led@2 {
  105. label = "apq8016-sbc:green:user2";
  106. function = LED_FUNCTION_DISK_ACTIVITY;
  107. color = <LED_COLOR_ID_GREEN>;
  108. gpios = <&msmgpio 120 GPIO_ACTIVE_HIGH>;
  109. linux,default-trigger = "mmc0";
  110. default-state = "off";
  111. };
  112. led@3 {
  113. label = "apq8016-sbc:green:user3";
  114. function = LED_FUNCTION_DISK_ACTIVITY;
  115. color = <LED_COLOR_ID_GREEN>;
  116. gpios = <&pm8916_gpios 1 GPIO_ACTIVE_HIGH>;
  117. linux,default-trigger = "mmc1";
  118. default-state = "off";
  119. };
  120. led@4 {
  121. label = "apq8016-sbc:green:user4";
  122. color = <LED_COLOR_ID_GREEN>;
  123. gpios = <&pm8916_gpios 2 GPIO_ACTIVE_HIGH>;
  124. linux,default-trigger = "none";
  125. panic-indicator;
  126. default-state = "off";
  127. };
  128. led@5 {
  129. label = "apq8016-sbc:yellow:wlan";
  130. function = LED_FUNCTION_WLAN;
  131. color = <LED_COLOR_ID_YELLOW>;
  132. gpios = <&pm8916_mpps 2 GPIO_ACTIVE_HIGH>;
  133. linux,default-trigger = "phy0tx";
  134. default-state = "off";
  135. };
  136. led@6 {
  137. label = "apq8016-sbc:blue:bt";
  138. function = LED_FUNCTION_BLUETOOTH;
  139. color = <LED_COLOR_ID_BLUE>;
  140. gpios = <&pm8916_mpps 3 GPIO_ACTIVE_HIGH>;
  141. linux,default-trigger = "bluetooth-power";
  142. default-state = "off";
  143. };
  144. };
  145. };
  146. &blsp_dma {
  147. status = "okay";
  148. };
  149. &blsp_i2c2 {
  150. /* On Low speed expansion */
  151. status = "okay";
  152. label = "LS-I2C0";
  153. };
  154. &blsp_i2c4 {
  155. /* On High speed expansion */
  156. status = "okay";
  157. label = "HS-I2C2";
  158. adv_bridge: bridge@39 {
  159. status = "okay";
  160. compatible = "adi,adv7533";
  161. reg = <0x39>;
  162. interrupt-parent = <&msmgpio>;
  163. interrupts = <31 IRQ_TYPE_EDGE_FALLING>;
  164. adi,dsi-lanes = <4>;
  165. clocks = <&rpmcc RPM_SMD_BB_CLK2>;
  166. clock-names = "cec";
  167. pd-gpios = <&msmgpio 32 GPIO_ACTIVE_HIGH>;
  168. avdd-supply = <&pm8916_l6>;
  169. a2vdd-supply = <&pm8916_l6>;
  170. dvdd-supply = <&pm8916_l6>;
  171. pvdd-supply = <&pm8916_l6>;
  172. v1p2-supply = <&pm8916_l6>;
  173. v3p3-supply = <&pm8916_l17>;
  174. pinctrl-names = "default","sleep";
  175. pinctrl-0 = <&adv7533_int_active &adv7533_switch_active>;
  176. pinctrl-1 = <&adv7533_int_suspend &adv7533_switch_suspend>;
  177. #sound-dai-cells = <1>;
  178. ports {
  179. #address-cells = <1>;
  180. #size-cells = <0>;
  181. port@0 {
  182. reg = <0>;
  183. adv7533_in: endpoint {
  184. remote-endpoint = <&dsi0_out>;
  185. };
  186. };
  187. port@1 {
  188. reg = <1>;
  189. adv7533_out: endpoint {
  190. remote-endpoint = <&hdmi_con>;
  191. };
  192. };
  193. };
  194. };
  195. };
  196. &blsp_i2c6 {
  197. /* On Low speed expansion */
  198. status = "okay";
  199. label = "LS-I2C1";
  200. };
  201. &blsp_spi3 {
  202. /* On High speed expansion */
  203. status = "okay";
  204. label = "HS-SPI1";
  205. };
  206. &blsp_spi5 {
  207. /* On Low speed expansion */
  208. status = "okay";
  209. label = "LS-SPI0";
  210. };
  211. &blsp1_uart1 {
  212. status = "okay";
  213. label = "LS-UART0";
  214. };
  215. &blsp1_uart2 {
  216. status = "okay";
  217. label = "LS-UART1";
  218. };
  219. &camss {
  220. status = "okay";
  221. ports {
  222. port@0 {
  223. reg = <0>;
  224. csiphy0_ep: endpoint {
  225. data-lanes = <0 2>;
  226. remote-endpoint = <&ov5640_ep>;
  227. status = "okay";
  228. };
  229. };
  230. };
  231. };
  232. &cci {
  233. status = "okay";
  234. };
  235. &cci_i2c0 {
  236. camera_rear@3b {
  237. compatible = "ovti,ov5640";
  238. reg = <0x3b>;
  239. enable-gpios = <&msmgpio 34 GPIO_ACTIVE_HIGH>;
  240. reset-gpios = <&msmgpio 35 GPIO_ACTIVE_LOW>;
  241. pinctrl-names = "default";
  242. pinctrl-0 = <&camera_rear_default>;
  243. clocks = <&gcc GCC_CAMSS_MCLK0_CLK>;
  244. clock-names = "xclk";
  245. clock-frequency = <23880000>;
  246. DOVDD-supply = <&camera_vdddo_1v8>;
  247. AVDD-supply = <&camera_vdda_2v8>;
  248. DVDD-supply = <&camera_vddd_1v5>;
  249. /* No camera mezzanine by default */
  250. status = "disabled";
  251. port {
  252. ov5640_ep: endpoint {
  253. data-lanes = <0 2>;
  254. remote-endpoint = <&csiphy0_ep>;
  255. };
  256. };
  257. };
  258. };
  259. &dsi0_out {
  260. data-lanes = <0 1 2 3>;
  261. remote-endpoint = <&adv7533_in>;
  262. };
  263. &lpass {
  264. status = "okay";
  265. };
  266. &mdss {
  267. status = "okay";
  268. };
  269. &mpss {
  270. status = "okay";
  271. firmware-name = "qcom/apq8016/mba.mbn", "qcom/apq8016/modem.mbn";
  272. };
  273. &pm8916_resin {
  274. status = "okay";
  275. linux,code = <KEY_VOLUMEDOWN>;
  276. };
  277. &pronto {
  278. status = "okay";
  279. firmware-name = "qcom/apq8016/wcnss.mbn";
  280. };
  281. &sdhc_1 {
  282. status = "okay";
  283. pinctrl-names = "default", "sleep";
  284. pinctrl-0 = <&sdc1_clk_on &sdc1_cmd_on &sdc1_data_on>;
  285. pinctrl-1 = <&sdc1_clk_off &sdc1_cmd_off &sdc1_data_off>;
  286. };
  287. &sdhc_2 {
  288. status = "okay";
  289. pinctrl-names = "default", "sleep";
  290. pinctrl-0 = <&sdc2_clk_on &sdc2_cmd_on &sdc2_data_on &sdc2_cd_on>;
  291. pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off &sdc2_cd_off>;
  292. cd-gpios = <&msmgpio 38 GPIO_ACTIVE_LOW>;
  293. };
  294. &sound {
  295. status = "okay";
  296. pinctrl-0 = <&cdc_pdm_lines_act &ext_sec_tlmm_lines_act &ext_mclk_tlmm_lines_act>;
  297. pinctrl-1 = <&cdc_pdm_lines_sus &ext_sec_tlmm_lines_sus &ext_mclk_tlmm_lines_sus>;
  298. pinctrl-names = "default", "sleep";
  299. model = "DB410c";
  300. audio-routing =
  301. "AMIC2", "MIC BIAS Internal2",
  302. "AMIC3", "MIC BIAS External1";
  303. quaternary-dai-link {
  304. link-name = "ADV7533";
  305. cpu {
  306. sound-dai = <&lpass MI2S_QUATERNARY>;
  307. };
  308. codec {
  309. sound-dai = <&adv_bridge 0>;
  310. };
  311. };
  312. primary-dai-link {
  313. link-name = "WCD";
  314. cpu {
  315. sound-dai = <&lpass MI2S_PRIMARY>;
  316. };
  317. codec {
  318. sound-dai = <&lpass_codec 0>, <&wcd_codec 0>;
  319. };
  320. };
  321. tertiary-dai-link {
  322. link-name = "WCD-Capture";
  323. cpu {
  324. sound-dai = <&lpass MI2S_TERTIARY>;
  325. };
  326. codec {
  327. sound-dai = <&lpass_codec 1>, <&wcd_codec 1>;
  328. };
  329. };
  330. };
  331. &usb {
  332. status = "okay";
  333. extcon = <&usb_id>, <&usb_id>;
  334. pinctrl-names = "default", "device";
  335. pinctrl-0 = <&usb_sw_sel_pm &usb_hub_reset_pm>;
  336. pinctrl-1 = <&usb_sw_sel_pm_device &usb_hub_reset_pm_device>;
  337. };
  338. &usb_hs_phy {
  339. extcon = <&usb_id>;
  340. };
  341. &wcd_codec {
  342. clocks = <&gcc GCC_CODEC_DIGCODEC_CLK>;
  343. clock-names = "mclk";
  344. qcom,mbhc-vthreshold-low = <75 150 237 450 500>;
  345. qcom,mbhc-vthreshold-high = <75 150 237 450 500>;
  346. };
  347. &wcnss_ctrl {
  348. firmware-name = "qcom/apq8016/WCNSS_qcom_wlan_nv_sbc.bin";
  349. };
  350. /* Enable CoreSight */
  351. &cti0 { status = "okay"; };
  352. &cti1 { status = "okay"; };
  353. &cti12 { status = "okay"; };
  354. &cti13 { status = "okay"; };
  355. &cti14 { status = "okay"; };
  356. &cti15 { status = "okay"; };
  357. &debug0 { status = "okay"; };
  358. &debug1 { status = "okay"; };
  359. &debug2 { status = "okay"; };
  360. &debug3 { status = "okay"; };
  361. &etf { status = "okay"; };
  362. &etm0 { status = "okay"; };
  363. &etm1 { status = "okay"; };
  364. &etm2 { status = "okay"; };
  365. &etm3 { status = "okay"; };
  366. &etr { status = "okay"; };
  367. &funnel0 { status = "okay"; };
  368. &funnel1 { status = "okay"; };
  369. &replicator { status = "okay"; };
  370. &stm { status = "okay"; };
  371. &tpiu { status = "okay"; };
  372. &smd_rpm_regulators {
  373. vdd_l1_l2_l3-supply = <&pm8916_s3>;
  374. vdd_l4_l5_l6-supply = <&pm8916_s4>;
  375. vdd_l7-supply = <&pm8916_s4>;
  376. s3 {
  377. regulator-min-microvolt = <1250000>;
  378. regulator-max-microvolt = <1350000>;
  379. };
  380. s4 {
  381. regulator-min-microvolt = <1850000>;
  382. regulator-max-microvolt = <2150000>;
  383. regulator-always-on;
  384. regulator-boot-on;
  385. };
  386. l1 {
  387. regulator-min-microvolt = <1225000>;
  388. regulator-max-microvolt = <1225000>;
  389. };
  390. l2 {
  391. regulator-min-microvolt = <1200000>;
  392. regulator-max-microvolt = <1200000>;
  393. };
  394. l4 {
  395. regulator-min-microvolt = <2050000>;
  396. regulator-max-microvolt = <2050000>;
  397. };
  398. l5 {
  399. regulator-min-microvolt = <1800000>;
  400. regulator-max-microvolt = <1800000>;
  401. };
  402. l6 {
  403. regulator-min-microvolt = <1800000>;
  404. regulator-max-microvolt = <1800000>;
  405. };
  406. l7 {
  407. regulator-min-microvolt = <1800000>;
  408. regulator-max-microvolt = <1800000>;
  409. };
  410. l8 {
  411. regulator-min-microvolt = <2900000>;
  412. regulator-max-microvolt = <2900000>;
  413. };
  414. l9 {
  415. regulator-min-microvolt = <3300000>;
  416. regulator-max-microvolt = <3300000>;
  417. };
  418. l10 {
  419. regulator-min-microvolt = <2800000>;
  420. regulator-max-microvolt = <2800000>;
  421. };
  422. l11 {
  423. regulator-min-microvolt = <2950000>;
  424. regulator-max-microvolt = <2950000>;
  425. regulator-allow-set-load;
  426. regulator-system-load = <200000>;
  427. };
  428. l12 {
  429. regulator-min-microvolt = <1800000>;
  430. regulator-max-microvolt = <2950000>;
  431. };
  432. l13 {
  433. regulator-min-microvolt = <3075000>;
  434. regulator-max-microvolt = <3075000>;
  435. };
  436. l14 {
  437. regulator-min-microvolt = <1800000>;
  438. regulator-max-microvolt = <3300000>;
  439. };
  440. /*
  441. * The 96Boards specification expects a 1.8V power rail on the low-speed
  442. * expansion connector that is able to provide at least 0.18W / 100 mA.
  443. * L15/L16 are connected in parallel to provide 55 mA each. A minimum load
  444. * must be specified to ensure the regulators are not put in LPM where they
  445. * would only provide 5 mA.
  446. */
  447. l15 {
  448. regulator-min-microvolt = <1800000>;
  449. regulator-max-microvolt = <1800000>;
  450. regulator-system-load = <50000>;
  451. regulator-allow-set-load;
  452. regulator-always-on;
  453. };
  454. l16 {
  455. regulator-min-microvolt = <1800000>;
  456. regulator-max-microvolt = <1800000>;
  457. regulator-system-load = <50000>;
  458. regulator-allow-set-load;
  459. regulator-always-on;
  460. };
  461. l17 {
  462. regulator-min-microvolt = <3300000>;
  463. regulator-max-microvolt = <3300000>;
  464. };
  465. l18 {
  466. regulator-min-microvolt = <2700000>;
  467. regulator-max-microvolt = <2700000>;
  468. };
  469. };
  470. /*
  471. * 2mA drive strength is not enough when connecting multiple
  472. * I2C devices with different pull up resistors.
  473. */
  474. &i2c2_default {
  475. drive-strength = <16>;
  476. };
  477. &i2c4_default {
  478. drive-strength = <16>;
  479. };
  480. &i2c6_default {
  481. drive-strength = <16>;
  482. };
  483. /*
  484. * GPIO name legend: proper name = the GPIO line is used as GPIO
  485. * NC = not connected (pin out but not routed from the chip to
  486. * anything the board)
  487. * "[PER]" = pin is muxed for [peripheral] (not GPIO)
  488. * LSEC = Low Speed External Connector
  489. * HSEC = High Speed External Connector
  490. *
  491. * Line names are taken from the schematic "DragonBoard410c"
  492. * dated monday, august 31, 2015. Page 5 in particular.
  493. *
  494. * For the lines routed to the external connectors the
  495. * lines are named after the 96Boards CE Specification 1.0,
  496. * Appendix "Expansion Connector Signal Description".
  497. *
  498. * When the 96Board naming of a line and the schematic name of
  499. * the same line are in conflict, the 96Board specification
  500. * takes precedence, which means that the external UART on the
  501. * LSEC is named UART0 while the schematic and SoC names this
  502. * UART3. This is only for the informational lines i.e. "[FOO]",
  503. * the GPIO named lines "GPIO-A" thru "GPIO-L" are the only
  504. * ones actually used for GPIO.
  505. */
  506. &msmgpio {
  507. gpio-line-names =
  508. "[UART0_TX]", /* GPIO_0, LSEC pin 5 */
  509. "[UART0_RX]", /* GPIO_1, LSEC pin 7 */
  510. "[UART0_CTS_N]", /* GPIO_2, LSEC pin 3 */
  511. "[UART0_RTS_N]", /* GPIO_3, LSEC pin 9 */
  512. "[UART1_TX]", /* GPIO_4, LSEC pin 11 */
  513. "[UART1_RX]", /* GPIO_5, LSEC pin 13 */
  514. "[I2C0_SDA]", /* GPIO_8, LSEC pin 17 */
  515. "[I2C0_SCL]", /* GPIO_7, LSEC pin 15 */
  516. "[SPI1_DOUT]", /* SPI1_MOSI, HSEC pin 1 */
  517. "[SPI1_DIN]", /* SPI1_MISO, HSEC pin 11 */
  518. "[SPI1_CS]", /* SPI1_CS_N, HSEC pin 7 */
  519. "[SPI1_SCLK]", /* SPI1_CLK, HSEC pin 9 */
  520. "GPIO-B", /* LS_EXP_GPIO_B, LSEC pin 24 */
  521. "GPIO-C", /* LS_EXP_GPIO_C, LSEC pin 25 */
  522. "[I2C3_SDA]", /* HSEC pin 38 */
  523. "[I2C3_SCL]", /* HSEC pin 36 */
  524. "[SPI0_MOSI]", /* LSEC pin 14 */
  525. "[SPI0_MISO]", /* LSEC pin 10 */
  526. "[SPI0_CS_N]", /* LSEC pin 12 */
  527. "[SPI0_CLK]", /* LSEC pin 8 */
  528. "HDMI_HPD_N", /* GPIO 20 */
  529. "USR_LED_1_CTRL",
  530. "[I2C1_SDA]", /* GPIO_22, LSEC pin 21 */
  531. "[I2C1_SCL]", /* GPIO_23, LSEC pin 19 */
  532. "GPIO-G", /* LS_EXP_GPIO_G, LSEC pin 29 */
  533. "GPIO-H", /* LS_EXP_GPIO_H, LSEC pin 30 */
  534. "[CSI0_MCLK]", /* HSEC pin 15 */
  535. "[CSI1_MCLK]", /* HSEC pin 17 */
  536. "GPIO-K", /* LS_EXP_GPIO_K, LSEC pin 33 */
  537. "[I2C2_SDA]", /* HSEC pin 34 */
  538. "[I2C2_SCL]", /* HSEC pin 32 */
  539. "DSI2HDMI_INT_N",
  540. "DSI_SW_SEL_APQ",
  541. "GPIO-L", /* LS_EXP_GPIO_L, LSEC pin 34 */
  542. "GPIO-J", /* LS_EXP_GPIO_J, LSEC pin 32 */
  543. "GPIO-I", /* LS_EXP_GPIO_I, LSEC pin 31 */
  544. "GPIO-A", /* LS_EXP_GPIO_A, LSEC pin 23 */
  545. "FORCED_USB_BOOT",
  546. "SD_CARD_DET_N",
  547. "[WCSS_BT_SSBI]",
  548. "[WCSS_WLAN_DATA_2]", /* GPIO 40 */
  549. "[WCSS_WLAN_DATA_1]",
  550. "[WCSS_WLAN_DATA_0]",
  551. "[WCSS_WLAN_SET]",
  552. "[WCSS_WLAN_CLK]",
  553. "[WCSS_FM_SSBI]",
  554. "[WCSS_FM_SDI]",
  555. "[WCSS_BT_DAT_CTL]",
  556. "[WCSS_BT_DAT_STB]",
  557. "NC",
  558. "NC", /* GPIO 50 */
  559. "NC",
  560. "NC",
  561. "NC",
  562. "NC",
  563. "NC",
  564. "NC",
  565. "NC",
  566. "NC",
  567. "NC",
  568. "NC", /* GPIO 60 */
  569. "NC",
  570. "NC",
  571. "[CDC_PDM0_CLK]",
  572. "[CDC_PDM0_SYNC]",
  573. "[CDC_PDM0_TX0]",
  574. "[CDC_PDM0_RX0]",
  575. "[CDC_PDM0_RX1]",
  576. "[CDC_PDM0_RX2]",
  577. "GPIO-D", /* LS_EXP_GPIO_D, LSEC pin 26 */
  578. "NC", /* GPIO 70 */
  579. "NC",
  580. "NC",
  581. "NC",
  582. "NC", /* GPIO 74 */
  583. "NC",
  584. "NC",
  585. "NC",
  586. "NC",
  587. "NC",
  588. "BOOT_CONFIG_0", /* GPIO 80 */
  589. "BOOT_CONFIG_1",
  590. "BOOT_CONFIG_2",
  591. "BOOT_CONFIG_3",
  592. "NC",
  593. "NC",
  594. "BOOT_CONFIG_5",
  595. "NC",
  596. "NC",
  597. "NC",
  598. "NC", /* GPIO 90 */
  599. "NC",
  600. "NC",
  601. "NC",
  602. "NC",
  603. "NC",
  604. "NC",
  605. "NC",
  606. "NC",
  607. "NC",
  608. "NC", /* GPIO 100 */
  609. "NC",
  610. "NC",
  611. "NC",
  612. "SSBI_GPS",
  613. "NC",
  614. "NC",
  615. "KEY_VOLP_N",
  616. "NC",
  617. "NC",
  618. "[LS_EXP_MI2S_WS]", /* GPIO 110 */
  619. "NC",
  620. "NC",
  621. "[LS_EXP_MI2S_SCK]",
  622. "[LS_EXP_MI2S_DATA0]",
  623. "GPIO-E", /* LS_EXP_GPIO_E, LSEC pin 27 */
  624. "NC",
  625. "[DSI2HDMI_MI2S_WS]",
  626. "[DSI2HDMI_MI2S_SCK]",
  627. "[DSI2HDMI_MI2S_DATA0]",
  628. "USR_LED_2_CTRL", /* GPIO 120 */
  629. "SB_HS_ID";
  630. msmgpio_leds: msmgpio-leds {
  631. pins = "gpio21", "gpio120";
  632. function = "gpio";
  633. output-low;
  634. };
  635. usb_id_default: usb-id-default {
  636. pins = "gpio121";
  637. function = "gpio";
  638. drive-strength = <8>;
  639. input-enable;
  640. bias-pull-up;
  641. };
  642. adv7533_int_active: adv533-int-active {
  643. pins = "gpio31";
  644. function = "gpio";
  645. drive-strength = <16>;
  646. bias-disable;
  647. };
  648. adv7533_int_suspend: adv7533-int-suspend {
  649. pins = "gpio31";
  650. function = "gpio";
  651. drive-strength = <2>;
  652. bias-disable;
  653. };
  654. adv7533_switch_active: adv7533-switch-active {
  655. pins = "gpio32";
  656. function = "gpio";
  657. drive-strength = <16>;
  658. bias-disable;
  659. };
  660. adv7533_switch_suspend: adv7533-switch-suspend {
  661. pins = "gpio32";
  662. function = "gpio";
  663. drive-strength = <2>;
  664. bias-disable;
  665. };
  666. msm_key_volp_n_default: msm-key-volp-n-default {
  667. pins = "gpio107";
  668. function = "gpio";
  669. drive-strength = <8>;
  670. input-enable;
  671. bias-pull-up;
  672. };
  673. };
  674. &pm8916_gpios {
  675. gpio-line-names =
  676. "USR_LED_3_CTRL",
  677. "USR_LED_4_CTRL",
  678. "USB_HUB_RESET_N_PM",
  679. "USB_SW_SEL_PM";
  680. usb_hub_reset_pm: usb-hub-reset-pm-state {
  681. pins = "gpio3";
  682. function = PMIC_GPIO_FUNC_NORMAL;
  683. input-disable;
  684. output-high;
  685. };
  686. usb_hub_reset_pm_device: usb-hub-reset-pm-device-state {
  687. pins = "gpio3";
  688. function = PMIC_GPIO_FUNC_NORMAL;
  689. output-low;
  690. };
  691. usb_sw_sel_pm: usb-sw-sel-pm-state {
  692. pins = "gpio4";
  693. function = PMIC_GPIO_FUNC_NORMAL;
  694. power-source = <PM8916_GPIO_VPH>;
  695. input-disable;
  696. output-high;
  697. };
  698. usb_sw_sel_pm_device: usb-sw-sel-pm-device-state {
  699. pins = "gpio4";
  700. function = PMIC_GPIO_FUNC_NORMAL;
  701. power-source = <PM8916_GPIO_VPH>;
  702. input-disable;
  703. output-low;
  704. };
  705. pm8916_gpios_leds: pm8916-gpios-leds-state {
  706. pins = "gpio1", "gpio2";
  707. function = PMIC_GPIO_FUNC_NORMAL;
  708. output-low;
  709. };
  710. };
  711. &pm8916_mpps {
  712. gpio-line-names =
  713. "VDD_PX_BIAS",
  714. "WLAN_LED_CTRL",
  715. "BT_LED_CTRL",
  716. "GPIO-F"; /* LS_EXP_GPIO_F, LSEC pin 28 */
  717. pinctrl-names = "default";
  718. pinctrl-0 = <&ls_exp_gpio_f>;
  719. ls_exp_gpio_f: pm8916-mpp4-state {
  720. pins = "mpp4";
  721. function = "digital";
  722. output-low;
  723. power-source = <PM8916_MPP_L5>; // 1.8V
  724. };
  725. pm8916_mpps_leds: pm8916-mpps-state {
  726. pins = "mpp2", "mpp3";
  727. function = "digital";
  728. output-low;
  729. };
  730. };