forked from Minki/linux
ASoC: wm8960: correct gain value for input PGA and add microphone PGA
The input PGAs have a gain range from -17.25dB to +30dB in 0.75dB steps. The boost stage can provide additional gain. For line inputs, -12dB to +6dB gain is available on the boost mixer. For micphone inputs, it can provide up to +29dB additional gain from the microphone PGA. Signed-off-by: Zidan Wang <zidan.wang@freescale.com> Acked-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com> Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
3758ff5f3d
commit
7e90f9b2b5
@ -206,27 +206,37 @@ static int wm8960_put_deemph(struct snd_kcontrol *kcontrol,
|
||||
}
|
||||
|
||||
static const DECLARE_TLV_DB_SCALE(adc_tlv, -9750, 50, 1);
|
||||
static const DECLARE_TLV_DB_SCALE(inpga_tlv, -1725, 75, 0);
|
||||
static const DECLARE_TLV_DB_SCALE(dac_tlv, -12750, 50, 1);
|
||||
static const DECLARE_TLV_DB_SCALE(bypass_tlv, -2100, 300, 0);
|
||||
static const DECLARE_TLV_DB_SCALE(out_tlv, -12100, 100, 1);
|
||||
static const DECLARE_TLV_DB_SCALE(boost_tlv, -1500, 300, 1);
|
||||
static const DECLARE_TLV_DB_SCALE(lineinboost_tlv, -1500, 300, 1);
|
||||
static const unsigned int micboost_tlv[] = {
|
||||
TLV_DB_RANGE_HEAD(2),
|
||||
0, 1, TLV_DB_SCALE_ITEM(0, 1300, 0),
|
||||
2, 3, TLV_DB_SCALE_ITEM(2000, 900, 0),
|
||||
};
|
||||
|
||||
static const struct snd_kcontrol_new wm8960_snd_controls[] = {
|
||||
SOC_DOUBLE_R_TLV("Capture Volume", WM8960_LINVOL, WM8960_RINVOL,
|
||||
0, 63, 0, adc_tlv),
|
||||
0, 63, 0, inpga_tlv),
|
||||
SOC_DOUBLE_R("Capture Volume ZC Switch", WM8960_LINVOL, WM8960_RINVOL,
|
||||
6, 1, 0),
|
||||
SOC_DOUBLE_R("Capture Switch", WM8960_LINVOL, WM8960_RINVOL,
|
||||
7, 1, 0),
|
||||
|
||||
SOC_SINGLE_TLV("Right Input Boost Mixer RINPUT3 Volume",
|
||||
WM8960_INBMIX1, 4, 7, 0, boost_tlv),
|
||||
WM8960_INBMIX1, 4, 7, 0, lineinboost_tlv),
|
||||
SOC_SINGLE_TLV("Right Input Boost Mixer RINPUT2 Volume",
|
||||
WM8960_INBMIX1, 1, 7, 0, boost_tlv),
|
||||
WM8960_INBMIX1, 1, 7, 0, lineinboost_tlv),
|
||||
SOC_SINGLE_TLV("Left Input Boost Mixer LINPUT3 Volume",
|
||||
WM8960_INBMIX2, 4, 7, 0, boost_tlv),
|
||||
WM8960_INBMIX2, 4, 7, 0, lineinboost_tlv),
|
||||
SOC_SINGLE_TLV("Left Input Boost Mixer LINPUT2 Volume",
|
||||
WM8960_INBMIX2, 1, 7, 0, boost_tlv),
|
||||
WM8960_INBMIX2, 1, 7, 0, lineinboost_tlv),
|
||||
SOC_SINGLE_TLV("Right Input Boost Mixer RINPUT1 Volume",
|
||||
WM8960_RINPATH, 4, 4, 0, micboost_tlv),
|
||||
SOC_SINGLE_TLV("Left Input Boost Mixer LINPUT1 Volume",
|
||||
WM8960_LINPATH, 4, 4, 0, micboost_tlv),
|
||||
|
||||
SOC_DOUBLE_R_TLV("Playback Volume", WM8960_LDAC, WM8960_RDAC,
|
||||
0, 255, 0, dac_tlv),
|
||||
|
Loading…
Reference in New Issue
Block a user