asoc: wcd939x: add support for wcd dmics

Added support for wcd dmics.

Change-Id: Iceaf4363aff7d666da23e85c75c58038cbd6dd70
Signed-off-by: Prasad Kumpatla <quic_pkumpatl@quicinc.com>
This commit is contained in:
Prasad Kumpatla
2023-04-18 16:13:02 +05:30
committed by Sairam Peri
parent 055c2ae6fd
commit 664a4e97ac

View File

@@ -3738,6 +3738,10 @@ static const struct snd_kcontrol_new va_amic5_switch[] = {
SOC_DAPM_SINGLE("Switch", SND_SOC_NOPM, 0, 1, 0) SOC_DAPM_SINGLE("Switch", SND_SOC_NOPM, 0, 1, 0)
}; };
static const struct snd_kcontrol_new dmic0_switch[] = {
SOC_DAPM_SINGLE("Switch", SND_SOC_NOPM, 0, 1, 0)
};
static const struct snd_kcontrol_new dmic1_switch[] = { static const struct snd_kcontrol_new dmic1_switch[] = {
SOC_DAPM_SINGLE("Switch", SND_SOC_NOPM, 0, 1, 0) SOC_DAPM_SINGLE("Switch", SND_SOC_NOPM, 0, 1, 0)
}; };
@@ -3766,10 +3770,6 @@ static const struct snd_kcontrol_new dmic7_switch[] = {
SOC_DAPM_SINGLE("Switch", SND_SOC_NOPM, 0, 1, 0) SOC_DAPM_SINGLE("Switch", SND_SOC_NOPM, 0, 1, 0)
}; };
static const struct snd_kcontrol_new dmic8_switch[] = {
SOC_DAPM_SINGLE("Switch", SND_SOC_NOPM, 0, 1, 0)
};
static const struct snd_kcontrol_new ear_rdac_switch[] = { static const struct snd_kcontrol_new ear_rdac_switch[] = {
SOC_DAPM_SINGLE("Switch", SND_SOC_NOPM, 0, 1, 0) SOC_DAPM_SINGLE("Switch", SND_SOC_NOPM, 0, 1, 0)
}; };
@@ -3902,28 +3902,28 @@ static const struct snd_soc_dapm_widget wcd939x_dapm_widgets[] = {
SND_SOC_DAPM_ADC_E("ADC4", NULL, SND_SOC_NOPM, 3, 0, SND_SOC_DAPM_ADC_E("ADC4", NULL, SND_SOC_NOPM, 3, 0,
wcd939x_codec_enable_adc, wcd939x_codec_enable_adc,
SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMD), SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMD),
SND_SOC_DAPM_ADC_E("DMIC1", NULL, SND_SOC_NOPM, 0, 0, SND_SOC_DAPM_ADC_E("DMIC0", NULL, SND_SOC_NOPM, 0, 0,
wcd939x_codec_enable_dmic, wcd939x_codec_enable_dmic,
SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMD), SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMD),
SND_SOC_DAPM_ADC_E("DMIC2", NULL, SND_SOC_NOPM, 1, 0, SND_SOC_DAPM_ADC_E("DMIC1", NULL, SND_SOC_NOPM, 1, 0,
wcd939x_codec_enable_dmic, wcd939x_codec_enable_dmic,
SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMD), SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMD),
SND_SOC_DAPM_ADC_E("DMIC3", NULL, SND_SOC_NOPM, 2, 0, SND_SOC_DAPM_ADC_E("DMIC2", NULL, SND_SOC_NOPM, 2, 0,
wcd939x_codec_enable_dmic, wcd939x_codec_enable_dmic,
SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMD), SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMD),
SND_SOC_DAPM_ADC_E("DMIC4", NULL, SND_SOC_NOPM, 3, 0, SND_SOC_DAPM_ADC_E("DMIC3", NULL, SND_SOC_NOPM, 3, 0,
wcd939x_codec_enable_dmic, wcd939x_codec_enable_dmic,
SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMD), SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMD),
SND_SOC_DAPM_ADC_E("DMIC5", NULL, SND_SOC_NOPM, 4, 0, SND_SOC_DAPM_ADC_E("DMIC4", NULL, SND_SOC_NOPM, 4, 0,
wcd939x_codec_enable_dmic, wcd939x_codec_enable_dmic,
SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMD), SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMD),
SND_SOC_DAPM_ADC_E("DMIC6", NULL, SND_SOC_NOPM, 5, 0, SND_SOC_DAPM_ADC_E("DMIC5", NULL, SND_SOC_NOPM, 5, 0,
wcd939x_codec_enable_dmic, wcd939x_codec_enable_dmic,
SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMD), SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMD),
SND_SOC_DAPM_ADC_E("DMIC7", NULL, SND_SOC_NOPM, 6, 0, SND_SOC_DAPM_ADC_E("DMIC6", NULL, SND_SOC_NOPM, 6, 0,
wcd939x_codec_enable_dmic, wcd939x_codec_enable_dmic,
SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMD), SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMD),
SND_SOC_DAPM_ADC_E("DMIC8", NULL, SND_SOC_NOPM, 7, 0, SND_SOC_DAPM_ADC_E("DMIC7", NULL, SND_SOC_NOPM, 7, 0,
wcd939x_codec_enable_dmic, wcd939x_codec_enable_dmic,
SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMD), SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMD),
@@ -3993,6 +3993,10 @@ static const struct snd_soc_dapm_widget wcd939x_dapm_widgets[] = {
SND_SOC_DAPM_MIXER_E("ADC4_MIXER", SND_SOC_NOPM, ADC4, 0, adc4_switch, SND_SOC_DAPM_MIXER_E("ADC4_MIXER", SND_SOC_NOPM, ADC4, 0, adc4_switch,
ARRAY_SIZE(adc4_switch), wcd939x_tx_swr_ctrl, ARRAY_SIZE(adc4_switch), wcd939x_tx_swr_ctrl,
SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMD), SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMD),
SND_SOC_DAPM_MIXER_E("DMIC0_MIXER", SND_SOC_NOPM, DMIC0,
0, dmic0_switch, ARRAY_SIZE(dmic0_switch),
wcd939x_tx_swr_ctrl, SND_SOC_DAPM_PRE_PMU |
SND_SOC_DAPM_POST_PMD),
SND_SOC_DAPM_MIXER_E("DMIC1_MIXER", SND_SOC_NOPM, DMIC1, SND_SOC_DAPM_MIXER_E("DMIC1_MIXER", SND_SOC_NOPM, DMIC1,
0, dmic1_switch, ARRAY_SIZE(dmic1_switch), 0, dmic1_switch, ARRAY_SIZE(dmic1_switch),
wcd939x_tx_swr_ctrl, SND_SOC_DAPM_PRE_PMU | wcd939x_tx_swr_ctrl, SND_SOC_DAPM_PRE_PMU |
@@ -4021,10 +4025,6 @@ static const struct snd_soc_dapm_widget wcd939x_dapm_widgets[] = {
0, dmic7_switch, ARRAY_SIZE(dmic7_switch), 0, dmic7_switch, ARRAY_SIZE(dmic7_switch),
wcd939x_tx_swr_ctrl, SND_SOC_DAPM_PRE_PMU | wcd939x_tx_swr_ctrl, SND_SOC_DAPM_PRE_PMU |
SND_SOC_DAPM_POST_PMD), SND_SOC_DAPM_POST_PMD),
SND_SOC_DAPM_MIXER_E("DMIC8_MIXER", SND_SOC_NOPM, DMIC8,
0, dmic8_switch, ARRAY_SIZE(dmic8_switch),
wcd939x_tx_swr_ctrl, SND_SOC_DAPM_PRE_PMU |
SND_SOC_DAPM_POST_PMD),
/* micbias widgets*/ /* micbias widgets*/
SND_SOC_DAPM_SUPPLY("MIC BIAS1", SND_SOC_NOPM, 0, 0, SND_SOC_DAPM_SUPPLY("MIC BIAS1", SND_SOC_NOPM, 0, 0,
wcd939x_codec_enable_micbias, wcd939x_codec_enable_micbias,
@@ -4218,6 +4218,9 @@ static const struct snd_soc_dapm_route wcd939x_audio_map[] = {
{"ADC4 MUX", "CH4_AMIC4", "AMIC4_MIXER"}, {"ADC4 MUX", "CH4_AMIC4", "AMIC4_MIXER"},
{"ADC4 MUX", "CH4_AMIC5", "AMIC5_MIXER"}, {"ADC4 MUX", "CH4_AMIC5", "AMIC5_MIXER"},
{"WCD_TX_OUTPUT", NULL, "DMIC0_MIXER"},
{"DMIC0_MIXER", "Switch", "DMIC0"},
{"WCD_TX_OUTPUT", NULL, "DMIC1_MIXER"}, {"WCD_TX_OUTPUT", NULL, "DMIC1_MIXER"},
{"DMIC1_MIXER", "Switch", "DMIC1"}, {"DMIC1_MIXER", "Switch", "DMIC1"},
@@ -4239,9 +4242,6 @@ static const struct snd_soc_dapm_route wcd939x_audio_map[] = {
{"WCD_TX_OUTPUT", NULL, "DMIC7_MIXER"}, {"WCD_TX_OUTPUT", NULL, "DMIC7_MIXER"},
{"DMIC7_MIXER", "Switch", "DMIC7"}, {"DMIC7_MIXER", "Switch", "DMIC7"},
{"WCD_TX_OUTPUT", NULL, "DMIC8_MIXER"},
{"DMIC8_MIXER", "Switch", "DMIC8"},
{"IN1_HPHL", NULL, "WCD_RX_DUMMY"}, {"IN1_HPHL", NULL, "WCD_RX_DUMMY"},
{"IN1_HPHL", NULL, "VDD_BUCK"}, {"IN1_HPHL", NULL, "VDD_BUCK"},
{"IN1_HPHL", NULL, "CLS_H_PORT"}, {"IN1_HPHL", NULL, "CLS_H_PORT"},