On Wed,  3 Sep 2008 22:01:58 -0700
"ext [EMAIL PROTECTED]" <[EMAIL PROTECTED]> wrote:

> From: Steve Sakoman <[EMAIL PROTECTED]>
> 
> ---
>  sound/soc/codecs/Kconfig   |    5 +
>  sound/soc/codecs/Makefile  |    2 +
>  sound/soc/codecs/twl4030.c |  628 +++++++++++++++++++++++++++++++++++
...
> +static void twl4030_dump_registers(void)
> +{
This is not needed since there is already nice function
for it: sound/soc/soc-core.c: codec_reg_show.

> +static void twl4030_power_up(struct snd_soc_codec *codec)
> +{
> +     u8 mode, byte, popn, hsgain;
> +
...
> +     /* wait for offset cancellation to complete */
> +     twl4030_i2c_read_u8(TWL4030_MODULE_AUDIO_VOICE, &byte,
> REG_ANAMICL);
> +     while ((byte & CNCL_OFFSET_START) == CNCL_OFFSET_START)
> +             twl4030_i2c_read_u8(TWL4030_MODULE_AUDIO_VOICE,
> +                                     &byte, REG_ANAMICL);
> +
Probably some timeout escape here.

> +static void twl4030_power_down(struct snd_soc_codec *codec)
> +{
...
> +     udelay(10);
> +}
REVISIT comment for these kind of magic delays if doesn't work without.

> +static int twl4030_hw_params(struct snd_pcm_substream *substream,
> +                        struct snd_pcm_hw_params *params)
> +{
...
> +     switch (params_rate(params)) {
> +     case 44100:
> +             mode |= APLL_RATE_44100;
> +             break;
> +     case 48000:
> +             mode |= APLL_RATE_48000;
> +             break;
> +     default:
> +             printk(KERN_ERR "TWL4030 hw params: unknown rate %d
> \n",
> +                     params_rate(params));
> +             return -EINVAL;
> +     }
I checked that chip supports also other standard rates from 8 kHz,
11.025 kHz, etc. However I didn't find from quick look how this relates
to interface rate. I would say that small TODO comment to whom who has
platform to try these combinations would be nice.

> +static int twl4030_set_dai_sysclk(struct snd_soc_dai *codec_dai,
> +             int clk_id, unsigned int freq, int dir)
> +{
...
> +
> +     infreq |= APLL_EN;
> +     twl4030_write(codec, REG_APLL_CTL, infreq);
> +
> +     return 0;
> +}
If this actually place for set_pll callback if one wants to manage PLL
(APLL_EN bit) dynamically?


Jarkko
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to