mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-01-12 16:19:53 +00:00
ASoC: pcm512x: Implement analogue volume control
There are some analogue volume controls in page 1 of the register map so implement support for them now that we can access the registers. Signed-off-by: Mark Brown <broonie@linaro.org>
This commit is contained in:
parent
806d646607
commit
5be2fc20b1
@ -184,6 +184,8 @@ static bool pcm512x_volatile(struct device *dev, unsigned int reg)
|
||||
}
|
||||
|
||||
static const DECLARE_TLV_DB_SCALE(digital_tlv, -10350, 50, 1);
|
||||
static const DECLARE_TLV_DB_SCALE(analog_tlv, -600, 600, 0);
|
||||
static const DECLARE_TLV_DB_SCALE(boost_tlv, 0, 80, 0);
|
||||
|
||||
static const char * const pcm512x_dsp_program_texts[] = {
|
||||
"FIR interpolation with de-emphasis",
|
||||
@ -261,6 +263,10 @@ static const struct soc_enum pcm512x_veds =
|
||||
static const struct snd_kcontrol_new pcm512x_controls[] = {
|
||||
SOC_DOUBLE_R_TLV("Playback Digital Volume", PCM512x_DIGITAL_VOLUME_2,
|
||||
PCM512x_DIGITAL_VOLUME_3, 0, 255, 1, digital_tlv),
|
||||
SOC_DOUBLE_TLV("Playback Volume", PCM512x_ANALOG_GAIN_CTRL,
|
||||
PCM512x_LAGN_SHIFT, PCM512x_RAGN_SHIFT, 1, 1, analog_tlv),
|
||||
SOC_DOUBLE_TLV("Playback Boost Volume", PCM512x_ANALOG_GAIN_BOOST,
|
||||
PCM512x_AGBL_SHIFT, PCM512x_AGBR_SHIFT, 1, 0, boost_tlv),
|
||||
SOC_DOUBLE("Playback Digital Switch", PCM512x_MUTE, PCM512x_RQML_SHIFT,
|
||||
PCM512x_RQMR_SHIFT, 1, 1),
|
||||
|
||||
|
@ -151,4 +151,12 @@
|
||||
#define PCM512x_AMLE_SHIFT 1
|
||||
#define PCM512x_AMLR_SHIFT 0
|
||||
|
||||
/* Page 1, Register 2 - analog volume control */
|
||||
#define PCM512x_RAGN_SHIFT 0
|
||||
#define PCM512x_LAGN_SHIFT 4
|
||||
|
||||
/* Page 1, Register 7 - analog boost control */
|
||||
#define PCM512x_AGBR_SHIFT 0
|
||||
#define PCM512x_AGBL_SHIFT 4
|
||||
|
||||
#endif
|
||||
|
Loading…
x
Reference in New Issue
Block a user