2 * wm8994.h -- WM8994 Soc Audio driver
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.
12 #include <sound/soc.h>
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
20 /* OPCLK is also configured with set_dai_sysclk, specify division*10 as rate. */
21 #define WM8994_SYSCLK_OPCLK 5
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
31 typedef void (*wm8958_micdet_cb
)(u16 status
, void *data
);
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
);
38 #define WM8994_CACHE_SIZE 1570
40 struct wm8994_access_mask
{
41 unsigned short readable
; /* Mask of readable bits */
42 unsigned short writable
; /* Mask of writable bits */
45 extern const struct wm8994_access_mask wm8994_access_masks
[WM8994_CACHE_SIZE
];
46 extern const u16 wm8994_reg_defaults
[WM8994_CACHE_SIZE
];