提交 4d20f70a 编写于 作者: J Jarkko Nikula 提交者: Jaroslav Kysela

ALSA: ASoC: TLV320AIC3X: Add mixer control for ADC highpass filter

Signed-off-by: NJarkko Nikula <jarkko.nikula@nokia.com>
Signed-off-by: NLiam Girdwood <lg@opensource.wolfsonmicro.com>
Signed-off-by: NTakashi Iwai <tiwai@suse.de>
Signed-off-by: NJaroslav Kysela <perex@perex.cz>
上级 6cabf6b0
...@@ -223,6 +223,8 @@ static const char *aic3x_right_hpcom_mux[] = ...@@ -223,6 +223,8 @@ static const char *aic3x_right_hpcom_mux[] =
{ "differential of HPROUT", "constant VCM", "single-ended", { "differential of HPROUT", "constant VCM", "single-ended",
"differential of HPLCOM", "external feedback" }; "differential of HPLCOM", "external feedback" };
static const char *aic3x_linein_mode_mux[] = { "single-ended", "differential" }; static const char *aic3x_linein_mode_mux[] = { "single-ended", "differential" };
static const char *aic3x_adc_hpf[] =
{ "Disabled", "0.0045xFs", "0.0125xFs", "0.025xFs" };
#define LDAC_ENUM 0 #define LDAC_ENUM 0
#define RDAC_ENUM 1 #define RDAC_ENUM 1
...@@ -232,6 +234,7 @@ static const char *aic3x_linein_mode_mux[] = { "single-ended", "differential" }; ...@@ -232,6 +234,7 @@ static const char *aic3x_linein_mode_mux[] = { "single-ended", "differential" };
#define LINE1R_ENUM 5 #define LINE1R_ENUM 5
#define LINE2L_ENUM 6 #define LINE2L_ENUM 6
#define LINE2R_ENUM 7 #define LINE2R_ENUM 7
#define ADC_HPF_ENUM 8
static const struct soc_enum aic3x_enum[] = { static const struct soc_enum aic3x_enum[] = {
SOC_ENUM_SINGLE(DAC_LINE_MUX, 6, 3, aic3x_left_dac_mux), SOC_ENUM_SINGLE(DAC_LINE_MUX, 6, 3, aic3x_left_dac_mux),
...@@ -242,6 +245,7 @@ static const struct soc_enum aic3x_enum[] = { ...@@ -242,6 +245,7 @@ static const struct soc_enum aic3x_enum[] = {
SOC_ENUM_SINGLE(LINE1R_2_RADC_CTRL, 7, 2, aic3x_linein_mode_mux), SOC_ENUM_SINGLE(LINE1R_2_RADC_CTRL, 7, 2, aic3x_linein_mode_mux),
SOC_ENUM_SINGLE(LINE2L_2_LADC_CTRL, 7, 2, aic3x_linein_mode_mux), SOC_ENUM_SINGLE(LINE2L_2_LADC_CTRL, 7, 2, aic3x_linein_mode_mux),
SOC_ENUM_SINGLE(LINE2R_2_RADC_CTRL, 7, 2, aic3x_linein_mode_mux), SOC_ENUM_SINGLE(LINE2R_2_RADC_CTRL, 7, 2, aic3x_linein_mode_mux),
SOC_ENUM_DOUBLE(AIC3X_CODEC_DFILT_CTRL, 6, 4, 4, aic3x_adc_hpf),
}; };
static const struct snd_kcontrol_new aic3x_snd_controls[] = { static const struct snd_kcontrol_new aic3x_snd_controls[] = {
...@@ -292,6 +296,8 @@ static const struct snd_kcontrol_new aic3x_snd_controls[] = { ...@@ -292,6 +296,8 @@ static const struct snd_kcontrol_new aic3x_snd_controls[] = {
/* Input */ /* Input */
SOC_DOUBLE_R("PGA Capture Volume", LADC_VOL, RADC_VOL, 0, 0x7f, 0), SOC_DOUBLE_R("PGA Capture Volume", LADC_VOL, RADC_VOL, 0, 0x7f, 0),
SOC_DOUBLE_R("PGA Capture Switch", LADC_VOL, RADC_VOL, 7, 0x01, 1), SOC_DOUBLE_R("PGA Capture Switch", LADC_VOL, RADC_VOL, 7, 0x01, 1),
SOC_ENUM("ADC HPF Cut-off", aic3x_enum[ADC_HPF_ENUM]),
}; };
/* add non dapm controls */ /* add non dapm controls */
......
...@@ -37,6 +37,8 @@ ...@@ -37,6 +37,8 @@
#define AIC3X_ASD_INTF_CTRLB 9 #define AIC3X_ASD_INTF_CTRLB 9
/* Audio overflow status and PLL R value programming register */ /* Audio overflow status and PLL R value programming register */
#define AIC3X_OVRF_STATUS_AND_PLLR_REG 11 #define AIC3X_OVRF_STATUS_AND_PLLR_REG 11
/* Audio codec digital filter control register */
#define AIC3X_CODEC_DFILT_CTRL 12
/* ADC PGA Gain control registers */ /* ADC PGA Gain control registers */
#define LADC_VOL 15 #define LADC_VOL 15
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册