diff options
author | Peter Ujfalusi <peter.ujfalusi@ti.com> | 2014-07-16 08:12:04 -0400 |
---|---|---|
committer | Mark Brown <broonie@linaro.org> | 2014-07-16 17:09:13 -0400 |
commit | f3f9cfa8a1a78a3bc0dc6b7d5c26baeb07a75499 (patch) | |
tree | ed5508d41af61f9b9dc5e36310fa998fd7296a6c | |
parent | e8ffacee0adacc1a1312a14acb123544cd4094b9 (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/Kconfig | 18 | ||||
-rw-r--r-- | sound/soc/davinci/Makefile | 2 | ||||
-rw-r--r-- | sound/soc/davinci/davinci-mcasp.c | 11 |
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 @@ | |||
1 | config SND_DAVINCI_SOC | 1 | config 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 | |||
5 | config 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 | ||
5 | config SND_DAVINCI_SOC_I2S | 15 | config SND_DAVINCI_SOC_I2S |
6 | tristate | 16 | tristate |
7 | 17 | ||
8 | config SND_DAVINCI_SOC_MCASP | 18 | config 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 | ||
12 | config SND_DAVINCI_SOC_VCIF | 22 | config SND_DAVINCI_SOC_VCIF |
@@ -19,7 +29,7 @@ config SND_DAVINCI_SOC_GENERIC_EVM | |||
19 | 29 | ||
20 | config SND_AM33XX_SOC_EVM | 30 | config 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 |
2 | snd-soc-davinci-objs := davinci-pcm.o | 2 | snd-soc-davinci-objs := davinci-pcm.o |
3 | snd-soc-edma-objs := edma-pcm.o | ||
3 | snd-soc-davinci-i2s-objs := davinci-i2s.o | 4 | snd-soc-davinci-i2s-objs := davinci-i2s.o |
4 | snd-soc-davinci-mcasp-objs:= davinci-mcasp.o | 5 | snd-soc-davinci-mcasp-objs:= davinci-mcasp.o |
5 | snd-soc-davinci-vcif-objs:= davinci-vcif.o | 6 | snd-soc-davinci-vcif-objs:= davinci-vcif.o |
6 | 7 | ||
7 | obj-$(CONFIG_SND_DAVINCI_SOC) += snd-soc-davinci.o | 8 | obj-$(CONFIG_SND_DAVINCI_SOC) += snd-soc-davinci.o |
9 | obj-$(CONFIG_SND_EDMA_SOC) += snd-soc-edma.o | ||
8 | obj-$(CONFIG_SND_DAVINCI_SOC_I2S) += snd-soc-davinci-i2s.o | 10 | obj-$(CONFIG_SND_DAVINCI_SOC_I2S) += snd-soc-davinci-i2s.o |
9 | obj-$(CONFIG_SND_DAVINCI_SOC_MCASP) += snd-soc-davinci-mcasp.o | 11 | obj-$(CONFIG_SND_DAVINCI_SOC_MCASP) += snd-soc-davinci-mcasp.o |
10 | obj-$(CONFIG_SND_DAVINCI_SOC_VCIF) += snd-soc-davinci-vcif.o | 12 | obj-$(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)) |