1 /*
2  * ALSA SoC McASP Audio Layer for TI DAVINCI processor
3  *
4  * MCASP related definitions
5  *
6  * Author: Nirmal Pandey <n-pandey@ti.com>,
7  *         Suresh Rajashekara <suresh.r@ti.com>
8  *         Steve Chen <schen@.mvista.com>
9  *
10  * Copyright:   (C) 2009 MontaVista Software, Inc., <source@mvista.com>
11  * Copyright:   (C) 2009  Texas Instruments, India
12  *
13  * This program is free software; you can redistribute it and/or modify
14  * it under the terms of the GNU General Public License version 2 as
15  * published by the Free Software Foundation.
16  */
17 
18 #ifndef DAVINCI_MCASP_H
19 #define DAVINCI_MCASP_H
20 
21 #include <linux/io.h>
22 #include <mach/asp.h>
23 #include "davinci-pcm.h"
24 
25 #define DAVINCI_MCASP_RATES	SNDRV_PCM_RATE_8000_96000
26 #define DAVINCI_MCASP_I2S_DAI	0
27 #define DAVINCI_MCASP_DIT_DAI	1
28 
29 enum {
30 	DAVINCI_AUDIO_WORD_8 = 0,
31 	DAVINCI_AUDIO_WORD_12,
32 	DAVINCI_AUDIO_WORD_16,
33 	DAVINCI_AUDIO_WORD_20,
34 	DAVINCI_AUDIO_WORD_24,
35 	DAVINCI_AUDIO_WORD_32,
36 	DAVINCI_AUDIO_WORD_28,  /* This is only valid for McASP */
37 };
38 
39 struct davinci_audio_dev {
40 	struct davinci_pcm_dma_params dma_params[2];
41 	void __iomem *base;
42 	int sample_rate;
43 	struct clk *clk;
44 	unsigned int codec_fmt;
45 	u8 clk_active;
46 
47 	/* McASP specific data */
48 	int	tdm_slots;
49 	u8	op_mode;
50 	u8	num_serializer;
51 	u8	*serial_dir;
52 	u8	version;
53 
54 	/* McASP FIFO related */
55 	u8	txnumevt;
56 	u8	rxnumevt;
57 };
58 
59 #endif	/* DAVINCI_MCASP_H */
60