diff options
author | Mark Brown | 2022-04-20 14:22:03 +0100 |
---|---|---|
committer | Mark Brown | 2022-04-20 14:22:03 +0100 |
commit | 89d2bce7e6f10bc361c8b9221afcb3e0d3188aeb (patch) | |
tree | e6de94adb2f353b271c98576a1fbfe10441d866a /include | |
parent | e18610eaa66a1849aaa00ca43d605fb1a6fed800 (diff) | |
parent | a69d7f1bd373205bf539b9762423c8d526b9b9cb (diff) |
ASoC: fsl_micfil: Driver updates
Merge series from Sascha Hauer <s.hauer@pengutronix.de>:
Cleanups for the fsl_micfil driver.
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/dma/imx-dma.h (renamed from include/linux/platform_data/dma-imx.h) | 26 |
1 files changed, 23 insertions, 3 deletions
diff --git a/include/linux/platform_data/dma-imx.h b/include/linux/dma/imx-dma.h index 281adbb26e6b..8887762360d4 100644 --- a/include/linux/platform_data/dma-imx.h +++ b/include/linux/dma/imx-dma.h @@ -3,8 +3,8 @@ * Copyright 2004-2009 Freescale Semiconductor, Inc. All Rights Reserved. */ -#ifndef __ASM_ARCH_MXC_DMA_H__ -#define __ASM_ARCH_MXC_DMA_H__ +#ifndef __LINUX_DMA_IMX_H +#define __LINUX_DMA_IMX_H #include <linux/scatterlist.h> #include <linux/device.h> @@ -39,6 +39,7 @@ enum sdma_peripheral_type { IMX_DMATYPE_SSI_DUAL, /* SSI Dual FIFO */ IMX_DMATYPE_ASRC_SP, /* Shared ASRC */ IMX_DMATYPE_SAI, /* SAI */ + IMX_DMATYPE_MULTI_SAI, /* MULTI FIFOs For Audio */ }; enum imx_dma_prio { @@ -65,4 +66,23 @@ static inline int imx_dma_is_general_purpose(struct dma_chan *chan) !strcmp(chan->device->dev->driver->name, "imx-dma"); } -#endif +/** + * struct sdma_peripheral_config - SDMA config for audio + * @n_fifos_src: Number of FIFOs for recording + * @n_fifos_dst: Number of FIFOs for playback + * @sw_done: Use software done. Needed for PDM (micfil) + * + * Some i.MX Audio devices (SAI, micfil) have multiple successive FIFO + * registers. For multichannel recording/playback the SAI/micfil have + * one FIFO register per channel and the SDMA engine has to read/write + * the next channel from/to the next register and wrap around to the + * first register when all channels are handled. The number of active + * channels must be communicated to the SDMA engine using this struct. + */ +struct sdma_peripheral_config { + int n_fifos_src; + int n_fifos_dst; + bool sw_done; +}; + +#endif /* __LINUX_DMA_IMX_H */ |