// SPDX-License-Identifier: GPL-2.0-only
/*
 * Copyright (c) 2014-2016, The Linux Foundation. All rights reserved.
 */

#include "msm8996.dtsi"
#include "pm8994.dtsi"
#include "pmi8994.dtsi"
#include "apq8096-db820c-pins.dtsi"
#include "apq8096-db820c-pmic-pins.dtsi"
#include <dt-bindings/input/input.h>
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/sound/qcom,q6afe.h>
#include <dt-bindings/sound/qcom,q6asm.h>

/*
 * GPIO name legend: proper name = the GPIO line is used as GPIO
 *         NC      = not connected (pin out but not routed from the chip to
 *                   anything the board)
 *         "[PER]" = pin is muxed for [peripheral] (not GPIO)
 *         LSEC    = Low Speed External Connector
 *         P HSEC  = Primary High Speed External Connector
 *         S HSEC  = Secondary High Speed External Connector
 *         J14     = Camera Connector
 *         TP      = Test Points
 *
 * Line names are taken from the schematic "DragonBoard 820c",
 * drawing no: LM25-P2751-1
 *
 * For the lines routed to the external connectors the
 * lines are named after the 96Boards CE Specification 1.0,
 * Appendix "Expansion Connector Signal Description".
 *
 * When the 96Board naming of a line and the schematic name of
 * the same line are in conflict, the 96Board specification
 * takes precedence, which means that the external UART on the
 * LSEC is named UART0 while the schematic and SoC names this
 * UART3. This is only for the informational lines i.e. "[FOO]",
 * the GPIO named lines "GPIO-A" thru "GPIO-L" are the only
 * ones actually used for GPIO.
 */

/ {
	aliases {
		serial0 = &blsp2_uart1;
		serial1 = &blsp2_uart2;
		serial2 = &blsp1_uart1;
		i2c0	= &blsp1_i2c2;
		i2c1	= &blsp2_i2c1;
		i2c2	= &blsp2_i2c0;
		spi0	= &blsp1_spi0;
		spi1	= &blsp2_spi5;
	};

	chosen {
		stdout-path = "serial0:115200n8";
	};

	clocks {
		compatible = "simple-bus";
		divclk4: divclk4 {
			compatible = "fixed-clock";
			#clock-cells = <0>;
			clock-frequency = <32768>;
			clock-output-names = "divclk4";

			pinctrl-names = "default";
			pinctrl-0 = <&divclk4_pin_a>;
		};

		div1_mclk: divclk1 {
			compatible = "gpio-gate-clock";
			pinctrl-0 = <&audio_mclk>;
			pinctrl-names = "default";
			clocks = <&rpmcc RPM_SMD_DIV_CLK1>;
			#clock-cells = <0>;
			enable-gpios = <&pm8994_gpios 15 0>;
		};
	};
};

&blsp1_uart1 {
	label = "BT-UART";
	status = "okay";
	pinctrl-names = "default", "sleep";
	pinctrl-0 = <&blsp1_uart1_default>;
	pinctrl-1 = <&blsp1_uart1_sleep>;

	bluetooth {
		compatible = "qcom,qca6174-bt";

		/* bt_disable_n gpio */
		enable-gpios = <&pm8994_gpios 19 GPIO_ACTIVE_HIGH>;

		clocks = <&divclk4>;
	};
};

&blsp2_uart1 {
	label = "LS-UART1";
	status = "okay";
	pinctrl-names = "default", "sleep";
	pinctrl-0 = <&blsp2_uart1_2pins_default>;
	pinctrl-1 = <&blsp2_uart1_2pins_sleep>;
};

&blsp2_uart2 {
	label = "LS-UART0";
	status = "disabled";
	pinctrl-names = "default", "sleep";
	pinctrl-0 = <&blsp2_uart2_4pins_default>;
	pinctrl-1 = <&blsp2_uart2_4pins_sleep>;
};

&blsp1_i2c2 {
	/* On Low speed expansion */
	label = "LS-I2C0";
	status = "okay";
};

&blsp2_i2c1 {
	/* On Low speed expansion */
	label = "LS-I2C1";
	status = "okay";
};

&blsp1_spi0 {
	/* On Low speed expansion */
	label = "LS-SPI0";
	status = "okay";
};

&blsp2_i2c0 {
	/* On High speed expansion */
	label = "HS-I2C2";
	status = "okay";
};

&blsp2_spi5 {
	/* On High speed expansion */
	label = "HS-SPI1";
	status = "okay";
};

&camss {
	vdda-supply = <&pm8994_l2>;
};

&sdhc2 {
	/* External SD card */
	pinctrl-names = "default", "sleep";
	pinctrl-0 = <&sdc2_clk_on &sdc2_cmd_on &sdc2_data_on &sdc2_cd_on>;
	pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off &sdc2_cd_off>;
	cd-gpios = <&msmgpio 38 0x1>;
	vmmc-supply = <&pm8994_l21>;
	vqmmc-supply = <&pm8994_l13>;
	status = "okay";
};

&ufsphy {
	status = "okay";

	vdda-phy-supply = <&pm8994_l28>;
	vdda-pll-supply = <&pm8994_l12>;

	vdda-phy-max-microamp = <18380>;
	vdda-pll-max-microamp = <9440>;

	vddp-ref-clk-supply = <&pm8994_l25>;
	vddp-ref-clk-max-microamp = <100>;
	vddp-ref-clk-always-on;
};

&ufshc {
	status = "okay";

	vcc-supply = <&pm8994_l20>;
	vccq-supply = <&pm8994_l25>;
	vccq2-supply = <&pm8994_s4>;

	vcc-max-microamp = <600000>;
	vccq-max-microamp = <450000>;
	vccq2-max-microamp = <450000>;
};

&msmgpio {
	gpio-line-names =
		"[SPI0_DOUT]", /* GPIO_0, BLSP1_SPI_MOSI, LSEC pin 14 */
		"[SPI0_DIN]", /* GPIO_1, BLSP1_SPI_MISO, LSEC pin 10 */
		"[SPI0_CS]", /* GPIO_2, BLSP1_SPI_CS_N, LSEC pin 12 */
		"[SPI0_SCLK]", /* GPIO_3, BLSP1_SPI_CLK, LSEC pin 8 */
		"[UART1_TxD]", /* GPIO_4, BLSP8_UART_TX, LSEC pin 11 */
		"[UART1_RxD]", /* GPIO_5, BLSP8_UART_RX, LSEC pin 13 */
		"[I2C1_SDA]", /* GPIO_6, BLSP8_I2C_SDA, LSEC pin 21 */
		"[I2C1_SCL]", /* GPIO_7, BLSP8_I2C_SCL, LSEC pin 19 */
		"GPIO-H", /* GPIO_8, LCD0_RESET_N, LSEC pin 30 */
		"TP93", /* GPIO_9 */
		"GPIO-G", /* GPIO_10, MDP_VSYNC_P, LSEC pin 29 */
		"[MDP_VSYNC_S]", /* GPIO_11, S HSEC pin 55 */
		"NC", /* GPIO_12 */
		"[CSI0_MCLK]", /* GPIO_13, CAM_MCLK0, P HSEC pin 15 */
		"[CAM_MCLK1]", /* GPIO_14, J14 pin 11 */
		"[CSI1_MCLK]", /* GPIO_15, CAM_MCLK2, P HSEC pin 17 */
		"TP99", /* GPIO_16 */
		"[I2C2_SDA]", /* GPIO_17, CCI_I2C_SDA0, P HSEC pin 34 */
		"[I2C2_SCL]", /* GPIO_18, CCI_I2C_SCL0, P HSEC pin 32 */
		"[CCI_I2C_SDA1]", /* GPIO_19, S HSEC pin 38 */
		"[CCI_I2C_SCL1]", /* GPIO_20, S HSEC pin 36 */
		"FLASH_STROBE_EN", /* GPIO_21, S HSEC pin 5 */
		"FLASH_STROBE_TRIG", /* GPIO_22, S HSEC pin 1 */
		"GPIO-K", /* GPIO_23, CAM2_RST_N, LSEC pin 33 */
		"GPIO-D", /* GPIO_24, LSEC pin 26 */
		"GPIO-I", /* GPIO_25, CAM0_RST_N, LSEC pin 31 */
		"GPIO-J", /* GPIO_26, CAM0_STANDBY_N, LSEC pin 32 */
		"BLSP6_I2C_SDA", /* GPIO_27 */
		"BLSP6_I2C_SCL", /* GPIO_28 */
		"GPIO-B", /* GPIO_29, TS0_RESET_N, LSEC pin 24 */
		"GPIO30", /* GPIO_30, S HSEC pin 4 */
		"HDMI_CEC", /* GPIO_31 */
		"HDMI_DDC_CLOCK", /* GPIO_32 */
		"HDMI_DDC_DATA", /* GPIO_33 */
		"HDMI_HOT_PLUG_DETECT", /* GPIO_34 */
		"PCIE0_RST_N", /* GPIO_35 */
		"PCIE0_CLKREQ_N", /* GPIO_36 */
		"PCIE0_WAKE", /* GPIO_37 */
		"SD_CARD_DET_N", /* GPIO_38 */
		"TSIF1_SYNC", /* GPIO_39, S HSEC pin 48 */
		"W_DISABLE_N", /* GPIO_40 */
		"[BLSP9_UART_TX]", /* GPIO_41 */
		"[BLSP9_UART_RX]", /* GPIO_42 */
		"[BLSP2_UART_CTS_N]", /* GPIO_43 */
		"[BLSP2_UART_RFR_N]", /* GPIO_44 */
		"[BLSP3_UART_TX]", /* GPIO_45 */
		"[BLSP3_UART_RX]", /* GPIO_46 */
		"[I2C0_SDA]", /* GPIO_47, LS_I2C0_SDA, LSEC pin 17 */
		"[I2C0_SCL]", /* GPIO_48, LS_I2C0_SCL, LSEC pin 15 */
		"[UART0_TxD]", /* GPIO_49, BLSP9_UART_TX, LSEC pin 5 */
		"[UART0_RxD]", /* GPIO_50, BLSP9_UART_RX, LSEC pin 7 */
		"[UART0_CTS]", /* GPIO_51, BLSP9_UART_CTS_N, LSEC pin 3 */
		"[UART0_RTS]", /* GPIO_52, BLSP9_UART_RFR_N, LSEC pin 9 */
		"[CODEC_INT1_N]", /* GPIO_53 */
		"[CODEC_INT2_N]", /* GPIO_54 */
		"[BLSP7_I2C_SDA]", /* GPIO_55 */
		"[BLSP7_I2C_SCL]", /* GPIO_56 */
		"MI2S_MCLK", /* GPIO_57, S HSEC pin 3 */
		"[PCM_CLK]", /* GPIO_58, QUA_MI2S_SCK, LSEC pin 18 */
		"[PCM_FS]", /* GPIO_59, QUA_MI2S_WS, LSEC pin 16 */
		"[PCM_DO]", /* GPIO_60, QUA_MI2S_DATA0, LSEC pin 20 */
		"[PCM_DI]", /* GPIO_61, QUA_MI2S_DATA1, LSEC pin 22 */
		"GPIO-E", /* GPIO_62, LSEC pin 27 */
		"TP87", /* GPIO_63 */
		"[CODEC_RST_N]", /* GPIO_64 */
		"[PCM1_CLK]", /* GPIO_65 */
		"[PCM1_SYNC]", /* GPIO_66 */
		"[PCM1_DIN]", /* GPIO_67 */
		"[PCM1_DOUT]", /* GPIO_68 */
		"AUDIO_REF_CLK", /* GPIO_69 */
		"SLIMBUS_CLK", /* GPIO_70 */
		"SLIMBUS_DATA0", /* GPIO_71 */
		"SLIMBUS_DATA1", /* GPIO_72 */
		"NC", /* GPIO_73 */
		"NC", /* GPIO_74 */
		"NC", /* GPIO_75 */
		"NC", /* GPIO_76 */
		"TP94", /* GPIO_77 */
		"NC", /* GPIO_78 */
		"TP95", /* GPIO_79 */
		"GPIO-A", /* GPIO_80, MEMS_RESET_N, LSEC pin 23 */
		"TP88", /* GPIO_81 */
		"TP89", /* GPIO_82 */
		"TP90", /* GPIO_83 */
		"TP91", /* GPIO_84 */
		"[SD_DAT0]", /* GPIO_85, BLSP12_SPI_MOSI, P HSEC pin 1 */
		"[SD_CMD]", /* GPIO_86, BLSP12_SPI_MISO, P HSEC pin 11 */
		"[SD_DAT3]", /* GPIO_87, BLSP12_SPI_CS_N, P HSEC pin 7 */
		"[SD_SCLK]", /* GPIO_88, BLSP12_SPI_CLK, P HSEC pin 9 */
		"TSIF1_CLK", /* GPIO_89, S HSEC pin 42 */
		"TSIF1_EN", /* GPIO_90, S HSEC pin 46 */
		"TSIF1_DATA", /* GPIO_91, S HSEC pin 44 */
		"NC", /* GPIO_92 */
		"TSIF2_CLK", /* GPIO_93, S HSEC pin 52 */
		"TSIF2_EN", /* GPIO_94, S HSEC pin 56 */
		"TSIF2_DATA", /* GPIO_95, S HSEC pin 54 */
		"TSIF2_SYNC", /* GPIO_96, S HSEC pin 58 */
		"NC", /* GPIO_97 */
		"CAM1_STANDBY_N", /* GPIO_98 */
		"NC", /* GPIO_99 */
		"NC", /* GPIO_100 */
		"[LCD1_RESET_N]", /* GPIO_101, S HSEC pin 51 */
		"BOOT_CONFIG1", /* GPIO_102 */
		"USB_HUB_RESET", /* GPIO_103 */
		"CAM1_RST_N", /* GPIO_104 */
		"NC", /* GPIO_105 */
		"NC", /* GPIO_106 */
		"NC", /* GPIO_107 */
		"NC", /* GPIO_108 */
		"NC", /* GPIO_109 */
		"NC", /* GPIO_110 */
		"NC", /* GPIO_111 */
		"NC", /* GPIO_112 */
		"PMI8994_BUA", /* GPIO_113 */
		"PCIE2_RST_N", /* GPIO_114 */
		"PCIE2_CLKREQ_N", /* GPIO_115 */
		"PCIE2_WAKE", /* GPIO_116 */
		"SSC_IRQ_0", /* GPIO_117 */
		"SSC_IRQ_1", /* GPIO_118 */
		"SSC_IRQ_2", /* GPIO_119 */
		"NC", /* GPIO_120 */
		"GPIO121", /* GPIO_121, S HSEC pin 2 */
		"NC", /* GPIO_122 */
		"SSC_IRQ_6", /* GPIO_123 */
		"SSC_IRQ_7", /* GPIO_124 */
		"GPIO-C", /* GPIO_125, TS_INT0, LSEC pin 25 */
		"BOOT_CONFIG5", /* GPIO_126 */
		"NC", /* GPIO_127 */
		"NC", /* GPIO_128 */
		"BOOT_CONFIG7", /* GPIO_129 */
		"PCIE1_RST_N", /* GPIO_130 */
		"PCIE1_CLKREQ_N", /* GPIO_131 */
		"PCIE1_WAKE", /* GPIO_132 */
		"GPIO-L", /* GPIO_133, CAM2_STANDBY_N, LSEC pin 34 */
		"NC", /* GPIO_134 */
		"NC", /* GPIO_135 */
		"BOOT_CONFIG8", /* GPIO_136 */
		"NC", /* GPIO_137 */
		"NC", /* GPIO_138 */
		"GPS_SSBI2", /* GPIO_139 */
		"GPS_SSBI1", /* GPIO_140 */
		"NC", /* GPIO_141 */
		"NC", /* GPIO_142 */
		"NC", /* GPIO_143 */
		"BOOT_CONFIG6", /* GPIO_144 */
		"NC", /* GPIO_145 */
		"NC", /* GPIO_146 */
		"NC", /* GPIO_147 */
		"NC", /* GPIO_148 */
		"NC"; /* GPIO_149 */
};

&pm8994_gpios {
	gpio-line-names =
		"NC",
		"KEY_VOLP_N",
		"NC",
		"BL1_PWM",
		"GPIO-F", /* BL0_PWM, LSEC pin 28 */
		"BL1_EN",
		"NC",
		"WLAN_EN",
		"NC",
		"NC",
		"NC",
		"NC",
		"NC",
		"NC",
		"DIVCLK1",
		"DIVCLK2",
		"DIVCLK3",
		"DIVCLK4",
		"BT_EN",
		"PMIC_SLB",
		"PMIC_BUA",
		"USB_VBUS_DET";
};

&pm8994_mpps {
	gpio-line-names =
		"VDDPX_BIAS",
		"WIFI_LED",
		"NC",
		"BT_LED",
		"PM_MPP05",
		"PM_MPP06",
		"PM_MPP07",
		"NC";
};

&pmi8994_gpios {
	gpio-line-names =
		"NC",
		"SPKR_AMP_EN1",
		"SPKR_AMP_EN2",
		"TP61",
		"NC",
		"USB2_VBUS_DET",
		"NC",
		"NC",
		"NC",
		"NC";
};

&pcie_phy {
	status = "okay";

	vdda-phy-supply = <&pm8994_l28>;
	vdda-pll-supply = <&pm8994_l12>;
};

&usb3phy {
	status = "okay";

	vdda-phy-supply = <&pm8994_l28>;
	vdda-pll-supply = <&pm8994_l12>;

};

&hsusb_phy1 {
	status = "okay";

	vdda-pll-supply = <&pm8994_l12>;
	vdda-phy-dpdm-supply = <&pm8994_l24>;
};

&hsusb_phy2 {
	status = "okay";

	vdda-pll-supply = <&pm8994_l12>;
	vdda-phy-dpdm-supply = <&pm8994_l24>;
};

&usb3 {
	status = "okay";
	extcon = <&usb3_id>;

	dwc3@6a00000 {
		extcon = <&usb3_id>;
		dr_mode = "otg";
	};
};

&usb2 {
	status = "okay";
	extcon = <&usb2_id>;

	dwc3@7600000 {
		extcon = <&usb2_id>;
		dr_mode = "otg";
		maximum-speed = "high-speed";
	};
};

&pcie0 {
	status = "okay";
	perst-gpio = <&msmgpio 35 GPIO_ACTIVE_LOW>;
	vddpe-3v3-supply = <&wlan_en>;
	vdda-supply = <&pm8994_l28>;
};

&pcie1 {
	status = "okay";
	perst-gpio = <&msmgpio 130 GPIO_ACTIVE_LOW>;
	vdda-supply = <&pm8994_l28>;
};

&pcie2 {
	status = "okay";
	perst-gpio = <&msmgpio 114 GPIO_ACTIVE_LOW>;
	vdda-supply = <&pm8994_l28>;
};

&wcd9335 {
	clock-names = "mclk", "slimbus";
	clocks = <&div1_mclk>,
		 <&rpmcc RPM_SMD_BB_CLK1>;

	vdd-buck-supply = <&pm8994_s4>;
	vdd-buck-sido-supply = <&pm8994_s4>;
	vdd-tx-supply = <&pm8994_s4>;
	vdd-rx-supply = <&pm8994_s4>;
	vdd-io-supply = <&pm8994_s4>;
};

&mdss {
	status = "okay";
};

&mdp {
	status = "okay";
};

&hdmi_phy {
	status = "okay";

	vddio-supply = <&pm8994_l12>;
	vcca-supply = <&pm8994_l28>;
	#phy-cells = <0>;
};

&hdmi {
	status = "okay";

	pinctrl-names = "default", "sleep";
	pinctrl-0 = <&hdmi_hpd_active &hdmi_ddc_active>;
	pinctrl-1 = <&hdmi_hpd_suspend &hdmi_ddc_suspend>;

	core-vdda-supply = <&pm8994_l12>;
	core-vcc-supply = <&pm8994_s4>;
};

/ {
	gpio_keys {
		compatible = "gpio-keys";
		#address-cells = <1>;
		#size-cells = <0>;
		autorepeat;

		pinctrl-names = "default";
		pinctrl-0 = <&volume_up_gpio>;

		button@0 {
			label = "Volume Up";
			linux,code = <KEY_VOLUMEUP>;
			gpios = <&pm8994_gpios 2 GPIO_ACTIVE_LOW>;
		};
	};

	rpm-glink {
		rpm_requests {
			pm8994-regulators {
				vdd_l1-supply = <&pm8994_s3>;
				vdd_l2_l26_l28-supply = <&pm8994_s3>;
				vdd_l3_l11-supply = <&pm8994_s3>;
				vdd_l4_l27_l31-supply = <&pm8994_s3>;
				vdd_l5_l7-supply = <&pm8994_s5>;
				vdd_l14_l15-supply = <&pm8994_s5>;
				vdd_l20_l21-supply = <&pm8994_s5>;
				vdd_l25-supply = <&pm8994_s3>;

				s3 {
					regulator-min-microvolt = <1300000>;
					regulator-max-microvolt = <1300000>;
				};

				/**
				 * 1.8v required on LS expansion
				 * for mezzanine boards
				 */
				s4 {
					regulator-min-microvolt = <1800000>;
					regulator-max-microvolt = <1800000>;
					regulator-always-on;
				};
				s5 {
					regulator-min-microvolt = <2150000>;
					regulator-max-microvolt = <2150000>;
				};
				s7 {
					regulator-min-microvolt = <800000>;
					regulator-max-microvolt = <800000>;
				};

				l1 {
					regulator-min-microvolt = <1000000>;
					regulator-max-microvolt = <1000000>;
				};
				l2 {
					regulator-min-microvolt = <1250000>;
					regulator-max-microvolt = <1250000>;
				};
				l3 {
					regulator-min-microvolt = <850000>;
					regulator-max-microvolt = <850000>;
				};
				l4 {
					regulator-min-microvolt = <1225000>;
					regulator-max-microvolt = <1225000>;
				};
				l6 {
					regulator-min-microvolt = <1200000>;
					regulator-max-microvolt = <1200000>;
				};
				l8 {
					regulator-min-microvolt = <1800000>;
					regulator-max-microvolt = <1800000>;
				};
				l9 {
					regulator-min-microvolt = <1800000>;
					regulator-max-microvolt = <1800000>;
				};
				l10 {
					regulator-min-microvolt = <1800000>;
					regulator-max-microvolt = <1800000>;
				};
				l11 {
					regulator-min-microvolt = <1150000>;
					regulator-max-microvolt = <1150000>;
				};
				l12 {
					regulator-min-microvolt = <1800000>;
					regulator-max-microvolt = <1800000>;
				};
				l13 {
					regulator-min-microvolt = <1800000>;
					regulator-max-microvolt = <2950000>;
				};
				l14 {
					regulator-min-microvolt = <1800000>;
					regulator-max-microvolt = <1800000>;
				};
				l15 {
					regulator-min-microvolt = <1800000>;
					regulator-max-microvolt = <1800000>;
				};
				l16 {
					regulator-min-microvolt = <2700000>;
					regulator-max-microvolt = <2700000>;
				};
				l17 {
					regulator-min-microvolt = <2500000>;
					regulator-max-microvolt = <2500000>;
				};
				l18 {
					regulator-min-microvolt = <2700000>;
					regulator-max-microvolt = <2900000>;
				};
				l19 {
					regulator-min-microvolt = <3000000>;
					regulator-max-microvolt = <3000000>;
				};
				l20 {
					regulator-min-microvolt = <2950000>;
					regulator-max-microvolt = <2950000>;
					regulator-allow-set-load;
				};
				l21 {
					regulator-min-microvolt = <2950000>;
					regulator-max-microvolt = <2950000>;
					regulator-allow-set-load;
					regulator-system-load = <200000>;
				};
				l22 {
					regulator-min-microvolt = <3300000>;
					regulator-max-microvolt = <3300000>;
				};
				l23 {
					regulator-min-microvolt = <2800000>;
					regulator-max-microvolt = <2800000>;
				};
				l24 {
					regulator-min-microvolt = <3075000>;
					regulator-max-microvolt = <3075000>;
				};
				l25 {
					regulator-min-microvolt = <1200000>;
					regulator-max-microvolt = <1200000>;
					regulator-allow-set-load;
				};
				l27 {
					regulator-min-microvolt = <1000000>;
					regulator-max-microvolt = <1000000>;
				};
				l28 {
					regulator-min-microvolt = <925000>;
					regulator-max-microvolt = <925000>;
					regulator-allow-set-load;
				};
				l29 {
					regulator-min-microvolt = <2800000>;
					regulator-max-microvolt = <2800000>;
				};
				l30 {
					regulator-min-microvolt = <1800000>;
					regulator-max-microvolt = <1800000>;
				};
				l32 {
					regulator-min-microvolt = <1800000>;
					regulator-max-microvolt = <1800000>;
				};
			};
		};
	};

	usb2_id: usb2-id {
		compatible = "linux,extcon-usb-gpio";
		id-gpio = <&pmi8994_gpios 6 GPIO_ACTIVE_HIGH>;
		pinctrl-names = "default";
		pinctrl-0 = <&usb2_vbus_det_gpio>;
	};

	usb3_id: usb3-id {
		compatible = "linux,extcon-usb-gpio";
		id-gpio = <&pm8994_gpios 22 GPIO_ACTIVE_HIGH>;
		pinctrl-names = "default";
		pinctrl-0 = <&usb3_vbus_det_gpio>;
	};

	wlan_en: wlan-en-1-8v {
		pinctrl-names = "default";
		pinctrl-0 = <&wlan_en_gpios>;
		compatible = "regulator-fixed";
		regulator-name = "wlan-en-regulator";
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <1800000>;

		gpio = <&pm8994_gpios 8 0>;

		/* WLAN card specific delay */
		startup-delay-us = <70000>;
		enable-active-high;
	};
};

&spmi_bus {
	pmic@0 {
		pon@800 {
			resin {
				compatible = "qcom,pm8941-resin";
				interrupts = <0x0 0x8 1 IRQ_TYPE_EDGE_BOTH>;
				debounce = <15625>;
				bias-pull-up;
				linux,code = <KEY_VOLUMEDOWN>;
			};
		};
	};
};

&sound {
	compatible = "qcom,apq8096-sndcard";
	model = "DB820c";
	audio-routing =	"RX_BIAS", "MCLK";

	mm1-dai-link {
		link-name = "MultiMedia1";
		cpu {
			sound-dai = <&q6asmdai  MSM_FRONTEND_DAI_MULTIMEDIA1>;
		};
	};

	mm2-dai-link {
		link-name = "MultiMedia2";
		cpu {
			sound-dai = <&q6asmdai  MSM_FRONTEND_DAI_MULTIMEDIA2>;
		};
	};

	mm3-dai-link {
		link-name = "MultiMedia3";
		cpu {
			sound-dai = <&q6asmdai  MSM_FRONTEND_DAI_MULTIMEDIA3>;
		};
	};

	hdmi-dai-link {
		link-name = "HDMI";
		cpu {
			sound-dai = <&q6afedai HDMI_RX>;
		};

		platform {
			sound-dai = <&q6routing>;
		};

		codec {
			sound-dai = <&hdmi 0>;
		};
	};

	slim-dai-link {
		link-name = "SLIM Playback";
		cpu {
			sound-dai = <&q6afedai SLIMBUS_6_RX>;
		};

		platform {
			sound-dai = <&q6routing>;
	};

		codec {
			sound-dai = <&wcd9335 6>;
		};
	};

	slimcap-dai-link {
		link-name = "SLIM Capture";
		cpu {
			sound-dai = <&q6afedai SLIMBUS_0_TX>;
		};

		platform {
			sound-dai = <&q6routing>;
		};

		codec {
			sound-dai = <&wcd9335 1>;
		};
	};
};
