blob: fc518f12c5533f09d71eb9239bdcd164ba3a8401 [file] [log] [blame]
/*
* fsl_asrc.h - ALSA ASRC interface
*
* Copyright (C) 2013-2014 Freescale Semiconductor, Inc. This file is licensed
* under the terms of the GNU General Public License version 2. This
* program is licensed "as is" without any warranty of any kind, whether
* express or implied.
*/
#ifndef _FSL_ASRC_P2P_H
#define _FSL_ASRC_P2P_H
#include <linux/mxc_asrc.h>
#include <sound/dmaengine_pcm.h>
#include <linux/platform_data/dma-imx.h>
enum peripheral_device_type {
UNKNOWN,
SSI1,
SSI2,
SSI3,
ESAI,
};
struct fsl_asrc_p2p_params {
enum asrc_pair_index asrc_index;
struct dma_async_tx_descriptor *desc;
struct dma_chan *dma_chan;
struct imx_dma_data dma_data;
};
struct fsl_asrc_p2p {
int p2p_rate;
int p2p_width;
enum peripheral_device_type per_dev;
struct asrc_p2p_ops asrc_ops;
struct snd_dmaengine_dai_dma_data dma_params_rx;
struct snd_dmaengine_dai_dma_data dma_params_tx;
struct imx_dma_data filter_data_tx;
struct imx_dma_data filter_data_rx;
struct snd_pcm_substream *substream[2];
/* playback and record p2p params */
struct fsl_asrc_p2p_params p2p_params[2];
struct platform_device *soc_platform_pdev;
int dmarx[3];
int dmatx[3];
char name[32];
};
#endif