ASoC: da7218: Set DAI output pin high impedance when not in use
authorAdam Thomson <Adam.Thomson.Opensource@diasemi.com>
Fri, 16 Dec 2016 11:05:02 +0000 (11:05 +0000)
committerMark Brown <broonie@kernel.org>
Fri, 16 Dec 2016 12:29:09 +0000 (12:29 +0000)
For TDM mode, the I2S data out line can be shared between mutliple
codecs. In this scenario, only the active codec should be using
the line, and all others should be high impedance. However,
currently in the driver this configuration isn't set when capture
is inactive, and the line remains driven.

This patch updates the AIF_OUT widget to set the DAI output pin of
the device as high impedance when not in use.

Signed-off-by: Adam Thomson <Adam.Thomson.Opensource@diasemi.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/codecs/da7218.c

index c69e97654fc63e7b9f9a06776daeaba199a8b952..d256ebf9e309de299b0711688366c5c5cdb74274 100644 (file)
@@ -1634,7 +1634,8 @@ static const struct snd_soc_dapm_widget da7218_dapm_widgets[] = {
                            SND_SOC_DAPM_POST_PMU | SND_SOC_DAPM_POST_PMD),
 
        /* DAI */
-       SND_SOC_DAPM_AIF_OUT("DAIOUT", "Capture", 0, SND_SOC_NOPM, 0, 0),
+       SND_SOC_DAPM_AIF_OUT("DAIOUT", "Capture", 0, DA7218_DAI_TDM_CTRL,
+                            DA7218_DAI_OE_SHIFT, DA7218_NO_INVERT),
        SND_SOC_DAPM_AIF_IN("DAIIN", "Playback", 0, SND_SOC_NOPM, 0, 0),
 
        /* Output Mixers */