Kconfig 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276
  1. # SPDX-License-Identifier: GPL-2.0-only
  2. config SND_SOC_TEGRA
  3. tristate "SoC Audio for the Tegra System-on-Chip"
  4. depends on (ARCH_TEGRA && TEGRA20_APB_DMA) || COMPILE_TEST
  5. depends on COMMON_CLK
  6. depends on RESET_CONTROLLER
  7. select REGMAP_MMIO
  8. select SND_SOC_GENERIC_DMAENGINE_PCM
  9. help
  10. Say Y or M here if you want support for SoC audio on Tegra.
  11. if SND_SOC_TEGRA
  12. config SND_SOC_TEGRA20_AC97
  13. tristate "Tegra20 AC97 interface"
  14. select SND_SOC_AC97_BUS
  15. select SND_SOC_TEGRA20_DAS
  16. help
  17. Say Y or M if you want to add support for codecs attached to the
  18. Tegra20 AC97 interface. You will also need to select the individual
  19. machine drivers to support below.
  20. config SND_SOC_TEGRA20_DAS
  21. tristate "Tegra20 DAS module"
  22. help
  23. Say Y or M if you want to add support for the Tegra20 DAS module.
  24. You will also need to select the individual machine drivers to
  25. support below.
  26. config SND_SOC_TEGRA20_I2S
  27. tristate "Tegra20 I2S interface"
  28. select SND_SOC_TEGRA20_DAS
  29. help
  30. Say Y or M if you want to add support for codecs attached to the
  31. Tegra20 I2S interface. You will also need to select the individual
  32. machine drivers to support below.
  33. config SND_SOC_TEGRA20_SPDIF
  34. tristate "Tegra20 SPDIF interface"
  35. help
  36. Say Y or M if you want to add support for the Tegra20 SPDIF interface.
  37. You will also need to select the individual machine drivers to support
  38. below.
  39. config SND_SOC_TEGRA30_AHUB
  40. tristate "Tegra30 AHUB module"
  41. help
  42. Say Y or M if you want to add support for the Tegra30 AHUB module.
  43. You will also need to select the individual machine drivers to
  44. support below.
  45. config SND_SOC_TEGRA30_I2S
  46. tristate "Tegra30 I2S interface"
  47. select SND_SOC_TEGRA30_AHUB
  48. help
  49. Say Y or M if you want to add support for codecs attached to the
  50. Tegra30 I2S interface. You will also need to select the individual
  51. machine drivers to support below.
  52. config SND_SOC_TEGRA210_AHUB
  53. tristate "Tegra210 AHUB module"
  54. help
  55. Config to enable Audio Hub (AHUB) module, which comprises of a
  56. switch called Audio Crossbar (AXBAR) used to configure or modify
  57. the audio routing path between various HW accelerators present in
  58. AHUB.
  59. Say Y or M if you want to add support for Tegra210 AHUB module.
  60. config SND_SOC_TEGRA210_DMIC
  61. tristate "Tegra210 DMIC module"
  62. help
  63. Config to enable the Digital MIC (DMIC) controller which is used
  64. to interface with Pulse Density Modulation (PDM) input devices.
  65. The DMIC controller implements a converter to convert PDM signals
  66. to Pulse Code Modulation (PCM) signals. This can be viewed as a
  67. PDM receiver.
  68. Say Y or M if you want to add support for Tegra210 DMIC module.
  69. config SND_SOC_TEGRA210_I2S
  70. tristate "Tegra210 I2S module"
  71. help
  72. Config to enable the Inter-IC Sound (I2S) Controller which
  73. implements full-duplex and bidirectional and single direction
  74. point-to-point serial interfaces. It can interface with I2S
  75. compatible devices.
  76. Say Y or M if you want to add support for Tegra210 I2S module.
  77. config SND_SOC_TEGRA210_OPE
  78. tristate "Tegra210 OPE module"
  79. help
  80. Config to enable the Output Processing Engine (OPE) which includes
  81. Parametric Equalizer (PEQ) and Multi Band Dynamic Range Compressor
  82. (MBDRC) sub blocks for data processing. It can support up to 8
  83. channels.
  84. Say Y or M if you want to add support for Tegra210 OPE module.
  85. config SND_SOC_TEGRA186_ASRC
  86. tristate "Tegra186 ASRC module"
  87. help
  88. Config to enable the Asynchronous Sample Rate Converter (ASRC),
  89. which converts the sampling frequency of the input signal from
  90. one frequency to another. It can handle over a wide range of
  91. sample rate ratios (freq_in/freq_out) from 1:24 to 24:1.
  92. ASRC has two modes of operation. One where ratio can be programmed
  93. in SW and the other where it gets information from ratio estimator
  94. module.
  95. Say Y or M if you want to add support for Tegra186 ASRC module.
  96. config SND_SOC_TEGRA186_DSPK
  97. tristate "Tegra186 DSPK module"
  98. help
  99. Config to enable the Digital Speaker Controller (DSPK) which
  100. converts the multi-bit Pulse Code Modulation (PCM) audio input to
  101. oversampled 1-bit Pulse Density Modulation (PDM) output. From the
  102. signal flow perspective DSPK can be viewed as a PDM transmitter
  103. that up-samples the input to the desired sampling rate by
  104. interpolation and then converts the oversampled PCM input to
  105. the desired 1-bit output via Delta Sigma Modulation (DSM).
  106. Say Y or M if you want to add support for Tegra186 DSPK module.
  107. config SND_SOC_TEGRA210_ADMAIF
  108. tristate "Tegra210 ADMAIF module"
  109. help
  110. Config to enable ADMAIF which is the interface between ADMA and
  111. Audio Hub (AHUB). Each ADMA channel that sends/receives data to/
  112. from AHUB must interface through an ADMAIF channel. ADMA channel
  113. sending data to AHUB pairs with an ADMAIF Tx channel, where as
  114. ADMA channel receiving data from AHUB pairs with an ADMAIF Rx
  115. channel. Buffer size is configurable for each ADMAIIF channel.
  116. Say Y or M if you want to add support for Tegra210 ADMAIF module.
  117. config SND_SOC_TEGRA210_MVC
  118. tristate "Tegra210 MVC module"
  119. help
  120. Config to enable the digital Master Volume Controller (MVC) which
  121. provides gain or attenuation to a digital signal path. It can be
  122. used in input or output signal path. It can be used either for
  123. per-stream volume control or for master volume control.
  124. Say Y or M if you want to add support for Tegra210 MVC module.
  125. config SND_SOC_TEGRA210_SFC
  126. tristate "Tegra210 SFC module"
  127. help
  128. Config to enable the Sampling Frequency Converter (SFC) which
  129. converts the sampling frequency of input signal to another
  130. frequency. It supports sampling frequency conversion of streams
  131. upto 2 channels (stereo).
  132. Say Y or M if you want to add support for Tegra210 SFC module.
  133. config SND_SOC_TEGRA210_AMX
  134. tristate "Tegra210 AMX module"
  135. help
  136. Config to enable the Audio Multiplexer (AMX) which can multiplex
  137. four input streams (each of up to 16 channels) and generate
  138. output stream (of up to 16 channels). A byte RAM helps to form an
  139. output frame by any combination of bytes from the input frames.
  140. Say Y or M if you want to add support for Tegra210 AMX module.
  141. config SND_SOC_TEGRA210_ADX
  142. tristate "Tegra210 ADX module"
  143. help
  144. Config to enable the Audio Demultiplexer (ADX) which takes an
  145. input stream (up to 16 channels) and demultiplexes it into four
  146. output streams (each of up to 16 channels). A byte RAM helps to
  147. form output frames by any combination of bytes from the input
  148. frame. Its design is identical to that of byte RAM in the AMX
  149. except that the data flow direction is reversed.
  150. Say Y or M if you want to add support for Tegra210 ADX module.
  151. config SND_SOC_TEGRA210_MIXER
  152. tristate "Tegra210 Mixer module"
  153. help
  154. Config to enable the Mixer module which can help to mix multiple
  155. audio streams. It supports mixing of upto 10 input streams,
  156. where each stream can contain maximum of 8 channels. It supports
  157. 5 output each of which can be a mix of any combination of 10
  158. input streams.
  159. Say Y or M if you want to add support for Tegra210 Mixer module.
  160. config SND_SOC_TEGRA_AUDIO_GRAPH_CARD
  161. tristate "Audio Graph Card based Tegra driver"
  162. depends on SND_AUDIO_GRAPH_CARD
  163. help
  164. Config to enable Tegra audio machine driver based on generic
  165. audio graph driver. It is a thin driver written to customize
  166. few things for Tegra audio. Most of the code is re-used from
  167. audio graph driver and the same DT bindings are used.
  168. config SND_SOC_TEGRA_MACHINE_DRV
  169. tristate
  170. config SND_SOC_TEGRA_RT5640
  171. tristate "SoC Audio support for Tegra boards using an RT5640 codec"
  172. depends on I2C && GPIOLIB
  173. select SND_SOC_TEGRA_MACHINE_DRV
  174. select SND_SOC_RT5640
  175. help
  176. Say Y or M here if you want to add support for SoC audio on Tegra
  177. boards using the RT5640 codec, such as Dalmore.
  178. config SND_SOC_TEGRA_WM8753
  179. tristate "SoC Audio support for Tegra boards using a WM8753 codec"
  180. depends on I2C && GPIOLIB
  181. select SND_SOC_TEGRA_MACHINE_DRV
  182. select SND_SOC_WM8753
  183. help
  184. Say Y or M here if you want to add support for SoC audio on Tegra
  185. boards using the WM8753 codec, such as Whistler.
  186. config SND_SOC_TEGRA_WM8903
  187. tristate "SoC Audio support for Tegra boards using a WM8903 codec"
  188. depends on I2C && GPIOLIB
  189. select SND_SOC_TEGRA_MACHINE_DRV
  190. select SND_SOC_WM8903
  191. help
  192. Say Y or M here if you want to add support for SoC audio on Tegra
  193. boards using the WM8093 codec. Currently, the supported boards are
  194. Harmony, Ventana, Seaboard, Kaen, and Aebl.
  195. config SND_SOC_TEGRA_WM9712
  196. tristate "SoC Audio support for Tegra boards using a WM9712 codec"
  197. depends on GPIOLIB
  198. select SND_SOC_TEGRA_MACHINE_DRV
  199. select SND_SOC_TEGRA20_AC97
  200. select SND_SOC_WM9712
  201. help
  202. Say Y or M here if you want to add support for SoC audio on Tegra
  203. boards using the WM9712 (or compatible) codec.
  204. config SND_SOC_TEGRA_TRIMSLICE
  205. tristate "SoC Audio support for TrimSlice board"
  206. depends on I2C
  207. select SND_SOC_TEGRA_MACHINE_DRV
  208. select SND_SOC_TLV320AIC23_I2C
  209. help
  210. Say Y or M here if you want to add support for SoC audio on the
  211. TrimSlice platform.
  212. config SND_SOC_TEGRA_ALC5632
  213. tristate "SoC Audio support for Tegra boards using an ALC5632 codec"
  214. depends on I2C && GPIOLIB
  215. select SND_SOC_TEGRA_MACHINE_DRV
  216. select SND_SOC_ALC5632
  217. help
  218. Say Y or M here if you want to add support for SoC audio on the
  219. Toshiba AC100 netbook.
  220. config SND_SOC_TEGRA_MAX98090
  221. tristate "SoC Audio support for Tegra boards using a MAX98090 codec"
  222. depends on I2C && GPIOLIB
  223. select SND_SOC_TEGRA_MACHINE_DRV
  224. select SND_SOC_MAX98090
  225. help
  226. Say Y or M here if you want to add support for SoC audio on Tegra
  227. boards using the MAX98090 codec, such as Venice2.
  228. config SND_SOC_TEGRA_RT5677
  229. tristate "SoC Audio support for Tegra boards using a RT5677 codec"
  230. depends on I2C && GPIOLIB
  231. select SND_SOC_TEGRA_MACHINE_DRV
  232. select SND_SOC_RT5677
  233. help
  234. Say Y or M here if you want to add support for SoC audio on Tegra
  235. boards using the RT5677 codec, such as Ryu.
  236. config SND_SOC_TEGRA_SGTL5000
  237. tristate "SoC Audio support for Tegra boards using a SGTL5000 codec"
  238. depends on I2C && GPIOLIB
  239. select SND_SOC_TEGRA_MACHINE_DRV
  240. select SND_SOC_SGTL5000
  241. help
  242. Say Y or M here if you want to add support for SoC audio on Tegra
  243. boards using the SGTL5000 codec, such as Apalis T30, Apalis TK1 or
  244. Colibri T30.
  245. endif