aboutsummaryrefslogtreecommitdiffstats
path: root/sound/soc/codecs/wm5110.c
diff options
context:
space:
mode:
Diffstat (limited to 'sound/soc/codecs/wm5110.c')
-rw-r--r--sound/soc/codecs/wm5110.c79
1 files changed, 63 insertions, 16 deletions
diff --git a/sound/soc/codecs/wm5110.c b/sound/soc/codecs/wm5110.c
index bf47914234b3..9211e4192f71 100644
--- a/sound/soc/codecs/wm5110.c
+++ b/sound/soc/codecs/wm5110.c
@@ -153,6 +153,15 @@ SOC_ENUM("LHPF2 Mode", arizona_lhpf2_mode),
153SOC_ENUM("LHPF3 Mode", arizona_lhpf3_mode), 153SOC_ENUM("LHPF3 Mode", arizona_lhpf3_mode),
154SOC_ENUM("LHPF4 Mode", arizona_lhpf4_mode), 154SOC_ENUM("LHPF4 Mode", arizona_lhpf4_mode),
155 155
156ARIZONA_MIXER_CONTROLS("DSP1L", ARIZONA_DSP1LMIX_INPUT_1_SOURCE),
157ARIZONA_MIXER_CONTROLS("DSP1R", ARIZONA_DSP1RMIX_INPUT_1_SOURCE),
158ARIZONA_MIXER_CONTROLS("DSP2L", ARIZONA_DSP2LMIX_INPUT_1_SOURCE),
159ARIZONA_MIXER_CONTROLS("DSP2R", ARIZONA_DSP2RMIX_INPUT_1_SOURCE),
160ARIZONA_MIXER_CONTROLS("DSP3L", ARIZONA_DSP3LMIX_INPUT_1_SOURCE),
161ARIZONA_MIXER_CONTROLS("DSP3R", ARIZONA_DSP3RMIX_INPUT_1_SOURCE),
162ARIZONA_MIXER_CONTROLS("DSP4L", ARIZONA_DSP4LMIX_INPUT_1_SOURCE),
163ARIZONA_MIXER_CONTROLS("DSP5R", ARIZONA_DSP4RMIX_INPUT_1_SOURCE),
164
156ARIZONA_MIXER_CONTROLS("Mic", ARIZONA_MICMIX_INPUT_1_SOURCE), 165ARIZONA_MIXER_CONTROLS("Mic", ARIZONA_MICMIX_INPUT_1_SOURCE),
157ARIZONA_MIXER_CONTROLS("Noise", ARIZONA_NOISEMIX_INPUT_1_SOURCE), 166ARIZONA_MIXER_CONTROLS("Noise", ARIZONA_NOISEMIX_INPUT_1_SOURCE),
158 167
@@ -163,7 +172,8 @@ ARIZONA_MIXER_CONTROLS("HPOUT1L", ARIZONA_OUT1LMIX_INPUT_1_SOURCE),
163ARIZONA_MIXER_CONTROLS("HPOUT1R", ARIZONA_OUT1RMIX_INPUT_1_SOURCE), 172ARIZONA_MIXER_CONTROLS("HPOUT1R", ARIZONA_OUT1RMIX_INPUT_1_SOURCE),
164ARIZONA_MIXER_CONTROLS("HPOUT2L", ARIZONA_OUT2LMIX_INPUT_1_SOURCE), 173ARIZONA_MIXER_CONTROLS("HPOUT2L", ARIZONA_OUT2LMIX_INPUT_1_SOURCE),
165ARIZONA_MIXER_CONTROLS("HPOUT2R", ARIZONA_OUT2RMIX_INPUT_1_SOURCE), 174ARIZONA_MIXER_CONTROLS("HPOUT2R", ARIZONA_OUT2RMIX_INPUT_1_SOURCE),
166ARIZONA_MIXER_CONTROLS("EPOUT", ARIZONA_OUT3LMIX_INPUT_1_SOURCE), 175ARIZONA_MIXER_CONTROLS("HPOUT3L", ARIZONA_OUT3LMIX_INPUT_1_SOURCE),
176ARIZONA_MIXER_CONTROLS("HPOUT3R", ARIZONA_OUT3RMIX_INPUT_1_SOURCE),
167ARIZONA_MIXER_CONTROLS("SPKOUTL", ARIZONA_OUT4LMIX_INPUT_1_SOURCE), 177ARIZONA_MIXER_CONTROLS("SPKOUTL", ARIZONA_OUT4LMIX_INPUT_1_SOURCE),
168ARIZONA_MIXER_CONTROLS("SPKOUTR", ARIZONA_OUT4RMIX_INPUT_1_SOURCE), 178ARIZONA_MIXER_CONTROLS("SPKOUTR", ARIZONA_OUT4RMIX_INPUT_1_SOURCE),
169ARIZONA_MIXER_CONTROLS("SPKDAT1L", ARIZONA_OUT5LMIX_INPUT_1_SOURCE), 179ARIZONA_MIXER_CONTROLS("SPKDAT1L", ARIZONA_OUT5LMIX_INPUT_1_SOURCE),
@@ -175,7 +185,7 @@ SOC_SINGLE("HPOUT1 High Performance Switch", ARIZONA_OUTPUT_PATH_CONFIG_1L,
175 ARIZONA_OUT1_OSR_SHIFT, 1, 0), 185 ARIZONA_OUT1_OSR_SHIFT, 1, 0),
176SOC_SINGLE("OUT2 High Performance Switch", ARIZONA_OUTPUT_PATH_CONFIG_2L, 186SOC_SINGLE("OUT2 High Performance Switch", ARIZONA_OUTPUT_PATH_CONFIG_2L,
177 ARIZONA_OUT2_OSR_SHIFT, 1, 0), 187 ARIZONA_OUT2_OSR_SHIFT, 1, 0),
178SOC_SINGLE("EPOUT High Performance Switch", ARIZONA_OUTPUT_PATH_CONFIG_3L, 188SOC_SINGLE("OUT3 High Performance Switch", ARIZONA_OUTPUT_PATH_CONFIG_3L,
179 ARIZONA_OUT3_OSR_SHIFT, 1, 0), 189 ARIZONA_OUT3_OSR_SHIFT, 1, 0),
180SOC_SINGLE("Speaker High Performance Switch", ARIZONA_OUTPUT_PATH_CONFIG_4L, 190SOC_SINGLE("Speaker High Performance Switch", ARIZONA_OUTPUT_PATH_CONFIG_4L,
181 ARIZONA_OUT4_OSR_SHIFT, 1, 0), 191 ARIZONA_OUT4_OSR_SHIFT, 1, 0),
@@ -188,8 +198,8 @@ SOC_DOUBLE_R("HPOUT1 Digital Switch", ARIZONA_DAC_DIGITAL_VOLUME_1L,
188 ARIZONA_DAC_DIGITAL_VOLUME_1R, ARIZONA_OUT1L_MUTE_SHIFT, 1, 1), 198 ARIZONA_DAC_DIGITAL_VOLUME_1R, ARIZONA_OUT1L_MUTE_SHIFT, 1, 1),
189SOC_DOUBLE_R("OUT2 Digital Switch", ARIZONA_DAC_DIGITAL_VOLUME_2L, 199SOC_DOUBLE_R("OUT2 Digital Switch", ARIZONA_DAC_DIGITAL_VOLUME_2L,
190 ARIZONA_DAC_DIGITAL_VOLUME_2R, ARIZONA_OUT2L_MUTE_SHIFT, 1, 1), 200 ARIZONA_DAC_DIGITAL_VOLUME_2R, ARIZONA_OUT2L_MUTE_SHIFT, 1, 1),
191SOC_SINGLE("EPOUT Digital Switch", ARIZONA_DAC_DIGITAL_VOLUME_3L, 201SOC_DOUBLE_R("OUT3 Digital Switch", ARIZONA_DAC_DIGITAL_VOLUME_3L,
192 ARIZONA_OUT3L_MUTE_SHIFT, 1, 1), 202 ARIZONA_DAC_DIGITAL_VOLUME_3R, ARIZONA_OUT3L_MUTE_SHIFT, 1, 1),
193SOC_DOUBLE_R("Speaker Digital Switch", ARIZONA_DAC_DIGITAL_VOLUME_4L, 203SOC_DOUBLE_R("Speaker Digital Switch", ARIZONA_DAC_DIGITAL_VOLUME_4L,
194 ARIZONA_DAC_DIGITAL_VOLUME_4R, ARIZONA_OUT4L_MUTE_SHIFT, 1, 1), 204 ARIZONA_DAC_DIGITAL_VOLUME_4R, ARIZONA_OUT4L_MUTE_SHIFT, 1, 1),
195SOC_DOUBLE_R("SPKDAT1 Digital Switch", ARIZONA_DAC_DIGITAL_VOLUME_5L, 205SOC_DOUBLE_R("SPKDAT1 Digital Switch", ARIZONA_DAC_DIGITAL_VOLUME_5L,
@@ -203,8 +213,9 @@ SOC_DOUBLE_R_TLV("HPOUT1 Digital Volume", ARIZONA_DAC_DIGITAL_VOLUME_1L,
203SOC_DOUBLE_R_TLV("OUT2 Digital Volume", ARIZONA_DAC_DIGITAL_VOLUME_2L, 213SOC_DOUBLE_R_TLV("OUT2 Digital Volume", ARIZONA_DAC_DIGITAL_VOLUME_2L,
204 ARIZONA_DAC_DIGITAL_VOLUME_2R, ARIZONA_OUT2L_VOL_SHIFT, 214 ARIZONA_DAC_DIGITAL_VOLUME_2R, ARIZONA_OUT2L_VOL_SHIFT,
205 0xbf, 0, digital_tlv), 215 0xbf, 0, digital_tlv),
206SOC_SINGLE_TLV("EPOUT Digital Volume", ARIZONA_DAC_DIGITAL_VOLUME_3L, 216SOC_DOUBLE_R_TLV("OUT3 Digital Volume", ARIZONA_DAC_DIGITAL_VOLUME_3L,
207 ARIZONA_OUT3L_VOL_SHIFT, 0xbf, 0, digital_tlv), 217 ARIZONA_DAC_DIGITAL_VOLUME_3R, ARIZONA_OUT3L_VOL_SHIFT,
218 0xbf, 0, digital_tlv),
208SOC_DOUBLE_R_TLV("Speaker Digital Volume", ARIZONA_DAC_DIGITAL_VOLUME_4L, 219SOC_DOUBLE_R_TLV("Speaker Digital Volume", ARIZONA_DAC_DIGITAL_VOLUME_4L,
209 ARIZONA_DAC_DIGITAL_VOLUME_4R, ARIZONA_OUT4L_VOL_SHIFT, 220 ARIZONA_DAC_DIGITAL_VOLUME_4R, ARIZONA_OUT4L_VOL_SHIFT,
210 0xbf, 0, digital_tlv), 221 0xbf, 0, digital_tlv),
@@ -223,8 +234,9 @@ SOC_DOUBLE_R_RANGE_TLV("OUT2 Volume", ARIZONA_OUTPUT_PATH_CONFIG_2L,
223 ARIZONA_OUTPUT_PATH_CONFIG_2R, 234 ARIZONA_OUTPUT_PATH_CONFIG_2R,
224 ARIZONA_OUT2L_PGA_VOL_SHIFT, 235 ARIZONA_OUT2L_PGA_VOL_SHIFT,
225 0x34, 0x40, 0, ana_tlv), 236 0x34, 0x40, 0, ana_tlv),
226SOC_SINGLE_RANGE_TLV("EPOUT Volume", ARIZONA_OUTPUT_PATH_CONFIG_3L, 237SOC_DOUBLE_R_RANGE_TLV("OUT3 Volume", ARIZONA_OUTPUT_PATH_CONFIG_3L,
227 ARIZONA_OUT3L_PGA_VOL_SHIFT, 0x34, 0x40, 0, ana_tlv), 238 ARIZONA_OUTPUT_PATH_CONFIG_3R,
239 ARIZONA_OUT3L_PGA_VOL_SHIFT, 0x34, 0x40, 0, ana_tlv),
228 240
229SOC_DOUBLE("SPKDAT1 Switch", ARIZONA_PDM_SPK1_CTRL_1, ARIZONA_SPK1L_MUTE_SHIFT, 241SOC_DOUBLE("SPKDAT1 Switch", ARIZONA_PDM_SPK1_CTRL_1, ARIZONA_SPK1L_MUTE_SHIFT,
230 ARIZONA_SPK1R_MUTE_SHIFT, 1, 1), 242 ARIZONA_SPK1R_MUTE_SHIFT, 1, 1),
@@ -272,7 +284,8 @@ ARIZONA_MIXER_ENUMS(OUT1L, ARIZONA_OUT1LMIX_INPUT_1_SOURCE);
272ARIZONA_MIXER_ENUMS(OUT1R, ARIZONA_OUT1RMIX_INPUT_1_SOURCE); 284ARIZONA_MIXER_ENUMS(OUT1R, ARIZONA_OUT1RMIX_INPUT_1_SOURCE);
273ARIZONA_MIXER_ENUMS(OUT2L, ARIZONA_OUT2LMIX_INPUT_1_SOURCE); 285ARIZONA_MIXER_ENUMS(OUT2L, ARIZONA_OUT2LMIX_INPUT_1_SOURCE);
274ARIZONA_MIXER_ENUMS(OUT2R, ARIZONA_OUT2RMIX_INPUT_1_SOURCE); 286ARIZONA_MIXER_ENUMS(OUT2R, ARIZONA_OUT2RMIX_INPUT_1_SOURCE);
275ARIZONA_MIXER_ENUMS(OUT3, ARIZONA_OUT3LMIX_INPUT_1_SOURCE); 287ARIZONA_MIXER_ENUMS(OUT3L, ARIZONA_OUT3LMIX_INPUT_1_SOURCE);
288ARIZONA_MIXER_ENUMS(OUT3R, ARIZONA_OUT3RMIX_INPUT_1_SOURCE);
276ARIZONA_MIXER_ENUMS(SPKOUTL, ARIZONA_OUT4LMIX_INPUT_1_SOURCE); 289ARIZONA_MIXER_ENUMS(SPKOUTL, ARIZONA_OUT4LMIX_INPUT_1_SOURCE);
277ARIZONA_MIXER_ENUMS(SPKOUTR, ARIZONA_OUT4RMIX_INPUT_1_SOURCE); 290ARIZONA_MIXER_ENUMS(SPKOUTR, ARIZONA_OUT4RMIX_INPUT_1_SOURCE);
278ARIZONA_MIXER_ENUMS(SPKDAT1L, ARIZONA_OUT5LMIX_INPUT_1_SOURCE); 291ARIZONA_MIXER_ENUMS(SPKDAT1L, ARIZONA_OUT5LMIX_INPUT_1_SOURCE);
@@ -300,6 +313,26 @@ ARIZONA_MIXER_ENUMS(ASRC1R, ARIZONA_ASRC1RMIX_INPUT_1_SOURCE);
300ARIZONA_MIXER_ENUMS(ASRC2L, ARIZONA_ASRC2LMIX_INPUT_1_SOURCE); 313ARIZONA_MIXER_ENUMS(ASRC2L, ARIZONA_ASRC2LMIX_INPUT_1_SOURCE);
301ARIZONA_MIXER_ENUMS(ASRC2R, ARIZONA_ASRC2RMIX_INPUT_1_SOURCE); 314ARIZONA_MIXER_ENUMS(ASRC2R, ARIZONA_ASRC2RMIX_INPUT_1_SOURCE);
302 315
316static const char *wm5110_aec_loopback_texts[] = {
317 "HPOUT1L", "HPOUT1R", "HPOUT2L", "HPOUT2R", "HPOUT3L", "HPOUT3R",
318 "SPKOUTL", "SPKOUTR", "SPKDAT1L", "SPKDAT1R", "SPKDAT2L", "SPKDAT2R",
319};
320
321static const unsigned int wm5110_aec_loopback_values[] = {
322 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
323};
324
325static const struct soc_enum wm5110_aec_loopback =
326 SOC_VALUE_ENUM_SINGLE(ARIZONA_DAC_AEC_CONTROL_1,
327 ARIZONA_AEC_LOOPBACK_SRC_SHIFT,
328 ARIZONA_AEC_LOOPBACK_SRC_MASK,
329 ARRAY_SIZE(wm5110_aec_loopback_texts),
330 wm5110_aec_loopback_texts,
331 wm5110_aec_loopback_values);
332
333static const struct snd_kcontrol_new wm5110_aec_loopback_mux =
334 SOC_DAPM_VALUE_ENUM("AEC Loopback", wm5110_aec_loopback);
335
303static const struct snd_soc_dapm_widget wm5110_dapm_widgets[] = { 336static const struct snd_soc_dapm_widget wm5110_dapm_widgets[] = {
304SND_SOC_DAPM_SUPPLY("SYSCLK", ARIZONA_SYSTEM_CLOCK_1, ARIZONA_SYSCLK_ENA_SHIFT, 337SND_SOC_DAPM_SUPPLY("SYSCLK", ARIZONA_SYSTEM_CLOCK_1, ARIZONA_SYSCLK_ENA_SHIFT,
305 0, NULL, 0), 338 0, NULL, 0),
@@ -313,7 +346,7 @@ SND_SOC_DAPM_SUPPLY("ASYNCOPCLK", ARIZONA_OUTPUT_ASYNC_CLOCK,
313SND_SOC_DAPM_REGULATOR_SUPPLY("DBVDD2", 0, 0), 346SND_SOC_DAPM_REGULATOR_SUPPLY("DBVDD2", 0, 0),
314SND_SOC_DAPM_REGULATOR_SUPPLY("DBVDD3", 0, 0), 347SND_SOC_DAPM_REGULATOR_SUPPLY("DBVDD3", 0, 0),
315SND_SOC_DAPM_REGULATOR_SUPPLY("CPVDD", 20, 0), 348SND_SOC_DAPM_REGULATOR_SUPPLY("CPVDD", 20, 0),
316SND_SOC_DAPM_REGULATOR_SUPPLY("MICVDD", 0, 0), 349SND_SOC_DAPM_REGULATOR_SUPPLY("MICVDD", 0, SND_SOC_DAPM_REGULATOR_BYPASS),
317SND_SOC_DAPM_REGULATOR_SUPPLY("SPKVDDL", 0, 0), 350SND_SOC_DAPM_REGULATOR_SUPPLY("SPKVDDL", 0, 0),
318SND_SOC_DAPM_REGULATOR_SUPPLY("SPKVDDR", 0, 0), 351SND_SOC_DAPM_REGULATOR_SUPPLY("SPKVDDR", 0, 0),
319 352
@@ -409,6 +442,9 @@ SND_SOC_DAPM_PGA("ASRC2L", ARIZONA_ASRC_ENABLE, ARIZONA_ASRC2L_ENA_SHIFT, 0,
409SND_SOC_DAPM_PGA("ASRC2R", ARIZONA_ASRC_ENABLE, ARIZONA_ASRC2R_ENA_SHIFT, 0, 442SND_SOC_DAPM_PGA("ASRC2R", ARIZONA_ASRC_ENABLE, ARIZONA_ASRC2R_ENA_SHIFT, 0,
410 NULL, 0), 443 NULL, 0),
411 444
445SND_SOC_DAPM_VALUE_MUX("AEC Loopback", ARIZONA_DAC_AEC_CONTROL_1,
446 ARIZONA_AEC_LOOPBACK_ENA, 0, &wm5110_aec_loopback_mux),
447
412SND_SOC_DAPM_AIF_OUT("AIF1TX1", NULL, 0, 448SND_SOC_DAPM_AIF_OUT("AIF1TX1", NULL, 0,
413 ARIZONA_AIF1_TX_ENABLES, ARIZONA_AIF1TX1_ENA_SHIFT, 0), 449 ARIZONA_AIF1_TX_ENABLES, ARIZONA_AIF1TX1_ENA_SHIFT, 0),
414SND_SOC_DAPM_AIF_OUT("AIF1TX2", NULL, 0, 450SND_SOC_DAPM_AIF_OUT("AIF1TX2", NULL, 0,
@@ -478,6 +514,9 @@ SND_SOC_DAPM_PGA_E("OUT2R", ARIZONA_OUTPUT_ENABLES_1,
478SND_SOC_DAPM_PGA_E("OUT3L", ARIZONA_OUTPUT_ENABLES_1, 514SND_SOC_DAPM_PGA_E("OUT3L", ARIZONA_OUTPUT_ENABLES_1,
479 ARIZONA_OUT3L_ENA_SHIFT, 0, NULL, 0, arizona_out_ev, 515 ARIZONA_OUT3L_ENA_SHIFT, 0, NULL, 0, arizona_out_ev,
480 SND_SOC_DAPM_PRE_PMD | SND_SOC_DAPM_POST_PMU), 516 SND_SOC_DAPM_PRE_PMD | SND_SOC_DAPM_POST_PMU),
517SND_SOC_DAPM_PGA_E("OUT3R", ARIZONA_OUTPUT_ENABLES_1,
518 ARIZONA_OUT3R_ENA_SHIFT, 0, NULL, 0, arizona_out_ev,
519 SND_SOC_DAPM_PRE_PMD | SND_SOC_DAPM_POST_PMU),
481SND_SOC_DAPM_PGA_E("OUT4L", ARIZONA_OUTPUT_ENABLES_1, 520SND_SOC_DAPM_PGA_E("OUT4L", ARIZONA_OUTPUT_ENABLES_1,
482 ARIZONA_OUT4L_ENA_SHIFT, 0, NULL, 0, arizona_out_ev, 521 ARIZONA_OUT4L_ENA_SHIFT, 0, NULL, 0, arizona_out_ev,
483 SND_SOC_DAPM_PRE_PMD | SND_SOC_DAPM_POST_PMU), 522 SND_SOC_DAPM_PRE_PMD | SND_SOC_DAPM_POST_PMU),
@@ -522,7 +561,8 @@ ARIZONA_MIXER_WIDGETS(OUT1L, "HPOUT1L"),
522ARIZONA_MIXER_WIDGETS(OUT1R, "HPOUT1R"), 561ARIZONA_MIXER_WIDGETS(OUT1R, "HPOUT1R"),
523ARIZONA_MIXER_WIDGETS(OUT2L, "HPOUT2L"), 562ARIZONA_MIXER_WIDGETS(OUT2L, "HPOUT2L"),
524ARIZONA_MIXER_WIDGETS(OUT2R, "HPOUT2R"), 563ARIZONA_MIXER_WIDGETS(OUT2R, "HPOUT2R"),
525ARIZONA_MIXER_WIDGETS(OUT3, "EPOUT"), 564ARIZONA_MIXER_WIDGETS(OUT3L, "HPOUT3L"),
565ARIZONA_MIXER_WIDGETS(OUT3R, "HPOUT3R"),
526ARIZONA_MIXER_WIDGETS(SPKOUTL, "SPKOUTL"), 566ARIZONA_MIXER_WIDGETS(SPKOUTL, "SPKOUTL"),
527ARIZONA_MIXER_WIDGETS(SPKOUTR, "SPKOUTR"), 567ARIZONA_MIXER_WIDGETS(SPKOUTR, "SPKOUTR"),
528ARIZONA_MIXER_WIDGETS(SPKDAT1L, "SPKDAT1L"), 568ARIZONA_MIXER_WIDGETS(SPKDAT1L, "SPKDAT1L"),
@@ -554,8 +594,8 @@ SND_SOC_DAPM_OUTPUT("HPOUT1L"),
554SND_SOC_DAPM_OUTPUT("HPOUT1R"), 594SND_SOC_DAPM_OUTPUT("HPOUT1R"),
555SND_SOC_DAPM_OUTPUT("HPOUT2L"), 595SND_SOC_DAPM_OUTPUT("HPOUT2L"),
556SND_SOC_DAPM_OUTPUT("HPOUT2R"), 596SND_SOC_DAPM_OUTPUT("HPOUT2R"),
557SND_SOC_DAPM_OUTPUT("EPOUTN"), 597SND_SOC_DAPM_OUTPUT("HPOUT3L"),
558SND_SOC_DAPM_OUTPUT("EPOUTP"), 598SND_SOC_DAPM_OUTPUT("HPOUT3R"),
559SND_SOC_DAPM_OUTPUT("SPKOUTLN"), 599SND_SOC_DAPM_OUTPUT("SPKOUTLN"),
560SND_SOC_DAPM_OUTPUT("SPKOUTLP"), 600SND_SOC_DAPM_OUTPUT("SPKOUTLP"),
561SND_SOC_DAPM_OUTPUT("SPKOUTRN"), 601SND_SOC_DAPM_OUTPUT("SPKOUTRN"),
@@ -570,6 +610,7 @@ SND_SOC_DAPM_OUTPUT("SPKDAT2R"),
570 { name, "Noise Generator", "Noise Generator" }, \ 610 { name, "Noise Generator", "Noise Generator" }, \
571 { name, "Tone Generator 1", "Tone Generator 1" }, \ 611 { name, "Tone Generator 1", "Tone Generator 1" }, \
572 { name, "Tone Generator 2", "Tone Generator 2" }, \ 612 { name, "Tone Generator 2", "Tone Generator 2" }, \
613 { name, "AEC", "AEC Loopback" }, \
573 { name, "IN1L", "IN1L PGA" }, \ 614 { name, "IN1L", "IN1L PGA" }, \
574 { name, "IN1R", "IN1R PGA" }, \ 615 { name, "IN1R", "IN1R PGA" }, \
575 { name, "IN2L", "IN2L PGA" }, \ 616 { name, "IN2L", "IN2L PGA" }, \
@@ -620,6 +661,7 @@ static const struct snd_soc_dapm_route wm5110_dapm_routes[] = {
620 { "OUT2L", NULL, "CPVDD" }, 661 { "OUT2L", NULL, "CPVDD" },
621 { "OUT2R", NULL, "CPVDD" }, 662 { "OUT2R", NULL, "CPVDD" },
622 { "OUT3L", NULL, "CPVDD" }, 663 { "OUT3L", NULL, "CPVDD" },
664 { "OUT3R", NULL, "CPVDD" },
623 665
624 { "OUT4L", NULL, "SPKVDDL" }, 666 { "OUT4L", NULL, "SPKVDDL" },
625 { "OUT4R", NULL, "SPKVDDR" }, 667 { "OUT4R", NULL, "SPKVDDR" },
@@ -701,7 +743,8 @@ static const struct snd_soc_dapm_route wm5110_dapm_routes[] = {
701 ARIZONA_MIXER_ROUTES("OUT1R", "HPOUT1R"), 743 ARIZONA_MIXER_ROUTES("OUT1R", "HPOUT1R"),
702 ARIZONA_MIXER_ROUTES("OUT2L", "HPOUT2L"), 744 ARIZONA_MIXER_ROUTES("OUT2L", "HPOUT2L"),
703 ARIZONA_MIXER_ROUTES("OUT2R", "HPOUT2R"), 745 ARIZONA_MIXER_ROUTES("OUT2R", "HPOUT2R"),
704 ARIZONA_MIXER_ROUTES("OUT3L", "EPOUT"), 746 ARIZONA_MIXER_ROUTES("OUT3L", "HPOUT3L"),
747 ARIZONA_MIXER_ROUTES("OUT3R", "HPOUT3R"),
705 748
706 ARIZONA_MIXER_ROUTES("OUT4L", "SPKOUTL"), 749 ARIZONA_MIXER_ROUTES("OUT4L", "SPKOUTL"),
707 ARIZONA_MIXER_ROUTES("OUT4R", "SPKOUTR"), 750 ARIZONA_MIXER_ROUTES("OUT4R", "SPKOUTR"),
@@ -754,8 +797,8 @@ static const struct snd_soc_dapm_route wm5110_dapm_routes[] = {
754 { "HPOUT2L", NULL, "OUT2L" }, 797 { "HPOUT2L", NULL, "OUT2L" },
755 { "HPOUT2R", NULL, "OUT2R" }, 798 { "HPOUT2R", NULL, "OUT2R" },
756 799
757 { "EPOUTN", NULL, "OUT3L" }, 800 { "HPOUT3L", NULL, "OUT3L" },
758 { "EPOUTP", NULL, "OUT3L" }, 801 { "HPOUT3R", NULL, "OUT3L" },
759 802
760 { "SPKOUTLN", NULL, "OUT4L" }, 803 { "SPKOUTLN", NULL, "OUT4L" },
761 { "SPKOUTLP", NULL, "OUT4L" }, 804 { "SPKOUTLP", NULL, "OUT4L" },
@@ -873,6 +916,8 @@ static unsigned int wm5110_digital_vu[] = {
873 ARIZONA_ADC_DIGITAL_VOLUME_2R, 916 ARIZONA_ADC_DIGITAL_VOLUME_2R,
874 ARIZONA_ADC_DIGITAL_VOLUME_3L, 917 ARIZONA_ADC_DIGITAL_VOLUME_3L,
875 ARIZONA_ADC_DIGITAL_VOLUME_3R, 918 ARIZONA_ADC_DIGITAL_VOLUME_3R,
919 ARIZONA_ADC_DIGITAL_VOLUME_4L,
920 ARIZONA_ADC_DIGITAL_VOLUME_4R,
876 921
877 ARIZONA_DAC_DIGITAL_VOLUME_1L, 922 ARIZONA_DAC_DIGITAL_VOLUME_1L,
878 ARIZONA_DAC_DIGITAL_VOLUME_1R, 923 ARIZONA_DAC_DIGITAL_VOLUME_1R,
@@ -884,6 +929,8 @@ static unsigned int wm5110_digital_vu[] = {
884 ARIZONA_DAC_DIGITAL_VOLUME_4R, 929 ARIZONA_DAC_DIGITAL_VOLUME_4R,
885 ARIZONA_DAC_DIGITAL_VOLUME_5L, 930 ARIZONA_DAC_DIGITAL_VOLUME_5L,
886 ARIZONA_DAC_DIGITAL_VOLUME_5R, 931 ARIZONA_DAC_DIGITAL_VOLUME_5R,
932 ARIZONA_DAC_DIGITAL_VOLUME_6L,
933 ARIZONA_DAC_DIGITAL_VOLUME_6R,
887}; 934};
888 935
889static struct snd_soc_codec_driver soc_codec_dev_wm5110 = { 936static struct snd_soc_codec_driver soc_codec_dev_wm5110 = {