Merge branch 'for-2.6.37' into for-2.6.38
[cascardo/linux.git] / sound / soc / codecs / wm8994.h
1 /*
2  * wm8994.h  --  WM8994 Soc Audio driver
3  *
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 as
6  * published by the Free Software Foundation.
7  */
8
9 #ifndef _WM8994_H
10 #define _WM8994_H
11
12 #include <sound/soc.h>
13
14 /* Sources for AIF1/2 SYSCLK - use with set_dai_sysclk() */
15 #define WM8994_SYSCLK_MCLK1 1
16 #define WM8994_SYSCLK_MCLK2 2
17 #define WM8994_SYSCLK_FLL1  3
18 #define WM8994_SYSCLK_FLL2  4
19
20 /* OPCLK is also configured with set_dai_sysclk, specify division*10 as rate. */
21 #define WM8994_SYSCLK_OPCLK 5
22
23 #define WM8994_FLL1 1
24 #define WM8994_FLL2 2
25
26 #define WM8994_FLL_SRC_MCLK1  1
27 #define WM8994_FLL_SRC_MCLK2  2
28 #define WM8994_FLL_SRC_LRCLK  3
29 #define WM8994_FLL_SRC_BCLK   4
30
31 typedef void (*wm8958_micdet_cb)(u16 status, void *data);
32
33 int wm8994_mic_detect(struct snd_soc_codec *codec, struct snd_soc_jack *jack,
34                       int micbias, int det, int shrt);
35 int wm8958_mic_detect(struct snd_soc_codec *codec, struct snd_soc_jack *jack,
36                       wm8958_micdet_cb cb, void *cb_data);
37
38 #define WM8994_CACHE_SIZE 1570
39
40 struct wm8994_access_mask {
41         unsigned short readable;   /* Mask of readable bits */
42         unsigned short writable;   /* Mask of writable bits */
43 };
44
45 extern const struct wm8994_access_mask wm8994_access_masks[WM8994_CACHE_SIZE];
46 extern const __devinitdata  u16 wm8994_reg_defaults[WM8994_CACHE_SIZE];
47
48 #endif