diff options
author | Zidan Wang <zidan.wang@freescale.com> | 2015-12-24 01:58:03 -0500 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2015-12-24 14:19:02 -0500 |
commit | 4a5893cf67062be4f70196c3fe45cfda950ea308 (patch) | |
tree | 6035ac3decc5229faf9842bc7288e5d980edf8b3 /sound | |
parent | 8005c49d9aea74d382f474ce11afbbc7d7130bec (diff) |
ASoC: wm8960: add kcontrol to select ADC data output
add kcontrol to select ADC data output.
Signed-off-by: Zidan Wang <zidan.wang@freescale.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound')
-rw-r--r-- | sound/soc/codecs/wm8960.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/sound/soc/codecs/wm8960.c b/sound/soc/codecs/wm8960.c index 056375339ea3..328bde09d5bf 100644 --- a/sound/soc/codecs/wm8960.c +++ b/sound/soc/codecs/wm8960.c | |||
@@ -147,6 +147,12 @@ static const char *wm8960_3d_upper_cutoff[] = {"High", "Low"}; | |||
147 | static const char *wm8960_3d_lower_cutoff[] = {"Low", "High"}; | 147 | static const char *wm8960_3d_lower_cutoff[] = {"Low", "High"}; |
148 | static const char *wm8960_alcfunc[] = {"Off", "Right", "Left", "Stereo"}; | 148 | static const char *wm8960_alcfunc[] = {"Off", "Right", "Left", "Stereo"}; |
149 | static const char *wm8960_alcmode[] = {"ALC", "Limiter"}; | 149 | static const char *wm8960_alcmode[] = {"ALC", "Limiter"}; |
150 | static 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 | }; | ||
150 | 156 | ||
151 | static const struct soc_enum wm8960_enum[] = { | 157 | static const struct soc_enum wm8960_enum[] = { |
152 | SOC_ENUM_SINGLE(WM8960_DACCTL1, 5, 4, wm8960_polarity), | 158 | SOC_ENUM_SINGLE(WM8960_DACCTL1, 5, 4, wm8960_polarity), |
@@ -155,6 +161,7 @@ static const struct soc_enum wm8960_enum[] = { | |||
155 | SOC_ENUM_SINGLE(WM8960_3D, 5, 2, wm8960_3d_lower_cutoff), | 161 | SOC_ENUM_SINGLE(WM8960_3D, 5, 2, wm8960_3d_lower_cutoff), |
156 | SOC_ENUM_SINGLE(WM8960_ALC1, 7, 4, wm8960_alcfunc), | 162 | SOC_ENUM_SINGLE(WM8960_ALC1, 7, 4, wm8960_alcfunc), |
157 | SOC_ENUM_SINGLE(WM8960_ALC3, 8, 2, wm8960_alcmode), | 163 | SOC_ENUM_SINGLE(WM8960_ALC3, 8, 2, wm8960_alcmode), |
164 | SOC_ENUM_SINGLE(WM8960_ADDCTL1, 2, 4, wm8960_adc_data_output_sel), | ||
158 | }; | 165 | }; |
159 | 166 | ||
160 | static const int deemph_settings[] = { 0, 32000, 44100, 48000 }; | 167 | static const int deemph_settings[] = { 0, 32000, 44100, 48000 }; |
@@ -295,6 +302,8 @@ SOC_SINGLE_TLV("Right Output Mixer Boost Bypass Volume", | |||
295 | WM8960_BYPASS2, 4, 7, 1, bypass_tlv), | 302 | WM8960_BYPASS2, 4, 7, 1, bypass_tlv), |
296 | SOC_SINGLE_TLV("Right Output Mixer RINPUT3 Volume", | 303 | SOC_SINGLE_TLV("Right Output Mixer RINPUT3 Volume", |
297 | WM8960_ROUTMIX, 4, 7, 1, bypass_tlv), | 304 | WM8960_ROUTMIX, 4, 7, 1, bypass_tlv), |
305 | |||
306 | SOC_ENUM("ADC Data Output Select", wm8960_enum[6]), | ||
298 | }; | 307 | }; |
299 | 308 | ||
300 | static const struct snd_kcontrol_new wm8960_lin_boost[] = { | 309 | static const struct snd_kcontrol_new wm8960_lin_boost[] = { |