]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
ASoC: fsl-ssi: Set framerate divider correctly for i2s master mode
authorSascha Hauer <s.hauer@pengutronix.de>
Tue, 27 May 2014 08:24:22 +0000 (10:24 +0200)
committerNitin Garg <nitin.garg@freescale.com>
Fri, 16 Jan 2015 03:16:53 +0000 (21:16 -0600)
In i2s master mode the fsl_ssi driver depends on someone calling
.set_tdm_slot correctly. In this mode though only a DC value of
2 is allowed, so set it in this case and no longer depend on
.set_tdm_slot.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Markus Pargmann <mpa@pengutronix.de>
Tested-By: Michael Grzeschik <mgr@pengutronix.de>
Signed-off-by: Mark Brown <broonie@linaro.org>
(cherry picked from commit b5dd91b3dcf937ce42583711fe4d679cacdbd2d0)

sound/soc/fsl/fsl_ssi.c

index 4fb1af4ec109228315a6f87b6e1cd1bdf2959e00..3a7836358c585ae731eaa47faf9fe7e4c5dbf867 100644 (file)
@@ -710,6 +710,10 @@ static int _fsl_ssi_set_dai_fmt(struct fsl_ssi_private *ssi_private,
                switch (fmt & SND_SOC_DAIFMT_MASTER_MASK) {
                case SND_SOC_DAIFMT_CBS_CFS:
                        ssi_private->i2s_mode |= CCSR_SSI_SCR_I2S_MODE_MASTER;
+                       write_ssi_mask(&ssi->stccr, CCSR_SSI_SxCCR_DC_MASK,
+                               CCSR_SSI_SxCCR_DC(2));
+                       write_ssi_mask(&ssi->srccr, CCSR_SSI_SxCCR_DC_MASK,
+                               CCSR_SSI_SxCCR_DC(2));
                        break;
                case SND_SOC_DAIFMT_CBM_CFM:
                        ssi_private->i2s_mode |= CCSR_SSI_SCR_I2S_MODE_SLAVE;