[alsa-devel] [PATCH] ASoC: tlv320aic3x: Add virtual output pin Detection

Jarkko Nikula jhnikula at gmail.com
Fri Sep 17 13:39:01 CEST 2010

Purpose of this virtual Detection pin is to keep codec bias on whenever the
GPIO or jack detection features are needed.

Jack detection needs a mic bias so machine drivers can construct a following
route for instance for keeping the path and codec bias on:

"Input Jack" -> "Mic Bias xV" -> "Detection" -> detection block inside codec.

For the GPIO the machine driver can force the pin on with

Signed-off-by: Jarkko Nikula <jhnikula at gmail.com>
PLL is activated when in SND_SOC_BIAS_PREPARE or _ON so it could be running
but I have a vague impression that it's active only when ADC or DAC is on.
I don't have at the moment possibility to measure it and don't want to move
it to DAPM either before doing some oscilloscope and pop & clicks measurements.
Current consumption anyway doesn't differ between standby and on when there is
no active stream and other widgets are off.
 sound/soc/codecs/tlv320aic3x.c |    8 ++++++++
 1 files changed, 8 insertions(+), 0 deletions(-)

diff --git a/sound/soc/codecs/tlv320aic3x.c b/sound/soc/codecs/tlv320aic3x.c
index 7b5f159..6190351 100644
--- a/sound/soc/codecs/tlv320aic3x.c
+++ b/sound/soc/codecs/tlv320aic3x.c
@@ -605,6 +605,14 @@ static const struct snd_soc_dapm_widget aic3x_dapm_widgets[] = {
+	/*
+	 * Virtual output pin to detection block inside codec. This can be
+	 * used to keep codec bias on if gpio or detection features are needed.
+	 * Force pin on or construct a path with an input jack and mic bias
+	 * widgets.
+	 */
+	SND_SOC_DAPM_OUTPUT("Detection"),
 static const struct snd_soc_dapm_widget aic3007_dapm_widgets[] = {

More information about the Alsa-devel mailing list