diff options
Diffstat (limited to 'sound/soc/codecs/tlv320aic3x.h')
-rw-r--r-- | sound/soc/codecs/tlv320aic3x.h | 49 |
1 files changed, 48 insertions, 1 deletions
diff --git a/sound/soc/codecs/tlv320aic3x.h b/sound/soc/codecs/tlv320aic3x.h index d49d001e6e4c..c1dd1ac0ceac 100644 --- a/sound/soc/codecs/tlv320aic3x.h +++ b/sound/soc/codecs/tlv320aic3x.h | |||
@@ -108,8 +108,14 @@ | |||
108 | #define DACR1_2_RLOPM_VOL 92 | 108 | #define DACR1_2_RLOPM_VOL 92 |
109 | #define LLOPM_CTRL 86 | 109 | #define LLOPM_CTRL 86 |
110 | #define RLOPM_CTRL 93 | 110 | #define RLOPM_CTRL 93 |
111 | /* Clock generation control register */ | 111 | /* GPIO/IRQ registers */ |
112 | #define AIC3X_STICKY_IRQ_FLAGS_REG 96 | ||
113 | #define AIC3X_RT_IRQ_FLAGS_REG 97 | ||
114 | #define AIC3X_GPIO1_REG 98 | ||
115 | #define AIC3X_GPIO2_REG 99 | ||
116 | #define AIC3X_GPIOA_REG 100 | ||
112 | #define AIC3X_GPIOB_REG 101 | 117 | #define AIC3X_GPIOB_REG 101 |
118 | /* Clock generation control register */ | ||
113 | #define AIC3X_CLKGEN_CTRL_REG 102 | 119 | #define AIC3X_CLKGEN_CTRL_REG 102 |
114 | 120 | ||
115 | /* Page select register bits */ | 121 | /* Page select register bits */ |
@@ -175,8 +181,49 @@ | |||
175 | /* Default input volume */ | 181 | /* Default input volume */ |
176 | #define DEFAULT_GAIN 0x20 | 182 | #define DEFAULT_GAIN 0x20 |
177 | 183 | ||
184 | /* GPIO API */ | ||
185 | enum { | ||
186 | AIC3X_GPIO1_FUNC_DISABLED = 0, | ||
187 | AIC3X_GPIO1_FUNC_AUDIO_WORDCLK_ADC = 1, | ||
188 | AIC3X_GPIO1_FUNC_CLOCK_MUX = 2, | ||
189 | AIC3X_GPIO1_FUNC_CLOCK_MUX_DIV2 = 3, | ||
190 | AIC3X_GPIO1_FUNC_CLOCK_MUX_DIV4 = 4, | ||
191 | AIC3X_GPIO1_FUNC_CLOCK_MUX_DIV8 = 5, | ||
192 | AIC3X_GPIO1_FUNC_SHORT_CIRCUIT_IRQ = 6, | ||
193 | AIC3X_GPIO1_FUNC_AGC_NOISE_IRQ = 7, | ||
194 | AIC3X_GPIO1_FUNC_INPUT = 8, | ||
195 | AIC3X_GPIO1_FUNC_OUTPUT = 9, | ||
196 | AIC3X_GPIO1_FUNC_DIGITAL_MIC_MODCLK = 10, | ||
197 | AIC3X_GPIO1_FUNC_AUDIO_WORDCLK = 11, | ||
198 | AIC3X_GPIO1_FUNC_BUTTON_IRQ = 12, | ||
199 | AIC3X_GPIO1_FUNC_HEADSET_DETECT_IRQ = 13, | ||
200 | AIC3X_GPIO1_FUNC_HEADSET_DETECT_OR_BUTTON_IRQ = 14, | ||
201 | AIC3X_GPIO1_FUNC_ALL_IRQ = 16 | ||
202 | }; | ||
203 | |||
204 | enum { | ||
205 | AIC3X_GPIO2_FUNC_DISABLED = 0, | ||
206 | AIC3X_GPIO2_FUNC_HEADSET_DETECT_IRQ = 2, | ||
207 | AIC3X_GPIO2_FUNC_INPUT = 3, | ||
208 | AIC3X_GPIO2_FUNC_OUTPUT = 4, | ||
209 | AIC3X_GPIO2_FUNC_DIGITAL_MIC_INPUT = 5, | ||
210 | AIC3X_GPIO2_FUNC_AUDIO_BITCLK = 8, | ||
211 | AIC3X_GPIO2_FUNC_HEADSET_DETECT_OR_BUTTON_IRQ = 9, | ||
212 | AIC3X_GPIO2_FUNC_ALL_IRQ = 10, | ||
213 | AIC3X_GPIO2_FUNC_SHORT_CIRCUIT_OR_AGC_IRQ = 11, | ||
214 | AIC3X_GPIO2_FUNC_HEADSET_OR_BUTTON_PRESS_OR_SHORT_CIRCUIT_IRQ = 12, | ||
215 | AIC3X_GPIO2_FUNC_SHORT_CIRCUIT_IRQ = 13, | ||
216 | AIC3X_GPIO2_FUNC_AGC_NOISE_IRQ = 14, | ||
217 | AIC3X_GPIO2_FUNC_BUTTON_PRESS_IRQ = 15 | ||
218 | }; | ||
219 | |||
220 | void aic3x_set_gpio(struct snd_soc_codec *codec, int gpio, int state); | ||
221 | int aic3x_get_gpio(struct snd_soc_codec *codec, int gpio); | ||
222 | int aic3x_headset_detected(struct snd_soc_codec *codec); | ||
223 | |||
178 | struct aic3x_setup_data { | 224 | struct aic3x_setup_data { |
179 | unsigned short i2c_address; | 225 | unsigned short i2c_address; |
226 | unsigned int gpio_func[2]; | ||
180 | }; | 227 | }; |
181 | 228 | ||
182 | extern struct snd_soc_codec_dai aic3x_dai; | 229 | extern struct snd_soc_codec_dai aic3x_dai; |