• Sapthagiri Baratam's avatar
    ASoC: wm8804: Add DAPM widgets for SPDIF/AIF · 5631f187
    Sapthagiri Baratam authored
    This change converts the driver to use DAPM to control the power for the
    various blocks on the chip. As part of this change the existing controls
    "TX Playback Switch" (controlled power for the SPDIF TX block) and "AIF
    Playback Switch" (controlled power for the AIF block) are both removed,
    as they are now redundant since the power state of those blocks is
    controlled automatically by DAPM.
    
    There are several benefits of this change, the most important of which
    is this change adds support for powering down the SPDIF RX block. The RX
    block will automatically assume control of the PLL on the chip when it
    is receiving a signal, so leaving this enabled all the time as was
    currently done in the driver can be problematic. An incoming SPDIF signal
    that is not being used can completely destroy the clocking for an in use
    TX signal. But this change ensures that the RX block will only be
    powered when the user intends to be receiving data, thus avoiding this
    issue.
    
    Additional benefits include the chip being simpler to operate as the
    power no longer needs to be manually controlled between use-cases and a
    small power saving (although it is acknowledged that this is likely
    unimportant in the typical use-cases for this chip).
    Signed-off-by: default avatarSapthagiri Baratam <sapthagiri.baratam@incubesol.com>
    Signed-off-by: default avatarCharles Keepax <ckeepax@opensource.wolfsonmicro.com>
    Signed-off-by: default avatarMark Brown <broonie@kernel.org>
    5631f187
wm8804.c 17.5 KB