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 
13 enum 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 
19 enum 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 
29 enum 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 
36 enum 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 
47 enum 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 
52 enum 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 
59 enum 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 
66 enum 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 
73 enum 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 
80 struct 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