xref: /OK3568_Linux_fs/kernel/include/sound/max98095.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0-or-later */
2*4882a593Smuzhiyun /*
3*4882a593Smuzhiyun  * Platform data for MAX98095
4*4882a593Smuzhiyun  *
5*4882a593Smuzhiyun  * Copyright 2011 Maxim Integrated Products
6*4882a593Smuzhiyun  */
7*4882a593Smuzhiyun 
8*4882a593Smuzhiyun #ifndef __SOUND_MAX98095_PDATA_H__
9*4882a593Smuzhiyun #define __SOUND_MAX98095_PDATA_H__
10*4882a593Smuzhiyun 
11*4882a593Smuzhiyun /* Equalizer filter response configuration */
12*4882a593Smuzhiyun struct max98095_eq_cfg {
13*4882a593Smuzhiyun 	const char *name;
14*4882a593Smuzhiyun 	unsigned int rate;
15*4882a593Smuzhiyun 	u16 band1[5];
16*4882a593Smuzhiyun 	u16 band2[5];
17*4882a593Smuzhiyun 	u16 band3[5];
18*4882a593Smuzhiyun 	u16 band4[5];
19*4882a593Smuzhiyun 	u16 band5[5];
20*4882a593Smuzhiyun };
21*4882a593Smuzhiyun 
22*4882a593Smuzhiyun /* Biquad filter response configuration */
23*4882a593Smuzhiyun struct max98095_biquad_cfg {
24*4882a593Smuzhiyun 	const char *name;
25*4882a593Smuzhiyun 	unsigned int rate;
26*4882a593Smuzhiyun 	u16 band1[5];
27*4882a593Smuzhiyun 	u16 band2[5];
28*4882a593Smuzhiyun };
29*4882a593Smuzhiyun 
30*4882a593Smuzhiyun /* codec platform data */
31*4882a593Smuzhiyun struct max98095_pdata {
32*4882a593Smuzhiyun 
33*4882a593Smuzhiyun 	/* Equalizers for DAI1 and DAI2 */
34*4882a593Smuzhiyun 	struct max98095_eq_cfg *eq_cfg;
35*4882a593Smuzhiyun 	unsigned int eq_cfgcnt;
36*4882a593Smuzhiyun 
37*4882a593Smuzhiyun 	/* Biquad filter for DAI1 and DAI2 */
38*4882a593Smuzhiyun 	struct max98095_biquad_cfg *bq_cfg;
39*4882a593Smuzhiyun 	unsigned int bq_cfgcnt;
40*4882a593Smuzhiyun 
41*4882a593Smuzhiyun 	/* Analog/digital microphone configuration:
42*4882a593Smuzhiyun 	 * 0 = analog microphone input (normal setting)
43*4882a593Smuzhiyun 	 * 1 = digital microphone input
44*4882a593Smuzhiyun 	 */
45*4882a593Smuzhiyun 	unsigned int digmic_left_mode:1;
46*4882a593Smuzhiyun 	unsigned int digmic_right_mode:1;
47*4882a593Smuzhiyun 
48*4882a593Smuzhiyun 	/* Pin5 is the mechanical method of sensing jack insertion
49*4882a593Smuzhiyun 	 * but it is something that might not be supported.
50*4882a593Smuzhiyun 	 * 0 = PIN5 not supported
51*4882a593Smuzhiyun 	 * 1 = PIN5 supported
52*4882a593Smuzhiyun 	 */
53*4882a593Smuzhiyun 	unsigned int jack_detect_pin5en:1;
54*4882a593Smuzhiyun 
55*4882a593Smuzhiyun 	/* Slew amount for jack detection. Calculated as 4 * (delay + 1).
56*4882a593Smuzhiyun 	 * Default delay is 24 to get a time of 100ms.
57*4882a593Smuzhiyun 	 */
58*4882a593Smuzhiyun 	unsigned int jack_detect_delay;
59*4882a593Smuzhiyun };
60*4882a593Smuzhiyun 
61*4882a593Smuzhiyun #endif
62