adau17x1.h 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. /* SPDX-License-Identifier: GPL-2.0-or-later */
  2. /*
  3. * Driver for ADAU1361/ADAU1461/ADAU1761/ADAU1961/ADAU1381/ADAU1781 codecs
  4. *
  5. * Copyright 2011-2014 Analog Devices Inc.
  6. * Author: Lars-Peter Clausen <[email protected]>
  7. */
  8. #ifndef __LINUX_PLATFORM_DATA_ADAU17X1_H__
  9. #define __LINUX_PLATFORM_DATA_ADAU17X1_H__
  10. /**
  11. * enum adau17x1_micbias_voltage - Microphone bias voltage
  12. * @ADAU17X1_MICBIAS_0_90_AVDD: 0.9 * AVDD
  13. * @ADAU17X1_MICBIAS_0_65_AVDD: 0.65 * AVDD
  14. */
  15. enum adau17x1_micbias_voltage {
  16. ADAU17X1_MICBIAS_0_90_AVDD = 0,
  17. ADAU17X1_MICBIAS_0_65_AVDD = 1,
  18. };
  19. /**
  20. * enum adau1761_digmic_jackdet_pin_mode - Configuration of the JACKDET/MICIN pin
  21. * @ADAU1761_DIGMIC_JACKDET_PIN_MODE_NONE: Disable the pin
  22. * @ADAU1761_DIGMIC_JACKDET_PIN_MODE_DIGMIC: Configure the pin for usage as
  23. * digital microphone input.
  24. * @ADAU1761_DIGMIC_JACKDET_PIN_MODE_JACKDETECT: Configure the pin for jack
  25. * insertion detection.
  26. */
  27. enum adau1761_digmic_jackdet_pin_mode {
  28. ADAU1761_DIGMIC_JACKDET_PIN_MODE_NONE,
  29. ADAU1761_DIGMIC_JACKDET_PIN_MODE_DIGMIC,
  30. ADAU1761_DIGMIC_JACKDET_PIN_MODE_JACKDETECT,
  31. };
  32. /**
  33. * adau1761_jackdetect_debounce_time - Jack insertion detection debounce time
  34. * @ADAU1761_JACKDETECT_DEBOUNCE_5MS: 5 milliseconds
  35. * @ADAU1761_JACKDETECT_DEBOUNCE_10MS: 10 milliseconds
  36. * @ADAU1761_JACKDETECT_DEBOUNCE_20MS: 20 milliseconds
  37. * @ADAU1761_JACKDETECT_DEBOUNCE_40MS: 40 milliseconds
  38. */
  39. enum adau1761_jackdetect_debounce_time {
  40. ADAU1761_JACKDETECT_DEBOUNCE_5MS = 0,
  41. ADAU1761_JACKDETECT_DEBOUNCE_10MS = 1,
  42. ADAU1761_JACKDETECT_DEBOUNCE_20MS = 2,
  43. ADAU1761_JACKDETECT_DEBOUNCE_40MS = 3,
  44. };
  45. /**
  46. * enum adau1761_output_mode - Output mode configuration
  47. * @ADAU1761_OUTPUT_MODE_HEADPHONE: Headphone output
  48. * @ADAU1761_OUTPUT_MODE_HEADPHONE_CAPLESS: Capless headphone output
  49. * @ADAU1761_OUTPUT_MODE_LINE: Line output
  50. */
  51. enum adau1761_output_mode {
  52. ADAU1761_OUTPUT_MODE_HEADPHONE,
  53. ADAU1761_OUTPUT_MODE_HEADPHONE_CAPLESS,
  54. ADAU1761_OUTPUT_MODE_LINE,
  55. };
  56. /**
  57. * struct adau1761_platform_data - ADAU1761 Codec driver platform data
  58. * @input_differential: If true the input pins will be configured in
  59. * differential mode.
  60. * @lineout_mode: Output mode for the LOUT/ROUT pins
  61. * @headphone_mode: Output mode for the LHP/RHP pins
  62. * @digmic_jackdetect_pin_mode: JACKDET/MICIN pin configuration
  63. * @jackdetect_debounce_time: Jack insertion detection debounce time.
  64. * Note: This value will only be used, if the JACKDET/MICIN pin is configured
  65. * for jack insertion detection.
  66. * @jackdetect_active_low: If true the jack insertion detection is active low.
  67. * Othwise it will be active high.
  68. * @micbias_voltage: Microphone voltage bias
  69. */
  70. struct adau1761_platform_data {
  71. bool input_differential;
  72. enum adau1761_output_mode lineout_mode;
  73. enum adau1761_output_mode headphone_mode;
  74. enum adau1761_digmic_jackdet_pin_mode digmic_jackdetect_pin_mode;
  75. enum adau1761_jackdetect_debounce_time jackdetect_debounce_time;
  76. bool jackdetect_active_low;
  77. enum adau17x1_micbias_voltage micbias_voltage;
  78. };
  79. /**
  80. * struct adau1781_platform_data - ADAU1781 Codec driver platform data
  81. * @left_input_differential: If true configure the left input as
  82. * differential input.
  83. * @right_input_differential: If true configure the right input as differntial
  84. * input.
  85. * @use_dmic: If true configure the MIC pins as digital microphone pins instead
  86. * of analog microphone pins.
  87. * @micbias_voltage: Microphone voltage bias
  88. */
  89. struct adau1781_platform_data {
  90. bool left_input_differential;
  91. bool right_input_differential;
  92. bool use_dmic;
  93. enum adau17x1_micbias_voltage micbias_voltage;
  94. };
  95. #endif