1 | /* SPDX-License-Identifier: GPL-2.0+ */ |
2 | /* |
3 | * Copyright 2009 Sascha Hauer <s.hauer@pengutronix.de> |
4 | * |
5 | * This code is based on code copyrighted by Freescale, |
6 | * Liam Girdwood, Javier Martin and probably others. |
7 | */ |
8 | |
9 | #ifndef _IMX_PCM_H |
10 | #define _IMX_PCM_H |
11 | |
12 | #include <linux/dma/imx-dma.h> |
13 | |
14 | /* |
15 | * Do not change this as the FIQ handler depends on this size |
16 | */ |
17 | #define IMX_SSI_DMABUF_SIZE (64 * 1024) |
18 | |
19 | #define IMX_DEFAULT_DMABUF_SIZE (64 * 1024) |
20 | |
21 | struct imx_pcm_fiq_params { |
22 | int irq; |
23 | void __iomem *base; |
24 | |
25 | /* Pointer to original ssi driver to setup tx rx sizes */ |
26 | struct snd_dmaengine_dai_dma_data *dma_params_rx; |
27 | struct snd_dmaengine_dai_dma_data *dma_params_tx; |
28 | }; |
29 | |
30 | #if IS_ENABLED(CONFIG_SND_SOC_IMX_PCM_DMA) |
31 | int imx_pcm_dma_init(struct platform_device *pdev); |
32 | #else |
33 | static inline int imx_pcm_dma_init(struct platform_device *pdev) |
34 | { |
35 | return -ENODEV; |
36 | } |
37 | #endif |
38 | |
39 | #if IS_ENABLED(CONFIG_SND_SOC_IMX_PCM_FIQ) |
40 | int imx_pcm_fiq_init(struct platform_device *pdev, |
41 | struct imx_pcm_fiq_params *params); |
42 | void imx_pcm_fiq_exit(struct platform_device *pdev); |
43 | #else |
44 | static inline int imx_pcm_fiq_init(struct platform_device *pdev, |
45 | struct imx_pcm_fiq_params *params) |
46 | { |
47 | return -ENODEV; |
48 | } |
49 | |
50 | static inline void imx_pcm_fiq_exit(struct platform_device *pdev) |
51 | { |
52 | } |
53 | #endif |
54 | |
55 | #endif /* _IMX_PCM_H */ |
56 | |