[alsa-devel] [PATCH 1/1] ASoC: TWL4030: Add support Voice DAI
Peter Ujfalusi
peter.ujfalusi at nokia.com
Tue Apr 14 09:07:51 CEST 2009
On Thursday 09 April 2009 16:54:37 ext Joonyoung Shim wrote:
> Add Voice DAI to support the PCM voice interface of the twl4030 codec.
>
> The PCM voice interface can be used with 8-kHz(voice narrowband) or 16-kHz
> (voice wideband) sampling rates, and 16bits, and mono RX and mono TX or
> stereo TX.
>
> If the system master clock is not 26MHz, the voice PCM interface is not
> available.
>
> The PCM voice interface has two modes
> - PCM mode1 : This uses the rising edge of the clock signal
> - PCM mode2 : This uses the falling edge of the clock signal
>
> PCM mode1 and mode2 have a look of DSP_A and DSP_B, so we used DSP_A and
> DSP_B.
Both of the PCM mode1 and mode2 is actually DSP_A, but the FS polarity is
inverted and also the data is shifted/sampled on the opposite edge of the
bitclock.
> +static int twl4030_voice_startup(struct snd_pcm_substream *substream,
> + struct snd_soc_dai *dai)
> +{
> + struct snd_soc_pcm_runtime *rtd = substream->private_data;
> + struct snd_soc_device *socdev = rtd->socdev;
> + struct snd_soc_codec *codec = socdev->card->codec;
> + u8 infreq;
> +
> + /* If the system master clock is not 26MHz, the voice PCM interface is
> + * not avilable.
> + */
> + infreq = twl4030_read_reg_cache(codec, TWL4030_REG_APLL_CTL)
> + & TWL4030_APLL_INFREQ;
> +
> + if (infreq != TWL4030_APLL_INFREQ_26000KHZ)
> + return -EPERM;
Would it be feasible to add a check here against the CODEC_MODE:OPT_MODE and
if the codec is not in Option2 mode, than return with error?
--
Péter
More information about the Alsa-devel
mailing list