ASoC: Implement WM8994 DAC data source muxes
Allow selection of the channel used for input to the AIFnDAC signals. This isn't integrated into DAPM since we treat the data as a single mono channel until just beyond this selection so it ends up having no visible effect on the routing. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
This commit is contained in:
parent
1d6be338c1
commit
f554885f92
|
@ -2072,6 +2072,22 @@ static int wm8994_get_retune_mobile_enum(struct snd_kcontrol *kcontrol,
|
|||
return 0;
|
||||
}
|
||||
|
||||
static const char *aifdac_src_text[] = {
|
||||
"Left", "Right"
|
||||
};
|
||||
|
||||
static const struct soc_enum aif1dacl_src =
|
||||
SOC_ENUM_SINGLE(WM8994_AIF1_CONTROL_2, 15, 2, aifdac_src_text);
|
||||
|
||||
static const struct soc_enum aif1dacr_src =
|
||||
SOC_ENUM_SINGLE(WM8994_AIF1_CONTROL_2, 14, 2, aifdac_src_text);
|
||||
|
||||
static const struct soc_enum aif2dacl_src =
|
||||
SOC_ENUM_SINGLE(WM8994_AIF2_CONTROL_2, 15, 2, aifdac_src_text);
|
||||
|
||||
static const struct soc_enum aif2dacr_src =
|
||||
SOC_ENUM_SINGLE(WM8994_AIF2_CONTROL_2, 14, 2, aifdac_src_text);
|
||||
|
||||
static const struct snd_kcontrol_new wm8994_snd_controls[] = {
|
||||
SOC_DOUBLE_R_TLV("AIF1ADC1 Volume", WM8994_AIF1_ADC1_LEFT_VOLUME,
|
||||
WM8994_AIF1_ADC1_RIGHT_VOLUME,
|
||||
|
@ -2083,6 +2099,11 @@ SOC_DOUBLE_R_TLV("AIF2ADC Volume", WM8994_AIF2_ADC_LEFT_VOLUME,
|
|||
WM8994_AIF2_ADC_RIGHT_VOLUME,
|
||||
1, 119, 0, digital_tlv),
|
||||
|
||||
SOC_ENUM("AIF1DACL Source", aif1dacl_src),
|
||||
SOC_ENUM("AIF1DACR Source", aif1dacr_src),
|
||||
SOC_ENUM("AIF2DACL Source", aif1dacl_src),
|
||||
SOC_ENUM("AIF2DACR Source", aif1dacr_src),
|
||||
|
||||
SOC_DOUBLE_R_TLV("AIF1DAC1 Volume", WM8994_AIF1_DAC1_LEFT_VOLUME,
|
||||
WM8994_AIF1_DAC1_RIGHT_VOLUME, 1, 96, 0, digital_tlv),
|
||||
SOC_DOUBLE_R_TLV("AIF1DAC2 Volume", WM8994_AIF1_DAC2_LEFT_VOLUME,
|
||||
|
|
Loading…
Reference in a new issue