#ifndef _LINUX_WM97XX_H
#define _LINUX_WM97XX_H
#include <sound/core.h>
#include <sound/pcm.h>
#include <sound/ac97_codec.h>
#include <sound/initval.h>
#include <linux/types.h>
#include <linux/list.h>
#include <linux/input.h>
#include <linux/platform_device.h>
#define WM97xx_GENERIC …
#define WM97xx_WM1613 …
#define AC97_WM97XX_DIGITISER1 …
#define AC97_WM97XX_DIGITISER2 …
#define AC97_WM97XX_DIGITISER_RD …
#define AC97_WM9713_DIG1 …
#define AC97_WM9713_DIG2 …
#define AC97_WM9713_DIG3 …
#define WM97XX_POLL …
#define WM97XX_ADCSEL_X …
#define WM97XX_ADCSEL_Y …
#define WM97XX_ADCSEL_PRES …
#define WM97XX_AUX_ID1 …
#define WM97XX_AUX_ID2 …
#define WM97XX_AUX_ID3 …
#define WM97XX_AUX_ID4 …
#define WM97XX_ADCSEL_MASK …
#define WM97XX_COO …
#define WM97XX_CTC …
#define WM97XX_CM_RATE_93 …
#define WM97XX_CM_RATE_187 …
#define WM97XX_CM_RATE_375 …
#define WM97XX_CM_RATE_750 …
#define WM97XX_CM_RATE_8K …
#define WM97XX_CM_RATE_12K …
#define WM97XX_CM_RATE_24K …
#define WM97XX_CM_RATE_48K …
#define WM97XX_CM_RATE_MASK …
#define WM97XX_RATE(i) …
#define WM97XX_DELAY(i) …
#define WM97XX_DELAY_MASK …
#define WM97XX_SLEN …
#define WM97XX_SLT(i) …
#define WM97XX_SLT_MASK …
#define WM97XX_PRP_DETW …
#define WM97XX_PRP_DET …
#define WM97XX_PRP_DET_DIG …
#define WM97XX_RPR …
#define WM97XX_PEN_DOWN …
#define WM9712_45W …
#define WM9712_PDEN …
#define WM9712_WAIT …
#define WM9712_PIL …
#define WM9712_MASK_HI …
#define WM9712_MASK_EDGE …
#define WM9712_MASK_SYNC …
#define WM9712_RPU(i) …
#define WM9712_PD(i) …
#define AC97_WM9712_POWER …
#define AC97_WM9712_REV …
#define WM9705_PDEN …
#define WM9705_PINV …
#define WM9705_BSEN …
#define WM9705_BINV …
#define WM9705_WAIT …
#define WM9705_PIL …
#define WM9705_PHIZ …
#define WM9705_MASK_HI …
#define WM9705_MASK_EDGE …
#define WM9705_MASK_SYNC …
#define WM9705_PDD(i) …
#define WM9713_PDPOL …
#define WM9713_POLL …
#define WM9713_CTC …
#define WM9713_ADCSEL_X …
#define WM9713_ADCSEL_Y …
#define WM9713_ADCSEL_PRES …
#define WM9713_COO …
#define WM9713_45W …
#define WM9713_PDEN …
#define WM9713_ADCSEL_MASK …
#define WM9713_WAIT …
#define TS_COMP1 …
#define TS_COMP2 …
#define TS_BMON …
#define TS_WIPER …
#define WM97XX_ID1 …
#define WM9712_ID2 …
#define WM9705_ID2 …
#define WM9713_ID2 …
#define WM97XX_MAX_GPIO …
#define WM97XX_GPIO_1 …
#define WM97XX_GPIO_2 …
#define WM97XX_GPIO_3 …
#define WM97XX_GPIO_4 …
#define WM97XX_GPIO_5 …
#define WM97XX_GPIO_6 …
#define WM97XX_GPIO_7 …
#define WM97XX_GPIO_8 …
#define WM97XX_GPIO_9 …
#define WM97XX_GPIO_10 …
#define WM97XX_GPIO_11 …
#define WM97XX_GPIO_12 …
#define WM97XX_GPIO_13 …
#define WM97XX_GPIO_14 …
#define WM97XX_GPIO_15 …
#define AC97_LINK_FRAME …
#define RC_AGAIN …
#define RC_VALID …
#define RC_PENUP …
#define RC_PENDOWN …
struct wm97xx_data { … };
enum wm97xx_gpio_status { … };
enum wm97xx_gpio_dir { … };
enum wm97xx_gpio_pol { … };
enum wm97xx_gpio_sticky { … };
enum wm97xx_gpio_wake { … };
#define WM97XX_DIG_START …
#define WM97XX_DIG_STOP …
#define WM97XX_PHY_INIT …
#define WM97XX_AUX_PREPARE …
#define WM97XX_DIG_RESTORE …
struct wm97xx;
extern struct wm97xx_codec_drv wm9705_codec;
extern struct wm97xx_codec_drv wm9712_codec;
extern struct wm97xx_codec_drv wm9713_codec;
struct wm97xx_codec_drv { … };
struct wm97xx_mach_ops { … };
struct wm97xx { … };
struct wm97xx_batt_pdata { … };
struct wm97xx_pdata { … };
enum wm97xx_gpio_status wm97xx_get_gpio(struct wm97xx *wm, u32 gpio);
void wm97xx_set_gpio(struct wm97xx *wm, u32 gpio,
enum wm97xx_gpio_status status);
void wm97xx_config_gpio(struct wm97xx *wm, u32 gpio,
enum wm97xx_gpio_dir dir,
enum wm97xx_gpio_pol pol,
enum wm97xx_gpio_sticky sticky,
enum wm97xx_gpio_wake wake);
void wm97xx_set_suspend_mode(struct wm97xx *wm, u16 mode);
int wm97xx_reg_read(struct wm97xx *wm, u16 reg);
void wm97xx_reg_write(struct wm97xx *wm, u16 reg, u16 val);
int wm97xx_read_aux_adc(struct wm97xx *wm, u16 adcsel);
int wm97xx_register_mach_ops(struct wm97xx *, struct wm97xx_mach_ops *);
void wm97xx_unregister_mach_ops(struct wm97xx *);
#endif