ASoC: rt5670: Enable MCLK detection
authorBard Liao <bardliao@realtek.com>
Mon, 17 Oct 2016 11:27:16 +0000 (19:27 +0800)
committerMark Brown <broonie@kernel.org>
Mon, 24 Oct 2016 17:31:38 +0000 (18:31 +0100)
There is a power saving mechanism in rt5670. It will turn off some
unused power when MCLK is not present. We call that "MCLK detection"
and it should be enabled by default.

Signed-off-by: Bard Liao <bardliao@realtek.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/codecs/rt5670.c
sound/soc/codecs/rt5670.h

index 49caf13..6caac92 100644 (file)
@@ -2889,6 +2889,9 @@ static int rt5670_i2c_probe(struct i2c_client *i2c,
        if (ret != 0)
                dev_warn(&i2c->dev, "Failed to apply regmap patch: %d\n", ret);
 
+       regmap_update_bits(rt5670->regmap, RT5670_DIG_MISC,
+                                RT5670_MCLK_DET, RT5670_MCLK_DET);
+
        if (rt5670->pdata.in2_diff)
                regmap_update_bits(rt5670->regmap, RT5670_IN2,
                                        RT5670_IN_DF2, RT5670_IN_DF2);
@@ -2903,7 +2906,6 @@ static int rt5670_i2c_probe(struct i2c_client *i2c,
                                   RT5670_GP1_PIN_MASK, RT5670_GP1_PIN_IRQ);
                regmap_update_bits(rt5670->regmap, RT5670_GPIO_CTRL2,
                                   RT5670_GP1_PF_MASK, RT5670_GP1_PF_OUT);
-               regmap_update_bits(rt5670->regmap, RT5670_DIG_MISC, 0x8, 0x8);
        }
 
        if (rt5670->pdata.jd_mode) {
index 3f1b0f1..5ba485c 100644 (file)
@@ -1914,6 +1914,7 @@ enum {
 #define RT5670_IF1_ADC1_IN2_SFT                        11
 #define RT5670_IF1_ADC2_IN1_SEL                        (0x1 << 10)
 #define RT5670_IF1_ADC2_IN1_SFT                        10
+#define RT5670_MCLK_DET                                (0x1 << 3)
 
 /* General Control2 (0xfb) */
 #define RT5670_RXDC_SRC_MASK                   (0x1 << 7)