2010-01-29 17:47:12 +00:00
/*
* 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
2010-07-08 11:25:43 +09:00
/* OPCLK is also configured with set_dai_sysclk, specify division*10 as rate. */
# define WM8994_SYSCLK_OPCLK 5
2010-01-29 17:47:12 +00:00
# define WM8994_FLL1 1
# define WM8994_FLL2 2
2010-04-20 12:56:18 +09:00
# define WM8994_FLL_SRC_MCLK1 1
# define WM8994_FLL_SRC_MCLK2 2
# define WM8994_FLL_SRC_LRCLK 3
# define WM8994_FLL_SRC_BCLK 4
2010-11-26 15:21:09 +00:00
typedef void ( * wm8958_micdet_cb ) ( u16 status , void * data ) ;
2010-03-29 20:57:12 +01:00
int wm8994_mic_detect ( struct snd_soc_codec * codec , struct snd_soc_jack * jack ,
int micbias , int det , int shrt ) ;
2010-11-26 15:21:09 +00:00
int wm8958_mic_detect ( struct snd_soc_codec * codec , struct snd_soc_jack * jack ,
wm8958_micdet_cb cb , void * cb_data ) ;
2010-03-29 20:57:12 +01:00
2010-11-16 20:11:40 +00:00
# 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 ] ;
2011-03-07 16:42:20 +00:00
extern const u16 wm8994_reg_defaults [ WM8994_CACHE_SIZE ] ;
2010-11-16 20:11:40 +00:00
2010-01-29 17:47:12 +00:00
# endif