ASoC: ti: davinci-mcasp: Add support for platforms using UDMA
k3 devices including am654 and j721e are using UDMA Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Link: https://lore.kernel.org/r/20200210140950.11090-3-peter.ujfalusi@ti.com Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
2619e03703
commit
fb0c3c6e20
|
@ -1,6 +1,6 @@
|
|||
# SPDX-License-Identifier: GPL-2.0-only
|
||||
menu "Audio support for Texas Instruments SoCs"
|
||||
depends on DMA_OMAP || TI_EDMA || COMPILE_TEST
|
||||
depends on DMA_OMAP || TI_EDMA || TI_K3_UDMA || COMPILE_TEST
|
||||
|
||||
config SND_SOC_TI_EDMA_PCM
|
||||
tristate
|
||||
|
@ -28,6 +28,7 @@ config SND_SOC_DAVINCI_MCASP
|
|||
tristate "Multichannel Audio Serial Port (McASP) support"
|
||||
select SND_SOC_TI_EDMA_PCM
|
||||
select SND_SOC_TI_SDMA_PCM
|
||||
select SND_SOC_TI_UDMA_PCM
|
||||
help
|
||||
Say Y or M here if you want to have support for McASP IP found in
|
||||
various Texas Instruments SoCs like:
|
||||
|
@ -35,6 +36,7 @@ config SND_SOC_DAVINCI_MCASP
|
|||
- Sitara line of SoCs (AM335x, AM438x, etc)
|
||||
- DRA7x devices
|
||||
- Keystone devices
|
||||
- K3 devices (am654, j721e)
|
||||
|
||||
config SND_SOC_DAVINCI_VCIF
|
||||
tristate "daVinci Voice Interface (VCIF) support"
|
||||
|
|
|
@ -38,6 +38,7 @@
|
|||
|
||||
#include "edma-pcm.h"
|
||||
#include "sdma-pcm.h"
|
||||
#include "udma-pcm.h"
|
||||
#include "davinci-mcasp.h"
|
||||
|
||||
#define MCASP_MAX_AFIFO_DEPTH 64
|
||||
|
@ -1875,6 +1876,7 @@ nodata:
|
|||
enum {
|
||||
PCM_EDMA,
|
||||
PCM_SDMA,
|
||||
PCM_UDMA,
|
||||
};
|
||||
static const char *sdma_prefix = "ti,omap";
|
||||
|
||||
|
@ -1912,6 +1914,8 @@ static int davinci_mcasp_get_dma_type(struct davinci_mcasp *mcasp)
|
|||
dev_dbg(mcasp->dev, "DMA controller compatible = \"%s\"\n", tmp);
|
||||
if (!strncmp(tmp, sdma_prefix, strlen(sdma_prefix)))
|
||||
return PCM_SDMA;
|
||||
else if (strstr(tmp, "udmap"))
|
||||
return PCM_UDMA;
|
||||
|
||||
return PCM_EDMA;
|
||||
}
|
||||
|
@ -2371,6 +2375,9 @@ static int davinci_mcasp_probe(struct platform_device *pdev)
|
|||
case PCM_SDMA:
|
||||
ret = sdma_pcm_platform_register(&pdev->dev, "tx", "rx");
|
||||
break;
|
||||
case PCM_UDMA:
|
||||
ret = udma_pcm_platform_register(&pdev->dev);
|
||||
break;
|
||||
default:
|
||||
dev_err(&pdev->dev, "No DMA controller found (%d)\n", ret);
|
||||
case -EPROBE_DEFER:
|
||||
|
|
Loading…
Reference in New Issue