[alsa-devel] [Q] ASoC: What's the real meaning of SND_SOC_DAIFMT_NB_NF?

javier Martin javier.martin at vista-silicon.com
Thu Feb 23 13:40:40 CET 2012

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.

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:


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.

Javier Martin
Vista Silicon S.L.
CDTUC - FASE C - Oficina S-345
Avda de los Castros s/n
39005- Santander. Cantabria. Spain
+34 942 25 32 60

More information about the Alsa-devel mailing list