/* * wm8994.h -- WM8994 Soc Audio driver * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. */ #ifndef _WM8994_H #define _WM8994_H #include <sound/soc.h> /* Sources for AIF1/2 SYSCLK - use with set_dai_sysclk() */ #define WM8994_SYSCLK_MCLK1 1 #define WM8994_SYSCLK_MCLK2 2 #define WM8994_SYSCLK_FLL1 3 #define WM8994_SYSCLK_FLL2 4 /* OPCLK is also configured with set_dai_sysclk, specify division*10 as rate. */ #define WM8994_SYSCLK_OPCLK 5 #define WM8994_FLL1 1 #define WM8994_FLL2 2 #define WM8994_FLL_SRC_MCLK1 1 #define WM8994_FLL_SRC_MCLK2 2 #define WM8994_FLL_SRC_LRCLK 3 #define WM8994_FLL_SRC_BCLK 4 typedef void (*wm8958_micdet_cb)(u16 status, void *data); int wm8994_mic_detect(struct snd_soc_codec *codec, struct snd_soc_jack *jack, int micbias, int det, int shrt); int wm8958_mic_detect(struct snd_soc_codec *codec, struct snd_soc_jack *jack, wm8958_micdet_cb cb, void *cb_data); #define WM8994_CACHE_SIZE 1570 struct wm8994_access_mask { unsigned short readable; /* Mask of readable bits */ unsigned short writable; /* Mask of writable bits */ }; extern const struct wm8994_access_mask wm8994_access_masks[WM8994_CACHE_SIZE]; extern const __devinitdata u16 wm8994_reg_defaults[WM8994_CACHE_SIZE]; #endif