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