Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6
[pandora-kernel.git] / sound / soc / davinci / davinci-mcasp.h
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 extern struct snd_soc_dai davinci_mcasp_dai[];
26
27 #define DAVINCI_MCASP_RATES     SNDRV_PCM_RATE_8000_96000
28 #define DAVINCI_MCASP_I2S_DAI   0
29 #define DAVINCI_MCASP_DIT_DAI   1
30
31 enum {
32         DAVINCI_AUDIO_WORD_8 = 0,
33         DAVINCI_AUDIO_WORD_12,
34         DAVINCI_AUDIO_WORD_16,
35         DAVINCI_AUDIO_WORD_20,
36         DAVINCI_AUDIO_WORD_24,
37         DAVINCI_AUDIO_WORD_32,
38         DAVINCI_AUDIO_WORD_28,  /* This is only valid for McASP */
39 };
40
41 struct davinci_audio_dev {
42         /*
43          * dma_params must be first because rtd->dai->cpu_dai->private_data
44          * is cast to a pointer of an array of struct davinci_pcm_dma_params in
45          * davinci_pcm_open.
46          */
47         struct davinci_pcm_dma_params dma_params[2];
48         void __iomem *base;
49         int sample_rate;
50         struct clk *clk;
51         unsigned int codec_fmt;
52
53         /* McASP specific data */
54         int     tdm_slots;
55         u8      op_mode;
56         u8      num_serializer;
57         u8      *serial_dir;
58         u8      version;
59
60         /* McASP FIFO related */
61         u8      txnumevt;
62         u8      rxnumevt;
63 };
64
65 #endif  /* DAVINCI_MCASP_H */