#ifndef __MULTICORE_PCM_H__ #define __MULTICORE_PCM_H__ #include /* #define MC_PCM_FMTBITS (\ SNDRV_PCM_FMTBIT_S8 | SNDRV_PCM_FMTBIT_U8 |\ SNDRV_PCM_FMTBIT_S16 | SNDRV_PCM_FMTBIT_U16 |\ SNDRV_PCM_FMTBIT_S24 | SNDRV_PCM_FMTBIT_U24 |\ SNDRV_PCM_FMTBIT_S32 | SNDRV_PCM_FMTBIT_U32 |\ SNDRV_PCM_FORMAT_FLOAT | SNDRV_PCM_FORMAT_FLOAT64) */ #define MC_PCM_FMTBITS (\ SNDRV_PCM_FMTBIT_S16 | SNDRV_PCM_FMTBIT_U16 |\ SNDRV_PCM_FMTBIT_S32 | SNDRV_PCM_FMTBIT_U32 |\ SNDRV_PCM_FORMAT_FLOAT | SNDRV_PCM_FORMAT_FLOAT64) #define MC_PCM_RATES (\ SNDRV_PCM_RATE_5512 | SNDRV_PCM_RATE_8000_192000 |\ SNDRV_PCM_RATE_CONTINUOUS) struct mc_i2s { struct device *dev; int port; void __iomem *mfbsp_regs; void __iomem *dma_tx_regs; void __iomem *dma_rx_regs; unsigned int hw_fmt; }; struct mc_dma_private_data { struct mc_i2s *iisc; void __iomem *dma_regs; dma_params_t *dma_chain; dma_addr_t dma_chain_phys; unsigned cur_period; }; #endif