ASoC: tas2552: Add TX path for capturing AUDIO-OUT data
[ Upstream commit 7078ac4fd179a68d0bab448004fcd357e7a45f8d ]
TAS2552 is a Smartamp with I/V sense data, add TX path
to support capturing I/V data.
Fixes: 38803ce7b5
("ASoC: codecs: tas*: merge .digital_mute() into .mute_stream()")
Signed-off-by: Shenghao Ding <shenghao-ding@ti.com>
Link: https://msgid.link/r/20240518033515.866-1-shenghao-ding@ti.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
Родитель
ad4d196d20
Коммит
1c03ea9acb
|
@ -2,7 +2,8 @@
|
||||||
/*
|
/*
|
||||||
* tas2552.c - ALSA SoC Texas Instruments TAS2552 Mono Audio Amplifier
|
* tas2552.c - ALSA SoC Texas Instruments TAS2552 Mono Audio Amplifier
|
||||||
*
|
*
|
||||||
* Copyright (C) 2014 Texas Instruments Incorporated - https://www.ti.com
|
* Copyright (C) 2014 - 2024 Texas Instruments Incorporated -
|
||||||
|
* https://www.ti.com
|
||||||
*
|
*
|
||||||
* Author: Dan Murphy <dmurphy@ti.com>
|
* Author: Dan Murphy <dmurphy@ti.com>
|
||||||
*/
|
*/
|
||||||
|
@ -119,12 +120,14 @@ static const struct snd_soc_dapm_widget tas2552_dapm_widgets[] =
|
||||||
&tas2552_input_mux_control),
|
&tas2552_input_mux_control),
|
||||||
|
|
||||||
SND_SOC_DAPM_AIF_IN("DAC IN", "DAC Playback", 0, SND_SOC_NOPM, 0, 0),
|
SND_SOC_DAPM_AIF_IN("DAC IN", "DAC Playback", 0, SND_SOC_NOPM, 0, 0),
|
||||||
|
SND_SOC_DAPM_AIF_OUT("ASI OUT", "DAC Capture", 0, SND_SOC_NOPM, 0, 0),
|
||||||
SND_SOC_DAPM_DAC("DAC", NULL, SND_SOC_NOPM, 0, 0),
|
SND_SOC_DAPM_DAC("DAC", NULL, SND_SOC_NOPM, 0, 0),
|
||||||
SND_SOC_DAPM_OUT_DRV("ClassD", TAS2552_CFG_2, 7, 0, NULL, 0),
|
SND_SOC_DAPM_OUT_DRV("ClassD", TAS2552_CFG_2, 7, 0, NULL, 0),
|
||||||
SND_SOC_DAPM_SUPPLY("PLL", TAS2552_CFG_2, 3, 0, NULL, 0),
|
SND_SOC_DAPM_SUPPLY("PLL", TAS2552_CFG_2, 3, 0, NULL, 0),
|
||||||
SND_SOC_DAPM_POST("Post Event", tas2552_post_event),
|
SND_SOC_DAPM_POST("Post Event", tas2552_post_event),
|
||||||
|
|
||||||
SND_SOC_DAPM_OUTPUT("OUT")
|
SND_SOC_DAPM_OUTPUT("OUT"),
|
||||||
|
SND_SOC_DAPM_INPUT("DMIC")
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct snd_soc_dapm_route tas2552_audio_map[] = {
|
static const struct snd_soc_dapm_route tas2552_audio_map[] = {
|
||||||
|
@ -134,6 +137,7 @@ static const struct snd_soc_dapm_route tas2552_audio_map[] = {
|
||||||
{"ClassD", NULL, "Input selection"},
|
{"ClassD", NULL, "Input selection"},
|
||||||
{"OUT", NULL, "ClassD"},
|
{"OUT", NULL, "ClassD"},
|
||||||
{"ClassD", NULL, "PLL"},
|
{"ClassD", NULL, "PLL"},
|
||||||
|
{"ASI OUT", NULL, "DMIC"}
|
||||||
};
|
};
|
||||||
|
|
||||||
#ifdef CONFIG_PM
|
#ifdef CONFIG_PM
|
||||||
|
@ -538,6 +542,13 @@ static struct snd_soc_dai_driver tas2552_dai[] = {
|
||||||
.rates = SNDRV_PCM_RATE_8000_192000,
|
.rates = SNDRV_PCM_RATE_8000_192000,
|
||||||
.formats = TAS2552_FORMATS,
|
.formats = TAS2552_FORMATS,
|
||||||
},
|
},
|
||||||
|
.capture = {
|
||||||
|
.stream_name = "Capture",
|
||||||
|
.channels_min = 2,
|
||||||
|
.channels_max = 2,
|
||||||
|
.rates = SNDRV_PCM_RATE_8000_192000,
|
||||||
|
.formats = TAS2552_FORMATS,
|
||||||
|
},
|
||||||
.ops = &tas2552_speaker_dai_ops,
|
.ops = &tas2552_speaker_dai_ops,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
Загрузка…
Ссылка в новой задаче