/*
 * Copyright (c) 2017, The Linux Foundation. All rights reserved.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 and
 * only version 2 as published by the Free Software Foundation.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 */
#include "sdm670-wcd.dtsi"
#include "sdm670-wsa881x.dtsi"
#include <dt-bindings/clock/qcom,audio-ext-clk.h>

&tavil_snd {
	qcom,msm-mi2s-master = <1>, <1>, <1>, <1>, <1>;
	qcom,audio-routing =
		"AIF4 VI", "MCLK",
		"RX_BIAS", "MCLK",
		"MADINPUT", "MCLK",
		"hifi amp", "LINEOUT1",
		"hifi amp", "LINEOUT2",
		"AMIC2", "MIC BIAS2",
		"MIC BIAS2", "Headset Mic",
		"AMIC3", "MIC BIAS2",
		"MIC BIAS2", "ANCRight Headset Mic",
		"AMIC4", "MIC BIAS2",
		"MIC BIAS2", "ANCLeft Headset Mic",
		"AMIC5", "MIC BIAS3",
		"MIC BIAS3", "Handset Mic",
		"DMIC0", "MIC BIAS1",
		"MIC BIAS1", "Digital Mic0",
		"DMIC1", "MIC BIAS1",
		"MIC BIAS1", "Digital Mic1",
		"DMIC2", "MIC BIAS3",
		"MIC BIAS3", "Digital Mic2",
		"DMIC3", "MIC BIAS3",
		"MIC BIAS3", "Digital Mic3",
		"DMIC4", "MIC BIAS4",
		"MIC BIAS4", "Digital Mic4",
		"DMIC5", "MIC BIAS4",
		"MIC BIAS4", "Digital Mic5",
		"SpkrLeft IN", "SPK1 OUT",
		"SpkrRight IN", "SPK2 OUT";

	qcom,msm-mbhc-hphl-swh = <1>;
	qcom,msm-mbhc-gnd-swh = <1>;
	qcom,hph-en0-gpio = <&tavil_hph_en0>;
	qcom,hph-en1-gpio = <&tavil_hph_en1>;
	qcom,msm-mclk-freq = <9600000>;
	asoc-codec = <&stub_codec>, <&ext_disp_audio_codec>;
	asoc-codec-names = "msm-stub-codec.1", "msm-ext-disp-audio-codec-rx";
	qcom,wsa-max-devs = <2>;
	qcom,wsa-devs = <&wsa881x_0211>, <&wsa881x_0212>,
		<&wsa881x_0213>, <&wsa881x_0214>;
	qcom,wsa-aux-dev-prefix = "SpkrLeft", "SpkrRight",
		"SpkrLeft", "SpkrRight";
};

&int_codec {
	qcom,audio-routing =
		"RX_BIAS", "INT_MCLK0",
		"SPK_RX_BIAS", "INT_MCLK0",
		"INT_LDO_H", "INT_MCLK0",
		"RX_I2S_CLK", "INT_MCLK0",
		"TX_I2S_CLK", "INT_MCLK0",
		"MIC BIAS External", "Handset Mic",
		"MIC BIAS External2", "Headset Mic",
		"MIC BIAS External", "Secondary Mic",
		"AMIC1", "MIC BIAS External",
		"AMIC2", "MIC BIAS External2",
		"AMIC3", "MIC BIAS External",
		"DMIC1", "MIC BIAS External",
		"MIC BIAS External", "Digital Mic1",
		"DMIC2", "MIC BIAS External",
		"MIC BIAS External", "Digital Mic2",
		"DMIC3", "MIC BIAS External",
		"MIC BIAS External", "Digital Mic3",
		"DMIC4", "MIC BIAS External",
		"MIC BIAS External", "Digital Mic4",
		"SpkrLeft IN", "SPK1 OUT",
		"SpkrRight IN", "SPK2 OUT",
		"PDM_IN_RX1", "PDM_OUT_RX1",
		"PDM_IN_RX2", "PDM_OUT_RX2",
		"PDM_IN_RX3", "PDM_OUT_RX3",
		"ADC1_IN", "ADC1_OUT",
		"ADC2_IN", "ADC2_OUT",
		"ADC3_IN", "ADC3_OUT";

	qcom,msm-mi2s-master = <1>, <1>, <1>, <1>, <1>;
	qcom,msm-mclk-freq = <9600000>;
	qcom,msm-mbhc-hphl-swh = <1>;
	qcom,msm-mbhc-gnd-swh = <1>;
	qcom,msm-micbias2-ext-cap;
	qcom,msm-hs-micbias-type = "external";
	qcom,cdc-pdm-gpios = <&cdc_pdm_gpios>;
	qcom,cdc-comp-gpios = <&cdc_comp_gpios>;
	qcom,cdc-dmic-gpios = <&cdc_dmic_gpios>;

	asoc-codec = <&stub_codec>, <&msm_digital_codec>,
		     <&pmic_analog_codec>, <&msm_sdw_codec>,
		     <&ext_disp_audio_codec>;
	asoc-codec-names = "msm-stub-codec.1", "msm-dig-codec",
			   "analog-codec", "msm_sdw_codec",
			   "msm-ext-disp-audio-codec-rx";

	qcom,wsa-max-devs = <2>;
	qcom,wsa-devs = <&wsa881x_211_en>, <&wsa881x_212_en>,
			<&wsa881x_213_en>, <&wsa881x_214_en>;
	qcom,wsa-aux-dev-prefix = "SpkrLeft", "SpkrRight",
				  "SpkrLeft", "SpkrRight";
};

&soc {
	wcd_usbc_analog_en1_gpio: msm_cdc_pinctrl_usbc_audio_en1 {
		compatible = "qcom,msm-cdc-pinctrl";
		pinctrl-names = "aud_active", "aud_sleep";
		pinctrl-0 = <&wcd_usbc_analog_en1_active>;
		pinctrl-1 = <&wcd_usbc_analog_en1_idle>;
	};

	cdc_pdm_gpios: cdc_pdm_pinctrl {
		compatible = "qcom,msm-cdc-pinctrl";
		pinctrl-names = "aud_active", "aud_sleep";
		pinctrl-0 = <&cdc_pdm_clk_active &cdc_pdm_sync_active
			     &cdc_pdm_rx0_active &cdc_pdm_rx1_2_active
			     &cdc_pdm_2_gpios_active>;
		pinctrl-1 = <&cdc_pdm_clk_sleep &cdc_pdm_sync_sleep
			     &cdc_pdm_rx0_sleep &cdc_pdm_rx1_2_sleep
			     &cdc_pdm_2_gpios_sleep>;
		qcom,lpi-gpios;
	};

	cdc_comp_gpios: cdc_comp_pinctrl {
		compatible = "qcom,msm-cdc-pinctrl";
		pinctrl-names = "aud_active", "aud_sleep";
		pinctrl-0 = <&cdc_rx0_comp_active &cdc_rx1_comp_active>;
		pinctrl-1 = <&cdc_rx0_comp_sleep &cdc_rx1_comp_sleep>;
		qcom,lpi-gpios;
	};

	cdc_dmic_gpios: cdc_dmic_pinctrl {
		compatible = "qcom,msm-cdc-pinctrl";
		pinctrl-names = "aud_active", "aud_sleep";
		pinctrl-0 = <&cdc_dmic12_gpios_active
			     &cdc_dmic34_gpios_active>;
		pinctrl-1 = <&cdc_dmic12_gpios_sleep
			     &cdc_dmic34_gpios_sleep>;
		qcom,lpi-gpios;
	};

	cdc_sdw_gpios: sdw_clk_data_pinctrl {
		compatible = "qcom,msm-cdc-pinctrl";
		pinctrl-names = "aud_active", "aud_sleep";
		pinctrl-0 = <&sdw_clk_active &sdw_data_active>;
		pinctrl-1 = <&sdw_clk_sleep &sdw_data_sleep>;
	};

	wsa_spkr_en1: wsa_spkr_en1_pinctrl {
		compatible = "qcom,msm-cdc-pinctrl";
		pinctrl-names = "aud_active", "aud_sleep";
		pinctrl-0 = <&spkr_1_sd_n_active>;
		pinctrl-1 = <&spkr_1_sd_n_sleep>;
	};

	wsa_spkr_en2: wsa_spkr_en2_pinctrl {
		compatible = "qcom,msm-cdc-pinctrl";
		pinctrl-names = "aud_active", "aud_sleep";
		pinctrl-0 = <&spkr_2_sd_n_active>;
		pinctrl-1 = <&spkr_2_sd_n_sleep>;
	};

	msm_sdw_codec: msm-sdw-codec@62ec1000 {
		status = "okay";
		compatible = "qcom,msm-sdw-codec";
		reg = <0x62ec1000 0x0>;
		interrupts = <0 88 0>;
		interrupt-names = "swr_master_irq";
		qcom,cdc-sdw-gpios = <&cdc_sdw_gpios>;

		swr_master {
			compatible = "qcom,swr-wcd";
			#address-cells = <2>;
			#size-cells = <0>;

			wsa881x_211_en: wsa881x_en@20170211 {
				compatible = "qcom,wsa881x";
				reg = <0x0 0x20170211>;
				qcom,spkr-sd-n-node = <&wsa_spkr_en1>;
			};

			wsa881x_212_en: wsa881x_en@20170212 {
				compatible = "qcom,wsa881x";
				reg = <0x0 0x20170212>;
				qcom,spkr-sd-n-node = <&wsa_spkr_en2>;
			};

			wsa881x_213_en: wsa881x_en@21170213 {
				compatible = "qcom,wsa881x";
				reg = <0x0 0x21170213>;
				qcom,spkr-sd-n-node = <&wsa_spkr_en1>;
			};

			wsa881x_214_en: wsa881x_en@21170214 {
				compatible = "qcom,wsa881x";
				reg = <0x0 0x21170214>;
				qcom,spkr-sd-n-node = <&wsa_spkr_en2>;
			};
		};
	};

	wcd9xxx_intc: wcd9xxx-irq {
		status = "disabled";
		compatible = "qcom,wcd9xxx-irq";
		interrupt-controller;
		#interrupt-cells = <1>;
		interrupt-parent = <&tlmm>;
		qcom,gpio-connect = <&tlmm 80 0>;
		pinctrl-names = "default";
		pinctrl-0 = <&wcd_intr_default>;
	};

	clock_audio_lnbb: audio_ext_clk_lnbb {
		status = "disabled";
		compatible = "qcom,audio-ref-clk";
		clock-names = "osr_clk";
		clocks = <&clock_rpmh RPMH_LN_BB_CLK2>;
		qcom,node_has_rpm_clock;
		#clock-cells = <1>;
	};

	wcd_rst_gpio: msm_cdc_pinctrl@64 {
		status = "disabled";
		compatible = "qcom,msm-cdc-pinctrl";
		pinctrl-names = "aud_active", "aud_sleep";
		pinctrl-0 = <&lpi_cdc_reset_active>;
		pinctrl-1 = <&lpi_cdc_reset_sleep>;
		qcom,lpi-gpios;
	};

	wdsp_mgr: qcom,wcd-dsp-mgr {
		compatible = "qcom,wcd-dsp-mgr";
		qcom,wdsp-components = <&wcd934x_cdc 0>,
				       <&wcd_spi_0 1>,
				       <&glink_spi_xprt_wdsp 2>;
					qcom,img-filename = "cpe_9340";
	};

	wdsp_glink: qcom,wcd-dsp-glink {
		compatible = "qcom,wcd-dsp-glink";
	};
};

&slim_aud {
	wcd934x_cdc: tavil_codec {
		status = "disabled";
		compatible = "qcom,tavil-slim-pgd";
		elemental-addr = [00 01 50 02 17 02];

		interrupt-parent = <&wcd9xxx_intc>;
		interrupts = <0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
			      17 18 19 20 21 22 23 24 25 26 27 28 29
			      30 31>;

		qcom,wcd-rst-gpio-node = <&wcd_rst_gpio>;

		clock-names = "wcd_clk";
		clocks = <&clock_audio_lnbb AUDIO_PMIC_LNBB_CLK>;

		cdc-vdd-mic-bias-supply = <&pm660l_bob>;
		qcom,cdc-vdd-mic-bias-voltage = <3312000 3312000>;
		qcom,cdc-vdd-mic-bias-current = <30400>;

		qcom,cdc-static-supplies = "cdc-vdd-mic-bias";

		qcom,cdc-micbias1-mv = <1800>;
		qcom,cdc-micbias2-mv = <1800>;
		qcom,cdc-micbias3-mv = <1800>;
		qcom,cdc-micbias4-mv = <1800>;

		qcom,cdc-mclk-clk-rate = <9600000>;
		qcom,cdc-slim-ifd = "tavil-slim-ifd";
		qcom,cdc-slim-ifd-elemental-addr = [00 00 50 02 17 02];
		qcom,cdc-dmic-sample-rate = <4800000>;
		qcom,cdc-mad-dmic-rate = <600000>;

		qcom,wdsp-cmpnt-dev-name = "tavil_codec";

		wcd_spi_0: wcd_spi {
			compatible = "qcom,wcd-spi-v2";
			qcom,master-bus-num = <0>;
			qcom,chip-select = <0>;
			qcom,max-frequency = <24000000>;
			qcom,mem-base-addr = <0x100000>;
		};
	};
};

&pm660l_3 {
	pmic_analog_codec: analog-codec@f000 {
		status = "okay";
		compatible = "qcom,pmic-analog-codec";
		reg = <0xf000 0x200>;
		#address-cells = <2>;
		#size-cells = <0>;
		interrupt-parent = <&spmi_bus>;
		interrupts = <0x3 0xf0 0x0 IRQ_TYPE_NONE>,
			     <0x3 0xf0 0x1 IRQ_TYPE_NONE>,
			     <0x3 0xf0 0x2 IRQ_TYPE_NONE>,
			     <0x3 0xf0 0x3 IRQ_TYPE_NONE>,
			     <0x3 0xf0 0x4 IRQ_TYPE_NONE>,
			     <0x3 0xf0 0x5 IRQ_TYPE_NONE>,
			     <0x3 0xf0 0x6 IRQ_TYPE_NONE>,
			     <0x3 0xf0 0x7 IRQ_TYPE_NONE>,
			     <0x3 0xf1 0x0 IRQ_TYPE_NONE>,
			     <0x3 0xf1 0x1 IRQ_TYPE_NONE>,
			     <0x3 0xf1 0x2 IRQ_TYPE_NONE>,
			     <0x3 0xf1 0x3 IRQ_TYPE_NONE>,
			     <0x3 0xf1 0x4 IRQ_TYPE_NONE>,
			     <0x3 0xf1 0x5 IRQ_TYPE_NONE>;
		interrupt-names = "spk_cnp_int",
				   "spk_clip_int",
				   "spk_ocp_int",
				   "ins_rem_det1",
				   "but_rel_det",
				   "but_press_det",
				   "ins_rem_det",
				   "mbhc_int",
				   "ear_ocp_int",
				   "hphr_ocp_int",
				   "hphl_ocp_det",
				   "ear_cnp_int",
				   "hphr_cnp_int",
				   "hphl_cnp_int";

		cdc-vdda-cp-supply = <&pm660_s4>;
		qcom,cdc-vdda-cp-voltage = <1900000 2050000>;
		qcom,cdc-vdda-cp-current = <50000>;

		cdc-vdd-pa-supply = <&pm660_s4>;
		qcom,cdc-vdd-pa-voltage = <2040000 2040000>;
		qcom,cdc-vdd-pa-current = <260000>;

		cdc-vdd-mic-bias-supply = <&pm660l_l7>;
		qcom,cdc-vdd-mic-bias-voltage = <3088000 3088000>;
		qcom,cdc-vdd-mic-bias-current = <5000>;

		qcom,cdc-mclk-clk-rate = <9600000>;

		qcom,cdc-static-supplies = "cdc-vdda-cp",
					   "cdc-vdd-pa";

		qcom,cdc-on-demand-supplies = "cdc-vdd-mic-bias";

		/*
		 * Not marking address @ as driver searches this child
		 * with name msm-dig-codec
		 */
		msm_digital_codec: msm-dig-codec {
			compatible = "qcom,msm-digital-codec";
			reg = <0x62ec0000 0x0>;
		};
	};
};
