aboutsummaryrefslogtreecommitdiffstats
path: root/sound
diff options
context:
space:
mode:
authorMark Brown <broonie@kernel.org>2016-01-11 08:54:40 -0500
committerMark Brown <broonie@kernel.org>2016-01-11 08:54:40 -0500
commitd0021d3bdfe9d551859bca1f58da0e6be8e26043 (patch)
treef0ea5c1f3bac9473a1990e5e3e502d5aa60604ef /sound
parentd5221ab6b289da82dcf73b475aaee6a3da5c4ca5 (diff)
parent2d4a32602bc5d4d8f9a80c6b66a4e28d5f2d4798 (diff)
Merge remote-tracking branch 'asoc/topic/wm8960' into asoc-next
Diffstat (limited to 'sound')
-rw-r--r--sound/soc/codecs/wm8960.c24
1 files changed, 18 insertions, 6 deletions
diff --git a/sound/soc/codecs/wm8960.c b/sound/soc/codecs/wm8960.c
index 5380798883b5..ff237726775a 100644
--- a/sound/soc/codecs/wm8960.c
+++ b/sound/soc/codecs/wm8960.c
@@ -147,6 +147,13 @@ static const char *wm8960_3d_upper_cutoff[] = {"High", "Low"};
147static const char *wm8960_3d_lower_cutoff[] = {"Low", "High"}; 147static const char *wm8960_3d_lower_cutoff[] = {"Low", "High"};
148static const char *wm8960_alcfunc[] = {"Off", "Right", "Left", "Stereo"}; 148static const char *wm8960_alcfunc[] = {"Off", "Right", "Left", "Stereo"};
149static const char *wm8960_alcmode[] = {"ALC", "Limiter"}; 149static const char *wm8960_alcmode[] = {"ALC", "Limiter"};
150static const char *wm8960_adc_data_output_sel[] = {
151 "Left Data = Left ADC; Right Data = Right ADC",
152 "Left Data = Left ADC; Right Data = Left ADC",
153 "Left Data = Right ADC; Right Data = Right ADC",
154 "Left Data = Right ADC; Right Data = Left ADC",
155};
156static const char *wm8960_dmonomix[] = {"Stereo", "Mono"};
150 157
151static const struct soc_enum wm8960_enum[] = { 158static const struct soc_enum wm8960_enum[] = {
152 SOC_ENUM_SINGLE(WM8960_DACCTL1, 5, 4, wm8960_polarity), 159 SOC_ENUM_SINGLE(WM8960_DACCTL1, 5, 4, wm8960_polarity),
@@ -155,6 +162,8 @@ static const struct soc_enum wm8960_enum[] = {
155 SOC_ENUM_SINGLE(WM8960_3D, 5, 2, wm8960_3d_lower_cutoff), 162 SOC_ENUM_SINGLE(WM8960_3D, 5, 2, wm8960_3d_lower_cutoff),
156 SOC_ENUM_SINGLE(WM8960_ALC1, 7, 4, wm8960_alcfunc), 163 SOC_ENUM_SINGLE(WM8960_ALC1, 7, 4, wm8960_alcfunc),
157 SOC_ENUM_SINGLE(WM8960_ALC3, 8, 2, wm8960_alcmode), 164 SOC_ENUM_SINGLE(WM8960_ALC3, 8, 2, wm8960_alcmode),
165 SOC_ENUM_SINGLE(WM8960_ADDCTL1, 2, 4, wm8960_adc_data_output_sel),
166 SOC_ENUM_SINGLE(WM8960_ADDCTL1, 4, 2, wm8960_dmonomix),
158}; 167};
159 168
160static const int deemph_settings[] = { 0, 32000, 44100, 48000 }; 169static const int deemph_settings[] = { 0, 32000, 44100, 48000 };
@@ -295,6 +304,9 @@ SOC_SINGLE_TLV("Right Output Mixer Boost Bypass Volume",
295 WM8960_BYPASS2, 4, 7, 1, bypass_tlv), 304 WM8960_BYPASS2, 4, 7, 1, bypass_tlv),
296SOC_SINGLE_TLV("Right Output Mixer RINPUT3 Volume", 305SOC_SINGLE_TLV("Right Output Mixer RINPUT3 Volume",
297 WM8960_ROUTMIX, 4, 7, 1, bypass_tlv), 306 WM8960_ROUTMIX, 4, 7, 1, bypass_tlv),
307
308SOC_ENUM("ADC Data Output Select", wm8960_enum[6]),
309SOC_ENUM("DAC Mono Mix", wm8960_enum[7]),
298}; 310};
299 311
300static const struct snd_kcontrol_new wm8960_lin_boost[] = { 312static const struct snd_kcontrol_new wm8960_lin_boost[] = {
@@ -401,8 +413,8 @@ static const struct snd_soc_dapm_route audio_paths[] = {
401 { "Left Boost Mixer", "LINPUT2 Switch", "LINPUT2" }, 413 { "Left Boost Mixer", "LINPUT2 Switch", "LINPUT2" },
402 { "Left Boost Mixer", "LINPUT3 Switch", "LINPUT3" }, 414 { "Left Boost Mixer", "LINPUT3 Switch", "LINPUT3" },
403 415
404 { "Left Input Mixer", "Boost Switch", "Left Boost Mixer", }, 416 { "Left Input Mixer", "Boost Switch", "Left Boost Mixer" },
405 { "Left Input Mixer", NULL, "LINPUT1", }, /* Really Boost Switch */ 417 { "Left Input Mixer", "Boost Switch", "LINPUT1" }, /* Really Boost Switch */
406 { "Left Input Mixer", NULL, "LINPUT2" }, 418 { "Left Input Mixer", NULL, "LINPUT2" },
407 { "Left Input Mixer", NULL, "LINPUT3" }, 419 { "Left Input Mixer", NULL, "LINPUT3" },
408 420
@@ -410,8 +422,8 @@ static const struct snd_soc_dapm_route audio_paths[] = {
410 { "Right Boost Mixer", "RINPUT2 Switch", "RINPUT2" }, 422 { "Right Boost Mixer", "RINPUT2 Switch", "RINPUT2" },
411 { "Right Boost Mixer", "RINPUT3 Switch", "RINPUT3" }, 423 { "Right Boost Mixer", "RINPUT3 Switch", "RINPUT3" },
412 424
413 { "Right Input Mixer", "Boost Switch", "Right Boost Mixer", }, 425 { "Right Input Mixer", "Boost Switch", "Right Boost Mixer" },
414 { "Right Input Mixer", NULL, "RINPUT1", }, /* Really Boost Switch */ 426 { "Right Input Mixer", "Boost Switch", "RINPUT1" }, /* Really Boost Switch */
415 { "Right Input Mixer", NULL, "RINPUT2" }, 427 { "Right Input Mixer", NULL, "RINPUT2" },
416 { "Right Input Mixer", NULL, "RINPUT3" }, 428 { "Right Input Mixer", NULL, "RINPUT3" },
417 429
@@ -419,11 +431,11 @@ static const struct snd_soc_dapm_route audio_paths[] = {
419 { "Right ADC", NULL, "Right Input Mixer" }, 431 { "Right ADC", NULL, "Right Input Mixer" },
420 432
421 { "Left Output Mixer", "LINPUT3 Switch", "LINPUT3" }, 433 { "Left Output Mixer", "LINPUT3 Switch", "LINPUT3" },
422 { "Left Output Mixer", "Boost Bypass Switch", "Left Boost Mixer"} , 434 { "Left Output Mixer", "Boost Bypass Switch", "Left Boost Mixer" },
423 { "Left Output Mixer", "PCM Playback Switch", "Left DAC" }, 435 { "Left Output Mixer", "PCM Playback Switch", "Left DAC" },
424 436
425 { "Right Output Mixer", "RINPUT3 Switch", "RINPUT3" }, 437 { "Right Output Mixer", "RINPUT3 Switch", "RINPUT3" },
426 { "Right Output Mixer", "Boost Bypass Switch", "Right Boost Mixer" } , 438 { "Right Output Mixer", "Boost Bypass Switch", "Right Boost Mixer" },
427 { "Right Output Mixer", "PCM Playback Switch", "Right DAC" }, 439 { "Right Output Mixer", "PCM Playback Switch", "Right DAC" },
428 440
429 { "LOUT1 PGA", NULL, "Left Output Mixer" }, 441 { "LOUT1 PGA", NULL, "Left Output Mixer" },