2 * Copyright (c) 2014, The Linux Foundation. All rights reserved.
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2 and
6 * only version 2 as published by the Free Software Foundation.
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
14 #ifndef _MSM_SLIMBUS_DMA_H
15 #define _MSM_SLIMBUS_DMA_H
17 #include <linux/slimbus/slimbus.h>
20 * struct msm_slim_dma_data - DMA data for slimbus data transfer
22 * @sdev: Handle to the slim_device instance associated with the
24 * @ph: Port handle for the slimbus ports.
25 * @dai_channel_ctl: callback function into the CPU dai driver
26 * to setup the data path.
28 * This structure is used to share the slimbus port handles and
29 * other data path setup related handles with other drivers.
31 struct msm_slim_dma_data {
33 /* Handle to slimbus device */
34 struct slim_device *sdev;
39 /* Callback for data channel control */
40 int (*dai_channel_ctl) (struct msm_slim_dma_data *dma_data,
41 struct snd_soc_dai *dai, bool enable);