|
@@ -634,6 +634,13 @@ static const struct soc_enum lsidetone_enum =
|
|
|
static const struct soc_enum rsidetone_enum =
|
|
|
SOC_ENUM_SINGLE(WM8903_DAC_DIGITAL_0, 0, 3, sidetone_text);
|
|
|
|
|
|
+static const char *adcinput_text[] = {
|
|
|
+ "ADC", "DMIC"
|
|
|
+};
|
|
|
+
|
|
|
+static const struct soc_enum adcinput_enum =
|
|
|
+ SOC_ENUM_SINGLE(WM8903_CLOCK_RATE_TEST_4, 9, 2, adcinput_text);
|
|
|
+
|
|
|
static const char *aif_text[] = {
|
|
|
"Left", "Right"
|
|
|
};
|
|
@@ -767,6 +774,9 @@ static const struct snd_kcontrol_new lsidetone_mux =
|
|
|
static const struct snd_kcontrol_new rsidetone_mux =
|
|
|
SOC_DAPM_ENUM("DACR Sidetone Mux", rsidetone_enum);
|
|
|
|
|
|
+static const struct snd_kcontrol_new adcinput_mux =
|
|
|
+ SOC_DAPM_ENUM("ADC Input", adcinput_enum);
|
|
|
+
|
|
|
static const struct snd_kcontrol_new lcapture_mux =
|
|
|
SOC_DAPM_ENUM("Left Capture Mux", lcapture_enum);
|
|
|
|
|
@@ -817,6 +827,7 @@ SND_SOC_DAPM_INPUT("IN2L"),
|
|
|
SND_SOC_DAPM_INPUT("IN2R"),
|
|
|
SND_SOC_DAPM_INPUT("IN3L"),
|
|
|
SND_SOC_DAPM_INPUT("IN3R"),
|
|
|
+SND_SOC_DAPM_INPUT("DMICDAT"),
|
|
|
|
|
|
SND_SOC_DAPM_OUTPUT("HPOUTL"),
|
|
|
SND_SOC_DAPM_OUTPUT("HPOUTR"),
|
|
@@ -842,6 +853,9 @@ SND_SOC_DAPM_MUX("Right Input Mode Mux", SND_SOC_NOPM, 0, 0, &rinput_mode_mux),
|
|
|
SND_SOC_DAPM_PGA("Left Input PGA", WM8903_POWER_MANAGEMENT_0, 1, 0, NULL, 0),
|
|
|
SND_SOC_DAPM_PGA("Right Input PGA", WM8903_POWER_MANAGEMENT_0, 0, 0, NULL, 0),
|
|
|
|
|
|
+SND_SOC_DAPM_MUX("Left ADC Input", SND_SOC_NOPM, 0, 0, &adcinput_mux),
|
|
|
+SND_SOC_DAPM_MUX("Right ADC Input", SND_SOC_NOPM, 0, 0, &adcinput_mux),
|
|
|
+
|
|
|
SND_SOC_DAPM_ADC("ADCL", NULL, WM8903_POWER_MANAGEMENT_6, 1, 0),
|
|
|
SND_SOC_DAPM_ADC("ADCR", NULL, WM8903_POWER_MANAGEMENT_6, 0, 0),
|
|
|
|
|
@@ -979,6 +993,11 @@ static const struct snd_soc_dapm_route wm8903_intercon[] = {
|
|
|
{ "Left Input PGA", NULL, "Left Input Mode Mux" },
|
|
|
{ "Right Input PGA", NULL, "Right Input Mode Mux" },
|
|
|
|
|
|
+ { "Left ADC Input", "ADC", "Left Input PGA" },
|
|
|
+ { "Left ADC Input", "DMIC", "DMICDAT" },
|
|
|
+ { "Right ADC Input", "ADC", "Right Input PGA" },
|
|
|
+ { "Right ADC Input", "DMIC", "DMICDAT" },
|
|
|
+
|
|
|
{ "Left Capture Mux", "Left", "ADCL" },
|
|
|
{ "Left Capture Mux", "Right", "ADCR" },
|
|
|
|
|
@@ -988,9 +1007,9 @@ static const struct snd_soc_dapm_route wm8903_intercon[] = {
|
|
|
{ "AIFTXL", NULL, "Left Capture Mux" },
|
|
|
{ "AIFTXR", NULL, "Right Capture Mux" },
|
|
|
|
|
|
- { "ADCL", NULL, "Left Input PGA" },
|
|
|
+ { "ADCL", NULL, "Left ADC Input" },
|
|
|
{ "ADCL", NULL, "CLK_DSP" },
|
|
|
- { "ADCR", NULL, "Right Input PGA" },
|
|
|
+ { "ADCR", NULL, "Right ADC Input" },
|
|
|
{ "ADCR", NULL, "CLK_DSP" },
|
|
|
|
|
|
{ "Left Playback Mux", "Left", "AIFRXL" },
|