summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sound/soc/imx/Kconfig6
-rw-r--r--sound/soc/imx/imx-3stack-sgtl5000.c5
-rw-r--r--sound/soc/imx/imx-ssi.c6
3 files changed, 15 insertions, 2 deletions
diff --git a/sound/soc/imx/Kconfig b/sound/soc/imx/Kconfig
index 38b7dcd49a35..291c19687cdc 100644
--- a/sound/soc/imx/Kconfig
+++ b/sound/soc/imx/Kconfig
@@ -97,4 +97,10 @@ config SND_SOC_IMX_3STACK_CS42888
Say Y if you want to add support for Soc audio on IMX 3STACK
with the CS42888
+config MXC_SSI_DUAL_FIFO
+ bool "MXC SSI enable dual fifoes"
+ def_bool y
+ depends on SND_MXC_SOC_SSI && (ARCH_MX51 || ARCH_MX53)
+ help
+ Say Y if you want to use 2 ssi fifo for audio transfer
endif
diff --git a/sound/soc/imx/imx-3stack-sgtl5000.c b/sound/soc/imx/imx-3stack-sgtl5000.c
index c1b7d401fbcd..cccc0bda6150 100644
--- a/sound/soc/imx/imx-3stack-sgtl5000.c
+++ b/sound/soc/imx/imx-3stack-sgtl5000.c
@@ -585,8 +585,11 @@ static int __devinit imx_3stack_sgtl5000_probe(struct platform_device *pdev)
if (plat->src_port == 2)
sgtl5000_cpu_dai = imx_ssi_dai[2];
- else
+ else if (plat->src_port == 1)
sgtl5000_cpu_dai = imx_ssi_dai[0];
+ else if (plat->src_port == 7)
+ sgtl5000_cpu_dai = imx_ssi_dai[4];
+
imx_3stack_dai.cpu_dai = sgtl5000_cpu_dai;
diff --git a/sound/soc/imx/imx-ssi.c b/sound/soc/imx/imx-ssi.c
index 20e29c12f54f..3d4dde430b6f 100644
--- a/sound/soc/imx/imx-ssi.c
+++ b/sound/soc/imx/imx-ssi.c
@@ -325,7 +325,11 @@ static int imx_ssi_set_dai_fmt(struct snd_soc_dai *cpu_dai, unsigned int fmt)
/* tdm - only for stereo atm */
if (priv->network_mode)
scr |= SSI_SCR_NET;
-
+#ifdef CONFIG_MXC_SSI_DUAL_FIFO
+ stcr |= SSI_STCR_TFEN1;
+ srcr |= SSI_SRCR_RFEN1;
+ scr |= SSI_SCR_TCH_EN;
+#endif
__raw_writel(stcr, ioaddr + SSI_STCR);
__raw_writel(srcr, ioaddr + SSI_SRCR);
__raw_writel(scr, ioaddr + SSI_SCR);