Back to home page

OSCL-LXR

 
 

    


0001 // SPDX-License-Identifier: GPL-2.0-only
0002 /*
0003  * Copyright (c) 2014-2016, The Linux Foundation. All rights reserved.
0004  */
0005 
0006 /dts-v1/;
0007 
0008 #include "msm8996.dtsi"
0009 #include "pm8994.dtsi"
0010 #include "pmi8994.dtsi"
0011 #include <dt-bindings/input/input.h>
0012 #include <dt-bindings/gpio/gpio.h>
0013 #include <dt-bindings/leds/common.h>
0014 #include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
0015 #include <dt-bindings/sound/qcom,q6afe.h>
0016 #include <dt-bindings/sound/qcom,q6asm.h>
0017 
0018 /*
0019  * GPIO name legend: proper name = the GPIO line is used as GPIO
0020  *         NC      = not connected (pin out but not routed from the chip to
0021  *                   anything the board)
0022  *         "[PER]" = pin is muxed for [peripheral] (not GPIO)
0023  *         LSEC    = Low Speed External Connector
0024  *         P HSEC  = Primary High Speed External Connector
0025  *         S HSEC  = Secondary High Speed External Connector
0026  *         J14     = Camera Connector
0027  *         TP      = Test Points
0028  *
0029  * Line names are taken from the schematic "DragonBoard 820c",
0030  * drawing no: LM25-P2751-1
0031  *
0032  * For the lines routed to the external connectors the
0033  * lines are named after the 96Boards CE Specification 1.0,
0034  * Appendix "Expansion Connector Signal Description".
0035  *
0036  * When the 96Board naming of a line and the schematic name of
0037  * the same line are in conflict, the 96Board specification
0038  * takes precedence, which means that the external UART on the
0039  * LSEC is named UART0 while the schematic and SoC names this
0040  * UART3. This is only for the informational lines i.e. "[FOO]",
0041  * the GPIO named lines "GPIO-A" thru "GPIO-L" are the only
0042  * ones actually used for GPIO.
0043  */
0044 
0045 / {
0046         model = "Qualcomm Technologies, Inc. DB820c";
0047         compatible = "arrow,apq8096-db820c", "qcom,apq8096-sbc", "qcom,apq8096";
0048 
0049         aliases {
0050                 serial0 = &blsp2_uart2;
0051                 serial1 = &blsp2_uart3;
0052                 serial2 = &blsp1_uart2;
0053                 i2c0 = &blsp1_i2c3;
0054                 i2c1 = &blsp2_i2c1;
0055                 i2c2 = &blsp2_i2c1;
0056                 spi0 = &blsp1_spi1;
0057                 spi1 = &blsp2_spi6;
0058         };
0059 
0060         chosen {
0061                 stdout-path = "serial0:115200n8";
0062         };
0063 
0064         clocks {
0065                 compatible = "simple-bus";
0066                 divclk4: divclk4 {
0067                         compatible = "fixed-clock";
0068                         #clock-cells = <0>;
0069                         clock-frequency = <32768>;
0070                         clock-output-names = "divclk4";
0071 
0072                         pinctrl-names = "default";
0073                         pinctrl-0 = <&divclk4_pin_a>;
0074                 };
0075 
0076                 div1_mclk: divclk1 {
0077                         compatible = "gpio-gate-clock";
0078                         pinctrl-0 = <&audio_mclk>;
0079                         pinctrl-names = "default";
0080                         clocks = <&rpmcc RPM_SMD_DIV_CLK1>;
0081                         #clock-cells = <0>;
0082                         enable-gpios = <&pm8994_gpios 15 0>;
0083                 };
0084         };
0085 
0086         gpio-keys {
0087                 compatible = "gpio-keys";
0088                 autorepeat;
0089 
0090                 pinctrl-names = "default";
0091                 pinctrl-0 = <&volume_up_gpio>;
0092 
0093                 button {
0094                         label = "Volume Up";
0095                         linux,code = <KEY_VOLUMEUP>;
0096                         gpios = <&pm8994_gpios 2 GPIO_ACTIVE_LOW>;
0097                 };
0098         };
0099 
0100         usb2_id: usb2-id {
0101                 compatible = "linux,extcon-usb-gpio";
0102                 id-gpio = <&pmi8994_gpios 6 GPIO_ACTIVE_HIGH>;
0103                 pinctrl-names = "default";
0104                 pinctrl-0 = <&usb2_vbus_det_gpio>;
0105         };
0106 
0107         usb3_id: usb3-id {
0108                 compatible = "linux,extcon-usb-gpio";
0109                 id-gpio = <&pm8994_gpios 22 GPIO_ACTIVE_HIGH>;
0110                 pinctrl-names = "default";
0111                 pinctrl-0 = <&usb3_vbus_det_gpio>;
0112         };
0113 
0114         vph_pwr: vph-pwr-regulator {
0115                 compatible = "regulator-fixed";
0116                 regulator-name = "vph_pwr";
0117                 regulator-always-on;
0118                 regulator-boot-on;
0119 
0120                 regulator-min-microvolt = <3700000>;
0121                 regulator-max-microvolt = <3700000>;
0122         };
0123 
0124         wlan_en: wlan-en-1-8v {
0125                 pinctrl-names = "default";
0126                 pinctrl-0 = <&wlan_en_gpios>;
0127                 compatible = "regulator-fixed";
0128                 regulator-name = "wlan-en-regulator";
0129                 regulator-min-microvolt = <1800000>;
0130                 regulator-max-microvolt = <1800000>;
0131 
0132                 gpio = <&pm8994_gpios 8 0>;
0133 
0134                 /* WLAN card specific delay */
0135                 startup-delay-us = <70000>;
0136                 enable-active-high;
0137         };
0138 };
0139 
0140 &blsp1_i2c3 {
0141         /* On Low speed expansion */
0142         label = "LS-I2C0";
0143         status = "okay";
0144 };
0145 
0146 &blsp1_spi1 {
0147         /* On Low speed expansion */
0148         label = "LS-SPI0";
0149         status = "okay";
0150 };
0151 
0152 &blsp1_uart2 {
0153         label = "BT-UART";
0154         status = "okay";
0155 
0156         bluetooth {
0157                 compatible = "qcom,qca6174-bt";
0158 
0159                 /* bt_disable_n gpio */
0160                 enable-gpios = <&pm8994_gpios 19 GPIO_ACTIVE_HIGH>;
0161 
0162                 clocks = <&divclk4>;
0163         };
0164 };
0165 
0166 &adsp_pil {
0167         status = "okay";
0168         firmware-name = "qcom/apq8096/adsp.mbn";
0169 };
0170 
0171 &blsp2_i2c1 {
0172         /* On High speed expansion */
0173         label = "HS-I2C2";
0174         status = "okay";
0175 };
0176 
0177 &blsp2_i2c1 {
0178         /* On Low speed expansion */
0179         label = "LS-I2C1";
0180         status = "okay";
0181 };
0182 
0183 &blsp2_spi6 {
0184         /* On High speed expansion */
0185         label = "HS-SPI1";
0186         status = "okay";
0187 };
0188 
0189 &blsp2_uart2 {
0190         label = "LS-UART1";
0191         status = "okay";
0192         pinctrl-names = "default", "sleep";
0193         pinctrl-0 = <&blsp2_uart2_2pins_default>;
0194         pinctrl-1 = <&blsp2_uart2_2pins_sleep>;
0195 };
0196 
0197 &blsp2_uart3 {
0198         label = "LS-UART0";
0199         status = "disabled";
0200         pinctrl-names = "default", "sleep";
0201         pinctrl-0 = <&blsp2_uart3_4pins_default>;
0202         pinctrl-1 = <&blsp2_uart3_4pins_sleep>;
0203 };
0204 
0205 &camss {
0206         vdda-supply = <&vreg_l2a_1p25>;
0207 };
0208 
0209 &gpu {
0210         status = "okay";
0211 };
0212 
0213 &hdmi {
0214         status = "okay";
0215 
0216         pinctrl-names = "default", "sleep";
0217         pinctrl-0 = <&hdmi_hpd_active &hdmi_ddc_active>;
0218         pinctrl-1 = <&hdmi_hpd_suspend &hdmi_ddc_suspend>;
0219 
0220         core-vdda-supply = <&vreg_l12a_1p8>;
0221         core-vcc-supply = <&vreg_s4a_1p8>;
0222 };
0223 
0224 &hdmi_phy {
0225         status = "okay";
0226 
0227         vddio-supply = <&vreg_l12a_1p8>;
0228         vcca-supply = <&vreg_l28a_0p925>;
0229         #phy-cells = <0>;
0230 };
0231 
0232 &hsusb_phy1 {
0233         status = "okay";
0234 
0235         vdd-supply = <&vreg_l28a_0p925>;
0236         vdda-pll-supply = <&vreg_l12a_1p8>;
0237         vdda-phy-dpdm-supply = <&vreg_l24a_3p075>;
0238 };
0239 
0240 &hsusb_phy2 {
0241         status = "okay";
0242 
0243         vdd-supply = <&vreg_l28a_0p925>;
0244         vdda-pll-supply = <&vreg_l12a_1p8>;
0245         vdda-phy-dpdm-supply = <&vreg_l24a_3p075>;
0246 };
0247 
0248 &mdp {
0249         status = "okay";
0250 };
0251 
0252 &mdss {
0253         status = "okay";
0254 };
0255 
0256 &mmcc {
0257         vdd-gfx-supply = <&vdd_gfx>;
0258 };
0259 
0260 &mss_pil {
0261         status = "okay";
0262         pll-supply = <&vreg_l12a_1p8>;
0263         firmware-name = "qcom/apq8096/mba.mbn", "qcom/apq8096/modem.mbn";
0264 };
0265 
0266 &pm8994_resin {
0267         status = "okay";
0268         linux,code = <KEY_VOLUMEDOWN>;
0269 };
0270 
0271 &tlmm {
0272         gpio-line-names =
0273                 "[SPI0_DOUT]", /* GPIO_0, BLSP1_SPI_MOSI, LSEC pin 14 */
0274                 "[SPI0_DIN]", /* GPIO_1, BLSP1_SPI_MISO, LSEC pin 10 */
0275                 "[SPI0_CS]", /* GPIO_2, BLSP1_SPI_CS_N, LSEC pin 12 */
0276                 "[SPI0_SCLK]", /* GPIO_3, BLSP1_SPI_CLK, LSEC pin 8 */
0277                 "[UART1_TxD]", /* GPIO_4, BLSP8_UART_TX, LSEC pin 11 */
0278                 "[UART1_RxD]", /* GPIO_5, BLSP8_UART_RX, LSEC pin 13 */
0279                 "[I2C1_SDA]", /* GPIO_6, BLSP8_I2C_SDA, LSEC pin 21 */
0280                 "[I2C1_SCL]", /* GPIO_7, BLSP8_I2C_SCL, LSEC pin 19 */
0281                 "GPIO-H", /* GPIO_8, LCD0_RESET_N, LSEC pin 30 */
0282                 "TP93", /* GPIO_9 */
0283                 "GPIO-G", /* GPIO_10, MDP_VSYNC_P, LSEC pin 29 */
0284                 "[MDP_VSYNC_S]", /* GPIO_11, S HSEC pin 55 */
0285                 "NC", /* GPIO_12 */
0286                 "[CSI0_MCLK]", /* GPIO_13, CAM_MCLK0, P HSEC pin 15 */
0287                 "[CAM_MCLK1]", /* GPIO_14, J14 pin 11 */
0288                 "[CSI1_MCLK]", /* GPIO_15, CAM_MCLK2, P HSEC pin 17 */
0289                 "TP99", /* GPIO_16 */
0290                 "[I2C2_SDA]", /* GPIO_17, CCI_I2C_SDA0, P HSEC pin 34 */
0291                 "[I2C2_SCL]", /* GPIO_18, CCI_I2C_SCL0, P HSEC pin 32 */
0292                 "[CCI_I2C_SDA1]", /* GPIO_19, S HSEC pin 38 */
0293                 "[CCI_I2C_SCL1]", /* GPIO_20, S HSEC pin 36 */
0294                 "FLASH_STROBE_EN", /* GPIO_21, S HSEC pin 5 */
0295                 "FLASH_STROBE_TRIG", /* GPIO_22, S HSEC pin 1 */
0296                 "GPIO-K", /* GPIO_23, CAM2_RST_N, LSEC pin 33 */
0297                 "GPIO-D", /* GPIO_24, LSEC pin 26 */
0298                 "GPIO-I", /* GPIO_25, CAM0_RST_N, LSEC pin 31 */
0299                 "GPIO-J", /* GPIO_26, CAM0_STANDBY_N, LSEC pin 32 */
0300                 "BLSP6_I2C_SDA", /* GPIO_27 */
0301                 "BLSP6_I2C_SCL", /* GPIO_28 */
0302                 "GPIO-B", /* GPIO_29, TS0_RESET_N, LSEC pin 24 */
0303                 "GPIO30", /* GPIO_30, S HSEC pin 4 */
0304                 "HDMI_CEC", /* GPIO_31 */
0305                 "HDMI_DDC_CLOCK", /* GPIO_32 */
0306                 "HDMI_DDC_DATA", /* GPIO_33 */
0307                 "HDMI_HOT_PLUG_DETECT", /* GPIO_34 */
0308                 "PCIE0_RST_N", /* GPIO_35 */
0309                 "PCIE0_CLKREQ_N", /* GPIO_36 */
0310                 "PCIE0_WAKE", /* GPIO_37 */
0311                 "SD_CARD_DET_N", /* GPIO_38 */
0312                 "TSIF1_SYNC", /* GPIO_39, S HSEC pin 48 */
0313                 "W_DISABLE_N", /* GPIO_40 */
0314                 "[BLSP9_UART_TX]", /* GPIO_41 */
0315                 "[BLSP9_UART_RX]", /* GPIO_42 */
0316                 "[BLSP2_UART_CTS_N]", /* GPIO_43 */
0317                 "[BLSP2_UART_RFR_N]", /* GPIO_44 */
0318                 "[BLSP3_UART_TX]", /* GPIO_45 */
0319                 "[BLSP3_UART_RX]", /* GPIO_46 */
0320                 "[I2C0_SDA]", /* GPIO_47, LS_I2C0_SDA, LSEC pin 17 */
0321                 "[I2C0_SCL]", /* GPIO_48, LS_I2C0_SCL, LSEC pin 15 */
0322                 "[UART0_TxD]", /* GPIO_49, BLSP9_UART_TX, LSEC pin 5 */
0323                 "[UART0_RxD]", /* GPIO_50, BLSP9_UART_RX, LSEC pin 7 */
0324                 "[UART0_CTS]", /* GPIO_51, BLSP9_UART_CTS_N, LSEC pin 3 */
0325                 "[UART0_RTS]", /* GPIO_52, BLSP9_UART_RFR_N, LSEC pin 9 */
0326                 "[CODEC_INT1_N]", /* GPIO_53 */
0327                 "[CODEC_INT2_N]", /* GPIO_54 */
0328                 "[BLSP7_I2C_SDA]", /* GPIO_55 */
0329                 "[BLSP7_I2C_SCL]", /* GPIO_56 */
0330                 "MI2S_MCLK", /* GPIO_57, S HSEC pin 3 */
0331                 "[PCM_CLK]", /* GPIO_58, QUA_MI2S_SCK, LSEC pin 18 */
0332                 "[PCM_FS]", /* GPIO_59, QUA_MI2S_WS, LSEC pin 16 */
0333                 "[PCM_DO]", /* GPIO_60, QUA_MI2S_DATA0, LSEC pin 20 */
0334                 "[PCM_DI]", /* GPIO_61, QUA_MI2S_DATA1, LSEC pin 22 */
0335                 "GPIO-E", /* GPIO_62, LSEC pin 27 */
0336                 "TP87", /* GPIO_63 */
0337                 "[CODEC_RST_N]", /* GPIO_64 */
0338                 "[PCM1_CLK]", /* GPIO_65 */
0339                 "[PCM1_SYNC]", /* GPIO_66 */
0340                 "[PCM1_DIN]", /* GPIO_67 */
0341                 "[PCM1_DOUT]", /* GPIO_68 */
0342                 "AUDIO_REF_CLK", /* GPIO_69 */
0343                 "SLIMBUS_CLK", /* GPIO_70 */
0344                 "SLIMBUS_DATA0", /* GPIO_71 */
0345                 "SLIMBUS_DATA1", /* GPIO_72 */
0346                 "NC", /* GPIO_73 */
0347                 "NC", /* GPIO_74 */
0348                 "NC", /* GPIO_75 */
0349                 "NC", /* GPIO_76 */
0350                 "TP94", /* GPIO_77 */
0351                 "NC", /* GPIO_78 */
0352                 "TP95", /* GPIO_79 */
0353                 "GPIO-A", /* GPIO_80, MEMS_RESET_N, LSEC pin 23 */
0354                 "TP88", /* GPIO_81 */
0355                 "TP89", /* GPIO_82 */
0356                 "TP90", /* GPIO_83 */
0357                 "TP91", /* GPIO_84 */
0358                 "[SD_DAT0]", /* GPIO_85, BLSP12_SPI_MOSI, P HSEC pin 1 */
0359                 "[SD_CMD]", /* GPIO_86, BLSP12_SPI_MISO, P HSEC pin 11 */
0360                 "[SD_DAT3]", /* GPIO_87, BLSP12_SPI_CS_N, P HSEC pin 7 */
0361                 "[SD_SCLK]", /* GPIO_88, BLSP12_SPI_CLK, P HSEC pin 9 */
0362                 "TSIF1_CLK", /* GPIO_89, S HSEC pin 42 */
0363                 "TSIF1_EN", /* GPIO_90, S HSEC pin 46 */
0364                 "TSIF1_DATA", /* GPIO_91, S HSEC pin 44 */
0365                 "NC", /* GPIO_92 */
0366                 "TSIF2_CLK", /* GPIO_93, S HSEC pin 52 */
0367                 "TSIF2_EN", /* GPIO_94, S HSEC pin 56 */
0368                 "TSIF2_DATA", /* GPIO_95, S HSEC pin 54 */
0369                 "TSIF2_SYNC", /* GPIO_96, S HSEC pin 58 */
0370                 "NC", /* GPIO_97 */
0371                 "CAM1_STANDBY_N", /* GPIO_98 */
0372                 "NC", /* GPIO_99 */
0373                 "NC", /* GPIO_100 */
0374                 "[LCD1_RESET_N]", /* GPIO_101, S HSEC pin 51 */
0375                 "BOOT_CONFIG1", /* GPIO_102 */
0376                 "USB_HUB_RESET", /* GPIO_103 */
0377                 "CAM1_RST_N", /* GPIO_104 */
0378                 "NC", /* GPIO_105 */
0379                 "NC", /* GPIO_106 */
0380                 "NC", /* GPIO_107 */
0381                 "NC", /* GPIO_108 */
0382                 "NC", /* GPIO_109 */
0383                 "NC", /* GPIO_110 */
0384                 "NC", /* GPIO_111 */
0385                 "NC", /* GPIO_112 */
0386                 "PMI8994_BUA", /* GPIO_113 */
0387                 "PCIE2_RST_N", /* GPIO_114 */
0388                 "PCIE2_CLKREQ_N", /* GPIO_115 */
0389                 "PCIE2_WAKE", /* GPIO_116 */
0390                 "SSC_IRQ_0", /* GPIO_117 */
0391                 "SSC_IRQ_1", /* GPIO_118 */
0392                 "SSC_IRQ_2", /* GPIO_119 */
0393                 "NC", /* GPIO_120 */
0394                 "GPIO121", /* GPIO_121, S HSEC pin 2 */
0395                 "NC", /* GPIO_122 */
0396                 "SSC_IRQ_6", /* GPIO_123 */
0397                 "SSC_IRQ_7", /* GPIO_124 */
0398                 "GPIO-C", /* GPIO_125, TS_INT0, LSEC pin 25 */
0399                 "BOOT_CONFIG5", /* GPIO_126 */
0400                 "NC", /* GPIO_127 */
0401                 "NC", /* GPIO_128 */
0402                 "BOOT_CONFIG7", /* GPIO_129 */
0403                 "PCIE1_RST_N", /* GPIO_130 */
0404                 "PCIE1_CLKREQ_N", /* GPIO_131 */
0405                 "PCIE1_WAKE", /* GPIO_132 */
0406                 "GPIO-L", /* GPIO_133, CAM2_STANDBY_N, LSEC pin 34 */
0407                 "NC", /* GPIO_134 */
0408                 "NC", /* GPIO_135 */
0409                 "BOOT_CONFIG8", /* GPIO_136 */
0410                 "NC", /* GPIO_137 */
0411                 "NC", /* GPIO_138 */
0412                 "GPS_SSBI2", /* GPIO_139 */
0413                 "GPS_SSBI1", /* GPIO_140 */
0414                 "NC", /* GPIO_141 */
0415                 "NC", /* GPIO_142 */
0416                 "NC", /* GPIO_143 */
0417                 "BOOT_CONFIG6", /* GPIO_144 */
0418                 "NC", /* GPIO_145 */
0419                 "NC", /* GPIO_146 */
0420                 "NC", /* GPIO_147 */
0421                 "NC", /* GPIO_148 */
0422                 "NC"; /* GPIO_149 */
0423 
0424         sdc2_cd_on: sdc2_cd_on {
0425                 mux {
0426                         pins = "gpio38";
0427                         function = "gpio";
0428                 };
0429 
0430                 config {
0431                         pins = "gpio38";
0432                         bias-pull-up;           /* pull up */
0433                         drive-strength = <16>;  /* 16 MA */
0434                 };
0435         };
0436 
0437         sdc2_cd_off: sdc2_cd_off {
0438                 mux {
0439                         pins = "gpio38";
0440                         function = "gpio";
0441                 };
0442 
0443                 config {
0444                         pins = "gpio38";
0445                         bias-pull-up;           /* pull up */
0446                         drive-strength = <2>;   /* 2 MA */
0447                 };
0448         };
0449 
0450         hdmi_hpd_active: hdmi_hpd_active {
0451                 mux {
0452                         pins = "gpio34";
0453                         function = "hdmi_hot";
0454                 };
0455 
0456                 config {
0457                         pins = "gpio34";
0458                         bias-pull-down;
0459                         drive-strength = <16>;
0460                 };
0461         };
0462 
0463         hdmi_hpd_suspend: hdmi_hpd_suspend {
0464                 mux {
0465                         pins = "gpio34";
0466                         function = "hdmi_hot";
0467                 };
0468 
0469                 config {
0470                         pins = "gpio34";
0471                         bias-pull-down;
0472                         drive-strength = <2>;
0473                 };
0474         };
0475 
0476         hdmi_ddc_active: hdmi_ddc_active {
0477                 mux {
0478                         pins = "gpio32", "gpio33";
0479                         function = "hdmi_ddc";
0480                 };
0481 
0482                 config {
0483                         pins = "gpio32", "gpio33";
0484                         drive-strength = <2>;
0485                         bias-pull-up;
0486                 };
0487         };
0488 
0489         hdmi_ddc_suspend: hdmi_ddc_suspend {
0490                 mux {
0491                         pins = "gpio32", "gpio33";
0492                         function = "hdmi_ddc";
0493                 };
0494 
0495                 config {
0496                         pins = "gpio32", "gpio33";
0497                         drive-strength = <2>;
0498                         bias-pull-down;
0499                 };
0500         };
0501 };
0502 
0503 &pcie0 {
0504         status = "okay";
0505         perst-gpio = <&tlmm 35 GPIO_ACTIVE_LOW>;
0506         vddpe-3v3-supply = <&wlan_en>;
0507         vdda-supply = <&vreg_l28a_0p925>;
0508 };
0509 
0510 &pcie1 {
0511         status = "okay";
0512         perst-gpio = <&tlmm 130 GPIO_ACTIVE_LOW>;
0513         vdda-supply = <&vreg_l28a_0p925>;
0514 };
0515 
0516 &pcie2 {
0517         status = "okay";
0518         perst-gpio = <&tlmm 114 GPIO_ACTIVE_LOW>;
0519         vdda-supply = <&vreg_l28a_0p925>;
0520 };
0521 
0522 &pcie_phy {
0523         status = "okay";
0524 
0525         vdda-phy-supply = <&vreg_l28a_0p925>;
0526         vdda-pll-supply = <&vreg_l12a_1p8>;
0527 };
0528 
0529 &pm8994_gpios {
0530         gpio-line-names =
0531                 "NC",
0532                 "KEY_VOLP_N",
0533                 "NC",
0534                 "BL1_PWM",
0535                 "GPIO-F", /* BL0_PWM, LSEC pin 28 */
0536                 "BL1_EN",
0537                 "NC",
0538                 "WLAN_EN",
0539                 "NC",
0540                 "NC",
0541                 "NC",
0542                 "NC",
0543                 "NC",
0544                 "NC",
0545                 "DIVCLK1",
0546                 "DIVCLK2",
0547                 "DIVCLK3",
0548                 "DIVCLK4",
0549                 "BT_EN",
0550                 "PMIC_SLB",
0551                 "PMIC_BUA",
0552                 "USB_VBUS_DET";
0553 
0554         pinctrl-names = "default";
0555         pinctrl-0 = <&ls_exp_gpio_f &bt_en_gpios>;
0556 
0557         ls_exp_gpio_f: pm8994-gpio5-state {
0558                 pinconf {
0559                         pins = "gpio5";
0560                         function = PMIC_GPIO_FUNC_NORMAL;
0561                         output-low;
0562                         power-source = <2>; // PM8994_GPIO_S4, 1.8V
0563                 };
0564         };
0565 
0566         bt_en_gpios: bt-en-pios-state {
0567                 pinconf {
0568                         pins = "gpio19";
0569                         function = PMIC_GPIO_FUNC_NORMAL;
0570                         output-low;
0571                         power-source = <PM8994_GPIO_S4>; // 1.8V
0572                         qcom,drive-strength = <PMIC_GPIO_STRENGTH_LOW>;
0573                         bias-pull-down;
0574                 };
0575         };
0576 
0577         wlan_en_gpios: wlan-en-gpios-state {
0578                 pinconf {
0579                         pins = "gpio8";
0580                         function = PMIC_GPIO_FUNC_NORMAL;
0581                         output-low;
0582                         power-source = <PM8994_GPIO_S4>; // 1.8V
0583                         qcom,drive-strength = <PMIC_GPIO_STRENGTH_LOW>;
0584                         bias-pull-down;
0585                 };
0586         };
0587 
0588         audio_mclk: clk-div1-state {
0589                 pinconf {
0590                         pins = "gpio15";
0591                         function = "func1";
0592                         power-source = <PM8994_GPIO_S4>; // 1.8V
0593                 };
0594         };
0595 
0596         volume_up_gpio: pm8996-gpio2-state {
0597                 pinconf {
0598                         pins = "gpio2";
0599                         function = "normal";
0600                         input-enable;
0601                         drive-push-pull;
0602                         bias-pull-up;
0603                         qcom,drive-strength = <PMIC_GPIO_STRENGTH_NO>;
0604                         power-source = <PM8994_GPIO_S4>; // 1.8V
0605                 };
0606         };
0607 
0608         divclk4_pin_a: divclk4-state {
0609                 pinconf {
0610                         pins = "gpio18";
0611                         function = PMIC_GPIO_FUNC_FUNC2;
0612 
0613                         bias-disable;
0614                         power-source = <PM8994_GPIO_S4>;
0615                 };
0616         };
0617 
0618         usb3_vbus_det_gpio: pm8996-gpio22-state {
0619                 pinconf {
0620                         pins = "gpio22";
0621                         function = PMIC_GPIO_FUNC_NORMAL;
0622                         input-enable;
0623                         bias-pull-down;
0624                         qcom,drive-strength = <PMIC_GPIO_STRENGTH_NO>;
0625                         power-source = <PM8994_GPIO_S4>; // 1.8V
0626                 };
0627         };
0628 };
0629 
0630 &pm8994_mpps {
0631         gpio-line-names =
0632                 "VDDPX_BIAS",
0633                 "WIFI_LED",
0634                 "NC",
0635                 "BT_LED",
0636                 "PM_MPP05",
0637                 "PM_MPP06",
0638                 "PM_MPP07",
0639                 "NC";
0640 };
0641 
0642 &pm8994_spmi_regulators {
0643         qcom,saw-reg = <&saw3>;
0644         vdd_s11-supply = <&vph_pwr>;
0645 
0646         s9 {
0647                 qcom,saw-slave;
0648         };
0649         s10 {
0650                 qcom,saw-slave;
0651         };
0652         s11 {
0653                 qcom,saw-leader;
0654                 regulator-name = "VDD_APCC";
0655                 regulator-always-on;
0656                 regulator-min-microvolt = <980000>;
0657                 regulator-max-microvolt = <980000>;
0658         };
0659 };
0660 
0661 &pmi8994_gpios {
0662         gpio-line-names =
0663                 "NC",
0664                 "SPKR_AMP_EN1",
0665                 "SPKR_AMP_EN2",
0666                 "TP61",
0667                 "NC",
0668                 "USB2_VBUS_DET",
0669                 "NC",
0670                 "NC",
0671                 "NC",
0672                 "NC";
0673 
0674         usb2_vbus_det_gpio: pmi8996-gpio6-state {
0675                 pinconf {
0676                         pins = "gpio6";
0677                         function = PMIC_GPIO_FUNC_NORMAL;
0678                         input-enable;
0679                         bias-pull-down;
0680                         qcom,drive-strength = <PMIC_GPIO_STRENGTH_NO>;
0681                         power-source = <PM8994_GPIO_S4>; // 1.8V
0682                 };
0683         };
0684 };
0685 
0686 &pmi8994_lpg {
0687         qcom,power-source = <1>;
0688 
0689         pinctrl-names = "default";
0690         pinctrl-0 = <&pmi8994_mpp2_userled4>;
0691 
0692         qcom,dtest = <0 0>,
0693                      <0 0>,
0694                      <0 0>,
0695                      <4 1>;
0696 
0697         status = "okay";
0698 
0699         led@1 {
0700                 reg = <1>;
0701                 color = <LED_COLOR_ID_GREEN>;
0702                 function = LED_FUNCTION_HEARTBEAT;
0703                 function-enumerator = <1>;
0704 
0705                 linux,default-trigger = "heartbeat";
0706                 default-state = "on";
0707         };
0708 
0709         led@2 {
0710                 reg = <2>;
0711                 color = <LED_COLOR_ID_GREEN>;
0712                 function = LED_FUNCTION_HEARTBEAT;
0713                 function-enumerator = <0>;
0714         };
0715 
0716         led@3 {
0717                 reg = <3>;
0718                 color = <LED_COLOR_ID_GREEN>;
0719                 function = LED_FUNCTION_HEARTBEAT;
0720                 function-enumerator = <2>;
0721         };
0722 
0723         led@4 {
0724                 reg = <4>;
0725                 color = <LED_COLOR_ID_GREEN>;
0726                 function = LED_FUNCTION_HEARTBEAT;
0727                 function-enumerator = <3>;
0728         };
0729 };
0730 
0731 &pmi8994_mpps {
0732         pmi8994_mpp2_userled4: mpp2-userled4-state {
0733                 pins = "mpp2";
0734                 function = "sink";
0735 
0736                 output-low;
0737                 qcom,dtest = <4>;
0738         };
0739 };
0740 
0741 &pmi8994_spmi_regulators {
0742         vdd_s2-supply = <&vph_pwr>;
0743 
0744         vdd_gfx: s2@1700 {
0745                 reg = <0x1700 0x100>;
0746                 regulator-name = "VDD_GFX";
0747                 regulator-min-microvolt = <980000>;
0748                 regulator-max-microvolt = <980000>;
0749         };
0750 };
0751 
0752 &rpm_requests {
0753         pm8994-regulators {
0754                 compatible = "qcom,rpm-pm8994-regulators";
0755 
0756                 vdd_s1-supply = <&vph_pwr>;
0757                 vdd_s2-supply = <&vph_pwr>;
0758                 vdd_s3-supply = <&vph_pwr>;
0759                 vdd_s4-supply = <&vph_pwr>;
0760                 vdd_s5-supply = <&vph_pwr>;
0761                 vdd_s6-supply = <&vph_pwr>;
0762                 vdd_s7-supply = <&vph_pwr>;
0763                 vdd_s8-supply = <&vph_pwr>;
0764                 vdd_s9-supply = <&vph_pwr>;
0765                 vdd_s10-supply = <&vph_pwr>;
0766                 vdd_s11-supply = <&vph_pwr>;
0767                 vdd_s12-supply = <&vph_pwr>;
0768                 vdd_l1-supply = <&vreg_s1b_1p025>;
0769                 vdd_l2_l26_l28-supply = <&vreg_s3a_1p3>;
0770                 vdd_l3_l11-supply = <&vreg_s3a_1p3>;
0771                 vdd_l4_l27_l31-supply = <&vreg_s3a_1p3>;
0772                 vdd_l5_l7-supply = <&vreg_s5a_2p15>;
0773                 vdd_l6_l12_l32-supply = <&vreg_s5a_2p15>;
0774                 vdd_l8_l16_l30-supply = <&vph_pwr>;
0775                 vdd_l9_l10_l18_l22-supply = <&vph_pwr_bbyp>;
0776                 vdd_l13_l19_l23_l24-supply = <&vph_pwr_bbyp>;
0777                 vdd_l14_l15-supply = <&vreg_s5a_2p15>;
0778                 vdd_l17_l29-supply = <&vph_pwr_bbyp>;
0779                 vdd_l20_l21-supply = <&vph_pwr_bbyp>;
0780                 vdd_l25-supply = <&vreg_s3a_1p3>;
0781                 vdd_lvs1_2-supply = <&vreg_s4a_1p8>;
0782 
0783                 vreg_s3a_1p3: s3 {
0784                         regulator-name = "vreg_s3a_1p3";
0785                         regulator-min-microvolt = <1300000>;
0786                         regulator-max-microvolt = <1300000>;
0787                 };
0788 
0789                 /**
0790                  * 1.8v required on LS expansion
0791                  * for mezzanine boards
0792                  */
0793                 vreg_s4a_1p8: s4 {
0794                         regulator-name = "vreg_s4a_1p8";
0795                         regulator-min-microvolt = <1800000>;
0796                         regulator-max-microvolt = <1800000>;
0797                         regulator-always-on;
0798                 };
0799                 vreg_s5a_2p15: s5 {
0800                         regulator-name = "vreg_s5a_2p15";
0801                         regulator-min-microvolt = <2150000>;
0802                         regulator-max-microvolt = <2150000>;
0803                 };
0804                 vreg_s7a_1p0: s7 {
0805                         regulator-name = "vreg_s7a_1p0";
0806                         regulator-min-microvolt = <800000>;
0807                         regulator-max-microvolt = <800000>;
0808                 };
0809 
0810                 vreg_l1a_1p0: l1 {
0811                         regulator-name = "vreg_l1a_1p0";
0812                         regulator-min-microvolt = <1000000>;
0813                         regulator-max-microvolt = <1000000>;
0814                 };
0815                 vreg_l2a_1p25: l2 {
0816                         regulator-name = "vreg_l2a_1p25";
0817                         regulator-min-microvolt = <1250000>;
0818                         regulator-max-microvolt = <1250000>;
0819                 };
0820                 vreg_l3a_0p875: l3 {
0821                         regulator-name = "vreg_l3a_0p875";
0822                         regulator-min-microvolt = <850000>;
0823                         regulator-max-microvolt = <850000>;
0824                 };
0825                 vreg_l4a_1p225: l4 {
0826                         regulator-name = "vreg_l4a_1p225";
0827                         regulator-min-microvolt = <1225000>;
0828                         regulator-max-microvolt = <1225000>;
0829                 };
0830                 vreg_l6a_1p2: l6 {
0831                         regulator-name = "vreg_l6a_1p2";
0832                         regulator-min-microvolt = <1200000>;
0833                         regulator-max-microvolt = <1200000>;
0834                 };
0835                 vreg_l8a_1p8: l8 {
0836                         regulator-name = "vreg_l8a_1p8";
0837                         regulator-min-microvolt = <1800000>;
0838                         regulator-max-microvolt = <1800000>;
0839                 };
0840                 vreg_l9a_1p8: l9 {
0841                         regulator-name = "vreg_l9a_1p8";
0842                         regulator-min-microvolt = <1800000>;
0843                         regulator-max-microvolt = <1800000>;
0844                 };
0845                 vreg_l10a_1p8: l10 {
0846                         regulator-name = "vreg_l10a_1p8";
0847                         regulator-min-microvolt = <1800000>;
0848                         regulator-max-microvolt = <1800000>;
0849                 };
0850                 vreg_l11a_1p15: l11 {
0851                         regulator-name = "vreg_l11a_1p15";
0852                         regulator-min-microvolt = <1150000>;
0853                         regulator-max-microvolt = <1150000>;
0854                 };
0855                 vreg_l12a_1p8: l12 {
0856                         regulator-name = "vreg_l12a_1p8";
0857                         regulator-min-microvolt = <1800000>;
0858                         regulator-max-microvolt = <1800000>;
0859                 };
0860                 vreg_l13a_2p95: l13 {
0861                         regulator-name = "vreg_l13a_2p95";
0862                         regulator-min-microvolt = <1800000>;
0863                         regulator-max-microvolt = <2950000>;
0864                 };
0865                 vreg_l14a_1p8: l14 {
0866                         regulator-name = "vreg_l14a_1p8";
0867                         regulator-min-microvolt = <1800000>;
0868                         regulator-max-microvolt = <1800000>;
0869                 };
0870                 vreg_l15a_1p8: l15 {
0871                         regulator-name = "vreg_l15a_1p8";
0872                         regulator-min-microvolt = <1800000>;
0873                         regulator-max-microvolt = <1800000>;
0874                 };
0875                 vreg_l16a_2p7: l16 {
0876                         regulator-name = "vreg_l16a_2p7";
0877                         regulator-min-microvolt = <2700000>;
0878                         regulator-max-microvolt = <2700000>;
0879                 };
0880                 vreg_l17a_2p8: l17 {
0881                         regulator-name = "vreg_l17a_2p8";
0882                         regulator-min-microvolt = <2500000>;
0883                         regulator-max-microvolt = <2500000>;
0884                 };
0885                 vreg_l18a_2p85: l18 {
0886                         regulator-name = "vreg_l18a_2p85";
0887                         regulator-min-microvolt = <2700000>;
0888                         regulator-max-microvolt = <2900000>;
0889                 };
0890                 vreg_l19a_2p8: l19 {
0891                         regulator-name = "vreg_l19a_2p8";
0892                         regulator-min-microvolt = <3000000>;
0893                         regulator-max-microvolt = <3000000>;
0894                 };
0895                 vreg_l20a_2p95: l20 {
0896                         regulator-name = "vreg_l20a_2p95";
0897                         regulator-min-microvolt = <2950000>;
0898                         regulator-max-microvolt = <2950000>;
0899                         regulator-allow-set-load;
0900                 };
0901                 vreg_l21a_2p95: l21 {
0902                         regulator-name = "vreg_l21a_2p95";
0903                         regulator-min-microvolt = <2950000>;
0904                         regulator-max-microvolt = <2950000>;
0905                         regulator-allow-set-load;
0906                         regulator-system-load = <200000>;
0907                 };
0908                 vreg_l22a_3p0: l22 {
0909                         regulator-name = "vreg_l22a_3p0";
0910                         regulator-min-microvolt = <3300000>;
0911                         regulator-max-microvolt = <3300000>;
0912                 };
0913                 vreg_l23a_2p8: l23 {
0914                         regulator-name = "vreg_l23a_2p8";
0915                         regulator-min-microvolt = <2800000>;
0916                         regulator-max-microvolt = <2800000>;
0917                 };
0918                 vreg_l24a_3p075: l24 {
0919                         regulator-name = "vreg_l24a_3p075";
0920                         regulator-min-microvolt = <3075000>;
0921                         regulator-max-microvolt = <3075000>;
0922                 };
0923                 vreg_l25a_1p2: l25 {
0924                         regulator-name = "vreg_l25a_1p2";
0925                         regulator-min-microvolt = <1200000>;
0926                         regulator-max-microvolt = <1200000>;
0927                         regulator-allow-set-load;
0928                 };
0929                 vreg_l26a_0p8: l27 {
0930                         regulator-name = "vreg_l26a_0p8";
0931                         regulator-min-microvolt = <1000000>;
0932                         regulator-max-microvolt = <1000000>;
0933                 };
0934                 vreg_l28a_0p925: l28 {
0935                         regulator-name = "vreg_l28a_0p925";
0936                         regulator-min-microvolt = <925000>;
0937                         regulator-max-microvolt = <925000>;
0938                         regulator-allow-set-load;
0939                 };
0940                 vreg_l29a_2p8: l29 {
0941                         regulator-name = "vreg_l29a_2p8";
0942                         regulator-min-microvolt = <2800000>;
0943                         regulator-max-microvolt = <2800000>;
0944                 };
0945                 vreg_l30a_1p8: l30 {
0946                         regulator-name = "vreg_l30a_1p8";
0947                         regulator-min-microvolt = <1800000>;
0948                         regulator-max-microvolt = <1800000>;
0949                 };
0950                 vreg_l32a_1p8: l32 {
0951                         regulator-name = "vreg_l32a_1p8";
0952                         regulator-min-microvolt = <1800000>;
0953                         regulator-max-microvolt = <1800000>;
0954                 };
0955 
0956                 vreg_lvs1a_1p8: lvs1 {
0957                         regulator-name = "vreg_lvs1a_1p8";
0958                 };
0959 
0960                 vreg_lvs2a_1p8: lvs2 {
0961                         regulator-name = "vreg_lvs2a_1p8";
0962                 };
0963         };
0964 
0965         pmi8994-regulators {
0966                 compatible = "qcom,rpm-pmi8994-regulators";
0967 
0968                 vdd_s1-supply = <&vph_pwr>;
0969                 vdd_s2-supply = <&vph_pwr>;
0970                 vdd_s3-supply = <&vph_pwr>;
0971                 vdd_bst_byp-supply = <&vph_pwr>;
0972 
0973                 vph_pwr_bbyp: boost-bypass {
0974                         regulator-name = "vph_pwr_bbyp";
0975                         regulator-min-microvolt = <3300000>;
0976                         regulator-max-microvolt = <3300000>;
0977                 };
0978 
0979                 vreg_s1b_1p025: s1 {
0980                         regulator-name = "vreg_s1b_1p025";
0981                         regulator-min-microvolt = <1025000>;
0982                         regulator-max-microvolt = <1025000>;
0983                 };
0984         };
0985 };
0986 
0987 &sdhc2 {
0988         /* External SD card */
0989         pinctrl-names = "default", "sleep";
0990         pinctrl-0 = <&sdc2_state_on &sdc2_cd_on>;
0991         pinctrl-1 = <&sdc2_state_off &sdc2_cd_off>;
0992         cd-gpios = <&tlmm 38 GPIO_ACTIVE_LOW>;
0993         vmmc-supply = <&vreg_l21a_2p95>;
0994         vqmmc-supply = <&vreg_l13a_2p95>;
0995         status = "okay";
0996 };
0997 
0998 &q6asmdai {
0999         dai@0 {
1000                 reg = <0>;
1001         };
1002 
1003         dai@1 {
1004                 reg = <1>;
1005         };
1006 
1007         dai@2 {
1008                 reg = <2>;
1009         };
1010 };
1011 
1012 &sound {
1013         compatible = "qcom,apq8096-sndcard";
1014         model = "DB820c";
1015         audio-routing = "RX_BIAS", "MCLK",
1016                 "MM_DL1",  "MultiMedia1 Playback",
1017                 "MM_DL2",  "MultiMedia2 Playback",
1018                 "MultiMedia3 Capture", "MM_UL3";
1019 
1020         mm1-dai-link {
1021                 link-name = "MultiMedia1";
1022                 cpu {
1023                         sound-dai = <&q6asmdai  MSM_FRONTEND_DAI_MULTIMEDIA1>;
1024                 };
1025         };
1026 
1027         mm2-dai-link {
1028                 link-name = "MultiMedia2";
1029                 cpu {
1030                         sound-dai = <&q6asmdai  MSM_FRONTEND_DAI_MULTIMEDIA2>;
1031                 };
1032         };
1033 
1034         mm3-dai-link {
1035                 link-name = "MultiMedia3";
1036                 cpu {
1037                         sound-dai = <&q6asmdai  MSM_FRONTEND_DAI_MULTIMEDIA3>;
1038                 };
1039         };
1040 
1041         hdmi-dai-link {
1042                 link-name = "HDMI";
1043                 cpu {
1044                         sound-dai = <&q6afedai HDMI_RX>;
1045                 };
1046 
1047                 platform {
1048                         sound-dai = <&q6routing>;
1049                 };
1050 
1051                 codec {
1052                         sound-dai = <&hdmi 0>;
1053                 };
1054         };
1055 
1056         slim-dai-link {
1057                 link-name = "SLIM Playback";
1058                 cpu {
1059                         sound-dai = <&q6afedai SLIMBUS_6_RX>;
1060                 };
1061 
1062                 platform {
1063                         sound-dai = <&q6routing>;
1064         };
1065 
1066                 codec {
1067                         sound-dai = <&wcd9335 6>;
1068                 };
1069         };
1070 
1071         slimcap-dai-link {
1072                 link-name = "SLIM Capture";
1073                 cpu {
1074                         sound-dai = <&q6afedai SLIMBUS_0_TX>;
1075                 };
1076 
1077                 platform {
1078                         sound-dai = <&q6routing>;
1079                 };
1080 
1081                 codec {
1082                         sound-dai = <&wcd9335 1>;
1083                 };
1084         };
1085 };
1086 
1087 &ufsphy {
1088         status = "okay";
1089 
1090         vdda-phy-supply = <&vreg_l28a_0p925>;
1091         vdda-pll-supply = <&vreg_l12a_1p8>;
1092         vddp-ref-clk-supply = <&vreg_l25a_1p2>;
1093 };
1094 
1095 &ufshc {
1096         status = "okay";
1097 
1098         vcc-supply = <&vreg_l20a_2p95>;
1099         vccq-supply = <&vreg_l25a_1p2>;
1100         vccq2-supply = <&vreg_s4a_1p8>;
1101 
1102         vcc-max-microamp = <600000>;
1103         vccq-max-microamp = <450000>;
1104         vccq2-max-microamp = <450000>;
1105 };
1106 
1107 &usb2 {
1108         status = "okay";
1109         extcon = <&usb2_id>;
1110 };
1111 
1112 &usb2_dwc3 {
1113         extcon = <&usb2_id>;
1114         dr_mode = "otg";
1115         maximum-speed = "high-speed";
1116 };
1117 
1118 &usb3 {
1119         status = "okay";
1120         extcon = <&usb3_id>;
1121 };
1122 
1123 &usb3_dwc3 {
1124         extcon = <&usb3_id>;
1125         dr_mode = "otg";
1126 };
1127 
1128 &usb3phy {
1129         status = "okay";
1130 
1131         vdda-phy-supply = <&vreg_l28a_0p925>;
1132         vdda-pll-supply = <&vreg_l12a_1p8>;
1133 
1134 };
1135 
1136 &venus {
1137         status = "okay";
1138 };
1139 
1140 &wcd9335 {
1141         clock-names = "mclk", "slimbus";
1142         clocks = <&div1_mclk>,
1143                  <&rpmcc RPM_SMD_BB_CLK1>;
1144 
1145         vdd-buck-supply = <&vreg_s4a_1p8>;
1146         vdd-buck-sido-supply = <&vreg_s4a_1p8>;
1147         vdd-tx-supply = <&vreg_s4a_1p8>;
1148         vdd-rx-supply = <&vreg_s4a_1p8>;
1149         vdd-io-supply = <&vreg_s4a_1p8>;
1150 };