aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMark Brown <broonie@opensource.wolfsonmicro.com>2011-05-03 14:29:52 -0400
committerMark Brown <broonie@opensource.wolfsonmicro.com>2011-05-03 18:29:08 -0400
commitabc9d5aa085a4316e1abcd3c3f12ff0bb0133d57 (patch)
treea3029f27d79d64b4ba48891757e7e949b65e8af7
parentb06c16dc3252018d0cad8fbd026cb9d65af31a4a (diff)
ASoC: Use shared controls for input signal path in WM8915
Gives finer grained power management. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@ti.com>
-rw-r--r--sound/soc/codecs/wm8915.c45
1 files changed, 25 insertions, 20 deletions
diff --git a/sound/soc/codecs/wm8915.c b/sound/soc/codecs/wm8915.c
index 4a3c5cc77e55..0dc1dd70a138 100644
--- a/sound/soc/codecs/wm8915.c
+++ b/sound/soc/codecs/wm8915.c
@@ -991,10 +991,10 @@ SND_SOC_DAPM_MICBIAS("MICB1", WM8915_POWER_MANAGEMENT_1, 8, 0),
991SND_SOC_DAPM_PGA("IN1L PGA", WM8915_POWER_MANAGEMENT_2, 5, 0, NULL, 0), 991SND_SOC_DAPM_PGA("IN1L PGA", WM8915_POWER_MANAGEMENT_2, 5, 0, NULL, 0),
992SND_SOC_DAPM_PGA("IN1R PGA", WM8915_POWER_MANAGEMENT_2, 4, 0, NULL, 0), 992SND_SOC_DAPM_PGA("IN1R PGA", WM8915_POWER_MANAGEMENT_2, 4, 0, NULL, 0),
993 993
994SND_SOC_DAPM_PGA("ADC", SND_SOC_NOPM, 0, 0, NULL, 0), 994SND_SOC_DAPM_MUX("IN1L Mux", SND_SOC_NOPM, 0, 0, &in1_mux),
995 995SND_SOC_DAPM_MUX("IN1R Mux", SND_SOC_NOPM, 0, 0, &in1_mux),
996SND_SOC_DAPM_MUX("IN1 Mux", SND_SOC_NOPM, 0, 0, &in1_mux), 996SND_SOC_DAPM_MUX("IN2L Mux", SND_SOC_NOPM, 0, 0, &in2_mux),
997SND_SOC_DAPM_MUX("IN2 Mux", SND_SOC_NOPM, 0, 0, &in2_mux), 997SND_SOC_DAPM_MUX("IN2R Mux", SND_SOC_NOPM, 0, 0, &in2_mux),
998 998
999SND_SOC_DAPM_PGA("IN1L", WM8915_POWER_MANAGEMENT_7, 2, 0, NULL, 0), 999SND_SOC_DAPM_PGA("IN1L", WM8915_POWER_MANAGEMENT_7, 2, 0, NULL, 0),
1000SND_SOC_DAPM_PGA("IN1R", WM8915_POWER_MANAGEMENT_7, 3, 0, NULL, 0), 1000SND_SOC_DAPM_PGA("IN1R", WM8915_POWER_MANAGEMENT_7, 3, 0, NULL, 0),
@@ -1172,28 +1172,33 @@ static const struct snd_soc_dapm_route wm8915_dapm_routes[] = {
1172 { "DMIC1L", NULL, "DMIC1" }, 1172 { "DMIC1L", NULL, "DMIC1" },
1173 { "DMIC1R", NULL, "DMIC1" }, 1173 { "DMIC1R", NULL, "DMIC1" },
1174 1174
1175 { "ADC", NULL, "ADCL" }, 1175 { "IN1L Mux", "ADC", "ADCL" },
1176 { "ADC", NULL, "ADCR" }, 1176 { "IN1L Mux", "DMIC1", "DMIC1L" },
1177 { "IN1L Mux", "DMIC2", "DMIC2L" },
1178
1179 { "IN1R Mux", "ADC", "ADCR" },
1180 { "IN1R Mux", "DMIC1", "DMIC1R" },
1181 { "IN1R Mux", "DMIC2", "DMIC2R" },
1177 1182
1178 { "IN1 Mux", "ADC", "ADC" }, 1183 { "IN2L Mux", "ADC", "ADCL" },
1179 { "IN1 Mux", "DMIC1", "DMIC1" }, 1184 { "IN2L Mux", "DMIC1", "DMIC1L" },
1180 { "IN1 Mux", "DMIC2", "DMIC2" }, 1185 { "IN2L Mux", "DMIC2", "DMIC2L" },
1181 1186
1182 { "IN2 Mux", "ADC", "ADC" }, 1187 { "IN2R Mux", "ADC", "ADCR" },
1183 { "IN2 Mux", "DMIC1", "DMIC1" }, 1188 { "IN2R Mux", "DMIC1", "DMIC1R" },
1184 { "IN2 Mux", "DMIC2", "DMIC2" }, 1189 { "IN2R Mux", "DMIC2", "DMIC2R" },
1185 1190
1186 { "Left Sidetone", "IN1", "IN1 Mux" }, 1191 { "Left Sidetone", "IN1", "IN1L Mux" },
1187 { "Left Sidetone", "IN2", "IN2 Mux" }, 1192 { "Left Sidetone", "IN2", "IN2L Mux" },
1188 1193
1189 { "Right Sidetone", "IN1", "IN1 Mux" }, 1194 { "Right Sidetone", "IN1", "IN1R Mux" },
1190 { "Right Sidetone", "IN2", "IN2 Mux" }, 1195 { "Right Sidetone", "IN2", "IN2R Mux" },
1191 1196
1192 { "DSP1TXL", "IN1 Switch", "IN1 Mux" }, 1197 { "DSP1TXL", "IN1 Switch", "IN1L Mux" },
1193 { "DSP1TXR", "IN1 Switch", "IN1 Mux" }, 1198 { "DSP1TXR", "IN1 Switch", "IN1R Mux" },
1194 1199
1195 { "DSP2TXL", "IN1 Switch", "IN2 Mux" }, 1200 { "DSP2TXL", "IN1 Switch", "IN2L Mux" },
1196 { "DSP2TXR", "IN1 Switch", "IN2 Mux" }, 1201 { "DSP2TXR", "IN1 Switch", "IN2R Mux" },
1197 1202
1198 { "AIF1TX0", NULL, "DSP1TXL" }, 1203 { "AIF1TX0", NULL, "DSP1TXL" },
1199 { "AIF1TX1", NULL, "DSP1TXR" }, 1204 { "AIF1TX1", NULL, "DSP1TXR" },