Guest User

device tree

a guest
Aug 4th, 2021
20
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // SPDX-License-Identifier: GPL-2.0-only
  2. /*
  3. * Copyright (c) 2015, The Linux Foundation. All rights reserved.
  4. */
  5.  
  6. #include "msm8916.dtsi"
  7. #include "pm8916.dtsi"
  8. #include <dt-bindings/gpio/gpio.h>
  9. #include <dt-bindings/input/input.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. /*
  15. * GPIO name legend: proper name = the GPIO line is used as GPIO
  16. * NC = not connected (pin out but not routed from the chip to
  17. * anything the board)
  18. * "[PER]" = pin is muxed for [peripheral] (not GPIO)
  19. * LSEC = Low Speed External Connector
  20. * HSEC = High Speed External Connector
  21. *
  22. * Line names are taken from the schematic "DragonBoard410c"
  23. * dated monday, august 31, 2015. Page 5 in particular.
  24. *
  25. * For the lines routed to the external connectors the
  26. * lines are named after the 96Boards CE Specification 1.0,
  27. * Appendix "Expansion Connector Signal Description".
  28. *
  29. * When the 96Board naming of a line and the schematic name of
  30. * the same line are in conflict, the 96Board specification
  31. * takes precedence, which means that the external UART on the
  32. * LSEC is named UART0 while the schematic and SoC names this
  33. * UART3. This is only for the informational lines i.e. "[FOO]",
  34. * the GPIO named lines "GPIO-A" thru "GPIO-L" are the only
  35. * ones actually used for GPIO.
  36. */
  37.  
  38. / {
  39. aliases {
  40. serial0 = &blsp1_uart2;
  41. serial1 = &blsp1_uart1;
  42. usid0 = &pm8916_0;
  43. i2c0 = &blsp_i2c2;
  44. i2c1 = &blsp_i2c6;
  45. i2c3 = &blsp_i2c4;
  46. spi0 = &blsp_spi5;
  47. spi1 = &blsp_spi3;
  48. };
  49.  
  50. chosen {
  51. stdout-path = "serial0";
  52. };
  53.  
  54. camera_vdddo_1v8: camera-vdddo-1v8 {
  55. compatible = "regulator-fixed";
  56. regulator-name = "camera_vdddo";
  57. regulator-min-microvolt = <1800000>;
  58. regulator-max-microvolt = <1800000>;
  59. regulator-always-on;
  60. };
  61.  
  62. camera_vdda_2v8: camera-vdda-2v8 {
  63. compatible = "regulator-fixed";
  64. regulator-name = "camera_vdda";
  65. regulator-min-microvolt = <2800000>;
  66. regulator-max-microvolt = <2800000>;
  67. regulator-always-on;
  68. };
  69.  
  70. camera_vddd_1v5: camera-vddd-1v5 {
  71. compatible = "regulator-fixed";
  72. regulator-name = "camera_vddd";
  73. regulator-min-microvolt = <1500000>;
  74. regulator-max-microvolt = <1500000>;
  75. regulator-always-on;
  76. };
  77.  
  78. reserved-memory {
  79. ramoops@bff00000{
  80. compatible = "ramoops";
  81. reg = <0x0 0xbff00000 0x0 0x100000>;
  82.  
  83. record-size = <0x20000>;
  84. console-size = <0x20000>;
  85. ftrace-size = <0x20000>;
  86. };
  87. };
  88.  
  89. soc {
  90. pinctrl@1000000 {
  91. gpio-line-names =
  92. "[UART0_TX]", /* GPIO_0, LSEC pin 5 */
  93. "[UART0_RX]", /* GPIO_1, LSEC pin 7 */
  94. "[UART0_CTS_N]", /* GPIO_2, LSEC pin 3 */
  95. "[UART0_RTS_N]", /* GPIO_3, LSEC pin 9 */
  96. "[UART1_TX]", /* GPIO_4, LSEC pin 11 */
  97. "[UART1_RX]", /* GPIO_5, LSEC pin 13 */
  98. "[I2C0_SDA]", /* GPIO_8, LSEC pin 17 */
  99. "[I2C0_SCL]", /* GPIO_7, LSEC pin 15 */
  100. "[SPI1_DOUT]", /* SPI1_MOSI, HSEC pin 1 */
  101. "[SPI1_DIN]", /* SPI1_MISO, HSEC pin 11 */
  102. "[SPI1_CS]", /* SPI1_CS_N, HSEC pin 7 */
  103. "[SPI1_SCLK]", /* SPI1_CLK, HSEC pin 9 */
  104. "GPIO-B", /* LS_EXP_GPIO_B, LSEC pin 24 */
  105. "GPIO-C", /* LS_EXP_GPIO_C, LSEC pin 25 */
  106. "[I2C3_SDA]", /* HSEC pin 38 */
  107. "[I2C3_SCL]", /* HSEC pin 36 */
  108. "[SPI0_MOSI]", /* LSEC pin 14 */
  109. "[SPI0_MISO]", /* LSEC pin 10 */
  110. "[SPI0_CS_N]", /* LSEC pin 12 */
  111. "[SPI0_CLK]", /* LSEC pin 8 */
  112. "HDMI_HPD_N", /* GPIO 20 */
  113. "USR_LED_1_CTRL",
  114. "[I2C1_SDA]", /* GPIO_22, LSEC pin 21 */
  115. "[I2C1_SCL]", /* GPIO_23, LSEC pin 19 */
  116. "GPIO-G", /* LS_EXP_GPIO_G, LSEC pin 29 */
  117. "GPIO-H", /* LS_EXP_GPIO_H, LSEC pin 30 */
  118. "[CSI0_MCLK]", /* HSEC pin 15 */
  119. "[CSI1_MCLK]", /* HSEC pin 17 */
  120. "GPIO-K", /* LS_EXP_GPIO_K, LSEC pin 33 */
  121. "[I2C2_SDA]", /* HSEC pin 34 */
  122. "[I2C2_SCL]", /* HSEC pin 32 */
  123. "DSI2HDMI_INT_N",
  124. "DSI_SW_SEL_APQ",
  125. "GPIO-L", /* LS_EXP_GPIO_L, LSEC pin 34 */
  126. "GPIO-J", /* LS_EXP_GPIO_J, LSEC pin 32 */
  127. "GPIO-I", /* LS_EXP_GPIO_I, LSEC pin 31 */
  128. "GPIO-A", /* LS_EXP_GPIO_A, LSEC pin 23 */
  129. "FORCED_USB_BOOT",
  130. "SD_CARD_DET_N",
  131. "[WCSS_BT_SSBI]",
  132. "[WCSS_WLAN_DATA_2]", /* GPIO 40 */
  133. "[WCSS_WLAN_DATA_1]",
  134. "[WCSS_WLAN_DATA_0]",
  135. "[WCSS_WLAN_SET]",
  136. "[WCSS_WLAN_CLK]",
  137. "[WCSS_FM_SSBI]",
  138. "[WCSS_FM_SDI]",
  139. "[WCSS_BT_DAT_CTL]",
  140. "[WCSS_BT_DAT_STB]",
  141. "NC",
  142. "NC", /* GPIO 50 */
  143. "NC",
  144. "NC",
  145. "NC",
  146. "NC",
  147. "NC",
  148. "NC",
  149. "NC",
  150. "NC",
  151. "NC",
  152. "NC", /* GPIO 60 */
  153. "NC",
  154. "NC",
  155. "[CDC_PDM0_CLK]",
  156. "[CDC_PDM0_SYNC]",
  157. "[CDC_PDM0_TX0]",
  158. "[CDC_PDM0_RX0]",
  159. "[CDC_PDM0_RX1]",
  160. "[CDC_PDM0_RX2]",
  161. "GPIO-D", /* LS_EXP_GPIO_D, LSEC pin 26 */
  162. "NC", /* GPIO 70 */
  163. "NC",
  164. "NC",
  165. "NC",
  166. "NC", /* GPIO 74 */
  167. "NC",
  168. "NC",
  169. "NC",
  170. "NC",
  171. "NC",
  172. "BOOT_CONFIG_0", /* GPIO 80 */
  173. "BOOT_CONFIG_1",
  174. "BOOT_CONFIG_2",
  175. "BOOT_CONFIG_3",
  176. "NC",
  177. "NC",
  178. "BOOT_CONFIG_5",
  179. "NC",
  180. "NC",
  181. "NC",
  182. "NC", /* GPIO 90 */
  183. "NC",
  184. "NC",
  185. "NC",
  186. "NC",
  187. "NC",
  188. "NC",
  189. "NC",
  190. "NC",
  191. "NC",
  192. "NC", /* GPIO 100 */
  193. "NC",
  194. "NC",
  195. "NC",
  196. "SSBI_GPS",
  197. "NC",
  198. "NC",
  199. "KEY_VOLP_N",
  200. "NC",
  201. "NC",
  202. "[LS_EXP_MI2S_WS]", /* GPIO 110 */
  203. "NC",
  204. "NC",
  205. "[LS_EXP_MI2S_SCK]",
  206. "[LS_EXP_MI2S_DATA0]",
  207. "GPIO-E", /* LS_EXP_GPIO_E, LSEC pin 27 */
  208. "NC",
  209. "[DSI2HDMI_MI2S_WS]",
  210. "[DSI2HDMI_MI2S_SCK]",
  211. "[DSI2HDMI_MI2S_DATA0]",
  212. "USR_LED_2_CTRL", /* GPIO 120 */
  213. "SB_HS_ID";
  214. };
  215.  
  216. dma@7884000 {
  217. status = "okay";
  218. };
  219.  
  220. serial@78af000 {
  221. label = "LS-UART0";
  222. status = "okay";
  223. pinctrl-names = "default", "sleep";
  224. pinctrl-0 = <&blsp1_uart1_default>;
  225. pinctrl-1 = <&blsp1_uart1_sleep>;
  226. };
  227.  
  228. serial@78b0000 {
  229. label = "LS-UART1";
  230. status = "okay";
  231. pinctrl-names = "default", "sleep";
  232. pinctrl-0 = <&blsp1_uart2_default>;
  233. pinctrl-1 = <&blsp1_uart2_sleep>;
  234. };
  235.  
  236. i2c@78b6000 {
  237. /* On Low speed expansion */
  238. label = "LS-I2C0";
  239. status = "okay";
  240. };
  241.  
  242. i2c@78b8000 {
  243. /* On High speed expansion */
  244. label = "HS-I2C2";
  245. status = "okay";
  246.  
  247. adv_bridge: bridge@39 {
  248. status = "okay";
  249.  
  250. compatible = "adi,adv7533";
  251. reg = <0x39>;
  252.  
  253. interrupt-parent = <&msmgpio>;
  254. interrupts = <31 2>;
  255.  
  256. adi,dsi-lanes = <4>;
  257. clocks = <&rpmcc RPM_SMD_BB_CLK2>;
  258. clock-names = "cec";
  259.  
  260. pd-gpios = <&msmgpio 32 0>;
  261.  
  262. avdd-supply = <&pm8916_l6>;
  263. v1p2-supply = <&pm8916_l6>;
  264. v3p3-supply = <&pm8916_l17>;
  265.  
  266. pinctrl-names = "default","sleep";
  267. pinctrl-0 = <&adv7533_int_active &adv7533_switch_active>;
  268. pinctrl-1 = <&adv7533_int_suspend &adv7533_switch_suspend>;
  269. #sound-dai-cells = <1>;
  270.  
  271. ports {
  272. #address-cells = <1>;
  273. #size-cells = <0>;
  274.  
  275. port@0 {
  276. reg = <0>;
  277. adv7533_in: endpoint {
  278. remote-endpoint = <&dsi0_out>;
  279. };
  280. };
  281.  
  282. port@1 {
  283. reg = <1>;
  284. adv7533_out: endpoint {
  285. remote-endpoint = <&hdmi_con>;
  286. };
  287. };
  288. };
  289. };
  290. };
  291.  
  292. i2c@78ba000 {
  293. /* On Low speed expansion */
  294. label = "LS-I2C1";
  295. status = "okay";
  296. };
  297.  
  298. spi@78b7000 {
  299. /* On High speed expansion */
  300. label = "HS-SPI1";
  301. status = "okay";
  302. };
  303.  
  304. spi@78b9000 {
  305. /* On Low speed expansion */
  306. label = "LS-SPI0";
  307. status = "okay";
  308. };
  309.  
  310. leds {
  311. pinctrl-names = "default";
  312. pinctrl-0 = <&msmgpio_leds>,
  313. <&pm8916_gpios_leds>,
  314. <&pm8916_mpps_leds>;
  315.  
  316. compatible = "gpio-leds";
  317.  
  318. led@1 {
  319. label = "apq8016-sbc:green:user1";
  320. gpios = <&msmgpio 21 GPIO_ACTIVE_HIGH>;
  321. linux,default-trigger = "heartbeat";
  322. default-state = "off";
  323. };
  324.  
  325. led@2 {
  326. label = "apq8016-sbc:green:user2";
  327. gpios = <&msmgpio 120 GPIO_ACTIVE_HIGH>;
  328. linux,default-trigger = "mmc0";
  329. default-state = "off";
  330. };
  331.  
  332. led@3 {
  333. label = "apq8016-sbc:green:user3";
  334. gpios = <&pm8916_gpios 1 GPIO_ACTIVE_HIGH>;
  335. linux,default-trigger = "mmc1";
  336. default-state = "off";
  337. };
  338.  
  339. led@4 {
  340. label = "apq8016-sbc:green:user4";
  341. gpios = <&pm8916_gpios 2 GPIO_ACTIVE_HIGH>;
  342. linux,default-trigger = "none";
  343. panic-indicator;
  344. default-state = "off";
  345. };
  346.  
  347. led@5 {
  348. label = "apq8016-sbc:yellow:wlan";
  349. gpios = <&pm8916_mpps 2 GPIO_ACTIVE_HIGH>;
  350. linux,default-trigger = "phy0tx";
  351. default-state = "off";
  352. };
  353.  
  354. led@6 {
  355. label = "apq8016-sbc:blue:bt";
  356. gpios = <&pm8916_mpps 3 GPIO_ACTIVE_HIGH>;
  357. linux,default-trigger = "bluetooth-power";
  358. default-state = "off";
  359. };
  360. };
  361.  
  362. sdhci@7824000 {
  363. vmmc-supply = <&pm8916_l8>;
  364. vqmmc-supply = <&pm8916_l5>;
  365.  
  366. pinctrl-names = "default", "sleep";
  367. pinctrl-0 = <&sdc1_clk_on &sdc1_cmd_on &sdc1_data_on>;
  368. pinctrl-1 = <&sdc1_clk_off &sdc1_cmd_off &sdc1_data_off>;
  369. status = "okay";
  370. };
  371.  
  372. sdhci@7864000 {
  373. vmmc-supply = <&pm8916_l11>;
  374. vqmmc-supply = <&pm8916_l12>;
  375.  
  376. pinctrl-names = "default", "sleep";
  377. pinctrl-0 = <&sdc2_clk_on &sdc2_cmd_on &sdc2_data_on &sdc2_cd_on>;
  378. pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off &sdc2_cd_off>;
  379.  
  380. cd-gpios = <&msmgpio 38 0x1>;
  381. status = "okay";
  382. };
  383.  
  384. usb@78d9000 {
  385. extcon = <&usb_id>, <&usb_id>;
  386. status = "okay";
  387. adp-disable;
  388. hnp-disable;
  389. srp-disable;
  390. dr_mode = "otg";
  391. pinctrl-names = "default", "device";
  392. pinctrl-0 = <&usb_sw_sel_pm &usb_hub_reset_pm>;
  393. pinctrl-1 = <&usb_sw_sel_pm_device &usb_hub_reset_pm_device>;
  394. ulpi {
  395. phy {
  396. v1p8-supply = <&pm8916_l7>;
  397. v3p3-supply = <&pm8916_l13>;
  398. extcon = <&usb_id>;
  399. };
  400. };
  401. };
  402.  
  403. lpass@7708000 {
  404. status = "okay";
  405. };
  406.  
  407. mdss@1a00000 {
  408. status = "okay";
  409.  
  410. mdp@1a01000 {
  411. status = "okay";
  412. };
  413.  
  414. dsi@1a98000 {
  415. status = "okay";
  416.  
  417. vdda-supply = <&pm8916_l2>;
  418. vddio-supply = <&pm8916_l6>;
  419.  
  420. ports {
  421. port@1 {
  422. endpoint {
  423. remote-endpoint = <&adv7533_in>;
  424. data-lanes = <0 1 2 3>;
  425. };
  426. };
  427. };
  428. };
  429.  
  430. dsi-phy@1a98300 {
  431. status = "okay";
  432.  
  433. vddio-supply = <&pm8916_l6>;
  434. };
  435. };
  436.  
  437. lpass_codec: codec{
  438. status = "okay";
  439. };
  440.  
  441. /*
  442. Internal Codec
  443. playback - Primary MI2S
  444. capture - Ter MI2S
  445.  
  446. External Primary:
  447. playback - secondary MI2S
  448. capture - Quat MI2S
  449.  
  450. External Secondary:
  451. playback - Quat MI2S
  452. capture - Quat MI2S
  453.  
  454. */
  455.  
  456. sound: sound {
  457. compatible = "qcom,apq8016-sbc-sndcard";
  458. reg = <0x07702000 0x4>, <0x07702004 0x4>;
  459. reg-names = "mic-iomux", "spkr-iomux";
  460.  
  461. status = "okay";
  462. pinctrl-0 = <&cdc_pdm_lines_act &ext_sec_tlmm_lines_act &ext_mclk_tlmm_lines_act>;
  463. pinctrl-1 = <&cdc_pdm_lines_sus &ext_sec_tlmm_lines_sus &ext_mclk_tlmm_lines_sus>;
  464. pinctrl-names = "default", "sleep";
  465. qcom,model = "DB410c";
  466. qcom,audio-routing =
  467. "AMIC2", "MIC BIAS Internal2",
  468. "AMIC3", "MIC BIAS External1";
  469.  
  470. external-dai-link@0 {
  471. link-name = "ADV7533";
  472. cpu {
  473. sound-dai = <&lpass MI2S_QUATERNARY>;
  474. };
  475. codec {
  476. sound-dai = <&adv_bridge 0>;
  477. };
  478. };
  479.  
  480. internal-codec-playback-dai-link@0 {
  481. link-name = "WCD";
  482. cpu {
  483. sound-dai = <&lpass MI2S_PRIMARY>;
  484. };
  485. codec {
  486. sound-dai = <&lpass_codec 0>, <&wcd_codec 0>;
  487. };
  488. };
  489.  
  490. internal-codec-capture-dai-link@0 {
  491. link-name = "WCD-Capture";
  492. cpu {
  493. sound-dai = <&lpass MI2S_TERTIARY>;
  494. };
  495. codec {
  496. sound-dai = <&lpass_codec 1>, <&wcd_codec 1>;
  497. };
  498. };
  499. };
  500.  
  501. spmi@200f000 {
  502. pm8916@0 {
  503. gpios@c000 {
  504. gpio-line-names =
  505. "USR_LED_3_CTRL",
  506. "USR_LED_4_CTRL",
  507. "USB_HUB_RESET_N_PM",
  508. "USB_SW_SEL_PM";
  509. };
  510. mpps@a000 {
  511. gpio-line-names =
  512. "VDD_PX_BIAS",
  513. "WLAN_LED_CTRL",
  514. "BT_LED_CTRL",
  515. "GPIO-F"; /* LS_EXP_GPIO_F, LSEC pin 28 */
  516. };
  517. };
  518. };
  519.  
  520. wcnss@a21b000 {
  521. status = "okay";
  522. firmware-name = "qcom/msm8916/wcnss.mdt";
  523. };
  524.  
  525. tpiu@820000 { status = "okay"; };
  526. funnel@821000 { status = "okay"; };
  527. replicator@824000 { status = "okay"; };
  528. etf@825000 { status = "okay"; };
  529. etr@826000 { status = "okay"; };
  530. funnel@841000 { status = "okay"; };
  531. debug@850000 { status = "okay"; };
  532. debug@852000 { status = "okay"; };
  533. debug@854000 { status = "okay"; };
  534. debug@856000 { status = "okay"; };
  535. etm@85c000 { status = "okay"; };
  536. etm@85d000 { status = "okay"; };
  537. etm@85e000 { status = "okay"; };
  538. etm@85f000 { status = "okay"; };
  539. cti@810000 { status = "okay"; };
  540. cti@811000 { status = "okay"; };
  541. cti@858000 { status = "okay"; };
  542. cti@859000 { status = "okay"; };
  543. cti@85a000 { status = "okay"; };
  544. cti@85b000 { status = "okay"; };
  545. };
  546.  
  547. usb2513 {
  548. compatible = "smsc,usb3503";
  549. reset-gpios = <&pm8916_gpios 3 GPIO_ACTIVE_LOW>;
  550. initial-mode = <1>;
  551. };
  552.  
  553. usb_id: usb-id {
  554. compatible = "linux,extcon-usb-gpio";
  555. id-gpio = <&msmgpio 121 GPIO_ACTIVE_HIGH>;
  556. pinctrl-names = "default";
  557. pinctrl-0 = <&usb_id_default>;
  558. };
  559.  
  560. hdmi-out {
  561. compatible = "hdmi-connector";
  562. type = "a";
  563.  
  564. port {
  565. hdmi_con: endpoint {
  566. remote-endpoint = <&adv7533_out>;
  567. };
  568. };
  569. };
  570.  
  571. gpio-keys {
  572. compatible = "gpio-keys";
  573. #address-cells = <1>;
  574. #size-cells = <0>;
  575. autorepeat;
  576.  
  577. pinctrl-names = "default";
  578. pinctrl-0 = <&msm_key_volp_n_default>;
  579.  
  580. button@0 {
  581. label = "Volume Up";
  582. linux,code = <KEY_VOLUMEUP>;
  583. gpios = <&msmgpio 107 GPIO_ACTIVE_LOW>;
  584. };
  585. };
  586. };
  587.  
  588. &camss {
  589. status = "okay";
  590. ports {
  591. #address-cells = <1>;
  592. #size-cells = <0>;
  593. port@0 {
  594. reg = <0>;
  595. csiphy0_ep: endpoint {
  596. clock-lanes = <1>;
  597. data-lanes = <0 2 3 4>;
  598. remote-endpoint = <&ar1337_ep>;
  599. status = "okay";
  600. };
  601. };
  602. };
  603. };
  604.  
  605. &cci {
  606. status = "okay";
  607. };
  608.  
  609. &cci_i2c0 {
  610. camera_rear@36 {
  611. compatible = "onsemi,ar1337";
  612. reg = <0x36>;
  613.  
  614. enable-gpios = <&msmgpio 34 GPIO_ACTIVE_HIGH>;
  615. reset-gpios = <&msmgpio 35 GPIO_ACTIVE_LOW>;
  616.  
  617. pinctrl-names = "default";
  618. pinctrl-0 = <&camera_rear_default>;
  619.  
  620. clocks = <&gcc GCC_CAMSS_MCLK0_CLK>;
  621. clock-names = "xclk";
  622. clock-frequency = <24000000>;\
  623.  
  624. vdddo-supply = <&camera_vdddo_1v8>;
  625. vdda-supply = <&camera_vdda_2v8>;
  626. vddd-supply = <&camera_vddd_1v5>;
  627.  
  628. /* No camera mezzanine by default */
  629. status = "okay";
  630.  
  631. port {
  632. ar1337_ep: endpoint {
  633. clock-lanes = <1>;
  634. data-lanes = <0 2 3 4>;
  635. remote-endpoint = <&csiphy0_ep>;
  636. };
  637. };
  638. };
  639. };
  640.  
  641. /*
  642. &cci_i2c0 {
  643. camera_rear@3b {
  644. compatible = "ovti,ov5640";
  645. reg = <0x3b>;
  646.  
  647. enable-gpios = <&msmgpio 34 GPIO_ACTIVE_HIGH>;
  648. reset-gpios = <&msmgpio 35 GPIO_ACTIVE_LOW>;
  649. pinctrl-names = "default";
  650. pinctrl-0 = <&camera_rear_default>;
  651.  
  652. clocks = <&gcc GCC_CAMSS_MCLK0_CLK>;
  653. clock-names = "xclk";
  654. clock-frequency = <23880000>;
  655.  
  656. vdddo-supply = <&camera_vdddo_1v8>;
  657. vdda-supply = <&camera_vdda_2v8>;
  658. vddd-supply = <&camera_vddd_1v5>;
  659.  
  660.  
  661. status = "okay";
  662.  
  663. port {
  664. ov5640_ep: endpoint {
  665. clock-lanes = <1>;
  666. data-lanes = <0 2>;
  667. remote-endpoint = <&csiphy0_ep>;
  668. };
  669. };
  670. };
  671. };
  672. */
  673.  
  674. &mpss {
  675. status = "okay";
  676. firmware-name = "qcom/msm8916/mba.mbn", "qcom/msm8916/modem.mdt";
  677. };
  678.  
  679. &spmi_bus {
  680. pm8916_0: pm8916@0 {
  681. pon@800 {
  682. resin {
  683. compatible = "qcom,pm8941-resin";
  684. interrupts = <0x0 0x8 1 IRQ_TYPE_EDGE_BOTH>;
  685. debounce = <15625>;
  686. bias-pull-up;
  687. linux,code = <KEY_VOLUMEDOWN>;
  688. };
  689. };
  690. };
  691. };
  692.  
  693. &wcd_codec {
  694. status = "okay";
  695. clocks = <&gcc GCC_CODEC_DIGCODEC_CLK>;
  696. clock-names = "mclk";
  697. qcom,mbhc-vthreshold-low = <75 150 237 450 500>;
  698. qcom,mbhc-vthreshold-high = <75 150 237 450 500>;
  699. };
  700.  
  701. &smd_rpm_regulators {
  702. vdd_l1_l2_l3-supply = <&pm8916_s3>;
  703. vdd_l4_l5_l6-supply = <&pm8916_s4>;
  704. vdd_l7-supply = <&pm8916_s4>;
  705.  
  706. s1 {
  707. regulator-min-microvolt = <375000>;
  708. regulator-max-microvolt = <1562000>;
  709. };
  710.  
  711. s3 {
  712. regulator-min-microvolt = <375000>;
  713. regulator-max-microvolt = <1562000>;
  714. };
  715.  
  716. s4 {
  717. regulator-min-microvolt = <1800000>;
  718. regulator-max-microvolt = <1800000>;
  719.  
  720. regulator-always-on;
  721. regulator-boot-on;
  722. };
  723.  
  724. l1 {
  725. regulator-min-microvolt = <375000>;
  726. regulator-max-microvolt = <1525000>;
  727. };
  728.  
  729. l2 {
  730. regulator-min-microvolt = <1200000>;
  731. regulator-max-microvolt = <1200000>;
  732. };
  733.  
  734. l3 {
  735. regulator-min-microvolt = <375000>;
  736. regulator-max-microvolt = <1525000>;
  737. };
  738.  
  739. l4 {
  740. regulator-min-microvolt = <1750000>;
  741. regulator-max-microvolt = <3337000>;
  742. };
  743.  
  744. l5 {
  745. regulator-min-microvolt = <1750000>;
  746. regulator-max-microvolt = <3337000>;
  747. };
  748.  
  749. l6 {
  750. regulator-min-microvolt = <1800000>;
  751. regulator-max-microvolt = <1800000>;
  752. };
  753.  
  754. l7 {
  755. regulator-min-microvolt = <1750000>;
  756. regulator-max-microvolt = <3337000>;
  757. };
  758.  
  759. l8 {
  760. regulator-min-microvolt = <1750000>;
  761. regulator-max-microvolt = <3337000>;
  762. };
  763.  
  764. l9 {
  765. regulator-min-microvolt = <1750000>;
  766. regulator-max-microvolt = <3337000>;
  767. };
  768.  
  769. l10 {
  770. regulator-min-microvolt = <1750000>;
  771. regulator-max-microvolt = <3337000>;
  772. };
  773.  
  774. l11 {
  775. regulator-min-microvolt = <1750000>;
  776. regulator-max-microvolt = <3337000>;
  777. regulator-allow-set-load;
  778. regulator-system-load = <200000>;
  779. };
  780.  
  781. l12 {
  782. regulator-min-microvolt = <1750000>;
  783. regulator-max-microvolt = <3337000>;
  784. };
  785.  
  786. l13 {
  787. regulator-min-microvolt = <1750000>;
  788. regulator-max-microvolt = <3337000>;
  789. };
  790.  
  791. l14 {
  792. regulator-min-microvolt = <1750000>;
  793. regulator-max-microvolt = <3337000>;
  794. };
  795.  
  796. /**
  797. * 1.8v required on LS expansion
  798. * for mezzanine boards
  799. */
  800. l15 {
  801. regulator-min-microvolt = <1750000>;
  802. regulator-max-microvolt = <3337000>;
  803. regulator-always-on;
  804. };
  805.  
  806. l16 {
  807. regulator-min-microvolt = <1750000>;
  808. regulator-max-microvolt = <3337000>;
  809. };
  810.  
  811. l17 {
  812. regulator-min-microvolt = <3300000>;
  813. regulator-max-microvolt = <3300000>;
  814. };
  815.  
  816. l18 {
  817. regulator-min-microvolt = <1750000>;
  818. regulator-max-microvolt = <3337000>;
  819. };
  820. };
  821.  
  822. /*
  823. * 2mA drive strength is not enough when connecting multiple
  824. * I2C devices with different pull up resistors.
  825. */
  826. &i2c2_default {
  827. drive-strength = <16>;
  828. };
  829.  
  830. &i2c4_default {
  831. drive-strength = <16>;
  832. };
  833.  
  834. &i2c6_default {
  835. drive-strength = <16>;
  836. };
  837.  
  838. &msmgpio {
  839. msmgpio_leds: msmgpio-leds {
  840. pins = "gpio21", "gpio120";
  841. function = "gpio";
  842.  
  843. output-low;
  844. };
  845.  
  846. usb_id_default: usb-id-default {
  847. pins = "gpio121";
  848. function = "gpio";
  849.  
  850. drive-strength = <8>;
  851. input-enable;
  852. bias-pull-up;
  853. };
  854.  
  855. adv7533_int_active: adv533-int-active {
  856. pins = "gpio31";
  857. function = "gpio";
  858.  
  859. drive-strength = <16>;
  860. bias-disable;
  861. };
  862.  
  863. adv7533_int_suspend: adv7533-int-suspend {
  864. pins = "gpio31";
  865. function = "gpio";
  866.  
  867. drive-strength = <2>;
  868. bias-disable;
  869. };
  870.  
  871. adv7533_switch_active: adv7533-switch-active {
  872. pins = "gpio32";
  873. function = "gpio";
  874.  
  875. drive-strength = <16>;
  876. bias-disable;
  877. };
  878.  
  879. adv7533_switch_suspend: adv7533-switch-suspend {
  880. pins = "gpio32";
  881. function = "gpio";
  882.  
  883. drive-strength = <2>;
  884. bias-disable;
  885. };
  886.  
  887. msm_key_volp_n_default: msm-key-volp-n-default {
  888. pins = "gpio107";
  889. function = "gpio";
  890.  
  891. drive-strength = <8>;
  892. input-enable;
  893. bias-pull-up;
  894. };
  895. };
  896.  
  897. &pm8916_gpios {
  898. usb_hub_reset_pm: usb-hub-reset-pm {
  899. pins = "gpio3";
  900. function = PMIC_GPIO_FUNC_NORMAL;
  901.  
  902. input-disable;
  903. output-high;
  904. };
  905.  
  906. usb_hub_reset_pm_device: usb-hub-reset-pm-device {
  907. pins = "gpio3";
  908. function = PMIC_GPIO_FUNC_NORMAL;
  909.  
  910. output-low;
  911. };
  912.  
  913. usb_sw_sel_pm: usb-sw-sel-pm {
  914. pins = "gpio4";
  915. function = PMIC_GPIO_FUNC_NORMAL;
  916.  
  917. power-source = <PM8916_GPIO_VPH>;
  918. input-disable;
  919. output-high;
  920. };
  921.  
  922. usb_sw_sel_pm_device: usb-sw-sel-pm-device {
  923. pins = "gpio4";
  924. function = PMIC_GPIO_FUNC_NORMAL;
  925.  
  926. power-source = <PM8916_GPIO_VPH>;
  927. input-disable;
  928. output-low;
  929. };
  930.  
  931. pm8916_gpios_leds: pm8916-gpios-leds {
  932. pins = "gpio1", "gpio2";
  933. function = PMIC_GPIO_FUNC_NORMAL;
  934.  
  935. output-low;
  936. };
  937. };
  938.  
  939. &pm8916_mpps {
  940. pinctrl-names = "default";
  941. pinctrl-0 = <&ls_exp_gpio_f>;
  942.  
  943. ls_exp_gpio_f: pm8916-mpp4 {
  944. pins = "mpp4";
  945. function = "digital";
  946.  
  947. output-low;
  948. power-source = <PM8916_MPP_L5>; // 1.8V
  949. };
  950.  
  951. pm8916_mpps_leds: pm8916-mpps-leds {
  952. pins = "mpp2", "mpp3";
  953. function = "digital";
  954.  
  955. output-low;
  956. };
  957. };
RAW Paste Data