Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 78254da7 authored by Soumya Managoli's avatar Soumya Managoli
Browse files

ARM: dts: msm: Snd node changes for sdm660



Enable audio support on sdm660 for internal
and external audio codecs variants.

Change-Id: I3d270bae49b7bb08b1afb10fe6b36b730829aed5
Signed-off-by: default avatarSoumya Managoli <smanag@codeaurora.org>
parent 7ad88647
Loading
Loading
Loading
Loading
+66 −226
Original line number Diff line number Diff line
/*
 * Copyright (c) 2015-2017, 2019 The Linux Foundation. All rights reserved.
 * Copyright (c) 2015-2017, 2019-2020 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
@@ -75,6 +75,10 @@

	wdsp_glink: qcom,wcd-dsp-glink {
		compatible = "qcom,wcd-dsp-glink";
		qcom,wdsp-channels = "g_glink_ctrl",
				     "g_glink_persistent_data_nild",
				     "g_glink_persistent_data_ild",
				     "g_glink_audio_data";
	};

	compress: qcom,msm-compress-dsp {
@@ -141,9 +145,9 @@
			qcom,msm-mi2s-tx-lines = <3>;
		};

		dai_mi2s5: qcom,msm-dai-q6-mi2s-quin {
		dai_mi2s4: qcom,msm-dai-q6-mi2s-quin {
			compatible = "qcom,msm-dai-q6-mi2s";
			qcom,msm-dai-q6-mi2s-dev-id = <5>;
			qcom,msm-dai-q6-mi2s-dev-id = <4>;
			qcom,msm-mi2s-rx-lines = <1>;
			qcom,msm-mi2s-tx-lines = <2>;
		};
@@ -427,12 +431,18 @@
		qcom,msm-auxpcm-interface = "quaternary";
		qcom,msm-cpudai-afe-clk-ver = <2>;
	};

	qcom,msm-audio-ion {
		compatible = "qcom,msm-audio-ion";
		qcom,smmu-version = <2>;
		qcom,smmu-enabled;
		iommus = <&lpass_q6_smmu 1>;
	dai_quin_auxpcm: qcom,msm-quin-auxpcm {
		compatible = "qcom,msm-auxpcm-dev";
		qcom,msm-cpudai-auxpcm-mode = <0>, <0>;
		qcom,msm-cpudai-auxpcm-sync = <1>, <1>;
		qcom,msm-cpudai-auxpcm-frame = <5>, <4>;
		qcom,msm-cpudai-auxpcm-quant = <2>, <2>;
		qcom,msm-cpudai-auxpcm-num-slots = <1>, <1>;
		qcom,msm-cpudai-auxpcm-slot-mapping = <1>, <1>;
		qcom,msm-cpudai-auxpcm-data = <0>, <0>;
		qcom,msm-cpudai-auxpcm-pcm-clk-rate = <2048000>, <2048000>;
		qcom,msm-auxpcm-interface = "quinary";
		qcom,msm-cpudai-afe-clk-ver = <2>;
	};

	qcom,msm-adsp-loader {
@@ -592,6 +602,44 @@
		};
	};

	tdm_quin_rx: qcom,msm-dai-tdm-quin-rx {
		compatible = "qcom,msm-dai-tdm";
		qcom,msm-cpudai-tdm-group-id = <37184>;
		qcom,msm-cpudai-tdm-group-num-ports = <1>;
		qcom,msm-cpudai-tdm-group-port-id = <36928>;
		qcom,msm-cpudai-tdm-clk-rate = <1536000>;
		qcom,msm-cpudai-tdm-clk-internal = <1>;
		qcom,msm-cpudai-tdm-sync-mode = <1>;
		qcom,msm-cpudai-tdm-sync-src = <1>;
		qcom,msm-cpudai-tdm-data-out = <0>;
		qcom,msm-cpudai-tdm-invert-sync = <1>;
		qcom,msm-cpudai-tdm-data-delay = <1>;
		dai_quin_tdm_rx_0: qcom,msm-dai-q6-tdm-quin-rx-0 {
			compatible = "qcom,msm-dai-q6-tdm";
			qcom,msm-cpudai-tdm-dev-id = <36928>;
			qcom,msm-cpudai-tdm-data-align = <0>;
		};
	};

	tdm_quin_tx: qcom,msm-dai-tdm-quin-tx {
		compatible = "qcom,msm-dai-tdm";
		qcom,msm-cpudai-tdm-group-id = <37185>;
		qcom,msm-cpudai-tdm-group-num-ports = <1>;
		qcom,msm-cpudai-tdm-group-port-id = <36929>;
		qcom,msm-cpudai-tdm-clk-rate = <1536000>;
		qcom,msm-cpudai-tdm-clk-internal = <1>;
		qcom,msm-cpudai-tdm-sync-mode = <1>;
		qcom,msm-cpudai-tdm-sync-src = <1>;
		qcom,msm-cpudai-tdm-data-out = <0>;
		qcom,msm-cpudai-tdm-invert-sync = <1>;
		qcom,msm-cpudai-tdm-data-delay = <1>;
		dai_quin_tdm_tx_0: qcom,msm-dai-q6-tdm-quin-tx-0 {
			compatible = "qcom,msm-dai-q6-tdm";
			qcom,msm-cpudai-tdm-dev-id = <36929>;
			qcom,msm-cpudai-tdm-data-align = <0>;
		};
	};

	qcom,avtimer@150f700c {
		compatible = "qcom,avtimer";
		reg = <0x150f700c 0x4>,
@@ -600,10 +648,14 @@
		qcom,clk-div = <27>;
	};

	qcom,msm-audio-apr {
	audio_apr: qcom,msm-audio-apr {
		compatible = "qcom,msm-audio-apr";
		msm_audio_apr_dummy {
			compatible = "qcom,msm-audio-apr-dummy";
		qcom,subsys-name = "apr_adsp";
		msm_audio_ion: qcom,msm-audio-ion {
			compatible = "qcom,msm-audio-ion";
			qcom,smmu-version = <2>;
			qcom,smmu-enabled;
			iommus = <&lpass_q6_smmu 1>;
		};
	};

@@ -713,220 +765,6 @@
					  "SpkrLeft", "SpkrRight";
	};

	tavil_snd: sound-tavil {
		compatible = "qcom,sdm660-asoc-snd-tavil";
		qcom,model = "sdm660-tavil-snd-card";
		qcom,wcn-btfm;
		qcom,mi2s-audio-intf;
		qcom,auxpcm-audio-intf;
		qcom,ext-disp-audio-rx;
		qcom,msm-mi2s-master = <1>, <1>, <1>, <1>;
		qcom,audio-routing =
			"AIF4 VI", "MCLK",
			"RX_BIAS", "MCLK",
			"MADINPUT", "MCLK",
			"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,us-euro-gpios = <&tavil_us_euro_sw>;
		qcom,hph-en0-gpio = <&tavil_hph_en0>;
		qcom,hph-en1-gpio = <&tavil_hph_en1>;
		qcom,msm-mclk-freq = <9600000>;
		qcom,usbc-analog-en1_gpio = <&wcd_usbc_analog_en1_gpio>;
		qcom,usbc-analog-en2_n_gpio = <&wcd_usbc_analog_en2n_gpio>;
		asoc-platform = <&pcm0>, <&pcm1>, <&pcm2>, <&voip>, <&voice>,
				<&loopback>, <&compress>, <&hostless>,
				<&afe>, <&lsm>, <&routing>, <&cpe>, <&compr>,
				<&pcm_noirq>;
		asoc-platform-names = "msm-pcm-dsp.0", "msm-pcm-dsp.1",
				"msm-pcm-dsp.2", "msm-voip-dsp",
				"msm-pcm-voice", "msm-pcm-loopback",
				"msm-compress-dsp", "msm-pcm-hostless",
				"msm-pcm-afe", "msm-lsm-client",
				"msm-pcm-routing", "msm-cpe-lsm",
				"msm-compr-dsp", "msm-pcm-dsp-noirq";
		asoc-cpu = <&dai_dp>, <&dai_mi2s0>,
				<&dai_mi2s1>,
				<&dai_mi2s2>, <&dai_mi2s3>,
				<&dai_pri_auxpcm>, <&dai_sec_auxpcm>,
				<&dai_tert_auxpcm>, <&dai_quat_auxpcm>,
				<&sb_0_rx>, <&sb_0_tx>, <&sb_1_rx>, <&sb_1_tx>,
				<&sb_2_rx>, <&sb_2_tx>, <&sb_3_rx>, <&sb_3_tx>,
				<&sb_4_rx>, <&sb_4_tx>, <&sb_5_tx>,
				<&afe_pcm_rx>, <&afe_pcm_tx>, <&afe_proxy_rx>,
				<&afe_proxy_tx>, <&incall_record_rx>,
				<&incall_record_tx>, <&incall_music_rx>,
				<&incall_music_2_rx>, <&sb_5_rx>, <&sb_6_rx>,
				<&sb_7_rx>, <&sb_7_tx>, <&sb_8_tx>, <&sb_8_rx>,
				<&usb_audio_rx>, <&usb_audio_tx>,
				<&dai_pri_tdm_rx_0>, <&dai_pri_tdm_tx_0>,
				<&dai_sec_tdm_rx_0>, <&dai_sec_tdm_tx_0>,
				<&dai_tert_tdm_rx_0>, <&dai_tert_tdm_tx_0>,
				<&dai_quat_tdm_rx_0>, <&dai_quat_tdm_tx_0>;
		asoc-cpu-names = "msm-dai-q6-dp.24608", "msm-dai-q6-mi2s.0",
				"msm-dai-q6-mi2s.1",
				"msm-dai-q6-mi2s.2", "msm-dai-q6-mi2s.3",
				"msm-dai-q6-auxpcm.1", "msm-dai-q6-auxpcm.2",
				"msm-dai-q6-auxpcm.3", "msm-dai-q6-auxpcm.4",
				"msm-dai-q6-dev.16384", "msm-dai-q6-dev.16385",
				"msm-dai-q6-dev.16386", "msm-dai-q6-dev.16387",
				"msm-dai-q6-dev.16388", "msm-dai-q6-dev.16389",
				"msm-dai-q6-dev.16390", "msm-dai-q6-dev.16391",
				"msm-dai-q6-dev.16392", "msm-dai-q6-dev.16393",
				"msm-dai-q6-dev.16395", "msm-dai-q6-dev.224",
				"msm-dai-q6-dev.225", "msm-dai-q6-dev.241",
				"msm-dai-q6-dev.240", "msm-dai-q6-dev.32771",
				"msm-dai-q6-dev.32772", "msm-dai-q6-dev.32773",
				"msm-dai-q6-dev.32770", "msm-dai-q6-dev.16394",
				"msm-dai-q6-dev.16396", "msm-dai-q6-dev.16398",
				"msm-dai-q6-dev.16399", "msm-dai-q6-dev.16401",
				"msm-dai-q6-dev.16400", "msm-dai-q6-dev.28672",
				"msm-dai-q6-dev.28673", "msm-dai-q6-tdm.36864",
				"msm-dai-q6-tdm.36865", "msm-dai-q6-tdm.36880",
				"msm-dai-q6-tdm.36881", "msm-dai-q6-tdm.36896",
				"msm-dai-q6-tdm.36897", "msm-dai-q6-tdm.36912",
				"msm-dai-q6-tdm.36913";
		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: sound {
		status = "disabled";
		compatible = "qcom,sdm660-asoc-snd";
		qcom,model = "sdm660-snd-card";
		qcom,wcn-btfm;
		qcom,mi2s-audio-intf;
		qcom,auxpcm-audio-intf;
		qcom,ext-disp-audio-rx;
		qcom,msm-mi2s-master = <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,us-euro-gpios = <&us_euro_gpio>;
		qcom,cdc-pdm-gpios = <&cdc_pdm_gpios>;
		qcom,cdc-comp-gpios = <&cdc_comp_gpios>;
		qcom,cdc-dmic-gpios = <&cdc_dmic_gpios>;
		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";

		asoc-platform = <&pcm0>, <&pcm1>, <&pcm2>, <&voip>, <&voice>,
				<&loopback>, <&compress>, <&hostless>,
				<&afe>, <&lsm>, <&routing>, <&compr>,
				<&pcm_noirq>;
		asoc-platform-names = "msm-pcm-dsp.0", "msm-pcm-dsp.1",
				"msm-pcm-dsp.2", "msm-voip-dsp",
				"msm-pcm-voice", "msm-pcm-loopback",
				"msm-compress-dsp", "msm-pcm-hostless",
				"msm-pcm-afe", "msm-lsm-client",
				"msm-pcm-routing", "msm-compr-dsp",
				"msm-pcm-dsp-noirq";
		asoc-cpu = <&dai_dp>, <&dai_mi2s0>,
				<&dai_mi2s1>,
				<&dai_mi2s2>, <&dai_mi2s3>,
				<&dai_int_mi2s0>, <&dai_int_mi2s1>,
				<&dai_int_mi2s2>, <&dai_int_mi2s3>,
				<&dai_int_mi2s4>, <&dai_int_mi2s5>,
				<&dai_pri_auxpcm>, <&dai_sec_auxpcm>,
				<&dai_tert_auxpcm>, <&dai_quat_auxpcm>,
				<&afe_pcm_rx>, <&afe_pcm_tx>, <&afe_proxy_rx>,
				<&afe_proxy_tx>, <&incall_record_rx>,
				<&incall_record_tx>, <&incall_music_rx>,
				<&incall_music_2_rx>, <&sb_7_rx>, <&sb_7_tx>,
				<&sb_8_tx>, <&sb_8_rx>,
				<&usb_audio_rx>, <&usb_audio_tx>,
				<&dai_pri_tdm_rx_0>, <&dai_pri_tdm_tx_0>,
				<&dai_sec_tdm_rx_0>, <&dai_sec_tdm_tx_0>,
				<&dai_tert_tdm_rx_0>, <&dai_tert_tdm_tx_0>,
				<&dai_quat_tdm_rx_0>, <&dai_quat_tdm_tx_0>;
		asoc-cpu-names = "msm-dai-q6-dp.24608", "msm-dai-q6-mi2s.0",
				"msm-dai-q6-mi2s.1",
				"msm-dai-q6-mi2s.2", "msm-dai-q6-mi2s.3",
				"msm-dai-q6-mi2s.7", "msm-dai-q6-mi2s.8",
				"msm-dai-q6-mi2s.9", "msm-dai-q6-mi2s.10",
				"msm-dai-q6-mi2s.11", "msm-dai-q6-mi2s.12",
				"msm-dai-q6-auxpcm.1", "msm-dai-q6-auxpcm.2",
				"msm-dai-q6-auxpcm.3", "msm-dai-q6-auxpcm.4",
				"msm-dai-q6-dev.224", "msm-dai-q6-dev.225",
				"msm-dai-q6-dev.241", "msm-dai-q6-dev.240",
				"msm-dai-q6-dev.32771", "msm-dai-q6-dev.32772",
				"msm-dai-q6-dev.32773", "msm-dai-q6-dev.32770",
				"msm-dai-q6-dev.16398", "msm-dai-q6-dev.16399",
				"msm-dai-q6-dev.16401", "msm-dai-q6-dev.16400",
				"msm-dai-q6-dev.28672", "msm-dai-q6-dev.28673",
				"msm-dai-q6-tdm.36864", "msm-dai-q6-tdm.36865",
				"msm-dai-q6-tdm.36880", "msm-dai-q6-tdm.36881",
				"msm-dai-q6-tdm.36896", "msm-dai-q6-tdm.36897",
				"msm-dai-q6-tdm.36912", "msm-dai-q6-tdm.36913";
		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";
	};

	us_euro_gpio: msm_cdc_pinctrl@75 {
		compatible = "qcom,msm-cdc-pinctrl";
		pinctrl-names = "aud_active", "aud_sleep";
@@ -943,6 +781,7 @@
	};

	clock_audio: audio_ext_clk {
		status = "disabled";
		compatible = "qcom,audio-ref-clk";
		qcom,audio-ref-clk-gpio = <&pm660_gpios 3 0>;
		clock-names = "osr_clk";
@@ -958,6 +797,7 @@

	clock_audio_lnbb: audio_ext_clk_lnbb {
		compatible = "qcom,audio-ref-clk";
		qcom,codec-ext-clk-src = <1>;
		clock-names = "osr_clk";
		clocks = <&clock_rpmcc RPM_SMD_LN_BB_CLK2>;
		qcom,node_has_rpm_clock;
+235 −3
Original line number Diff line number Diff line
/*
 * Copyright (c) 2015-2017, 2019, The Linux Foundation. All rights reserved.
 * Copyright (c) 2015-2017, 2019-2020, 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
@@ -14,6 +14,238 @@
#include "sdm660-wsa881x.dtsi"
#include "sdm660-lpi.dtsi"

&audio_apr {
	q6core: qcom,q6core-audio {
		compatible = "qcom,q6core-audio";
	};
};

&q6core {
	int_codec: sound {
		status = "disabled";
		compatible = "qcom,sdm660-asoc-snd";
		qcom,model = "sdm660-snd-card";
		qcom,wcn-btfm;
		qcom,mi2s-audio-intf;
		qcom,auxpcm-audio-intf;
		qcom,ext-disp-audio-rx;
		qcom,msm-mi2s-master = <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,us-euro-gpios = <&us_euro_gpio>;
		qcom,cdc-pdm-gpios = <&cdc_pdm_gpios>;
		qcom,cdc-comp-gpios = <&cdc_comp_gpios>;
		qcom,cdc-dmic-gpios = <&cdc_dmic_gpios>;
		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";
		asoc-platform = <&pcm0>, <&pcm1>,
				<&pcm2>, <&voip>,
				<&voice>, <&loopback>,
				<&compress>, <&hostless>,
				<&afe>, <&lsm>,
				<&routing>, <&pcm_noirq>;
		asoc-platform-names = "msm-pcm-dsp.0", "msm-pcm-dsp.1",
				"msm-pcm-dsp.2", "msm-voip-dsp",
				"msm-pcm-voice", "msm-pcm-loopback",
				"msm-compress-dsp", "msm-pcm-hostless",
				"msm-pcm-afe", "msm-lsm-client",
				"msm-pcm-routing", "msm-pcm-dsp-noirq";
		asoc-cpu = <&dai_dp>,
				<&dai_mi2s0>, <&dai_mi2s1>,
				<&dai_mi2s2>, <&dai_mi2s3>,
				<&dai_mi2s4>,
				<&dai_int_mi2s0>, <&dai_int_mi2s1>,
				<&dai_int_mi2s2>, <&dai_int_mi2s3>,
				<&dai_int_mi2s4>, <&dai_int_mi2s5>,
				<&dai_pri_auxpcm>, <&dai_sec_auxpcm>,
				<&dai_tert_auxpcm>, <&dai_quat_auxpcm>,
				<&dai_quin_auxpcm>,
				<&afe_pcm_rx>, <&afe_pcm_tx>,
				<&afe_proxy_rx>, <&afe_proxy_tx>,
				<&incall_record_rx>, <&incall_record_tx>,
				<&incall_music_rx>, <&incall_music_2_rx>,
				<&sb_7_rx>, <&sb_7_tx>,
				<&sb_8_tx>, <&sb_8_rx>,
				<&usb_audio_rx>, <&usb_audio_tx>,
				<&dai_pri_tdm_rx_0>, <&dai_pri_tdm_tx_0>,
				<&dai_sec_tdm_rx_0>, <&dai_sec_tdm_tx_0>,
				<&dai_tert_tdm_rx_0>, <&dai_tert_tdm_tx_0>,
				<&dai_quat_tdm_rx_0>, <&dai_quat_tdm_tx_0>,
				<&dai_quin_tdm_rx_0>, <&dai_quin_tdm_tx_0>;
		asoc-cpu-names = "msm-dai-q6-dp.24608",
				"msm-dai-q6-mi2s.0", "msm-dai-q6-mi2s.1",
				"msm-dai-q6-mi2s.2", "msm-dai-q6-mi2s.3",
				"msm-dai-q6-mi2s.4", "msm-dai-q6-mi2s.7",
				"msm-dai-q6-mi2s.8",
				"msm-dai-q6-mi2s.9", "msm-dai-q6-mi2s.10",
				"msm-dai-q6-mi2s.11", "msm-dai-q6-mi2s.12",
				"msm-dai-q6-auxpcm.1", "msm-dai-q6-auxpcm.2",
				"msm-dai-q6-auxpcm.3", "msm-dai-q6-auxpcm.4",
				"msm-dai-q6-auxpcm.5", "msm-dai-q6-dev.224",
				"msm-dai-q6-dev.225", "msm-dai-q6-dev.241",
				"msm-dai-q6-dev.240", "msm-dai-q6-dev.32771",
				"msm-dai-q6-dev.32772", "msm-dai-q6-dev.32773",
				"msm-dai-q6-dev.32770", "msm-dai-q6-dev.16398",
				"msm-dai-q6-dev.16399", "msm-dai-q6-dev.16401",
				"msm-dai-q6-dev.16400", "msm-dai-q6-dev.28672",
				"msm-dai-q6-dev.28673", "msm-dai-q6-tdm.36864",
				"msm-dai-q6-tdm.36865", "msm-dai-q6-tdm.36880",
				"msm-dai-q6-tdm.36881", "msm-dai-q6-tdm.36896",
				"msm-dai-q6-tdm.36897", "msm-dai-q6-tdm.36912",
				"msm-dai-q6-tdm.36913", "msm-dai-q6-tdm.36928",
				"msm-dai-q6-tdm.36929";
		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";
	};

	tavil_snd: sound-tavil {
		compatible = "qcom,sdm660-asoc-snd-tavil";
		qcom,model = "sdm660-tavil-snd-card";
		qcom,wcn-btfm;
		qcom,mi2s-audio-intf;
		qcom,auxpcm-audio-intf;
		qcom,ext-disp-audio-rx;
		qcom,msm-mi2s-master = <1>, <1>, <1>, <1>;
		qcom,audio-routing =
			"AIF4 VI", "MCLK",
			"RX_BIAS", "MCLK",
			"MADINPUT", "MCLK",
			"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,us-euro-gpios = <&tavil_us_euro_sw>;
		qcom,hph-en0-gpio = <&tavil_hph_en0>;
		qcom,hph-en1-gpio = <&tavil_hph_en1>;
		qcom,msm-mclk-freq = <9600000>;
		qcom,usbc-analog-en1_gpio = <&wcd_usbc_analog_en1_gpio>;
		qcom,usbc-analog-en2_n_gpio = <&wcd_usbc_analog_en2n_gpio>;
		asoc-platform = <&pcm0>, <&pcm1>, <&pcm2>, <&voip>, <&voice>,
				<&loopback>, <&compress>, <&hostless>,
				<&afe>, <&lsm>, <&routing>, <&cpe>, <&compr>,
				<&pcm_noirq>;
		asoc-platform-names = "msm-pcm-dsp.0", "msm-pcm-dsp.1",
				"msm-pcm-dsp.2", "msm-voip-dsp",
				"msm-pcm-voice", "msm-pcm-loopback",
				"msm-compress-dsp", "msm-pcm-hostless",
				"msm-pcm-afe", "msm-lsm-client",
				"msm-pcm-routing", "msm-cpe-lsm",
				"msm-compr-dsp", "msm-pcm-dsp-noirq";
		asoc-cpu = <&dai_dp>, <&dai_mi2s0>,
				<&dai_mi2s1>, <&dai_mi2s2>,
				<&dai_mi2s3>, <&dai_mi2s4>,
				<&dai_pri_auxpcm>, <&dai_sec_auxpcm>,
				<&dai_tert_auxpcm>, <&dai_quat_auxpcm>,
				<&dai_quin_auxpcm>,
				<&sb_0_rx>, <&sb_0_tx>, <&sb_1_rx>, <&sb_1_tx>,
				<&sb_2_rx>, <&sb_2_tx>, <&sb_3_rx>, <&sb_3_tx>,
				<&sb_4_rx>, <&sb_4_tx>, <&sb_5_tx>,
				<&afe_pcm_rx>, <&afe_pcm_tx>, <&afe_proxy_rx>,
				<&afe_proxy_tx>, <&incall_record_rx>,
				<&incall_record_tx>, <&incall_music_rx>,
				<&incall_music_2_rx>, <&sb_5_rx>, <&sb_6_rx>,
				<&sb_7_rx>, <&sb_7_tx>, <&sb_8_tx>, <&sb_8_rx>,
				<&usb_audio_rx>, <&usb_audio_tx>,
				<&dai_pri_tdm_rx_0>, <&dai_pri_tdm_tx_0>,
				<&dai_sec_tdm_rx_0>, <&dai_sec_tdm_tx_0>,
				<&dai_tert_tdm_rx_0>, <&dai_tert_tdm_tx_0>,
				<&dai_quat_tdm_rx_0>, <&dai_quat_tdm_tx_0>,
				<&dai_quin_tdm_rx_0>, <&dai_quin_tdm_tx_0>;
		asoc-cpu-names = "msm-dai-q6-dp.24608", "msm-dai-q6-mi2s.0",
				"msm-dai-q6-mi2s.1", "msm-dai-q6-mi2s.2",
				"msm-dai-q6-mi2s.3", "msm-dai-q6-mi2s.4",
				"msm-dai-q6-auxpcm.1", "msm-dai-q6-auxpcm.2",
				"msm-dai-q6-auxpcm.3", "msm-dai-q6-auxpcm.4",
				"msm-dai-q6-auxpcm.5",
				"msm-dai-q6-dev.16384", "msm-dai-q6-dev.16385",
				"msm-dai-q6-dev.16386", "msm-dai-q6-dev.16387",
				"msm-dai-q6-dev.16388", "msm-dai-q6-dev.16389",
				"msm-dai-q6-dev.16390", "msm-dai-q6-dev.16391",
				"msm-dai-q6-dev.16392", "msm-dai-q6-dev.16393",
				"msm-dai-q6-dev.16395", "msm-dai-q6-dev.224",
				"msm-dai-q6-dev.225", "msm-dai-q6-dev.241",
				"msm-dai-q6-dev.240", "msm-dai-q6-dev.32771",
				"msm-dai-q6-dev.32772", "msm-dai-q6-dev.32773",
				"msm-dai-q6-dev.32770", "msm-dai-q6-dev.16394",
				"msm-dai-q6-dev.16396", "msm-dai-q6-dev.16398",
				"msm-dai-q6-dev.16399", "msm-dai-q6-dev.16401",
				"msm-dai-q6-dev.16400", "msm-dai-q6-dev.28672",
				"msm-dai-q6-dev.28673", "msm-dai-q6-tdm.36864",
				"msm-dai-q6-tdm.36865", "msm-dai-q6-tdm.36880",
				"msm-dai-q6-tdm.36881", "msm-dai-q6-tdm.36896",
				"msm-dai-q6-tdm.36897", "msm-dai-q6-tdm.36912",
				"msm-dai-q6-tdm.36913", "msm-dai-q6-tdm.36928",
				"msm-dai-q6-tdm.36929";
		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";
	};

};

&slim_aud {
	status = "okay";
	dai_slim: msm_dai_slim {
@@ -66,7 +298,7 @@
		qcom,wcd-rst-gpio-node = <&wcd_rst_gpio>;

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

		cdc-vdd-mic-bias-supply = <&pm660l_bob>;
		qcom,cdc-vdd-mic-bias-voltage = <3300000 3300000>;
@@ -112,7 +344,7 @@
};

&pm660l_3 {
	pmic_analog_codec: analog-codec@f000 {
	pmic_analog_codec: anlg-cdc@f000 {
		status = "disabled";
		compatible = "qcom,pmic-analog-codec";
		reg = <0xf000 0x200>;
+18 −1
Original line number Diff line number Diff line
/* Copyright (c) 2016-2017, 2019, The Linux Foundation. All rights reserved.
/* Copyright (c) 2016-2017, 2019-2020, 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
@@ -17,6 +17,23 @@
		qcom,num-gpios = <32>;
		gpio-controller;
		#gpio-cells = <2>;
		qcom,lpi-offset-tbl =
				<0x00000000>, <0x00001000>,
				<0x00002000>, <0x00002010>,
				<0x00003000>, <0x00003010>,
				<0x00004000>, <0x00004010>,
				<0x00005000>, <0x00005010>,
				<0x00005020>, <0x00005030>,
				<0x00006000>, <0x00006010>,
				<0x00007000>, <0x00007010>,
				<0x00005040>, <0x00005050>,
				<0x00008000>, <0x00008010>,
				<0x00008020>, <0x00008030>,
				<0x00008040>, <0x00008050>,
				<0x00008060>, <0x00008070>,
				<0x00009000>, <0x00009010>,
				<0x0000A000>, <0x0000A010>,
				<0x0000B000>, <0x0000B010>;

		lpi_mclk0_active: lpi_mclk0_active {
			mux {