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_______________________________________________Alsa-devel mailing listAlsa-devel@xxxxxxxxxxxxxxxxxxxx://mailman.alsa-project.org/mailman/listinfo/alsa-devel