btn_type = val & 0xfff0;
        snd_soc_component_write(component, RT5682_4BTN_IL_CMD_1, val);
        pr_debug("%s btn_type=%x\n", __func__, btn_type);
+       snd_soc_component_update_bits(component,
+               RT5682_SAR_IL_CMD_2, 0x10, 0x10);
 
        return btn_type;
 }
        SND_SOC_DAPM_MIXER("Stereo1 ADC MIXR", RT5682_STO1_ADC_DIG_VOL,
                RT5682_R_MUTE_SFT, 1, rt5682_sto1_adc_r_mix,
                ARRAY_SIZE(rt5682_sto1_adc_r_mix)),
+       SND_SOC_DAPM_SUPPLY("BTN Detection Mode", RT5682_SAR_IL_CMD_1,
+               14, 1, NULL, 0),
 
        /* ADC PGA */
        SND_SOC_DAPM_PGA("Stereo1 ADC MIX", SND_SOC_NOPM, 0, 0, NULL, 0),
        {"Stereo1 ADC MIXR", "ADC2 Switch", "Stereo1 ADC R2 Mux"},
        {"Stereo1 ADC MIXR", NULL, "ADC Stereo1 Filter"},
 
+       {"ADC Stereo1 Filter", NULL, "BTN Detection Mode"},
+
        {"Stereo1 ADC MIX", NULL, "Stereo1 ADC MIXL"},
        {"Stereo1 ADC MIX", NULL, "Stereo1 ADC MIXR"},