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