]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
ASoC: wm8741: Fix setting BCLK and LRCLK polarity
authorSergej Sawazki <sergej@taudac.com>
Fri, 3 Nov 2017 18:34:28 +0000 (19:34 +0100)
committerMark Brown <broonie@kernel.org>
Fri, 3 Nov 2017 18:46:40 +0000 (18:46 +0000)
After checking the code and the datasheet, it seems like we are handling
the clock inversion (SND_SOC_DAIFMT_NB_IF and SND_SOC_DAIFMT_IB_IF) not
correctly.

>From the datasheet (Table 58):
R5 Format Control, BITS[5:4], [BCP:LRP]:
  (0) 00 =  normal   BCLK, normal   LRCLK
  (1) 01 =  normal   BCLK, inverted LRCLK <-- Fix this
  (2) 10 =  inverted BCLK, normal   LRCLK
  (3) 11 =  inverted BCLK, inverted LRCLK <-- Fix this

Signed-off-by: Sergej Sawazki <sergej@taudac.com>
Acked-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/codecs/wm8741.c

index 3c96af057a3e3390b22dcd4e36948e773db7913f..a394dbee77aa39faf3d1ff157d59dc13ff4b8b90 100644 (file)
@@ -333,13 +333,13 @@ static int wm8741_set_dai_fmt(struct snd_soc_dai *codec_dai,
        switch (fmt & SND_SOC_DAIFMT_INV_MASK) {
        case SND_SOC_DAIFMT_NB_NF:
                break;
-       case SND_SOC_DAIFMT_IB_IF:
+       case SND_SOC_DAIFMT_NB_IF:
                iface |= 0x10;
                break;
        case SND_SOC_DAIFMT_IB_NF:
                iface |= 0x20;
                break;
-       case SND_SOC_DAIFMT_NB_IF:
+       case SND_SOC_DAIFMT_IB_IF:
                iface |= 0x30;
                break;
        default: