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 };