[alsa-devel] [PATCH v2] ASoC: codecs: Add DA9055 codec driver

Ashish Chavan ashish.chavan at kpitcummins.com
Thu Sep 20 13:58:55 CEST 2012


> > +	/* DAC Routing control */
> > +	SOC_ENUM("DAC Left Select", da9055_dac_l_select),
> > +	SOC_ENUM("DAC Right Select", da9055_dac_r_select),
> 
> DAPM.  This even says its a routing control...

Yes, let me see if I can make it DAPM based.

> 
> > +	/* To select if MIC Bias powers MIC 1 or MIC 2 */
> > +	SOC_ENUM("Mic Bias Select", da9055_mic_bias_select),
> 
> This would normally be something controlled by the board...  what
> exactly is this doing?  How does the MICBIAS relate to the microphone
> inputs?

Yes, it should be controlled by the board.
This control selects which of the two MIC Bias pins acts as the BIAS
source. Earlier we misinterpreted it because of a hardware modification
which was present on the board without our knowledge.

> 
> > +	case SND_SOC_BIAS_STANDBY:
> > +		if (codec->dapm.bias_level == SND_SOC_BIAS_OFF) {
> > +			/* Enable VMID reference & master bias */
> > +			snd_soc_update_bits(codec, DA9055_REFERENCES,
> > +					    DA9055_VMID_EN | DA9055_BIAS_EN,
> > +					    DA9055_VMID_EN | DA9055_BIAS_EN);
> > +		}
> > +		regcache_sync(da9055->regmap);
> 
> Doing the sync every time is very odd, why is it only done on
> transitions from _OFF?

It was a typo :-( I intend to put the sync inside if().

> Given that there's no regulator support here
> it's also a bit surprising that you need to do a sync outside of system
> suspend...
> 

I am not sure if I understood this fully. Do you mean a sync is not
required here?


> > +	da9055->mclk_rate       = 0;    /* This will be set from set_sysclk() */
> > +	da9055->master          = 0;    /* This will be set from set_fmt() */
> 
> You use kzalloc...
> 

Yeah!




More information about the Alsa-devel mailing list