[alsa-devel] ASOC: For SND_SOC_DAIFMT_IB_IF what is invert baseed on?

Richard Zhao linuxzsc at gmail.com
Mon Oct 27 04:00:24 CET 2008


2008/10/27 Liam Girdwood <lrg at slimlogic.co.uk>:
> On Sun, 2008-10-26 at 00:31 +0800, Richard Zhao wrote:
>> Hi,
>>
>> include/sound/soc.h
>> /*
>>  * DAI hardware signal inversions
>>  */
>> #define SND_SOC_DAIFMT_NB_NF            (0 << 8)        /* normal bclk + frm */
>> #define SND_SOC_DAIFMT_NB_IF            (1 << 8)        /* normal bclk
>> + inv frm */
>> #define SND_SOC_DAIFMT_IB_NF            (2 << 8)        /* invert bclk
>> + nor frm */
>> #define SND_SOC_DAIFMT_IB_IF            (3 << 8)        /* invert bclk + frm */
>>
>> What are frame cock and bit clock invert based on? I2S, PCM or some
>> else bus protocols? Or just high level voltage or low level voltage?
>>
>
> Generic logic levels (high/low voltage) that can apply to I2S and PCM
> DAI's.
>
> Liam
>
>
It's not bus protocol depended.
For frame start, LRCLK normal  is 1, invert is 0.
For data valid,  BCLK normal is 1, invert is 0
Is that what you meant?

But when wm8350 in i2s mode, it take SND_SOC_DAIFMT_NB_NF as LRCLK is
0 for frame start.

Thanks
Richard


More information about the Alsa-devel mailing list