• Peter Ujfalusi's avatar
    ASoC: tlv320dac33: Power down digital parts, when not needed · a6cea965
    Peter Ujfalusi authored
    If the following scenario has been followed:
    1. Enable analog bypass
    amixer sset 'Analog Left Bypass' on
    amixer sset 'Analog Right Bypass' on
    
    2. Start playback
    aplay -fdat -d3 /dev/zero
    
    After the playback stopped (3 sec), and the soc timeout (5 sec),
    the digital parts of the codec will remain powered up.
    This means that the DAI clocks are continue to run, the
    oscillator remain operational, etc.
    
    Use the SND_SOC_DAPM_POST_PMD widget to get notification
    about the stopped stream, and power down the digital
    part of the codec.
    If the analog bypass is enabled, than the codec will remain in
    BIAS_ON level, and things will work correctly.
    In case, if the bypass is disabled, than the codec will
    fall to BIAS_STANDBY than to BIAS_OFF level, as it used
    to.
    
    The digital part of DAC33 is initialized at every stream start
    (DAPM_PRE:PRE_PMU event), so subsequent streams (within 5 sec)
    will have working DAI.
    When the codec is coming out from BIAS_OFF, the full power-up
    sequence followed by the same DAPM_PRE widget event will power up
    the digital part.
    Signed-off-by: default avatarPeter Ujfalusi <peter.ujfalusi@nokia.com>
    Acked-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
    Signed-off-by: default avatarLiam Girdwood <lrg@slimlogic.co.uk>
    a6cea965
tlv320dac33.c 44.4 KB