Merge remote-tracking branches 'spi/topic/devprop', 'spi/topic/fsl', 'spi/topic/fsl...
[sfrench/cifs-2.6.git] / include / sound / tlv320aic3x.h
1 /*
2  * Platform data for Texas Instruments TLV320AIC3x codec
3  *
4  * Author: Jarkko Nikula <jarkko.nikula@bitmer.com>
5  *
6  * This program is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License version 2 as
8  * published by the Free Software Foundation.
9  */
10 #ifndef __TLV320AIC3x_H__
11 #define __TLV320AIC3x_H__
12
13 /* GPIO API */
14 enum {
15         AIC3X_GPIO1_FUNC_DISABLED               = 0,
16         AIC3X_GPIO1_FUNC_AUDIO_WORDCLK_ADC      = 1,
17         AIC3X_GPIO1_FUNC_CLOCK_MUX              = 2,
18         AIC3X_GPIO1_FUNC_CLOCK_MUX_DIV2         = 3,
19         AIC3X_GPIO1_FUNC_CLOCK_MUX_DIV4         = 4,
20         AIC3X_GPIO1_FUNC_CLOCK_MUX_DIV8         = 5,
21         AIC3X_GPIO1_FUNC_SHORT_CIRCUIT_IRQ      = 6,
22         AIC3X_GPIO1_FUNC_AGC_NOISE_IRQ          = 7,
23         AIC3X_GPIO1_FUNC_INPUT                  = 8,
24         AIC3X_GPIO1_FUNC_OUTPUT                 = 9,
25         AIC3X_GPIO1_FUNC_DIGITAL_MIC_MODCLK     = 10,
26         AIC3X_GPIO1_FUNC_AUDIO_WORDCLK          = 11,
27         AIC3X_GPIO1_FUNC_BUTTON_IRQ             = 12,
28         AIC3X_GPIO1_FUNC_HEADSET_DETECT_IRQ     = 13,
29         AIC3X_GPIO1_FUNC_HEADSET_DETECT_OR_BUTTON_IRQ   = 14,
30         AIC3X_GPIO1_FUNC_ALL_IRQ                = 16
31 };
32
33 enum {
34         AIC3X_GPIO2_FUNC_DISABLED               = 0,
35         AIC3X_GPIO2_FUNC_HEADSET_DETECT_IRQ     = 2,
36         AIC3X_GPIO2_FUNC_INPUT                  = 3,
37         AIC3X_GPIO2_FUNC_OUTPUT                 = 4,
38         AIC3X_GPIO2_FUNC_DIGITAL_MIC_INPUT      = 5,
39         AIC3X_GPIO2_FUNC_AUDIO_BITCLK           = 8,
40         AIC3X_GPIO2_FUNC_HEADSET_DETECT_OR_BUTTON_IRQ = 9,
41         AIC3X_GPIO2_FUNC_ALL_IRQ                = 10,
42         AIC3X_GPIO2_FUNC_SHORT_CIRCUIT_OR_AGC_IRQ = 11,
43         AIC3X_GPIO2_FUNC_HEADSET_OR_BUTTON_PRESS_OR_SHORT_CIRCUIT_IRQ = 12,
44         AIC3X_GPIO2_FUNC_SHORT_CIRCUIT_IRQ      = 13,
45         AIC3X_GPIO2_FUNC_AGC_NOISE_IRQ          = 14,
46         AIC3X_GPIO2_FUNC_BUTTON_PRESS_IRQ       = 15
47 };
48
49 enum aic3x_micbias_voltage {
50         AIC3X_MICBIAS_OFF = 0,
51         AIC3X_MICBIAS_2_0V = 1,
52         AIC3X_MICBIAS_2_5V = 2,
53         AIC3X_MICBIAS_AVDDV = 3,
54 };
55
56 struct aic3x_setup_data {
57         unsigned int gpio_func[2];
58 };
59
60 struct aic3x_pdata {
61         int gpio_reset; /* < 0 if not used */
62         struct aic3x_setup_data *setup;
63
64         /* Selects the micbias voltage */
65         enum aic3x_micbias_voltage micbias_vg;
66 };
67
68 #endif