diff options
Diffstat (limited to 'sound')
-rw-r--r-- | sound/soc/imx/Kconfig | 6 | ||||
-rw-r--r-- | sound/soc/imx/imx-3stack-sgtl5000.c | 5 | ||||
-rw-r--r-- | sound/soc/imx/imx-ssi.c | 6 |
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); |