aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPeter Ujfalusi <peter.ujfalusi@ti.com>2014-07-16 08:12:04 -0400
committerMark Brown <broonie@linaro.org>2014-07-16 17:09:13 -0400
commitf3f9cfa8a1a78a3bc0dc6b7d5c26baeb07a75499 (patch)
treeed5508d41af61f9b9dc5e36310fa998fd7296a6c
parente8ffacee0adacc1a1312a14acb123544cd4094b9 (diff)
ASoC: davinci-mcasp: Use dmaengine based platform driver for AM335x/447x
Use the edma-pcm with AM335x and AM437x SoCs. Keep using the davinci-pcm for daVinci devices, they can be switched to use the dmaengine based driver later when they are verified to work correctly. Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Tested-by: Daniel Mack <daniel@zonque.org> Signed-off-by: Mark Brown <broonie@linaro.org>
-rw-r--r--sound/soc/davinci/Kconfig18
-rw-r--r--sound/soc/davinci/Makefile2
-rw-r--r--sound/soc/davinci/davinci-mcasp.c11
3 files changed, 25 insertions, 6 deletions
diff --git a/sound/soc/davinci/Kconfig b/sound/soc/davinci/Kconfig
index fdbb16fffd30..b310dd3489ac 100644
--- a/sound/soc/davinci/Kconfig
+++ b/sound/soc/davinci/Kconfig
@@ -1,12 +1,22 @@
1config SND_DAVINCI_SOC 1config SND_DAVINCI_SOC
2 tristate "SoC Audio for TI DAVINCI or AM33XX/AM43XX chips" 2 tristate "SoC Audio for TI DAVINCI"
3 depends on ARCH_DAVINCI || SOC_AM33XX || SOC_AM43XX 3 depends on ARCH_DAVINCI
4
5config SND_EDMA_SOC
6 tristate "SoC Audio for Texas Instruments chips using eDMA (AM33XX/43XX)"
7 depends on SOC_AM33XX || SOC_AM43XX
8 select SND_SOC_GENERIC_DMAENGINE_PCM
9 help
10 Say Y or M here if you want audio support for TI SoC which uses eDMA.
11 The following line of SoCs are supported by this platform driver:
12 - AM335x
13 - AM437x/AM438x
4 14
5config SND_DAVINCI_SOC_I2S 15config SND_DAVINCI_SOC_I2S
6 tristate 16 tristate
7 17
8config SND_DAVINCI_SOC_MCASP 18config SND_DAVINCI_SOC_MCASP
9 depends on SND_DAVINCI_SOC || SND_OMAP_SOC 19 depends on SND_DAVINCI_SOC || SND_OMAP_SOC || SND_EDMA_SOC
10 tristate 20 tristate
11 21
12config SND_DAVINCI_SOC_VCIF 22config SND_DAVINCI_SOC_VCIF
@@ -19,7 +29,7 @@ config SND_DAVINCI_SOC_GENERIC_EVM
19 29
20config SND_AM33XX_SOC_EVM 30config SND_AM33XX_SOC_EVM
21 tristate "SoC Audio for the AM33XX chip based boards" 31 tristate "SoC Audio for the AM33XX chip based boards"
22 depends on SND_DAVINCI_SOC && SOC_AM33XX && I2C 32 depends on SND_EDMA_SOC && SOC_AM33XX && I2C
23 select SND_DAVINCI_SOC_GENERIC_EVM 33 select SND_DAVINCI_SOC_GENERIC_EVM
24 help 34 help
25 Say Y or M if you want to add support for SoC audio on AM33XX 35 Say Y or M if you want to add support for SoC audio on AM33XX
diff --git a/sound/soc/davinci/Makefile b/sound/soc/davinci/Makefile
index 744d4d9a0184..09bf2ba92d38 100644
--- a/sound/soc/davinci/Makefile
+++ b/sound/soc/davinci/Makefile
@@ -1,10 +1,12 @@
1# DAVINCI Platform Support 1# DAVINCI Platform Support
2snd-soc-davinci-objs := davinci-pcm.o 2snd-soc-davinci-objs := davinci-pcm.o
3snd-soc-edma-objs := edma-pcm.o
3snd-soc-davinci-i2s-objs := davinci-i2s.o 4snd-soc-davinci-i2s-objs := davinci-i2s.o
4snd-soc-davinci-mcasp-objs:= davinci-mcasp.o 5snd-soc-davinci-mcasp-objs:= davinci-mcasp.o
5snd-soc-davinci-vcif-objs:= davinci-vcif.o 6snd-soc-davinci-vcif-objs:= davinci-vcif.o
6 7
7obj-$(CONFIG_SND_DAVINCI_SOC) += snd-soc-davinci.o 8obj-$(CONFIG_SND_DAVINCI_SOC) += snd-soc-davinci.o
9obj-$(CONFIG_SND_EDMA_SOC) += snd-soc-edma.o
8obj-$(CONFIG_SND_DAVINCI_SOC_I2S) += snd-soc-davinci-i2s.o 10obj-$(CONFIG_SND_DAVINCI_SOC_I2S) += snd-soc-davinci-i2s.o
9obj-$(CONFIG_SND_DAVINCI_SOC_MCASP) += snd-soc-davinci-mcasp.o 11obj-$(CONFIG_SND_DAVINCI_SOC_MCASP) += snd-soc-davinci-mcasp.o
10obj-$(CONFIG_SND_DAVINCI_SOC_VCIF) += snd-soc-davinci-vcif.o 12obj-$(CONFIG_SND_DAVINCI_SOC_VCIF) += snd-soc-davinci-vcif.o
diff --git a/sound/soc/davinci/davinci-mcasp.c b/sound/soc/davinci/davinci-mcasp.c
index f7dc538679b1..02421d4275f5 100644
--- a/sound/soc/davinci/davinci-mcasp.c
+++ b/sound/soc/davinci/davinci-mcasp.c
@@ -37,6 +37,7 @@
37#include <sound/omap-pcm.h> 37#include <sound/omap-pcm.h>
38 38
39#include "davinci-pcm.h" 39#include "davinci-pcm.h"
40#include "edma-pcm.h"
40#include "davinci-mcasp.h" 41#include "davinci-mcasp.h"
41 42
42#define MCASP_MAX_AFIFO_DEPTH 64 43#define MCASP_MAX_AFIFO_DEPTH 64
@@ -831,7 +832,7 @@ static int davinci_mcasp_dai_probe(struct snd_soc_dai *dai)
831{ 832{
832 struct davinci_mcasp *mcasp = snd_soc_dai_get_drvdata(dai); 833 struct davinci_mcasp *mcasp = snd_soc_dai_get_drvdata(dai);
833 834
834 if (mcasp->version == MCASP_VERSION_4) { 835 if (mcasp->version >= MCASP_VERSION_3) {
835 /* Using dmaengine PCM */ 836 /* Using dmaengine PCM */
836 dai->playback_dma_data = 837 dai->playback_dma_data =
837 &mcasp->dma_data[SNDRV_PCM_STREAM_PLAYBACK]; 838 &mcasp->dma_data[SNDRV_PCM_STREAM_PLAYBACK];
@@ -1281,10 +1282,16 @@ static int davinci_mcasp_probe(struct platform_device *pdev)
1281 IS_MODULE(CONFIG_SND_DAVINCI_SOC)) 1282 IS_MODULE(CONFIG_SND_DAVINCI_SOC))
1282 case MCASP_VERSION_1: 1283 case MCASP_VERSION_1:
1283 case MCASP_VERSION_2: 1284 case MCASP_VERSION_2:
1284 case MCASP_VERSION_3:
1285 ret = davinci_soc_platform_register(&pdev->dev); 1285 ret = davinci_soc_platform_register(&pdev->dev);
1286 break; 1286 break;
1287#endif 1287#endif
1288#if IS_BUILTIN(CONFIG_SND_EDMA_SOC) || \
1289 (IS_MODULE(CONFIG_SND_DAVINCI_SOC_MCASP) && \
1290 IS_MODULE(CONFIG_SND_EDMA_SOC))
1291 case MCASP_VERSION_3:
1292 ret = edma_pcm_platform_register(&pdev->dev);
1293 break;
1294#endif
1288#if IS_BUILTIN(CONFIG_SND_OMAP_SOC) || \ 1295#if IS_BUILTIN(CONFIG_SND_OMAP_SOC) || \
1289 (IS_MODULE(CONFIG_SND_DAVINCI_SOC_MCASP) && \ 1296 (IS_MODULE(CONFIG_SND_DAVINCI_SOC_MCASP) && \
1290 IS_MODULE(CONFIG_SND_OMAP_SOC)) 1297 IS_MODULE(CONFIG_SND_OMAP_SOC))