hc
2024-08-16 a24a44ff9ca902811b99aa9663d697cf452e08ef
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
/* SPDX-License-Identifier: GPL-2.0-only */
/*
 * Platform data for Texas Instruments TLV320AIC3x codec
 *
 * Author: Jarkko Nikula <jarkko.nikula@bitmer.com>
 */
#ifndef __TLV320AIC3x_H__
#define __TLV320AIC3x_H__
 
/* GPIO API */
enum {
   AIC3X_GPIO1_FUNC_DISABLED        = 0,
   AIC3X_GPIO1_FUNC_AUDIO_WORDCLK_ADC    = 1,
   AIC3X_GPIO1_FUNC_CLOCK_MUX        = 2,
   AIC3X_GPIO1_FUNC_CLOCK_MUX_DIV2        = 3,
   AIC3X_GPIO1_FUNC_CLOCK_MUX_DIV4        = 4,
   AIC3X_GPIO1_FUNC_CLOCK_MUX_DIV8        = 5,
   AIC3X_GPIO1_FUNC_SHORT_CIRCUIT_IRQ    = 6,
   AIC3X_GPIO1_FUNC_AGC_NOISE_IRQ        = 7,
   AIC3X_GPIO1_FUNC_INPUT            = 8,
   AIC3X_GPIO1_FUNC_OUTPUT            = 9,
   AIC3X_GPIO1_FUNC_DIGITAL_MIC_MODCLK    = 10,
   AIC3X_GPIO1_FUNC_AUDIO_WORDCLK        = 11,
   AIC3X_GPIO1_FUNC_BUTTON_IRQ        = 12,
   AIC3X_GPIO1_FUNC_HEADSET_DETECT_IRQ    = 13,
   AIC3X_GPIO1_FUNC_HEADSET_DETECT_OR_BUTTON_IRQ    = 14,
   AIC3X_GPIO1_FUNC_ALL_IRQ        = 16
};
 
enum {
   AIC3X_GPIO2_FUNC_DISABLED        = 0,
   AIC3X_GPIO2_FUNC_HEADSET_DETECT_IRQ    = 2,
   AIC3X_GPIO2_FUNC_INPUT            = 3,
   AIC3X_GPIO2_FUNC_OUTPUT            = 4,
   AIC3X_GPIO2_FUNC_DIGITAL_MIC_INPUT    = 5,
   AIC3X_GPIO2_FUNC_AUDIO_BITCLK        = 8,
   AIC3X_GPIO2_FUNC_HEADSET_DETECT_OR_BUTTON_IRQ = 9,
   AIC3X_GPIO2_FUNC_ALL_IRQ        = 10,
   AIC3X_GPIO2_FUNC_SHORT_CIRCUIT_OR_AGC_IRQ = 11,
   AIC3X_GPIO2_FUNC_HEADSET_OR_BUTTON_PRESS_OR_SHORT_CIRCUIT_IRQ = 12,
   AIC3X_GPIO2_FUNC_SHORT_CIRCUIT_IRQ    = 13,
   AIC3X_GPIO2_FUNC_AGC_NOISE_IRQ        = 14,
   AIC3X_GPIO2_FUNC_BUTTON_PRESS_IRQ    = 15
};
 
enum aic3x_micbias_voltage {
   AIC3X_MICBIAS_OFF = 0,
   AIC3X_MICBIAS_2_0V = 1,
   AIC3X_MICBIAS_2_5V = 2,
   AIC3X_MICBIAS_AVDDV = 3,
};
 
struct aic3x_setup_data {
   unsigned int gpio_func[2];
};
 
struct aic3x_pdata {
   int gpio_reset; /* < 0 if not used */
   struct aic3x_setup_data *setup;
 
   /* Selects the micbias voltage */
   enum aic3x_micbias_voltage micbias_vg;
};
 
#endif