ASoC: Fixup Cirrus SX control usage
Merge series from Charles Keepax <ckeepax@opensource.cirrus.com>: Mostly the usage of the SX controls seems to match the lowest gain value + number of gain levels expected. The one notable exception there being cs53l30 as David noted. However, there are a couple of other places where the minimum value/TLVs are slightly incorrectly specified.
This commit is contained in:
Коммит
07551992cd
|
@ -444,7 +444,8 @@ static bool cs35l36_volatile_reg(struct device *dev, unsigned int reg)
|
|||
}
|
||||
}
|
||||
|
||||
static DECLARE_TLV_DB_SCALE(dig_vol_tlv, -10200, 25, 0);
|
||||
static const DECLARE_TLV_DB_RANGE(dig_vol_tlv, 0, 912,
|
||||
TLV_DB_MINMAX_ITEM(-10200, 1200));
|
||||
static DECLARE_TLV_DB_SCALE(amp_gain_tlv, 0, 1, 1);
|
||||
|
||||
static const char * const cs35l36_pcm_sftramp_text[] = {
|
||||
|
|
|
@ -143,7 +143,7 @@ static const struct snd_kcontrol_new cs42l51_snd_controls[] = {
|
|||
0, 0xA0, 96, adc_att_tlv),
|
||||
SOC_DOUBLE_R_SX_TLV("PGA Volume",
|
||||
CS42L51_ALC_PGA_CTL, CS42L51_ALC_PGB_CTL,
|
||||
0, 0x1A, 30, pga_tlv),
|
||||
0, 0x19, 30, pga_tlv),
|
||||
SOC_SINGLE("Playback Deemphasis Switch", CS42L51_DAC_CTL, 3, 1, 0),
|
||||
SOC_SINGLE("Auto-Mute Switch", CS42L51_DAC_CTL, 2, 1, 0),
|
||||
SOC_SINGLE("Soft Ramp Switch", CS42L51_DAC_CTL, 1, 1, 0),
|
||||
|
|
|
@ -137,7 +137,9 @@ static DECLARE_TLV_DB_SCALE(mic_tlv, 1600, 100, 0);
|
|||
|
||||
static DECLARE_TLV_DB_SCALE(pga_tlv, -600, 50, 0);
|
||||
|
||||
static DECLARE_TLV_DB_SCALE(mix_tlv, -50, 50, 0);
|
||||
static DECLARE_TLV_DB_SCALE(pass_tlv, -6000, 50, 0);
|
||||
|
||||
static DECLARE_TLV_DB_SCALE(mix_tlv, -5150, 50, 0);
|
||||
|
||||
static DECLARE_TLV_DB_SCALE(beep_tlv, -56, 200, 0);
|
||||
|
||||
|
@ -351,7 +353,7 @@ static const struct snd_kcontrol_new cs42l52_snd_controls[] = {
|
|||
CS42L52_SPKB_VOL, 0, 0x40, 0xC0, hl_tlv),
|
||||
|
||||
SOC_DOUBLE_R_SX_TLV("Bypass Volume", CS42L52_PASSTHRUA_VOL,
|
||||
CS42L52_PASSTHRUB_VOL, 0, 0x88, 0x90, pga_tlv),
|
||||
CS42L52_PASSTHRUB_VOL, 0, 0x88, 0x90, pass_tlv),
|
||||
|
||||
SOC_DOUBLE("Bypass Mute", CS42L52_MISC_CTL, 4, 5, 1, 0),
|
||||
|
||||
|
@ -364,7 +366,7 @@ static const struct snd_kcontrol_new cs42l52_snd_controls[] = {
|
|||
CS42L52_ADCB_VOL, 0, 0xA0, 0x78, ipd_tlv),
|
||||
SOC_DOUBLE_R_SX_TLV("ADC Mixer Volume",
|
||||
CS42L52_ADCA_MIXER_VOL, CS42L52_ADCB_MIXER_VOL,
|
||||
0, 0x19, 0x7F, ipd_tlv),
|
||||
0, 0x19, 0x7F, mix_tlv),
|
||||
|
||||
SOC_DOUBLE("ADC Switch", CS42L52_ADC_MISC_CTL, 0, 1, 1, 0),
|
||||
|
||||
|
|
|
@ -391,9 +391,9 @@ static const struct snd_kcontrol_new cs42l56_snd_controls[] = {
|
|||
SOC_DOUBLE("ADC Boost Switch", CS42L56_GAIN_BIAS_CTL, 3, 2, 1, 1),
|
||||
|
||||
SOC_DOUBLE_R_SX_TLV("Headphone Volume", CS42L56_HPA_VOLUME,
|
||||
CS42L56_HPB_VOLUME, 0, 0x84, 0x48, hl_tlv),
|
||||
CS42L56_HPB_VOLUME, 0, 0x44, 0x48, hl_tlv),
|
||||
SOC_DOUBLE_R_SX_TLV("LineOut Volume", CS42L56_LOA_VOLUME,
|
||||
CS42L56_LOB_VOLUME, 0, 0x84, 0x48, hl_tlv),
|
||||
CS42L56_LOB_VOLUME, 0, 0x44, 0x48, hl_tlv),
|
||||
|
||||
SOC_SINGLE_TLV("Bass Shelving Volume", CS42L56_TONE_CTL,
|
||||
0, 0x00, 1, tone_tlv),
|
||||
|
|
|
@ -348,22 +348,22 @@ static const struct snd_kcontrol_new cs53l30_snd_controls[] = {
|
|||
SOC_ENUM("ADC2 NG Delay", adc2_ng_delay_enum),
|
||||
|
||||
SOC_SINGLE_SX_TLV("ADC1A PGA Volume",
|
||||
CS53L30_ADC1A_AFE_CTL, 0, 0x34, 0x18, pga_tlv),
|
||||
CS53L30_ADC1A_AFE_CTL, 0, 0x34, 0x24, pga_tlv),
|
||||
SOC_SINGLE_SX_TLV("ADC1B PGA Volume",
|
||||
CS53L30_ADC1B_AFE_CTL, 0, 0x34, 0x18, pga_tlv),
|
||||
CS53L30_ADC1B_AFE_CTL, 0, 0x34, 0x24, pga_tlv),
|
||||
SOC_SINGLE_SX_TLV("ADC2A PGA Volume",
|
||||
CS53L30_ADC2A_AFE_CTL, 0, 0x34, 0x18, pga_tlv),
|
||||
CS53L30_ADC2A_AFE_CTL, 0, 0x34, 0x24, pga_tlv),
|
||||
SOC_SINGLE_SX_TLV("ADC2B PGA Volume",
|
||||
CS53L30_ADC2B_AFE_CTL, 0, 0x34, 0x18, pga_tlv),
|
||||
CS53L30_ADC2B_AFE_CTL, 0, 0x34, 0x24, pga_tlv),
|
||||
|
||||
SOC_SINGLE_SX_TLV("ADC1A Digital Volume",
|
||||
CS53L30_ADC1A_DIG_VOL, 0, 0xA0, 0x0C, dig_tlv),
|
||||
CS53L30_ADC1A_DIG_VOL, 0, 0xA0, 0x6C, dig_tlv),
|
||||
SOC_SINGLE_SX_TLV("ADC1B Digital Volume",
|
||||
CS53L30_ADC1B_DIG_VOL, 0, 0xA0, 0x0C, dig_tlv),
|
||||
CS53L30_ADC1B_DIG_VOL, 0, 0xA0, 0x6C, dig_tlv),
|
||||
SOC_SINGLE_SX_TLV("ADC2A Digital Volume",
|
||||
CS53L30_ADC2A_DIG_VOL, 0, 0xA0, 0x0C, dig_tlv),
|
||||
CS53L30_ADC2A_DIG_VOL, 0, 0xA0, 0x6C, dig_tlv),
|
||||
SOC_SINGLE_SX_TLV("ADC2B Digital Volume",
|
||||
CS53L30_ADC2B_DIG_VOL, 0, 0xA0, 0x0C, dig_tlv),
|
||||
CS53L30_ADC2B_DIG_VOL, 0, 0xA0, 0x6C, dig_tlv),
|
||||
};
|
||||
|
||||
static const struct snd_soc_dapm_widget cs53l30_dapm_widgets[] = {
|
||||
|
|
Загрузка…
Ссылка в новой задаче