xref: /linux/include/sound/max98095.h (revision 2874c5fd)
1*2874c5fdSThomas Gleixner /* SPDX-License-Identifier: GPL-2.0-or-later */
282a5a936SPeter Hsiang /*
382a5a936SPeter Hsiang  * Platform data for MAX98095
482a5a936SPeter Hsiang  *
582a5a936SPeter Hsiang  * Copyright 2011 Maxim Integrated Products
682a5a936SPeter Hsiang  */
782a5a936SPeter Hsiang 
882a5a936SPeter Hsiang #ifndef __SOUND_MAX98095_PDATA_H__
982a5a936SPeter Hsiang #define __SOUND_MAX98095_PDATA_H__
1082a5a936SPeter Hsiang 
11dad31ec1SPeter Hsiang /* Equalizer filter response configuration */
12dad31ec1SPeter Hsiang struct max98095_eq_cfg {
13dad31ec1SPeter Hsiang 	const char *name;
14dad31ec1SPeter Hsiang 	unsigned int rate;
15dad31ec1SPeter Hsiang 	u16 band1[5];
16dad31ec1SPeter Hsiang 	u16 band2[5];
17dad31ec1SPeter Hsiang 	u16 band3[5];
18dad31ec1SPeter Hsiang 	u16 band4[5];
19dad31ec1SPeter Hsiang 	u16 band5[5];
20dad31ec1SPeter Hsiang };
21dad31ec1SPeter Hsiang 
22dad31ec1SPeter Hsiang /* Biquad filter response configuration */
23dad31ec1SPeter Hsiang struct max98095_biquad_cfg {
24dad31ec1SPeter Hsiang 	const char *name;
25dad31ec1SPeter Hsiang 	unsigned int rate;
26dad31ec1SPeter Hsiang 	u16 band1[5];
27dad31ec1SPeter Hsiang 	u16 band2[5];
28dad31ec1SPeter Hsiang };
29dad31ec1SPeter Hsiang 
3082a5a936SPeter Hsiang /* codec platform data */
3182a5a936SPeter Hsiang struct max98095_pdata {
32dad31ec1SPeter Hsiang 
33dad31ec1SPeter Hsiang 	/* Equalizers for DAI1 and DAI2 */
34dad31ec1SPeter Hsiang 	struct max98095_eq_cfg *eq_cfg;
35dad31ec1SPeter Hsiang 	unsigned int eq_cfgcnt;
36dad31ec1SPeter Hsiang 
37dad31ec1SPeter Hsiang 	/* Biquad filter for DAI1 and DAI2 */
38dad31ec1SPeter Hsiang 	struct max98095_biquad_cfg *bq_cfg;
39dad31ec1SPeter Hsiang 	unsigned int bq_cfgcnt;
40dad31ec1SPeter Hsiang 
4182a5a936SPeter Hsiang 	/* Analog/digital microphone configuration:
4282a5a936SPeter Hsiang 	 * 0 = analog microphone input (normal setting)
4382a5a936SPeter Hsiang 	 * 1 = digital microphone input
4482a5a936SPeter Hsiang 	 */
4582a5a936SPeter Hsiang 	unsigned int digmic_left_mode:1;
4682a5a936SPeter Hsiang 	unsigned int digmic_right_mode:1;
479dd90c5dSRhyland Klein 
489dd90c5dSRhyland Klein 	/* Pin5 is the mechanical method of sensing jack insertion
499dd90c5dSRhyland Klein 	 * but it is something that might not be supported.
509dd90c5dSRhyland Klein 	 * 0 = PIN5 not supported
519dd90c5dSRhyland Klein 	 * 1 = PIN5 supported
529dd90c5dSRhyland Klein 	 */
53a91b7782SMark Brown 	unsigned int jack_detect_pin5en:1;
549dd90c5dSRhyland Klein 
559dd90c5dSRhyland Klein 	/* Slew amount for jack detection. Calculated as 4 * (delay + 1).
569dd90c5dSRhyland Klein 	 * Default delay is 24 to get a time of 100ms.
579dd90c5dSRhyland Klein 	 */
589dd90c5dSRhyland Klein 	unsigned int jack_detect_delay;
5982a5a936SPeter Hsiang };
6082a5a936SPeter Hsiang 
6182a5a936SPeter Hsiang #endif
62