[alsa-devel] [PATCH v3 2/8] ASoC: da7210: Add support for DAPM

Ashish Chavan ashish.chavan at kpitcummins.com
Sat Oct 15 10:20:03 CEST 2011


On Fri, 2011-10-14 at 20:20 +0100, Mark Brown wrote:
> On Fri, Oct 14, 2011 at 04:31:38PM +0530, Ashish Chavan wrote:
> 
> > +	/* ADCs */
> > +	SND_SOC_DAPM_ADC("ADC Left", "Capture", DA7210_STARTUP3, 5, 1),
> > +	SND_SOC_DAPM_ADC("ADC Right", "Capture", DA7210_STARTUP3, 6, 1),
> > +
> > +	/* Output Side */
> > +	/* DACs */
> > +	SND_SOC_DAPM_DAC("DAC Left", "Playback", DA7210_STARTUP2, 5, 1),
> > +	SND_SOC_DAPM_DAC("DAC Right", "Playback", DA7210_STARTUP2, 6, 1),
> 
> These are also being enabled in the probe() function using completely
> different registers - there the registers used are _ADC and _DAC.
> What's going on there?  It's good to see the stuff in the startup()
> function gone but almost all of the probe() just shouldn't be there in a
> properly written driver and much of it looks like stuff that DAPM should
> be taking care of.
> 

There are two type of registers for all IOs (HP, MIC, AUX) as well as
DAC and ADC. One type of registers control individual enable and disable
of IO, while other set of register controls the standby mode of that
particular IO. e.g. For ADC,

- Enable/disable of ADC left and right channel is controlled by bit 3
and 7 of DA7210_ADC register.

- Standby mode of ADC left and right channel is controlled by bit 5 and
6 of DA7210_STARTUP3 register.

As per hardware designer's recommendation, standby mode is preferred for
minimum power consumption. So, current DAPM patch only takes care of
STANDBY bits.




More information about the Alsa-devel mailing list