ASoC: tlv320aic32x4: Fix TAS2505 volume controls
None of the TAS2505 outputs are stereo, do not pretend they are by
implementing them using SOC*DOUBLE* macros referencing the same
register twice, use SOC*SINGLE* instead. Fix volume ranges and mute
control for the codec according to datasheet.
Fixes: b4525b6196
("ASoC: tlv320aic32x4: add support for TAS2505")
Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Claudius Heine <ch@denx.de>
Cc: Mark Brown <broonie@kernel.org>
Link: https://lore.kernel.org/r/20210708091255.56502-1-marex@denx.de
Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
9cf76a72af
commit
2169d6a0f0
@ -250,8 +250,8 @@ static DECLARE_TLV_DB_SCALE(tlv_pcm, -6350, 50, 0);
|
||||
static DECLARE_TLV_DB_SCALE(tlv_driver_gain, -600, 100, 0);
|
||||
/* -12dB min, 0.5dB steps */
|
||||
static DECLARE_TLV_DB_SCALE(tlv_adc_vol, -1200, 50, 0);
|
||||
|
||||
static DECLARE_TLV_DB_LINEAR(tlv_spk_vol, TLV_DB_GAIN_MUTE, 0);
|
||||
/* -6dB min, 1dB steps */
|
||||
static DECLARE_TLV_DB_SCALE(tlv_tas_driver_gain, -5850, 50, 0);
|
||||
static DECLARE_TLV_DB_SCALE(tlv_amp_vol, 0, 600, 1);
|
||||
|
||||
static const char * const lo_cm_text[] = {
|
||||
@ -1063,21 +1063,20 @@ static const struct snd_soc_component_driver soc_component_dev_aic32x4 = {
|
||||
};
|
||||
|
||||
static const struct snd_kcontrol_new aic32x4_tas2505_snd_controls[] = {
|
||||
SOC_DOUBLE_R_S_TLV("PCM Playback Volume", AIC32X4_LDACVOL,
|
||||
AIC32X4_LDACVOL, 0, -0x7f, 0x30, 7, 0, tlv_pcm),
|
||||
SOC_SINGLE_S8_TLV("PCM Playback Volume",
|
||||
AIC32X4_LDACVOL, -0x7f, 0x30, tlv_pcm),
|
||||
SOC_ENUM("DAC Playback PowerTune Switch", l_ptm_enum),
|
||||
SOC_DOUBLE_R_S_TLV("HP Driver Playback Volume", AIC32X4_HPLGAIN,
|
||||
AIC32X4_HPLGAIN, 0, -0x6, 0x1d, 5, 0,
|
||||
tlv_driver_gain),
|
||||
SOC_DOUBLE_R("HP DAC Playback Switch", AIC32X4_HPLGAIN,
|
||||
AIC32X4_HPLGAIN, 6, 0x01, 1),
|
||||
|
||||
SOC_SINGLE_TLV("HP Driver Gain Volume",
|
||||
AIC32X4_HPLGAIN, 0, 0x74, 1, tlv_tas_driver_gain),
|
||||
SOC_SINGLE("HP DAC Playback Switch", AIC32X4_HPLGAIN, 6, 1, 1),
|
||||
|
||||
SOC_SINGLE_TLV("Speaker Driver Playback Volume",
|
||||
TAS2505_SPKVOL1, 0, 0x74, 1, tlv_tas_driver_gain),
|
||||
SOC_SINGLE_TLV("Speaker Amplifier Playback Volume",
|
||||
TAS2505_SPKVOL2, 4, 5, 0, tlv_amp_vol),
|
||||
|
||||
SOC_SINGLE("Auto-mute Switch", AIC32X4_DACMUTE, 4, 7, 0),
|
||||
|
||||
SOC_SINGLE_RANGE_TLV("Speaker Driver Playback Volume", TAS2505_SPKVOL1,
|
||||
0, 0, 117, 1, tlv_spk_vol),
|
||||
SOC_SINGLE_TLV("Speaker Amplifier Playback Volume", TAS2505_SPKVOL2,
|
||||
4, 5, 0, tlv_amp_vol),
|
||||
};
|
||||
|
||||
static const struct snd_kcontrol_new hp_output_mixer_controls[] = {
|
||||
|
Loading…
Reference in New Issue
Block a user