• Peter Ujfalusi's avatar
    ASoC: TWL4030: Add analog loopback support · 7393958f
    Peter Ujfalusi authored
    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: default avatarPeter Ujfalusi <peter.ujfalusi@nokia.com>
    Signed-off-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
    7393958f
twl4030.h 7.25 KB