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 u16 wm8994_reg_defaults[WM8994_CACHE_SIZE]; 47 48 #endif 49