#ifndef __DA7219_AAD_H
#define __DA7219_AAD_H
#include <linux/timer.h>
#include <linux/mutex.h>
#include <sound/soc.h>
#include <sound/jack.h>
#include <sound/da7219-aad.h>
#define DA7219_ACCDET_STATUS_A …
#define DA7219_ACCDET_STATUS_B …
#define DA7219_ACCDET_IRQ_EVENT_A …
#define DA7219_ACCDET_IRQ_EVENT_B …
#define DA7219_ACCDET_IRQ_MASK_A …
#define DA7219_ACCDET_IRQ_MASK_B …
#define DA7219_ACCDET_CONFIG_1 …
#define DA7219_ACCDET_CONFIG_2 …
#define DA7219_ACCDET_CONFIG_3 …
#define DA7219_ACCDET_CONFIG_4 …
#define DA7219_ACCDET_CONFIG_5 …
#define DA7219_ACCDET_CONFIG_6 …
#define DA7219_ACCDET_CONFIG_7 …
#define DA7219_ACCDET_CONFIG_8 …
#define DA7219_JACK_INSERTION_STS_SHIFT …
#define DA7219_JACK_INSERTION_STS_MASK …
#define DA7219_JACK_TYPE_STS_SHIFT …
#define DA7219_JACK_TYPE_STS_MASK …
#define DA7219_JACK_PIN_ORDER_STS_SHIFT …
#define DA7219_JACK_PIN_ORDER_STS_MASK …
#define DA7219_MICBIAS_UP_STS_SHIFT …
#define DA7219_MICBIAS_UP_STS_MASK …
#define DA7219_BUTTON_TYPE_STS_SHIFT …
#define DA7219_BUTTON_TYPE_STS_MASK …
#define DA7219_E_JACK_INSERTED_SHIFT …
#define DA7219_E_JACK_INSERTED_MASK …
#define DA7219_E_JACK_REMOVED_SHIFT …
#define DA7219_E_JACK_REMOVED_MASK …
#define DA7219_E_JACK_DETECT_COMPLETE_SHIFT …
#define DA7219_E_JACK_DETECT_COMPLETE_MASK …
#define DA7219_E_BUTTON_A_PRESSED_SHIFT …
#define DA7219_E_BUTTON_A_PRESSED_MASK …
#define DA7219_E_BUTTON_B_PRESSED_SHIFT …
#define DA7219_E_BUTTON_B_PRESSED_MASK …
#define DA7219_E_BUTTON_C_PRESSED_SHIFT …
#define DA7219_E_BUTTON_C_PRESSED_MASK …
#define DA7219_E_BUTTON_D_PRESSED_SHIFT …
#define DA7219_E_BUTTON_D_PRESSED_MASK …
#define DA7219_E_BUTTON_D_RELEASED_SHIFT …
#define DA7219_E_BUTTON_D_RELEASED_MASK …
#define DA7219_E_BUTTON_C_RELEASED_SHIFT …
#define DA7219_E_BUTTON_C_RELEASED_MASK …
#define DA7219_E_BUTTON_B_RELEASED_SHIFT …
#define DA7219_E_BUTTON_B_RELEASED_MASK …
#define DA7219_E_BUTTON_A_RELEASED_SHIFT …
#define DA7219_E_BUTTON_A_RELEASED_MASK …
#define DA7219_M_JACK_INSERTED_SHIFT …
#define DA7219_M_JACK_INSERTED_MASK …
#define DA7219_M_JACK_REMOVED_SHIFT …
#define DA7219_M_JACK_REMOVED_MASK …
#define DA7219_M_JACK_DETECT_COMPLETE_SHIFT …
#define DA7219_M_JACK_DETECT_COMPLETE_MASK …
#define DA7219_M_BUTTON_A_PRESSED_SHIFT …
#define DA7219_M_BUTTON_A_PRESSED_MASK …
#define DA7219_M_BUTTON_B_PRESSED_SHIFT …
#define DA7219_M_BUTTON_B_PRESSED_MASK …
#define DA7219_M_BUTTON_C_PRESSED_SHIFT …
#define DA7219_M_BUTTON_C_PRESSED_MASK …
#define DA7219_M_BUTTON_D_PRESSED_SHIFT …
#define DA7219_M_BUTTON_D_PRESSED_MASK …
#define DA7219_M_BUTTON_D_RELEASED_SHIFT …
#define DA7219_M_BUTTON_D_RELEASED_MASK …
#define DA7219_M_BUTTON_C_RELEASED_SHIFT …
#define DA7219_M_BUTTON_C_RELEASED_MASK …
#define DA7219_M_BUTTON_B_RELEASED_SHIFT …
#define DA7219_M_BUTTON_B_RELEASED_MASK …
#define DA7219_M_BUTTON_A_RELEASED_SHIFT …
#define DA7219_M_BUTTON_A_RELEASED_MASK …
#define DA7219_ACCDET_EN_SHIFT …
#define DA7219_ACCDET_EN_MASK …
#define DA7219_BUTTON_CONFIG_SHIFT …
#define DA7219_BUTTON_CONFIG_MASK …
#define DA7219_MIC_DET_THRESH_SHIFT …
#define DA7219_MIC_DET_THRESH_MASK …
#define DA7219_JACK_TYPE_DET_EN_SHIFT …
#define DA7219_JACK_TYPE_DET_EN_MASK …
#define DA7219_PIN_ORDER_DET_EN_SHIFT …
#define DA7219_PIN_ORDER_DET_EN_MASK …
#define DA7219_ACCDET_PAUSE_SHIFT …
#define DA7219_ACCDET_PAUSE_MASK …
#define DA7219_JACKDET_DEBOUNCE_SHIFT …
#define DA7219_JACKDET_DEBOUNCE_MASK …
#define DA7219_JACK_DETECT_RATE_SHIFT …
#define DA7219_JACK_DETECT_RATE_MASK …
#define DA7219_JACKDET_REM_DEB_SHIFT …
#define DA7219_JACKDET_REM_DEB_MASK …
#define DA7219_A_D_BUTTON_THRESH_SHIFT …
#define DA7219_A_D_BUTTON_THRESH_MASK …
#define DA7219_D_B_BUTTON_THRESH_SHIFT …
#define DA7219_D_B_BUTTON_THRESH_MASK …
#define DA7219_B_C_BUTTON_THRESH_SHIFT …
#define DA7219_B_C_BUTTON_THRESH_MASK …
#define DA7219_C_MIC_BUTTON_THRESH_SHIFT …
#define DA7219_C_MIC_BUTTON_THRESH_MASK …
#define DA7219_BUTTON_AVERAGE_SHIFT …
#define DA7219_BUTTON_AVERAGE_MASK …
#define DA7219_ADC_1_BIT_REPEAT_SHIFT …
#define DA7219_ADC_1_BIT_REPEAT_MASK …
#define DA7219_PIN_ORDER_FORCE_SHIFT …
#define DA7219_PIN_ORDER_FORCE_MASK …
#define DA7219_JACK_TYPE_FORCE_SHIFT …
#define DA7219_JACK_TYPE_FORCE_MASK …
#define DA7219_HPTEST_EN_SHIFT …
#define DA7219_HPTEST_EN_MASK …
#define DA7219_HPTEST_RES_SEL_SHIFT …
#define DA7219_HPTEST_RES_SEL_MASK …
#define DA7219_HPTEST_RES_SEL_1KOHMS …
#define DA7219_HPTEST_COMP_SHIFT …
#define DA7219_HPTEST_COMP_MASK …
#define DA7219_AAD_MAX_BUTTONS …
#define DA7219_AAD_REPORT_ALL_MASK …
#define DA7219_AAD_MICBIAS_CHK_DELAY …
#define DA7219_AAD_MICBIAS_CHK_RETRIES …
#define DA7219_AAD_HPTEST_RAMP_FREQ …
#define DA7219_AAD_HPTEST_RAMP_FREQ_INT_OSC …
#define DA7219_AAD_HPTEST_PERIOD …
#define DA7219_AAD_HPTEST_INT_OSC_PATH_DELAY …
enum da7219_aad_event_regs { … };
struct da7219_aad_priv { … };
void da7219_aad_jack_det(struct snd_soc_component *component, struct snd_soc_jack *jack);
void da7219_aad_suspend(struct snd_soc_component *component);
void da7219_aad_resume(struct snd_soc_component *component);
int da7219_aad_init(struct snd_soc_component *component);
void da7219_aad_exit(struct snd_soc_component *component);
int da7219_aad_probe(struct i2c_client *i2c);
#endif