linux/sound
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
..
aoa ALSA: Convert to snd_card_create() in other sound/* 2009-01-12 15:21:19 +01:00
arm ALSA: Convert to snd_card_create() in other sound/* 2009-01-12 15:21:19 +01:00
core ALSA: Introduce snd_card_create() 2009-01-12 14:56:41 +01:00
drivers ALSA: Convert to snd_card_create() in other sound/* 2009-01-12 15:21:19 +01:00
i2c V4L/DVB (10138): v4l2-ioctl: change to long return type to match unlocked_ioctl. 2009-01-02 17:11:34 -02:00
isa ALSA: opti9xx - Fix build breakage by snd_card_create() conversion 2009-01-14 09:34:06 +01:00
mips ALSA: Convert to snd_card_create() in other sound/* 2009-01-12 15:21:19 +01:00
oss m68k: dmasound - Kill warn_unused_result warnings 2009-01-12 20:56:42 +01:00
parisc ALSA: Convert to snd_card_create() in other sound/* 2009-01-12 15:21:19 +01:00
pci Merge branch 'topic/snd_card_new-err' into topic/asoc 2009-01-28 08:08:32 +01:00
pcmcia ALSA: Return proper error code at probe in sound/pcmcia/* 2009-01-12 15:21:56 +01:00
ppc ALSA: Convert to snd_card_create() in other sound/* 2009-01-12 15:21:19 +01:00
sh ALSA: Convert to snd_card_create() in other sound/* 2009-01-12 15:21:19 +01:00
soc ASoC: TWL4030: Add analog loopback support 2009-01-29 13:58:04 +00:00
sparc ALSA: Convert to snd_card_create() in other sound/* 2009-01-12 15:21:19 +01:00
spi ALSA: Convert to snd_card_create() in other sound/* 2009-01-12 15:21:19 +01:00
synth ALSA: Kill snd_assert() in other places 2008-08-13 11:46:40 +02:00
usb Merge branch 'topic/snd_card_new-err' into topic/asoc 2009-01-28 08:08:32 +01:00
ac97_bus.c ALSA: ac97 - Include ac97_codec.h for ac97_bus_type declaration 2008-12-02 16:25:37 +01:00
Kconfig Fix CONFIG_AC97_BUS dependency 2008-09-06 11:43:41 +02:00
last.c [ALSA] Remove sound/driver.h 2008-01-31 17:29:48 +01:00
Makefile [ALSA] Add SPI devices to ALSA Kconfig and Makefile 2007-10-16 15:57:47 +02:00
sound_core.c ALSA: Fix declaration of sound_class 2008-12-15 16:55:27 +01:00
sound_firmware.c Detach sched.h from mm.h 2007-05-21 09:18:19 -07:00