linux/sound/soc/codecs
Peter Ujfalusi 7393958f63 ASoC: TWL4030: Add analog loopback support
This patch adds the analog loopback/bypass support for twl4030 codec.

Details for the implementation:
It seams that the analog loopback needs the DAC powered on on the channel,
where the loopback is selected. The switch for the DACs has been moved from
the DAPM_DAC to the "Analog XX Playback Mixer". In this way the DAC will be
powered while the audio playback is used or/and the loopback is enabled for
the channel.

The twl4030 codec powering has been reworked. Now the codec will be powered as
long as it does not receives the SND_SOC_BIAS_OFF event. The exceptions are
when the given change in the registers needs the codec power down/up cycle in
order to take effect. Otherwise the codec is on.

When the codec enters to STANDBY state and none of the loopback paths are
enabled, than the amplifiers, which are no in the DAPM path are forced to turn
off and the PLL is disabled. When playback/capture starts the disabled gains
are restored and the PLL is enabled.

When one of the loopback enabled in STANDBY mode, the disabled gains are
restored and the PLL is enabled also.

In short: the codec always goes to the lowest power state based on the
bias_level and the bypass_state.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@nokia.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2009-01-29 13:58:04 +00:00
..
ac97.c ASoC: Push the codec runtime storage into the card structure 2009-01-27 10:30:54 +00:00
ac97.h ALSA: asoc: codecs - merge structs snd_soc_codec_dai and snd_soc_cpu_dai. 2008-07-10 09:32:39 +02:00
ad1980.c ASoC: Push the codec runtime storage into the card structure 2009-01-27 10:30:54 +00:00
ad1980.h ALSA: ASoC codec: fix compiling error in ad1980 driver after ASoC API changed 2008-09-09 09:10:54 +02:00
ad73311.c ASoC: Push the codec runtime storage into the card structure 2009-01-27 10:30:54 +00:00
ad73311.h ALSA: ASoC codec: AD73311 audio codec driver 2008-10-13 02:16:12 +02:00
ak4535.c ASoC: Push the codec runtime storage into the card structure 2009-01-27 10:30:54 +00:00
ak4535.h ALSA: ASoC: Convert ak4535 to a new-style i2c driver 2008-09-04 10:34:21 +02:00
cs4270.c ASoC: Push the codec runtime storage into the card structure 2009-01-27 10:30:54 +00:00
cs4270.h ALSA: asoc: codecs - merge structs snd_soc_codec_dai and snd_soc_cpu_dai. 2008-07-10 09:32:39 +02:00
Kconfig ASoC: Fix L3 bus handling in Kconfig 2009-01-23 15:37:26 +00:00
l3.c ASoC: UDA134x codec driver 2008-11-17 11:45:39 +00:00
Makefile ASoC: Driver for the WM9705 AC97 codec. 2009-01-16 16:40:25 +00:00
pcm3008.c ASoC: Push the codec runtime storage into the card structure 2009-01-27 10:30:54 +00:00
pcm3008.h ASoC: Add PCM3008 ALSA SoC driver 2008-11-19 13:16:38 +00:00
ssm2602.c ASoC: Push the codec runtime storage into the card structure 2009-01-27 10:30:54 +00:00
ssm2602.h sound: ASoC codec: SSM2602 audio codec driver 2008-09-09 09:11:15 +02:00
tlv320aic3x.c ASoC: Push the codec runtime storage into the card structure 2009-01-27 10:30:54 +00:00
tlv320aic3x.h ALSA: ASoC: tlv320aic3x add dsp_a 2008-12-20 13:05:38 +00:00
tlv320aic23.c ASoC: Push the codec runtime storage into the card structure 2009-01-27 10:30:54 +00:00
tlv320aic23.h ALSA: ASoC: Add TLV320AIC23 codec driver 2008-10-13 02:16:48 +02:00
tlv320aic26.c ASoC: Push the codec runtime storage into the card structure 2009-01-27 10:30:54 +00:00
tlv320aic26.h ALSA: ASoC: Export DAI and codec for TLV320AIC26 2008-07-29 21:32:25 +02:00
twl4030.c ASoC: TWL4030: Add analog loopback support 2009-01-29 13:58:04 +00:00
twl4030.h ASoC: TWL4030: Add analog loopback support 2009-01-29 13:58:04 +00:00
uda134x.c ASoC: Push the codec runtime storage into the card structure 2009-01-27 10:30:54 +00:00
uda134x.h ASoC: Move uda134x_codec.h to uda134x.h 2008-11-18 12:32:33 +00:00
uda1380.c ASoC: Push the codec runtime storage into the card structure 2009-01-27 10:30:54 +00:00
uda1380.h ALSA: ASoC: Convert uda1380 to a new-style i2c driver 2008-09-04 10:34:20 +02:00
wm8350.c ASoC: Push the codec runtime storage into the card structure 2009-01-27 10:30:54 +00:00
wm8350.h ASoC: Implement WM8350 headphone jack detection 2009-01-09 10:31:32 +00:00
wm8510.c ASoC: Push the codec runtime storage into the card structure 2009-01-27 10:30:54 +00:00
wm8510.h ALSA: ASoC: Add WM8510 SPI support 2008-10-13 02:17:15 +02:00
wm8580.c ASoC: Push the codec runtime storage into the card structure 2009-01-27 10:30:54 +00:00
wm8580.h ALSA: ASoC: Convert wm8580 to a new-style i2c driver 2008-10-16 08:50:17 +02:00
wm8728.c ASoC: Push the codec runtime storage into the card structure 2009-01-27 10:30:54 +00:00
wm8728.h ASoC: Add WM8728 codec driver 2008-11-14 14:44:53 +00:00
wm8731.c ASoC: Push the codec runtime storage into the card structure 2009-01-27 10:30:54 +00:00
wm8731.h ALSA: ASoC: Add SPI support for WM8731 2008-09-04 10:34:27 +02:00
wm8750.c ASoC: Push the codec runtime storage into the card structure 2009-01-27 10:30:54 +00:00
wm8750.h sound: ASoC: Add WM8750 SPI support 2008-09-23 08:18:19 +02:00
wm8753.c Merge branch 'for-2.6.29' into for-2.6.30 2009-01-29 13:57:59 +00:00
wm8753.h ALSA: ASoC: update email address for Liam Girdwood 2008-10-13 02:26:42 +02:00
wm8900.c ASoC: Push the codec runtime storage into the card structure 2009-01-27 10:30:54 +00:00
wm8900.h ASoC: Convert WM8900 to do more work at I2C probe time 2008-12-10 19:47:40 +00:00
wm8903.c ASoC: Push the codec runtime storage into the card structure 2009-01-27 10:30:54 +00:00
wm8903.h ASoC: Convert WM8903 driver to register at I2C probe time 2008-12-10 19:47:44 +00:00
wm8971.c ASoC: Push the codec runtime storage into the card structure 2009-01-27 10:30:54 +00:00
wm8971.h sound: ASoC: Add WM8971 CODEC driver 2008-09-23 08:18:05 +02:00
wm8990.c ASoC: Push the codec runtime storage into the card structure 2009-01-27 10:30:54 +00:00
wm8990.h ASoC: Enable WM8990 ADC clocking workaround 2008-11-17 17:24:54 +00:00
wm9705.c ASoC: Push the codec runtime storage into the card structure 2009-01-27 10:30:54 +00:00
wm9705.h ASoC: Driver for the WM9705 AC97 codec. 2009-01-16 16:40:25 +00:00
wm9712.c ASoC: Push the codec runtime storage into the card structure 2009-01-27 10:30:54 +00:00
wm9712.h ALSA: asoc: codecs - merge structs snd_soc_codec_dai and snd_soc_cpu_dai. 2008-07-10 09:32:39 +02:00
wm9713.c ASoC: Push the codec runtime storage into the card structure 2009-01-27 10:30:54 +00:00
wm9713.h ALSA: asoc: codecs - merge structs snd_soc_codec_dai and snd_soc_cpu_dai. 2008-07-10 09:32:39 +02:00