ASoC: rt5640: move DAC2 Power to rt5640_dapm_widgets
[platform/kernel/linux-rpi.git] / sound / soc / codecs / rt5640.c
index 3cc1135..0f1b216 100644 (file)
@@ -423,6 +423,8 @@ static const struct snd_kcontrol_new rt5640_snd_controls[] = {
        SOC_DOUBLE_TLV("ADC Capture Volume", RT5640_ADC_DIG_VOL,
                        RT5640_L_VOL_SFT, RT5640_R_VOL_SFT,
                        127, 0, adc_vol_tlv),
+       SOC_DOUBLE("Mono ADC Capture Switch", RT5640_DUMMY1,
+               RT5640_M_MONO_ADC_L_SFT, RT5640_M_MONO_ADC_R_SFT, 1, 1),
        SOC_DOUBLE_TLV("Mono ADC Capture Volume", RT5640_ADC_DATA,
                        RT5640_L_VOL_SFT, RT5640_R_VOL_SFT,
                        127, 0, adc_vol_tlv),
@@ -1225,6 +1227,10 @@ static const struct snd_soc_dapm_widget rt5640_dapm_widgets[] = {
                RT5640_PWR_DAC_L1_BIT, 0, NULL, 0),
        SND_SOC_DAPM_SUPPLY("DAC R1 Power", RT5640_PWR_DIG1,
                RT5640_PWR_DAC_R1_BIT, 0, NULL, 0),
+       SND_SOC_DAPM_SUPPLY("DAC L2 Power", RT5640_PWR_DIG1,
+               RT5640_PWR_DAC_L2_BIT, 0, NULL, 0),
+       SND_SOC_DAPM_SUPPLY("DAC R2 Power", RT5640_PWR_DIG1,
+               RT5640_PWR_DAC_R2_BIT, 0, NULL, 0),
        /* SPK/OUT Mixer */
        SND_SOC_DAPM_MIXER("SPK MIXL", RT5640_PWR_MIXER, RT5640_PWR_SM_L_BIT,
                0, rt5640_spk_l_mix, ARRAY_SIZE(rt5640_spk_l_mix)),
@@ -1320,10 +1326,6 @@ static const struct snd_soc_dapm_widget rt5640_specific_dapm_widgets[] = {
                rt5640_mono_mix, ARRAY_SIZE(rt5640_mono_mix)),
        SND_SOC_DAPM_SUPPLY("Improve MONO Amp Drv", RT5640_PWR_ANLG1,
                RT5640_PWR_MA_BIT, 0, NULL, 0),
-       SND_SOC_DAPM_SUPPLY("DAC L2 Power", RT5640_PWR_DIG1,
-               RT5640_PWR_DAC_L2_BIT, 0, NULL, 0),
-       SND_SOC_DAPM_SUPPLY("DAC R2 Power", RT5640_PWR_DIG1,
-               RT5640_PWR_DAC_R2_BIT, 0, NULL, 0),
 
        SND_SOC_DAPM_OUTPUT("MONOP"),
        SND_SOC_DAPM_OUTPUT("MONON"),
@@ -2407,6 +2409,9 @@ static int rt5640_i2c_probe(struct i2c_client *i2c,
        if (ret != 0)
                dev_warn(&i2c->dev, "Failed to apply regmap patch: %d\n", ret);
 
+       regmap_update_bits(rt5640->regmap, RT5640_DUMMY1,
+                               RT5640_MCLK_DET, RT5640_MCLK_DET);
+
        if (rt5640->pdata.in1_diff)
                regmap_update_bits(rt5640->regmap, RT5640_IN1_IN2,
                                        RT5640_IN_DF1, RT5640_IN_DF1);