linux/include/sound/tlv320aic3x.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0-only */
   2/*
   3 * Platform data for Texas Instruments TLV320AIC3x codec
   4 *
   5 * Author: Jarkko Nikula <jarkko.nikula@bitmer.com>
   6 */
   7#ifndef __TLV320AIC3x_H__
   8#define __TLV320AIC3x_H__
   9
  10/* GPIO API */
  11enum {
  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
  28};
  29
  30enum {
  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
  44};
  45
  46enum 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,
  51};
  52
  53struct aic3x_setup_data {
  54        unsigned int gpio_func[2];
  55};
  56
  57struct aic3x_pdata {
  58        int gpio_reset; /* < 0 if not used */
  59        struct aic3x_setup_data *setup;
  60
  61        /* Selects the micbias voltage */
  62        enum aic3x_micbias_voltage micbias_vg;
  63};
  64
  65#endif
  66