/* * Platform data for Texas Instruments TLV320AIC3x codec * * Author: Jarkko Nikula <jarkko.nikula@bitmer.com> * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. */ #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