On Wed, Nov 28, 2012 at 10:28:53AM +0100, Peter Meerwald wrote:
I am missing the overall strategy how this is supposed to work
is there a good reference driver?
Currently nobody is implementing this dynamically, it's always configured via platform data.
per default, Mic Bias is off
Well, of course... it's just a normal thing in DAPM.
there already are some mic bias definitions in tlv320aic3x:
/* Mic Bias */ SND_SOC_DAPM_REG(snd_soc_dapm_micbias, "Mic Bias 2V", MICBIAS_CTRL, 6, 3, 1, 0), SND_SOC_DAPM_REG(snd_soc_dapm_micbias, "Mic Bias 2.5V", MICBIAS_CTRL, 6, 3, 2, 0), SND_SOC_DAPM_REG(snd_soc_dapm_micbias, "Mic Bias AVDD", MICBIAS_CTRL, 6, 3, 3, 0),
however, those are not referenced anywhere and it is not clear how to access those from the machine driver
I'm not clear what the above is intended to do but I think you're supposed to pick the MICBIAS you want to use in your board when you're hooking it up.
as for the use case: user wants to connect either a microphone or line-in to a connector, hence mic bias selection is necessary -- this doesn't sound so unusual
Normally this sort of thing would be done automatically by the kernel detecting what's plugged in, not manually by an application.