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