Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ASoC: cs42l52: Reorganize MICA/B Config and Select

This patch reworks the MICA an MICB config for single-ended or
differential and the selection of which MIC for the single config

Signed-off-by: Brian Austin <brian.austin@cirrus.com>
Signed-off-by: Mark Brown <broonie@linaro.org>

authored by

Brian Austin and committed by
Mark Brown
a3d36bc2 7ae10ed2

+4 -27
-6
include/sound/cs42l52.h
··· 22 22 /* MICB mode selection 0=Single 1=Differential */ 23 23 unsigned int micb_cfg; 24 24 25 - /* MICA Select 0=MIC1A 1=MIC2A */ 26 - unsigned int mica_sel; 27 - 28 - /* MICB Select 0=MIC2A 1=MIC2B */ 29 - unsigned int micb_sel; 30 - 31 25 /* Charge Pump Freq. Check datasheet Pg73 */ 32 26 unsigned int chgfreq; 33 27
+4 -21
sound/soc/codecs/cs42l52.c
··· 233 233 SOC_ENUM_SINGLE(CS42L52_IFACE_CTL2, 0, 234 234 ARRAY_SIZE(mic_bias_level_text), mic_bias_level_text); 235 235 236 - static const char * const cs42l52_mic_text[] = { "Single", "Differential" }; 236 + static const char * const cs42l52_mic_text[] = { "MIC1", "MIC2" }; 237 237 238 238 static const struct soc_enum mica_enum = 239 239 SOC_ENUM_SINGLE(CS42L52_MICA_CTL, 5, ··· 242 242 static const struct soc_enum micb_enum = 243 243 SOC_ENUM_SINGLE(CS42L52_MICB_CTL, 5, 244 244 ARRAY_SIZE(cs42l52_mic_text), cs42l52_mic_text); 245 - 246 - static const struct snd_kcontrol_new mica_mux = 247 - SOC_DAPM_ENUM("Left Mic Input Capture Mux", mica_enum); 248 - 249 - static const struct snd_kcontrol_new micb_mux = 250 - SOC_DAPM_ENUM("Right Mic Input Capture Mux", micb_enum); 251 245 252 246 static const char * const digital_output_mux_text[] = {"ADC", "DSP"}; 253 247 ··· 419 425 420 426 SOC_DOUBLE("Bypass Mute", CS42L52_MISC_CTL, 4, 5, 1, 0), 421 427 428 + SOC_ENUM("MICA Select", mica_enum), 429 + SOC_ENUM("MICB Select", micb_enum), 430 + 422 431 SOC_DOUBLE_R_TLV("MIC Gain Volume", CS42L52_MICA_CTL, 423 432 CS42L52_MICB_CTL, 0, 0x10, 0, mic_tlv), 424 433 ··· 546 549 SND_SOC_NOPM, 0, 0), 547 550 SND_SOC_DAPM_AIF_OUT("AIFOUTR", NULL, 0, 548 551 SND_SOC_NOPM, 0, 0), 549 - 550 - SND_SOC_DAPM_MUX("MICA Mux", SND_SOC_NOPM, 0, 0, &mica_mux), 551 - SND_SOC_DAPM_MUX("MICB Mux", SND_SOC_NOPM, 0, 0, &micb_mux), 552 552 553 553 SND_SOC_DAPM_ADC("ADC Left", NULL, CS42L52_PWRCTL1, 1, 1), 554 554 SND_SOC_DAPM_ADC("ADC Right", NULL, CS42L52_PWRCTL1, 2, 1), ··· 1232 1238 CS42L52_MIC_CTL_TYPE_MASK, 1233 1239 cs42l52->pdata.micb_cfg << 1234 1240 CS42L52_MIC_CTL_TYPE_SHIFT); 1235 - 1236 - if (cs42l52->pdata.mica_sel) 1237 - regmap_update_bits(cs42l52->regmap, CS42L52_MICA_CTL, 1238 - CS42L52_MIC_CTL_MIC_SEL_MASK, 1239 - cs42l52->pdata.mica_sel << 1240 - CS42L52_MIC_CTL_MIC_SEL_SHIFT); 1241 - if (cs42l52->pdata.micb_sel) 1242 - regmap_update_bits(cs42l52->regmap, CS42L52_MICB_CTL, 1243 - CS42L52_MIC_CTL_MIC_SEL_MASK, 1244 - cs42l52->pdata.micb_sel << 1245 - CS42L52_MIC_CTL_MIC_SEL_SHIFT); 1246 1241 1247 1242 if (cs42l52->pdata.chgfreq) 1248 1243 regmap_update_bits(cs42l52->regmap, CS42L52_CHARGE_PUMP,