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

	soc {
		serial@7570000 {
			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>;
			};
		};

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

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

		i2c@7577000 {
		/* On Low speed expansion */
			label = "LS-I2C0";
			status = "okay";
		};

		i2c@75b6000 {
		/* On Low speed expansion */
			label = "LS-I2C1";
			status = "okay";
		};

		spi@7575000 {
		/* On Low speed expansion */
			label = "LS-SPI0";
			status = "okay";
		};

		i2c@75b5000 {
		/* On High speed expansion */
			label = "HS-I2C2";
			status = "okay";
		};

		spi@75ba000{
		/* On High speed expansion */
			label = "HS-SPI1";
			status = "okay";
		};

		sdhci@74a4900 {
		/* 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";
		};

		phy@627000 {
			status = "okay";
		};

		ufshc@624000 {
			status = "okay";
		};

		pinctrl@1010000 {
			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 */
		};

		qcom,spmi@400f000 {
			pmic@0 {
				gpios@c000 {
					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";
				};

				mpps@a000 {
					gpio-line-names =
						"VDDPX_BIAS",
						"WIFI_LED",
						"NC",
						"BT_LED",
						"PM_MPP05",
						"PM_MPP06",
						"PM_MPP07",
						"NC";
				};
			};

			pmic@2 {
				gpios@c000 {
					gpio-line-names =
						"NC",
						"SPKR_AMP_EN1",
						"SPKR_AMP_EN2",
						"TP61",
						"NC",
						"USB2_VBUS_DET",
						"NC",
						"NC",
						"NC",
						"NC";
				};
			};
		};

		phy@34000 {
			status = "okay";
		};

		phy@7410000 {
			status = "okay";
		};

		phy@7411000 {
			status = "okay";
		};

		phy@7412000 {
			status = "okay";
		};

		usb@6af8800 {
			status = "okay";
			extcon = <&usb3_id>;

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

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

		usb@76f8800 {
			status = "okay";
			extcon = <&usb2_id>;

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

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

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

		agnoc@0 {
			pcie@600000 {
				status = "okay";
				perst-gpio = <&msmgpio 35 GPIO_ACTIVE_LOW>;
				vddpe-3v3-supply = <&wlan_en>;
			};

			pcie@608000 {
				status = "okay";
				perst-gpio = <&msmgpio 130 GPIO_ACTIVE_LOW>;
			};

			pcie@610000 {
				status = "okay";
				perst-gpio = <&msmgpio 114 GPIO_ACTIVE_LOW>;
			};
		};

		slim_msm: slim@91c0000 {
			ngd@1 {
				wcd9335: codec@1{
					clock-names = "mclk", "slimbus";
					clocks = <&div1_mclk>,
						 <&rpmcc RPM_SMD_BB_CLK1>;
				};
			};
		};

		mdss@900000 {
			status = "okay";

			mdp@901000 {
				status = "okay";
			};

			hdmi-phy@9a0600 {
				status = "okay";

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

			hdmi-tx@9a0000 {
				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>;
				};
				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>;
				};
			};
		};
	};
};

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