[alsa-devel] [PATCH] ASoC: da7210: Add support for PLL and SRM

Ashish Chavan ashish.chavan at kpitcummins.com
Mon Apr 16 14:23:13 CEST 2012


On Fri, 2012-04-13 at 10:30 +0100, Mark Brown wrote:
> On Wed, Apr 11, 2012 at 10:58:40AM +0530, Ashish Chavan wrote:
> 
> > +/* PLL dividers table */
> > +static const struct pll_div da7210_pll_div[] = {
> > +	/* for MASTER mode, fs = 44.1Khz */
> > +	{ 12000000, 0xE8, 0x6C, 0x2, },		/* MCLK=12Mhz */
> > +	{ 13000000, 0xDF, 0x28, 0xC, },		/* MCLK=13Mhz */
> > +	{ 13500000, 0xDB, 0x0A, 0xD, },		/* MCLK=13.5Mhz */
> > +	{ 14400000, 0xD4, 0x5A, 0x2, },		/* MCLK=14.4Mhz */
> > +	{ 19200000, 0xBB, 0x43, 0x9, },		/* MCLK=19.2Mhz */
> > +	{ 19680000, 0xB9, 0x6D, 0xA, },		/* MCLK=19.68Mhz */
> > +	{ 19800000, 0xB8, 0xFB, 0xB, },		/* MCLK=19.8Mhz */
> > +	/* for MASTER mode, fs = 48Khz */
> > +	{ 12000000, 0xF3, 0x12, 0x7, },		/* MCLK=12Mhz */
> 
> This *still* has magic number problems.
> 

OK, will replace frequency values with defines. That is what you are
pointing, right?

> > +	if (da7210->master) {
> > +		/* In PLL master mode, use master mode PLL dividers */
> > +		switch (fout) {
> > +		case 2822400:
> > +			row_idx = MASTER_2822400_DIV_OFFSET;
> > +			break;
> > +		case 3072000:
> > +			row_idx = MASTER_3072000_DIV_OFFSET;
> > +			break;
> 
> These defines now need to be kept in sync with the table and are going
> to be *very* painful to review.

Yes, these defines need to be kept in sync with the table. Can you
suggest any other, preferred way to do this?

Thanks!




More information about the Alsa-devel mailing list