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 69