0001 // SPDX-License-Identifier: GPL-2.0-only
0002 /*
0003 * Copyright (c) 2015, The Linux Foundation. All rights reserved.
0004 */
0005
0006 /dts-v1/;
0007
0008 #include "msm8916-pm8916.dtsi"
0009 #include <dt-bindings/gpio/gpio.h>
0010 #include <dt-bindings/input/input.h>
0011 #include <dt-bindings/leds/common.h>
0012 #include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
0013 #include <dt-bindings/pinctrl/qcom,pmic-mpp.h>
0014 #include <dt-bindings/sound/apq8016-lpass.h>
0015
0016 / {
0017 model = "Qualcomm Technologies, Inc. APQ 8016 SBC";
0018 compatible = "qcom,apq8016-sbc", "qcom,apq8016";
0019
0020 aliases {
0021 serial0 = &blsp1_uart2;
0022 serial1 = &blsp1_uart1;
0023 usid0 = &pm8916_0;
0024 i2c0 = &blsp_i2c2;
0025 i2c1 = &blsp_i2c6;
0026 i2c3 = &blsp_i2c4;
0027 spi0 = &blsp_spi5;
0028 spi1 = &blsp_spi3;
0029 };
0030
0031 chosen {
0032 stdout-path = "serial0";
0033 };
0034
0035 camera_vdddo_1v8: camera-vdddo-1v8 {
0036 compatible = "regulator-fixed";
0037 regulator-name = "camera_vdddo";
0038 regulator-min-microvolt = <1800000>;
0039 regulator-max-microvolt = <1800000>;
0040 regulator-always-on;
0041 };
0042
0043 camera_vdda_2v8: camera-vdda-2v8 {
0044 compatible = "regulator-fixed";
0045 regulator-name = "camera_vdda";
0046 regulator-min-microvolt = <2800000>;
0047 regulator-max-microvolt = <2800000>;
0048 regulator-always-on;
0049 };
0050
0051 camera_vddd_1v5: camera-vddd-1v5 {
0052 compatible = "regulator-fixed";
0053 regulator-name = "camera_vddd";
0054 regulator-min-microvolt = <1500000>;
0055 regulator-max-microvolt = <1500000>;
0056 regulator-always-on;
0057 };
0058
0059 reserved-memory {
0060 ramoops@bff00000 {
0061 compatible = "ramoops";
0062 reg = <0x0 0xbff00000 0x0 0x100000>;
0063
0064 record-size = <0x20000>;
0065 console-size = <0x20000>;
0066 ftrace-size = <0x20000>;
0067 };
0068 };
0069
0070 usb2513 {
0071 compatible = "smsc,usb3503";
0072 reset-gpios = <&pm8916_gpios 3 GPIO_ACTIVE_LOW>;
0073 initial-mode = <1>;
0074 };
0075
0076 usb_id: usb-id {
0077 compatible = "linux,extcon-usb-gpio";
0078 id-gpio = <&msmgpio 121 GPIO_ACTIVE_HIGH>;
0079 pinctrl-names = "default";
0080 pinctrl-0 = <&usb_id_default>;
0081 };
0082
0083 hdmi-out {
0084 compatible = "hdmi-connector";
0085 type = "a";
0086
0087 port {
0088 hdmi_con: endpoint {
0089 remote-endpoint = <&adv7533_out>;
0090 };
0091 };
0092 };
0093
0094 gpio-keys {
0095 compatible = "gpio-keys";
0096 autorepeat;
0097
0098 pinctrl-names = "default";
0099 pinctrl-0 = <&msm_key_volp_n_default>;
0100
0101 button {
0102 label = "Volume Up";
0103 linux,code = <KEY_VOLUMEUP>;
0104 gpios = <&msmgpio 107 GPIO_ACTIVE_LOW>;
0105 };
0106 };
0107
0108 leds {
0109 pinctrl-names = "default";
0110 pinctrl-0 = <&msmgpio_leds>,
0111 <&pm8916_gpios_leds>,
0112 <&pm8916_mpps_leds>;
0113
0114 compatible = "gpio-leds";
0115
0116 led@1 {
0117 label = "apq8016-sbc:green:user1";
0118 function = LED_FUNCTION_HEARTBEAT;
0119 color = <LED_COLOR_ID_GREEN>;
0120 gpios = <&msmgpio 21 GPIO_ACTIVE_HIGH>;
0121 linux,default-trigger = "heartbeat";
0122 default-state = "off";
0123 };
0124
0125 led@2 {
0126 label = "apq8016-sbc:green:user2";
0127 function = LED_FUNCTION_DISK_ACTIVITY;
0128 color = <LED_COLOR_ID_GREEN>;
0129 gpios = <&msmgpio 120 GPIO_ACTIVE_HIGH>;
0130 linux,default-trigger = "mmc0";
0131 default-state = "off";
0132 };
0133
0134 led@3 {
0135 label = "apq8016-sbc:green:user3";
0136 function = LED_FUNCTION_DISK_ACTIVITY;
0137 color = <LED_COLOR_ID_GREEN>;
0138 gpios = <&pm8916_gpios 1 GPIO_ACTIVE_HIGH>;
0139 linux,default-trigger = "mmc1";
0140 default-state = "off";
0141 };
0142
0143 led@4 {
0144 label = "apq8016-sbc:green:user4";
0145 color = <LED_COLOR_ID_GREEN>;
0146 gpios = <&pm8916_gpios 2 GPIO_ACTIVE_HIGH>;
0147 linux,default-trigger = "none";
0148 panic-indicator;
0149 default-state = "off";
0150 };
0151
0152 led@5 {
0153 label = "apq8016-sbc:yellow:wlan";
0154 function = LED_FUNCTION_WLAN;
0155 color = <LED_COLOR_ID_YELLOW>;
0156 gpios = <&pm8916_mpps 2 GPIO_ACTIVE_HIGH>;
0157 linux,default-trigger = "phy0tx";
0158 default-state = "off";
0159 };
0160
0161 led@6 {
0162 label = "apq8016-sbc:blue:bt";
0163 function = LED_FUNCTION_BLUETOOTH;
0164 color = <LED_COLOR_ID_BLUE>;
0165 gpios = <&pm8916_mpps 3 GPIO_ACTIVE_HIGH>;
0166 linux,default-trigger = "bluetooth-power";
0167 default-state = "off";
0168 };
0169 };
0170 };
0171
0172 &blsp_dma {
0173 status = "okay";
0174 };
0175
0176 &blsp_i2c2 {
0177 /* On Low speed expansion */
0178 status = "okay";
0179 label = "LS-I2C0";
0180 };
0181
0182 &blsp_i2c4 {
0183 /* On High speed expansion */
0184 status = "okay";
0185 label = "HS-I2C2";
0186
0187 adv_bridge: bridge@39 {
0188 status = "okay";
0189
0190 compatible = "adi,adv7533";
0191 reg = <0x39>;
0192
0193 interrupt-parent = <&msmgpio>;
0194 interrupts = <31 IRQ_TYPE_EDGE_FALLING>;
0195
0196 adi,dsi-lanes = <4>;
0197 clocks = <&rpmcc RPM_SMD_BB_CLK2>;
0198 clock-names = "cec";
0199
0200 pd-gpios = <&msmgpio 32 GPIO_ACTIVE_HIGH>;
0201
0202 avdd-supply = <&pm8916_l6>;
0203 v1p2-supply = <&pm8916_l6>;
0204 v3p3-supply = <&pm8916_l17>;
0205
0206 pinctrl-names = "default","sleep";
0207 pinctrl-0 = <&adv7533_int_active &adv7533_switch_active>;
0208 pinctrl-1 = <&adv7533_int_suspend &adv7533_switch_suspend>;
0209 #sound-dai-cells = <1>;
0210
0211 ports {
0212 #address-cells = <1>;
0213 #size-cells = <0>;
0214
0215 port@0 {
0216 reg = <0>;
0217 adv7533_in: endpoint {
0218 remote-endpoint = <&dsi0_out>;
0219 };
0220 };
0221
0222 port@1 {
0223 reg = <1>;
0224 adv7533_out: endpoint {
0225 remote-endpoint = <&hdmi_con>;
0226 };
0227 };
0228 };
0229 };
0230 };
0231
0232 &blsp_i2c6 {
0233 /* On Low speed expansion */
0234 status = "okay";
0235 label = "LS-I2C1";
0236 };
0237
0238 &blsp_spi3 {
0239 /* On High speed expansion */
0240 status = "okay";
0241 label = "HS-SPI1";
0242 };
0243
0244 &blsp_spi5 {
0245 /* On Low speed expansion */
0246 status = "okay";
0247 label = "LS-SPI0";
0248 };
0249
0250 &blsp1_uart1 {
0251 status = "okay";
0252 label = "LS-UART0";
0253 };
0254
0255 &blsp1_uart2 {
0256 status = "okay";
0257 label = "LS-UART1";
0258 };
0259
0260 &camss {
0261 status = "okay";
0262 ports {
0263 port@0 {
0264 reg = <0>;
0265 csiphy0_ep: endpoint {
0266 data-lanes = <0 2>;
0267 remote-endpoint = <&ov5640_ep>;
0268 status = "okay";
0269 };
0270 };
0271 };
0272 };
0273
0274 &cci {
0275 status = "okay";
0276 };
0277
0278 &cci_i2c0 {
0279 camera_rear@3b {
0280 compatible = "ovti,ov5640";
0281 reg = <0x3b>;
0282
0283 enable-gpios = <&msmgpio 34 GPIO_ACTIVE_HIGH>;
0284 reset-gpios = <&msmgpio 35 GPIO_ACTIVE_LOW>;
0285 pinctrl-names = "default";
0286 pinctrl-0 = <&camera_rear_default>;
0287
0288 clocks = <&gcc GCC_CAMSS_MCLK0_CLK>;
0289 clock-names = "xclk";
0290 clock-frequency = <23880000>;
0291
0292 vdddo-supply = <&camera_vdddo_1v8>;
0293 vdda-supply = <&camera_vdda_2v8>;
0294 vddd-supply = <&camera_vddd_1v5>;
0295
0296 /* No camera mezzanine by default */
0297 status = "disabled";
0298
0299 port {
0300 ov5640_ep: endpoint {
0301 data-lanes = <0 2>;
0302 remote-endpoint = <&csiphy0_ep>;
0303 };
0304 };
0305 };
0306 };
0307
0308 &dsi0_out {
0309 data-lanes = <0 1 2 3>;
0310 remote-endpoint = <&adv7533_in>;
0311 };
0312
0313 &lpass {
0314 status = "okay";
0315 };
0316
0317 &mdss {
0318 status = "okay";
0319 };
0320
0321 &mpss {
0322 status = "okay";
0323
0324 firmware-name = "qcom/apq8016/mba.mbn", "qcom/apq8016/modem.mbn";
0325 };
0326
0327 &pm8916_resin {
0328 status = "okay";
0329 linux,code = <KEY_VOLUMEDOWN>;
0330 };
0331
0332 &pronto {
0333 status = "okay";
0334
0335 firmware-name = "qcom/apq8016/wcnss.mbn";
0336 };
0337
0338 &sdhc_1 {
0339 status = "okay";
0340
0341 pinctrl-names = "default", "sleep";
0342 pinctrl-0 = <&sdc1_clk_on &sdc1_cmd_on &sdc1_data_on>;
0343 pinctrl-1 = <&sdc1_clk_off &sdc1_cmd_off &sdc1_data_off>;
0344 };
0345
0346 &sdhc_2 {
0347 status = "okay";
0348
0349 pinctrl-names = "default", "sleep";
0350 pinctrl-0 = <&sdc2_clk_on &sdc2_cmd_on &sdc2_data_on &sdc2_cd_on>;
0351 pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off &sdc2_cd_off>;
0352
0353 cd-gpios = <&msmgpio 38 GPIO_ACTIVE_LOW>;
0354 };
0355
0356 &sound {
0357 status = "okay";
0358
0359 pinctrl-0 = <&cdc_pdm_lines_act &ext_sec_tlmm_lines_act &ext_mclk_tlmm_lines_act>;
0360 pinctrl-1 = <&cdc_pdm_lines_sus &ext_sec_tlmm_lines_sus &ext_mclk_tlmm_lines_sus>;
0361 pinctrl-names = "default", "sleep";
0362 model = "DB410c";
0363 audio-routing =
0364 "AMIC2", "MIC BIAS Internal2",
0365 "AMIC3", "MIC BIAS External1";
0366
0367 quaternary-dai-link {
0368 link-name = "ADV7533";
0369 cpu {
0370 sound-dai = <&lpass MI2S_QUATERNARY>;
0371 };
0372 codec {
0373 sound-dai = <&adv_bridge 0>;
0374 };
0375 };
0376
0377 primary-dai-link {
0378 link-name = "WCD";
0379 cpu {
0380 sound-dai = <&lpass MI2S_PRIMARY>;
0381 };
0382 codec {
0383 sound-dai = <&lpass_codec 0>, <&wcd_codec 0>;
0384 };
0385 };
0386
0387 tertiary-dai-link {
0388 link-name = "WCD-Capture";
0389 cpu {
0390 sound-dai = <&lpass MI2S_TERTIARY>;
0391 };
0392 codec {
0393 sound-dai = <&lpass_codec 1>, <&wcd_codec 1>;
0394 };
0395 };
0396 };
0397
0398 &usb {
0399 status = "okay";
0400 extcon = <&usb_id>, <&usb_id>;
0401
0402 pinctrl-names = "default", "device";
0403 pinctrl-0 = <&usb_sw_sel_pm &usb_hub_reset_pm>;
0404 pinctrl-1 = <&usb_sw_sel_pm_device &usb_hub_reset_pm_device>;
0405 };
0406
0407 &usb_hs_phy {
0408 extcon = <&usb_id>;
0409 };
0410
0411 &wcd_codec {
0412 clocks = <&gcc GCC_CODEC_DIGCODEC_CLK>;
0413 clock-names = "mclk";
0414 qcom,mbhc-vthreshold-low = <75 150 237 450 500>;
0415 qcom,mbhc-vthreshold-high = <75 150 237 450 500>;
0416 };
0417
0418 &wcnss_ctrl {
0419 firmware-name = "qcom/apq8016/WCNSS_qcom_wlan_nv_sbc.bin";
0420 };
0421
0422 /* Enable CoreSight */
0423 &cti0 { status = "okay"; };
0424 &cti1 { status = "okay"; };
0425 &cti12 { status = "okay"; };
0426 &cti13 { status = "okay"; };
0427 &cti14 { status = "okay"; };
0428 &cti15 { status = "okay"; };
0429 &debug0 { status = "okay"; };
0430 &debug1 { status = "okay"; };
0431 &debug2 { status = "okay"; };
0432 &debug3 { status = "okay"; };
0433 &etf { status = "okay"; };
0434 &etm0 { status = "okay"; };
0435 &etm1 { status = "okay"; };
0436 &etm2 { status = "okay"; };
0437 &etm3 { status = "okay"; };
0438 &etr { status = "okay"; };
0439 &funnel0 { status = "okay"; };
0440 &funnel1 { status = "okay"; };
0441 &replicator { status = "okay"; };
0442 &stm { status = "okay"; };
0443 &tpiu { status = "okay"; };
0444
0445 &smd_rpm_regulators {
0446 vdd_l1_l2_l3-supply = <&pm8916_s3>;
0447 vdd_l4_l5_l6-supply = <&pm8916_s4>;
0448 vdd_l7-supply = <&pm8916_s4>;
0449
0450 s3 {
0451 regulator-min-microvolt = <375000>;
0452 regulator-max-microvolt = <1562000>;
0453 };
0454
0455 s4 {
0456 regulator-min-microvolt = <1800000>;
0457 regulator-max-microvolt = <1800000>;
0458
0459 regulator-always-on;
0460 regulator-boot-on;
0461 };
0462
0463 l1 {
0464 regulator-min-microvolt = <375000>;
0465 regulator-max-microvolt = <1525000>;
0466 };
0467
0468 l2 {
0469 regulator-min-microvolt = <1200000>;
0470 regulator-max-microvolt = <1200000>;
0471 };
0472
0473 l4 {
0474 regulator-min-microvolt = <1750000>;
0475 regulator-max-microvolt = <3337000>;
0476 };
0477
0478 l5 {
0479 regulator-min-microvolt = <1750000>;
0480 regulator-max-microvolt = <3337000>;
0481 };
0482
0483 l6 {
0484 regulator-min-microvolt = <1800000>;
0485 regulator-max-microvolt = <1800000>;
0486 };
0487
0488 l7 {
0489 regulator-min-microvolt = <1750000>;
0490 regulator-max-microvolt = <3337000>;
0491 };
0492
0493 l8 {
0494 regulator-min-microvolt = <1750000>;
0495 regulator-max-microvolt = <3337000>;
0496 };
0497
0498 l9 {
0499 regulator-min-microvolt = <1750000>;
0500 regulator-max-microvolt = <3337000>;
0501 };
0502
0503 l10 {
0504 regulator-min-microvolt = <1750000>;
0505 regulator-max-microvolt = <3337000>;
0506 };
0507
0508 l11 {
0509 regulator-min-microvolt = <1750000>;
0510 regulator-max-microvolt = <3337000>;
0511 regulator-allow-set-load;
0512 regulator-system-load = <200000>;
0513 };
0514
0515 l12 {
0516 regulator-min-microvolt = <1750000>;
0517 regulator-max-microvolt = <3337000>;
0518 };
0519
0520 l13 {
0521 regulator-min-microvolt = <1750000>;
0522 regulator-max-microvolt = <3337000>;
0523 };
0524
0525 l14 {
0526 regulator-min-microvolt = <1750000>;
0527 regulator-max-microvolt = <3337000>;
0528 };
0529
0530 /**
0531 * 1.8v required on LS expansion
0532 * for mezzanine boards
0533 */
0534 l15 {
0535 regulator-min-microvolt = <1750000>;
0536 regulator-max-microvolt = <3337000>;
0537 regulator-always-on;
0538 };
0539
0540 l16 {
0541 regulator-min-microvolt = <1750000>;
0542 regulator-max-microvolt = <3337000>;
0543 };
0544
0545 l17 {
0546 regulator-min-microvolt = <3300000>;
0547 regulator-max-microvolt = <3300000>;
0548 };
0549
0550 l18 {
0551 regulator-min-microvolt = <1750000>;
0552 regulator-max-microvolt = <3337000>;
0553 };
0554 };
0555
0556 /*
0557 * 2mA drive strength is not enough when connecting multiple
0558 * I2C devices with different pull up resistors.
0559 */
0560 &i2c2_default {
0561 drive-strength = <16>;
0562 };
0563
0564 &i2c4_default {
0565 drive-strength = <16>;
0566 };
0567
0568 &i2c6_default {
0569 drive-strength = <16>;
0570 };
0571
0572 /*
0573 * GPIO name legend: proper name = the GPIO line is used as GPIO
0574 * NC = not connected (pin out but not routed from the chip to
0575 * anything the board)
0576 * "[PER]" = pin is muxed for [peripheral] (not GPIO)
0577 * LSEC = Low Speed External Connector
0578 * HSEC = High Speed External Connector
0579 *
0580 * Line names are taken from the schematic "DragonBoard410c"
0581 * dated monday, august 31, 2015. Page 5 in particular.
0582 *
0583 * For the lines routed to the external connectors the
0584 * lines are named after the 96Boards CE Specification 1.0,
0585 * Appendix "Expansion Connector Signal Description".
0586 *
0587 * When the 96Board naming of a line and the schematic name of
0588 * the same line are in conflict, the 96Board specification
0589 * takes precedence, which means that the external UART on the
0590 * LSEC is named UART0 while the schematic and SoC names this
0591 * UART3. This is only for the informational lines i.e. "[FOO]",
0592 * the GPIO named lines "GPIO-A" thru "GPIO-L" are the only
0593 * ones actually used for GPIO.
0594 */
0595
0596 &msmgpio {
0597 gpio-line-names =
0598 "[UART0_TX]", /* GPIO_0, LSEC pin 5 */
0599 "[UART0_RX]", /* GPIO_1, LSEC pin 7 */
0600 "[UART0_CTS_N]", /* GPIO_2, LSEC pin 3 */
0601 "[UART0_RTS_N]", /* GPIO_3, LSEC pin 9 */
0602 "[UART1_TX]", /* GPIO_4, LSEC pin 11 */
0603 "[UART1_RX]", /* GPIO_5, LSEC pin 13 */
0604 "[I2C0_SDA]", /* GPIO_8, LSEC pin 17 */
0605 "[I2C0_SCL]", /* GPIO_7, LSEC pin 15 */
0606 "[SPI1_DOUT]", /* SPI1_MOSI, HSEC pin 1 */
0607 "[SPI1_DIN]", /* SPI1_MISO, HSEC pin 11 */
0608 "[SPI1_CS]", /* SPI1_CS_N, HSEC pin 7 */
0609 "[SPI1_SCLK]", /* SPI1_CLK, HSEC pin 9 */
0610 "GPIO-B", /* LS_EXP_GPIO_B, LSEC pin 24 */
0611 "GPIO-C", /* LS_EXP_GPIO_C, LSEC pin 25 */
0612 "[I2C3_SDA]", /* HSEC pin 38 */
0613 "[I2C3_SCL]", /* HSEC pin 36 */
0614 "[SPI0_MOSI]", /* LSEC pin 14 */
0615 "[SPI0_MISO]", /* LSEC pin 10 */
0616 "[SPI0_CS_N]", /* LSEC pin 12 */
0617 "[SPI0_CLK]", /* LSEC pin 8 */
0618 "HDMI_HPD_N", /* GPIO 20 */
0619 "USR_LED_1_CTRL",
0620 "[I2C1_SDA]", /* GPIO_22, LSEC pin 21 */
0621 "[I2C1_SCL]", /* GPIO_23, LSEC pin 19 */
0622 "GPIO-G", /* LS_EXP_GPIO_G, LSEC pin 29 */
0623 "GPIO-H", /* LS_EXP_GPIO_H, LSEC pin 30 */
0624 "[CSI0_MCLK]", /* HSEC pin 15 */
0625 "[CSI1_MCLK]", /* HSEC pin 17 */
0626 "GPIO-K", /* LS_EXP_GPIO_K, LSEC pin 33 */
0627 "[I2C2_SDA]", /* HSEC pin 34 */
0628 "[I2C2_SCL]", /* HSEC pin 32 */
0629 "DSI2HDMI_INT_N",
0630 "DSI_SW_SEL_APQ",
0631 "GPIO-L", /* LS_EXP_GPIO_L, LSEC pin 34 */
0632 "GPIO-J", /* LS_EXP_GPIO_J, LSEC pin 32 */
0633 "GPIO-I", /* LS_EXP_GPIO_I, LSEC pin 31 */
0634 "GPIO-A", /* LS_EXP_GPIO_A, LSEC pin 23 */
0635 "FORCED_USB_BOOT",
0636 "SD_CARD_DET_N",
0637 "[WCSS_BT_SSBI]",
0638 "[WCSS_WLAN_DATA_2]", /* GPIO 40 */
0639 "[WCSS_WLAN_DATA_1]",
0640 "[WCSS_WLAN_DATA_0]",
0641 "[WCSS_WLAN_SET]",
0642 "[WCSS_WLAN_CLK]",
0643 "[WCSS_FM_SSBI]",
0644 "[WCSS_FM_SDI]",
0645 "[WCSS_BT_DAT_CTL]",
0646 "[WCSS_BT_DAT_STB]",
0647 "NC",
0648 "NC", /* GPIO 50 */
0649 "NC",
0650 "NC",
0651 "NC",
0652 "NC",
0653 "NC",
0654 "NC",
0655 "NC",
0656 "NC",
0657 "NC",
0658 "NC", /* GPIO 60 */
0659 "NC",
0660 "NC",
0661 "[CDC_PDM0_CLK]",
0662 "[CDC_PDM0_SYNC]",
0663 "[CDC_PDM0_TX0]",
0664 "[CDC_PDM0_RX0]",
0665 "[CDC_PDM0_RX1]",
0666 "[CDC_PDM0_RX2]",
0667 "GPIO-D", /* LS_EXP_GPIO_D, LSEC pin 26 */
0668 "NC", /* GPIO 70 */
0669 "NC",
0670 "NC",
0671 "NC",
0672 "NC", /* GPIO 74 */
0673 "NC",
0674 "NC",
0675 "NC",
0676 "NC",
0677 "NC",
0678 "BOOT_CONFIG_0", /* GPIO 80 */
0679 "BOOT_CONFIG_1",
0680 "BOOT_CONFIG_2",
0681 "BOOT_CONFIG_3",
0682 "NC",
0683 "NC",
0684 "BOOT_CONFIG_5",
0685 "NC",
0686 "NC",
0687 "NC",
0688 "NC", /* GPIO 90 */
0689 "NC",
0690 "NC",
0691 "NC",
0692 "NC",
0693 "NC",
0694 "NC",
0695 "NC",
0696 "NC",
0697 "NC",
0698 "NC", /* GPIO 100 */
0699 "NC",
0700 "NC",
0701 "NC",
0702 "SSBI_GPS",
0703 "NC",
0704 "NC",
0705 "KEY_VOLP_N",
0706 "NC",
0707 "NC",
0708 "[LS_EXP_MI2S_WS]", /* GPIO 110 */
0709 "NC",
0710 "NC",
0711 "[LS_EXP_MI2S_SCK]",
0712 "[LS_EXP_MI2S_DATA0]",
0713 "GPIO-E", /* LS_EXP_GPIO_E, LSEC pin 27 */
0714 "NC",
0715 "[DSI2HDMI_MI2S_WS]",
0716 "[DSI2HDMI_MI2S_SCK]",
0717 "[DSI2HDMI_MI2S_DATA0]",
0718 "USR_LED_2_CTRL", /* GPIO 120 */
0719 "SB_HS_ID";
0720
0721 msmgpio_leds: msmgpio-leds {
0722 pins = "gpio21", "gpio120";
0723 function = "gpio";
0724
0725 output-low;
0726 };
0727
0728 usb_id_default: usb-id-default {
0729 pins = "gpio121";
0730 function = "gpio";
0731
0732 drive-strength = <8>;
0733 input-enable;
0734 bias-pull-up;
0735 };
0736
0737 adv7533_int_active: adv533-int-active {
0738 pins = "gpio31";
0739 function = "gpio";
0740
0741 drive-strength = <16>;
0742 bias-disable;
0743 };
0744
0745 adv7533_int_suspend: adv7533-int-suspend {
0746 pins = "gpio31";
0747 function = "gpio";
0748
0749 drive-strength = <2>;
0750 bias-disable;
0751 };
0752
0753 adv7533_switch_active: adv7533-switch-active {
0754 pins = "gpio32";
0755 function = "gpio";
0756
0757 drive-strength = <16>;
0758 bias-disable;
0759 };
0760
0761 adv7533_switch_suspend: adv7533-switch-suspend {
0762 pins = "gpio32";
0763 function = "gpio";
0764
0765 drive-strength = <2>;
0766 bias-disable;
0767 };
0768
0769 msm_key_volp_n_default: msm-key-volp-n-default {
0770 pins = "gpio107";
0771 function = "gpio";
0772
0773 drive-strength = <8>;
0774 input-enable;
0775 bias-pull-up;
0776 };
0777 };
0778
0779 &pm8916_gpios {
0780 gpio-line-names =
0781 "USR_LED_3_CTRL",
0782 "USR_LED_4_CTRL",
0783 "USB_HUB_RESET_N_PM",
0784 "USB_SW_SEL_PM";
0785
0786 usb_hub_reset_pm: usb-hub-reset-pm-state {
0787 pins = "gpio3";
0788 function = PMIC_GPIO_FUNC_NORMAL;
0789
0790 input-disable;
0791 output-high;
0792 };
0793
0794 usb_hub_reset_pm_device: usb-hub-reset-pm-device-state {
0795 pins = "gpio3";
0796 function = PMIC_GPIO_FUNC_NORMAL;
0797
0798 output-low;
0799 };
0800
0801 usb_sw_sel_pm: usb-sw-sel-pm-state {
0802 pins = "gpio4";
0803 function = PMIC_GPIO_FUNC_NORMAL;
0804
0805 power-source = <PM8916_GPIO_VPH>;
0806 input-disable;
0807 output-high;
0808 };
0809
0810 usb_sw_sel_pm_device: usb-sw-sel-pm-device-state {
0811 pins = "gpio4";
0812 function = PMIC_GPIO_FUNC_NORMAL;
0813
0814 power-source = <PM8916_GPIO_VPH>;
0815 input-disable;
0816 output-low;
0817 };
0818
0819 pm8916_gpios_leds: pm8916-gpios-leds-state {
0820 pins = "gpio1", "gpio2";
0821 function = PMIC_GPIO_FUNC_NORMAL;
0822
0823 output-low;
0824 };
0825 };
0826
0827 &pm8916_mpps {
0828 gpio-line-names =
0829 "VDD_PX_BIAS",
0830 "WLAN_LED_CTRL",
0831 "BT_LED_CTRL",
0832 "GPIO-F"; /* LS_EXP_GPIO_F, LSEC pin 28 */
0833
0834 pinctrl-names = "default";
0835 pinctrl-0 = <&ls_exp_gpio_f>;
0836
0837 ls_exp_gpio_f: pm8916-mpp4-state {
0838 pins = "mpp4";
0839 function = "digital";
0840
0841 output-low;
0842 power-source = <PM8916_MPP_L5>; // 1.8V
0843 };
0844
0845 pm8916_mpps_leds: pm8916-mpps-state {
0846 pins = "mpp2", "mpp3";
0847 function = "digital";
0848
0849 output-low;
0850 };
0851 };