Hi, I am trying to configure a DAI interface between a i.MX27 SSI and a wm8974 codec.
The definition of SND_SOC_DAIFMT_NB_NF specifies 'normal' bit clock and frame for the specified format. http://lxr.linux.no/#linux+v3.2.7/include/sound/soc-dai.h#L48
As I wasn't sure about the meaning of 'normal' I've dug into the code of some platforms to see what they do. What I've found, however, is that it doesn't seem to be an agreement about it.
Let me expose some examples:
1. Frame clock is active High:
i.MX: http://lxr.linux.no/#linux+v3.2.7/sound/soc/imx/imx-ssi.c#L131 + MCIMX27RM.pdf (p 1606) (default) PXA: http://lxr.linux.no/#linux+v3.2.7/sound/soc/pxa/pxa-ssp.c#L498 pxa-ssp.c + PXA3xx_DM_Vol_IV.pdf (p 332) (not default)
2. Frame clock is active Low:
OMAP: http://lxr.linux.no/#linux+v3.2.7/sound/soc/omap/omap-mcbsp.c#L478 + sprugn4h.pdf (p 3165) (not default)
Some chips like s6000 seem to provide a more original use for this flag:
http://lxr.linux.no/#linux+v3.2.7/sound/soc/s6000/s6000-i2s.c#L255
Similar behavior has been found for bit clock.
ALso, it seems that there is no possibility to specify different configurations for RX and TX parts.