|
@@ -287,6 +287,7 @@ static int omap_mcbsp_dai_hw_params(struct snd_pcm_substream *substream,
|
|
|
regs->srgr2 |= FPER(wlen * channels - 1);
|
|
|
regs->srgr1 |= FWID(wlen - 1);
|
|
|
break;
|
|
|
+ case SND_SOC_DAIFMT_DSP_A:
|
|
|
case SND_SOC_DAIFMT_DSP_B:
|
|
|
regs->srgr2 |= FPER(wlen * channels - 1);
|
|
|
regs->srgr1 |= FWID(wlen * channels - 2);
|
|
@@ -330,6 +331,13 @@ static int omap_mcbsp_dai_set_dai_fmt(struct snd_soc_dai *cpu_dai,
|
|
|
regs->rcr2 |= RDATDLY(1);
|
|
|
regs->xcr2 |= XDATDLY(1);
|
|
|
break;
|
|
|
+ case SND_SOC_DAIFMT_DSP_A:
|
|
|
+ /* 1-bit data delay */
|
|
|
+ regs->rcr2 |= RDATDLY(1);
|
|
|
+ regs->xcr2 |= XDATDLY(1);
|
|
|
+ /* Invert FS polarity configuration */
|
|
|
+ temp_fmt ^= SND_SOC_DAIFMT_NB_IF;
|
|
|
+ break;
|
|
|
case SND_SOC_DAIFMT_DSP_B:
|
|
|
/* 0-bit data delay */
|
|
|
regs->rcr2 |= RDATDLY(0);
|