Re: [PATCH] wm8962: add a simple DMIC enable control

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Feb 01, 2022 at 04:01:13PM +0100, Martin Kepplinger wrote:
> In order to use the external mic we need to switch DMIC_ENA off.

When you say external mic do you mean an analogue mic connected
to the INxy pins on the chip?

> I know when DMIC is not used at all, the codec driver does
> snd_soc_dapm_nc_pin(dapm, "DMICDAT"); but I'm not sure how I'd create
> a control based on that.

snd_soc_dapm_nc_pin should be called on DMICDAT if the GPIOs are
not configured for use of a DMIC. And if called DMIC_ENA should
never be set by the driver, since it can't be used as the pins
are not configured to operate as DMICs.

> I'm not yet looking into detection - only making it work when selected
> manually, via ucm. Although I need detection too later.
> 
> While this works when I set the control in ucm, AFAIK the way I do it
> here is not correct though due to dapm.
> 
> I guess this conflicts with the widget:
> SND_SOC_DAPM_AIF_IN("DMIC_ENA", NULL, 0, WM8962_PWR_MGMT_1, 10, 0),
> 
> Do you have any advice for me on how to do what I want?
> 

Yes the DMIC enable should be controlled through DAPM when the
relevant audio path is enabled.

Just to check I understand the problem correctly. You have a system
that has both analogue and digital mics connected, and the
problem is that DMIC_ENA is then permanently enabled, meaning you
can't access the audio from the analogue mics?

Assuming I am correct above, looking through the DAPM graph it does
look like the DMIC is oddly wired. It does appear to be hard wired
into ADCL, which would indeed cause it to be permanently enabled
if the pins are configured for DMIC. Assuming there isn't some
reason the chip can't switch between digital and analogue modes
(I can't see an obvious one in the datasheet), I think really there
is a DAPM mux missing here. There should be a mux connecting both
MIXINL and DMIC_ENA to ADCL/ADCR, rather than them both being
directly connected that would let the user switch between
analogue and digital inputs.

Thanks,
Charles



[Index of Archives]     [ALSA User]     [Linux Audio Users]     [Pulse Audio]     [Kernel Archive]     [Asterisk PBX]     [Photo Sharing]     [Linux Sound]     [Video 4 Linux]     [Gimp]     [Yosemite News]

  Powered by Linux