[alsa-devel] da7213 questions

Adam Thomson Adam.Thomson.Opensource at diasemi.com
Wed Jul 27 16:17:56 CEST 2016


On 13 July 2016 14:33, Peter Meerwald-Stadler wrote:

> I have a couple of questions/comments regarding the da7213 driver in
> mainline:
> 
> (1) the da7213 driver enables mclk in BIAS_SUSPEND, so essentially the
> clock is always running (since idle_bias_off is not set); at least on my
> platform, clk_set_rate() fails when the clock is already enabled

I guess depending on the clock being used, some allow for setting rate whilst
enabled and some do not. I had a quick look and it wasn't completely clear as to
how you would determine this. With regards to MCLK running in BIAS_SUSPEND
though, I agree it's not the most efficient. Will take a look at this.

> (2) da7213's srm_en variable is redundant and can be removed

I'd like to look at improving the PLL function a little, so will address this
at that time.

> 
> (3) for 32 kHz PLL mode (DAI master), section 13.28 of the datasheet
> indicates that PLL_SRM_EN should be asserted; the da7213 drivers goesn't
> 

This was noted recently, and is on my TODO list to update. I'll address it as
part of the PLL function improvements.

> (4) is only S16_LE actually supported?
> #define DA7213_FORMATS (SNDRV_PCM_FMTBIT_S16_LE |
> SNDRV_PCM_FMTBIT_S20_3LE |\
> 			SNDRV_PCM_FMTBIT_S24_LE |
> SNDRV_PCM_FMTBIT_S32_LE)
> but in da7213_set_dai_fmt() we have
> 	/* By default only 32 BCLK per WCLK is supported */
> 	dai_clk_mode |= DA7213_DAI_BCLKS_PER_WCLK_32;
>

Yes, you're correct here. It's a mistake on my part. Should be 64 not 32. Will
make sure this is updated.


More information about the Alsa-devel mailing list