[alsa-devel] How to apply a SOC_DAPM_MUX if two there are two different input register for left and right channel?
Oleksandr Müller
sanj3k at gmail.com
Wed Sep 6 15:35:36 CEST 2017
Hello guys,
I have some trouble I want to implement a mux within the mixer
application for the VIN source of my adc. Taking a look into the
datasheet of the TI-PCM1863 adc I get the information that the VIN left
register is at the 0x06 and the VIN right register is at the 0x07
address. Right now my code would look like this and here comes the
problem it seems that there is only a SOC_ENUM_SINGLE_DECL or a
SOC_ENUM_DOUBLE_DECL but no SOC_ENUM_DOUBLE_R_DECL because the
DOUBLE_DECL only allows shiftl and shiftr as the input parameters but I
would need a regl regr parameter. Is the only option to duplicate the
code and define a VIN_L_MUX and a VIN_R_MUX?
static const char * const pcm1863_adc_vin_src[] = {
"VIN1", "VIN2", "VIN3", "VIN4"
};
static SOC_ENUM_SINGLE_DECL(
pcm1863_adc_vin_enum, PCM1863_ADC1_INPUT_SEL_L,
PCM1863_SEL_L_SHIFT, pcm1863_vin_src);
static const struct snd_kcontrol_new pcm1863_adc_vin_mux =
SOC_DAPM_ENUM("ADC VIN Source", pcm1863_adc_vin_enum);
static const struct snd_soc_dapm_widget pcm1863_dapm_widgets[] = {
[...]
SND_SOC_DAPM_MUX("ADC VIN Mux", SND_SOC_NOPM, 0, 0,
&pcm1863_adc_vin_mux),
};
- Sanj3k
More information about the Alsa-devel
mailing list