1/* SPDX-License-Identifier: GPL-2.0-or-later */
2/*
3 * da7219-aad.h - DA7322 ASoC Codec AAD Driver Platform Data
4 *
5 * Copyright (c) 2015 Dialog Semiconductor Ltd.
6 *
7 * Author: Adam Thomson <Adam.Thomson.Opensource@diasemi.com>
8 */
9
10#ifndef __DA7219_AAD_PDATA_H
11#define __DA7219_AAD_PDATA_H
12
13enum da7219_aad_micbias_pulse_lvl {
14	DA7219_AAD_MICBIAS_PULSE_LVL_OFF = 0,
15	DA7219_AAD_MICBIAS_PULSE_LVL_2_8V = 6,
16	DA7219_AAD_MICBIAS_PULSE_LVL_2_9V,
17};
18
19enum da7219_aad_btn_cfg {
20	DA7219_AAD_BTN_CFG_2MS = 1,
21	DA7219_AAD_BTN_CFG_5MS,
22	DA7219_AAD_BTN_CFG_10MS,
23	DA7219_AAD_BTN_CFG_50MS,
24	DA7219_AAD_BTN_CFG_100MS,
25	DA7219_AAD_BTN_CFG_200MS,
26	DA7219_AAD_BTN_CFG_500MS,
27};
28
29enum da7219_aad_mic_det_thr {
30	DA7219_AAD_MIC_DET_THR_200_OHMS = 0,
31	DA7219_AAD_MIC_DET_THR_500_OHMS,
32	DA7219_AAD_MIC_DET_THR_750_OHMS,
33	DA7219_AAD_MIC_DET_THR_1000_OHMS,
34};
35
36enum da7219_aad_jack_ins_deb {
37	DA7219_AAD_JACK_INS_DEB_5MS = 0,
38	DA7219_AAD_JACK_INS_DEB_10MS,
39	DA7219_AAD_JACK_INS_DEB_20MS,
40	DA7219_AAD_JACK_INS_DEB_50MS,
41	DA7219_AAD_JACK_INS_DEB_100MS,
42	DA7219_AAD_JACK_INS_DEB_200MS,
43	DA7219_AAD_JACK_INS_DEB_500MS,
44	DA7219_AAD_JACK_INS_DEB_1S,
45};
46
47enum da7219_aad_jack_ins_det_pty {
48	DA7219_AAD_JACK_INS_DET_PTY_LOW = 0,
49	DA7219_AAD_JACK_INS_DET_PTY_HIGH,
50};
51
52enum da7219_aad_jack_det_rate {
53	DA7219_AAD_JACK_DET_RATE_32_64MS = 0,
54	DA7219_AAD_JACK_DET_RATE_64_128MS,
55	DA7219_AAD_JACK_DET_RATE_128_256MS,
56	DA7219_AAD_JACK_DET_RATE_256_512MS,
57};
58
59enum da7219_aad_jack_rem_deb {
60	DA7219_AAD_JACK_REM_DEB_1MS = 0,
61	DA7219_AAD_JACK_REM_DEB_5MS,
62	DA7219_AAD_JACK_REM_DEB_10MS,
63	DA7219_AAD_JACK_REM_DEB_20MS,
64};
65
66enum da7219_aad_btn_avg {
67	DA7219_AAD_BTN_AVG_1 = 0,
68	DA7219_AAD_BTN_AVG_2,
69	DA7219_AAD_BTN_AVG_4,
70	DA7219_AAD_BTN_AVG_8,
71};
72
73enum da7219_aad_adc_1bit_rpt {
74	DA7219_AAD_ADC_1BIT_RPT_1 = 0,
75	DA7219_AAD_ADC_1BIT_RPT_2,
76	DA7219_AAD_ADC_1BIT_RPT_4,
77	DA7219_AAD_ADC_1BIT_RPT_8,
78};
79
80struct da7219_aad_pdata {
81	int irq;
82
83	enum da7219_aad_micbias_pulse_lvl micbias_pulse_lvl;
84	u32 micbias_pulse_time;
85	enum da7219_aad_btn_cfg btn_cfg;
86	enum da7219_aad_mic_det_thr mic_det_thr;
87	enum da7219_aad_jack_ins_deb jack_ins_deb;
88	enum da7219_aad_jack_ins_det_pty jack_ins_det_pty;
89	enum da7219_aad_jack_det_rate jack_det_rate;
90	enum da7219_aad_jack_rem_deb jack_rem_deb;
91
92	u8 a_d_btn_thr;
93	u8 d_b_btn_thr;
94	u8 b_c_btn_thr;
95	u8 c_mic_btn_thr;
96
97	enum da7219_aad_btn_avg btn_avg;
98	enum da7219_aad_adc_1bit_rpt adc_1bit_rpt;
99};
100
101#endif /* __DA7219_AAD_PDATA_H */
102