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