{ ADCX140_DSP_CFG0, 0x01 },
        { ADCX140_DSP_CFG1, 0x40 },
        { ADCX140_DRE_CFG0, 0x7b },
+       { ADCX140_AGC_CFG0, 0xe7 },
        { ADCX140_IN_CH_EN, 0xf0 },
        { ADCX140_ASI_OUT_CH_EN, 0x00 },
        { ADCX140_PWR_CFG, 0x00 },
 /* ADC gain. From 0 to 42 dB in 1 dB steps */
 static DECLARE_TLV_DB_SCALE(adc_tlv, 0, 100, 0);
 
+/* DRE Level. From -12 dB to -66 dB in 1 dB steps */
+static DECLARE_TLV_DB_SCALE(dre_thresh_tlv, -6600, 100, 0);
+/* DRE Max Gain. From 2 dB to 26 dB in 2 dB steps */
+static DECLARE_TLV_DB_SCALE(dre_gain_tlv, 200, 200, 0);
+
+/* AGC Level. From -6 dB to -36 dB in 2 dB steps */
+static DECLARE_TLV_DB_SCALE(agc_thresh_tlv, -3600, 200, 0);
+/* AGC Max Gain. From 3 dB to 42 dB in 3 dB steps */
+static DECLARE_TLV_DB_SCALE(agc_gain_tlv, 300, 300, 0);
+
 static const char * const resistor_text[] = {
        "2.5 kOhm", "10 kOhm", "20 kOhm"
 };
 static const struct snd_kcontrol_new adcx140_dapm_ch4_en_switch =
        SOC_DAPM_SINGLE("Switch", ADCX140_ASI_OUT_CH_EN, 4, 1, 0);
 
+static const struct snd_kcontrol_new adcx140_dapm_ch1_dre_en_switch =
+       SOC_DAPM_SINGLE("Switch", ADCX140_CH1_CFG0, 0, 1, 0);
+static const struct snd_kcontrol_new adcx140_dapm_ch2_dre_en_switch =
+       SOC_DAPM_SINGLE("Switch", ADCX140_CH2_CFG0, 0, 1, 0);
+static const struct snd_kcontrol_new adcx140_dapm_ch3_dre_en_switch =
+       SOC_DAPM_SINGLE("Switch", ADCX140_CH3_CFG0, 0, 1, 0);
+static const struct snd_kcontrol_new adcx140_dapm_ch4_dre_en_switch =
+       SOC_DAPM_SINGLE("Switch", ADCX140_CH4_CFG0, 0, 1, 0);
+
+static const struct snd_kcontrol_new adcx140_dapm_dre_en_switch =
+       SOC_DAPM_SINGLE("Switch", ADCX140_DSP_CFG1, 3, 1, 0);
+
 /* Output Mixer */
 static const struct snd_kcontrol_new adcx140_output_mixer_controls[] = {
        SOC_DAPM_SINGLE("Digital CH1 Switch", 0, 0, 0, 0),
        SND_SOC_DAPM_SWITCH("CH4_ASI_EN", SND_SOC_NOPM, 0, 0,
                            &adcx140_dapm_ch4_en_switch),
 
+       SND_SOC_DAPM_SWITCH("DRE_ENABLE", SND_SOC_NOPM, 0, 0,
+                           &adcx140_dapm_dre_en_switch),
+
+       SND_SOC_DAPM_SWITCH("CH1_DRE_EN", SND_SOC_NOPM, 0, 0,
+                           &adcx140_dapm_ch1_dre_en_switch),
+       SND_SOC_DAPM_SWITCH("CH2_DRE_EN", SND_SOC_NOPM, 0, 0,
+                           &adcx140_dapm_ch2_dre_en_switch),
+       SND_SOC_DAPM_SWITCH("CH3_DRE_EN", SND_SOC_NOPM, 0, 0,
+                           &adcx140_dapm_ch3_dre_en_switch),
+       SND_SOC_DAPM_SWITCH("CH4_DRE_EN", SND_SOC_NOPM, 0, 0,
+                           &adcx140_dapm_ch4_dre_en_switch),
+
        SND_SOC_DAPM_MUX("IN1 Analog Mic Resistor", SND_SOC_NOPM, 0, 0,
                        in1_resistor_controls),
        SND_SOC_DAPM_MUX("IN2 Analog Mic Resistor", SND_SOC_NOPM, 0, 0,
        {"CH3_ASI_EN", "Switch", "CH3_ADC"},
        {"CH4_ASI_EN", "Switch", "CH4_ADC"},
 
+       {"DRE_ENABLE", "Switch", "CH1_DRE_EN"},
+       {"DRE_ENABLE", "Switch", "CH2_DRE_EN"},
+       {"DRE_ENABLE", "Switch", "CH3_DRE_EN"},
+       {"DRE_ENABLE", "Switch", "CH4_DRE_EN"},
+
+       {"CH1_DRE_EN", "Switch", "CH1_ADC"},
+       {"CH2_DRE_EN", "Switch", "CH2_ADC"},
+       {"CH3_DRE_EN", "Switch", "CH3_ADC"},
+       {"CH4_DRE_EN", "Switch", "CH4_ADC"},
+
        /* Mic input */
        {"CH1_ADC", NULL, "MIC_GAIN_CTL_CH1"},
        {"CH2_ADC", NULL, "MIC_GAIN_CTL_CH2"},
        SOC_SINGLE_TLV("Analog CH4 Mic Gain Volume", ADCX140_CH1_CFG4, 2, 42, 0,
                        adc_tlv),
 
+       SOC_SINGLE_TLV("DRE Threshold", ADCX140_DRE_CFG0, 4, 9, 0,
+                      dre_thresh_tlv),
+       SOC_SINGLE_TLV("DRE Max Gain", ADCX140_DRE_CFG0, 0, 12, 0,
+                      dre_gain_tlv),
+
+       SOC_SINGLE_TLV("AGC Threshold", ADCX140_AGC_CFG0, 4, 15, 0,
+                      agc_thresh_tlv),
+       SOC_SINGLE_TLV("AGC Max Gain", ADCX140_AGC_CFG0, 0, 13, 0,
+                      agc_gain_tlv),
+
        SOC_SINGLE_TLV("Digital CH1 Out Volume", ADCX140_CH1_CFG2,
                        0, 0xff, 0, dig_vol_tlv),
        SOC_SINGLE_TLV("Digital CH2 Out Volume", ADCX140_CH2_CFG2,