ASoC: rt5677: Add the slot_width "25" support in the TDM mode
authorOder Chiou <oder_chiou@realtek.com>
Tue, 13 Jan 2015 03:13:15 +0000 (11:13 +0800)
committerMark Brown <broonie@kernel.org>
Wed, 14 Jan 2015 17:19:51 +0000 (17:19 +0000)
Add the slot_width "25" support in the TDM mode for the Intel platform.

Signed-off-by: Oder Chiou <oder_chiou@realtek.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/codecs/rt5677.c

index f6affba734c3c2055f87d29dc908d3815614e902..88de759fb7fca616486f8781110754dce097929d 100644 (file)
@@ -4092,7 +4092,7 @@ static int rt5677_set_tdm_slot(struct snd_soc_dai *dai, unsigned int tx_mask,
 {
        struct snd_soc_codec *codec = dai->codec;
        struct rt5677_priv *rt5677 = snd_soc_codec_get_drvdata(codec);
-       unsigned int val = 0;
+       unsigned int val = 0, slot_width_25 = 0;
 
        if (rx_mask || tx_mask)
                val |= (1 << 12);
@@ -4116,6 +4116,8 @@ static int rt5677_set_tdm_slot(struct snd_soc_dai *dai, unsigned int tx_mask,
        case 20:
                val |= (1 << 8);
                break;
+       case 25:
+               slot_width_25 = 0x8080;
        case 24:
                val |= (2 << 8);
                break;
@@ -4131,10 +4133,14 @@ static int rt5677_set_tdm_slot(struct snd_soc_dai *dai, unsigned int tx_mask,
        case RT5677_AIF1:
                regmap_update_bits(rt5677->regmap, RT5677_TDM1_CTRL1, 0x1f00,
                        val);
+               regmap_update_bits(rt5677->regmap, RT5677_DIG_MISC, 0x8000,
+                       slot_width_25);
                break;
        case RT5677_AIF2:
                regmap_update_bits(rt5677->regmap, RT5677_TDM2_CTRL1, 0x1f00,
                        val);
+               regmap_update_bits(rt5677->regmap, RT5677_DIG_MISC, 0x80,
+                       slot_width_25);
                break;
        default:
                break;