1ec8f24b7SThomas Gleixner# SPDX-License-Identifier: GPL-2.0-only 2*41b94a6fSKuninori Morimotomenu "Tegra" 3*41b94a6fSKuninori Morimoto 42ba9471bSStephen Warrenconfig SND_SOC_TEGRA 58b75d714SStephen Warren tristate "SoC Audio for the Tegra System-on-Chip" 622abf843SMark Brown depends on (ARCH_TEGRA && TEGRA20_APB_DMA) || COMPILE_TEST 75185e0acSStephen Warren depends on COMMON_CLK 85185e0acSStephen Warren depends on RESET_CONTROLLER 9d19e779bSStephen Warren select REGMAP_MMIO 102086d078SMark Brown select SND_SOC_GENERIC_DMAENGINE_PCM 118b75d714SStephen Warren help 128b75d714SStephen Warren Say Y or M here if you want support for SoC audio on Tegra. 138b75d714SStephen Warren 14e86caa01SGeert Uytterhoevenif SND_SOC_TEGRA 15e86caa01SGeert Uytterhoeven 16609dad9bSLucas Stachconfig SND_SOC_TEGRA20_AC97 173bcfe80fSPaul Kocialkowski tristate "Tegra20 AC97 interface" 18609dad9bSLucas Stach select SND_SOC_AC97_BUS 19609dad9bSLucas Stach select SND_SOC_TEGRA20_DAS 20609dad9bSLucas Stach help 21609dad9bSLucas Stach Say Y or M if you want to add support for codecs attached to the 22609dad9bSLucas Stach Tegra20 AC97 interface. You will also need to select the individual 23609dad9bSLucas Stach machine drivers to support below. 24609dad9bSLucas Stach 25896637acSStephen Warrenconfig SND_SOC_TEGRA20_DAS 263bcfe80fSPaul Kocialkowski tristate "Tegra20 DAS module" 27d9bba496SStephen Warren help 28896637acSStephen Warren Say Y or M if you want to add support for the Tegra20 DAS module. 29d9bba496SStephen Warren You will also need to select the individual machine drivers to 30d9bba496SStephen Warren support below. 31d9bba496SStephen Warren 32896637acSStephen Warrenconfig SND_SOC_TEGRA20_I2S 333bcfe80fSPaul Kocialkowski tristate "Tegra20 I2S interface" 34896637acSStephen Warren select SND_SOC_TEGRA20_DAS 358b75d714SStephen Warren help 368b75d714SStephen Warren Say Y or M if you want to add support for codecs attached to the 37896637acSStephen Warren Tegra20 I2S interface. You will also need to select the individual 388b75d714SStephen Warren machine drivers to support below. 398b75d714SStephen Warren 40896637acSStephen Warrenconfig SND_SOC_TEGRA20_SPDIF 413bcfe80fSPaul Kocialkowski tristate "Tegra20 SPDIF interface" 42774fec33SStephen Warren help 43896637acSStephen Warren Say Y or M if you want to add support for the Tegra20 SPDIF interface. 44774fec33SStephen Warren You will also need to select the individual machine drivers to support 45774fec33SStephen Warren below. 46774fec33SStephen Warren 47cdc04fd1SStephen Warrenconfig SND_SOC_TEGRA30_AHUB 483bcfe80fSPaul Kocialkowski tristate "Tegra30 AHUB module" 49cdc04fd1SStephen Warren help 503bcfe80fSPaul Kocialkowski Say Y or M if you want to add support for the Tegra30 AHUB module. 51cdc04fd1SStephen Warren You will also need to select the individual machine drivers to 52cdc04fd1SStephen Warren support below. 53cdc04fd1SStephen Warren 54cdc04fd1SStephen Warrenconfig SND_SOC_TEGRA30_I2S 553bcfe80fSPaul Kocialkowski tristate "Tegra30 I2S interface" 56cdc04fd1SStephen Warren select SND_SOC_TEGRA30_AHUB 57cdc04fd1SStephen Warren help 58cdc04fd1SStephen Warren Say Y or M if you want to add support for codecs attached to the 59cdc04fd1SStephen Warren Tegra30 I2S interface. You will also need to select the individual 60cdc04fd1SStephen Warren machine drivers to support below. 61cdc04fd1SStephen Warren 6216e1bcc2SSameer Pujarconfig SND_SOC_TEGRA210_AHUB 6316e1bcc2SSameer Pujar tristate "Tegra210 AHUB module" 6416e1bcc2SSameer Pujar help 6516e1bcc2SSameer Pujar Config to enable Audio Hub (AHUB) module, which comprises of a 6616e1bcc2SSameer Pujar switch called Audio Crossbar (AXBAR) used to configure or modify 6716e1bcc2SSameer Pujar the audio routing path between various HW accelerators present in 6816e1bcc2SSameer Pujar AHUB. 6916e1bcc2SSameer Pujar Say Y or M if you want to add support for Tegra210 AHUB module. 7016e1bcc2SSameer Pujar 718c8ff982SSameer Pujarconfig SND_SOC_TEGRA210_DMIC 728c8ff982SSameer Pujar tristate "Tegra210 DMIC module" 738c8ff982SSameer Pujar help 748c8ff982SSameer Pujar Config to enable the Digital MIC (DMIC) controller which is used 758c8ff982SSameer Pujar to interface with Pulse Density Modulation (PDM) input devices. 768c8ff982SSameer Pujar The DMIC controller implements a converter to convert PDM signals 778c8ff982SSameer Pujar to Pulse Code Modulation (PCM) signals. This can be viewed as a 788c8ff982SSameer Pujar PDM receiver. 798c8ff982SSameer Pujar Say Y or M if you want to add support for Tegra210 DMIC module. 808c8ff982SSameer Pujar 81c0bfa983SSameer Pujarconfig SND_SOC_TEGRA210_I2S 82c0bfa983SSameer Pujar tristate "Tegra210 I2S module" 8383340b85SArnd Bergmann select SND_SIMPLE_CARD_UTILS 84c0bfa983SSameer Pujar help 85c0bfa983SSameer Pujar Config to enable the Inter-IC Sound (I2S) Controller which 86c0bfa983SSameer Pujar implements full-duplex and bidirectional and single direction 87c0bfa983SSameer Pujar point-to-point serial interfaces. It can interface with I2S 88c0bfa983SSameer Pujar compatible devices. 89c0bfa983SSameer Pujar Say Y or M if you want to add support for Tegra210 I2S module. 90c0bfa983SSameer Pujar 917358a803SSameer Pujarconfig SND_SOC_TEGRA210_OPE 927358a803SSameer Pujar tristate "Tegra210 OPE module" 937358a803SSameer Pujar help 947358a803SSameer Pujar Config to enable the Output Processing Engine (OPE) which includes 957358a803SSameer Pujar Parametric Equalizer (PEQ) and Multi Band Dynamic Range Compressor 967358a803SSameer Pujar (MBDRC) sub blocks for data processing. It can support up to 8 977358a803SSameer Pujar channels. 987358a803SSameer Pujar Say Y or M if you want to add support for Tegra210 OPE module. 997358a803SSameer Pujar 100a2df8c2dSSameer Pujarconfig SND_SOC_TEGRA186_ASRC 101a2df8c2dSSameer Pujar tristate "Tegra186 ASRC module" 102a2df8c2dSSameer Pujar help 103a2df8c2dSSameer Pujar Config to enable the Asynchronous Sample Rate Converter (ASRC), 104a2df8c2dSSameer Pujar which converts the sampling frequency of the input signal from 105a2df8c2dSSameer Pujar one frequency to another. It can handle over a wide range of 106a2df8c2dSSameer Pujar sample rate ratios (freq_in/freq_out) from 1:24 to 24:1. 107a2df8c2dSSameer Pujar ASRC has two modes of operation. One where ratio can be programmed 108a2df8c2dSSameer Pujar in SW and the other where it gets information from ratio estimator 109a2df8c2dSSameer Pujar module. 110a2df8c2dSSameer Pujar Say Y or M if you want to add support for Tegra186 ASRC module. 111a2df8c2dSSameer Pujar 112327ef647SSameer Pujarconfig SND_SOC_TEGRA186_DSPK 113327ef647SSameer Pujar tristate "Tegra186 DSPK module" 114327ef647SSameer Pujar help 115327ef647SSameer Pujar Config to enable the Digital Speaker Controller (DSPK) which 116327ef647SSameer Pujar converts the multi-bit Pulse Code Modulation (PCM) audio input to 117327ef647SSameer Pujar oversampled 1-bit Pulse Density Modulation (PDM) output. From the 118327ef647SSameer Pujar signal flow perspective DSPK can be viewed as a PDM transmitter 119327ef647SSameer Pujar that up-samples the input to the desired sampling rate by 120327ef647SSameer Pujar interpolation and then converts the oversampled PCM input to 121327ef647SSameer Pujar the desired 1-bit output via Delta Sigma Modulation (DSM). 122327ef647SSameer Pujar Say Y or M if you want to add support for Tegra186 DSPK module. 123327ef647SSameer Pujar 124f74028e1SSameer Pujarconfig SND_SOC_TEGRA210_ADMAIF 125f74028e1SSameer Pujar tristate "Tegra210 ADMAIF module" 126f74028e1SSameer Pujar help 127f74028e1SSameer Pujar Config to enable ADMAIF which is the interface between ADMA and 128f74028e1SSameer Pujar Audio Hub (AHUB). Each ADMA channel that sends/receives data to/ 129f74028e1SSameer Pujar from AHUB must interface through an ADMAIF channel. ADMA channel 130f74028e1SSameer Pujar sending data to AHUB pairs with an ADMAIF Tx channel, where as 131f74028e1SSameer Pujar ADMA channel receiving data from AHUB pairs with an ADMAIF Rx 132f74028e1SSameer Pujar channel. Buffer size is configurable for each ADMAIIF channel. 133f74028e1SSameer Pujar Say Y or M if you want to add support for Tegra210 ADMAIF module. 134f74028e1SSameer Pujar 135e539891fSSameer Pujarconfig SND_SOC_TEGRA210_MVC 136e539891fSSameer Pujar tristate "Tegra210 MVC module" 137e539891fSSameer Pujar help 138e539891fSSameer Pujar Config to enable the digital Master Volume Controller (MVC) which 139e539891fSSameer Pujar provides gain or attenuation to a digital signal path. It can be 140e539891fSSameer Pujar used in input or output signal path. It can be used either for 141e539891fSSameer Pujar per-stream volume control or for master volume control. 142e539891fSSameer Pujar Say Y or M if you want to add support for Tegra210 MVC module. 143e539891fSSameer Pujar 144b2f74ec5SSameer Pujarconfig SND_SOC_TEGRA210_SFC 145b2f74ec5SSameer Pujar tristate "Tegra210 SFC module" 146b2f74ec5SSameer Pujar help 147b2f74ec5SSameer Pujar Config to enable the Sampling Frequency Converter (SFC) which 148b2f74ec5SSameer Pujar converts the sampling frequency of input signal to another 149b2f74ec5SSameer Pujar frequency. It supports sampling frequency conversion of streams 150b2f74ec5SSameer Pujar up to 2 channels (stereo). 151b2f74ec5SSameer Pujar Say Y or M if you want to add support for Tegra210 SFC module. 152b2f74ec5SSameer Pujar 15377f7df34SSameer Pujarconfig SND_SOC_TEGRA210_AMX 15477f7df34SSameer Pujar tristate "Tegra210 AMX module" 15577f7df34SSameer Pujar help 15677f7df34SSameer Pujar Config to enable the Audio Multiplexer (AMX) which can multiplex 15777f7df34SSameer Pujar four input streams (each of up to 16 channels) and generate 15877f7df34SSameer Pujar output stream (of up to 16 channels). A byte RAM helps to form an 15977f7df34SSameer Pujar output frame by any combination of bytes from the input frames. 16077f7df34SSameer Pujar Say Y or M if you want to add support for Tegra210 AMX module. 16177f7df34SSameer Pujar 162a99ab6f3SSameer Pujarconfig SND_SOC_TEGRA210_ADX 163a99ab6f3SSameer Pujar tristate "Tegra210 ADX module" 164a99ab6f3SSameer Pujar help 165a99ab6f3SSameer Pujar Config to enable the Audio Demultiplexer (ADX) which takes an 166a99ab6f3SSameer Pujar input stream (up to 16 channels) and demultiplexes it into four 167a99ab6f3SSameer Pujar output streams (each of up to 16 channels). A byte RAM helps to 168a99ab6f3SSameer Pujar form output frames by any combination of bytes from the input 169a99ab6f3SSameer Pujar frame. Its design is identical to that of byte RAM in the AMX 170a99ab6f3SSameer Pujar except that the data flow direction is reversed. 171a99ab6f3SSameer Pujar Say Y or M if you want to add support for Tegra210 ADX module. 172a99ab6f3SSameer Pujar 17305bb3d5eSSameer Pujarconfig SND_SOC_TEGRA210_MIXER 17405bb3d5eSSameer Pujar tristate "Tegra210 Mixer module" 17505bb3d5eSSameer Pujar help 17605bb3d5eSSameer Pujar Config to enable the Mixer module which can help to mix multiple 17705bb3d5eSSameer Pujar audio streams. It supports mixing of up to 10 input streams, 17805bb3d5eSSameer Pujar where each stream can contain maximum of 8 channels. It supports 17905bb3d5eSSameer Pujar 5 output each of which can be a mix of any combination of 10 18005bb3d5eSSameer Pujar input streams. 18105bb3d5eSSameer Pujar Say Y or M if you want to add support for Tegra210 Mixer module. 18205bb3d5eSSameer Pujar 183202e2f77SSameer Pujarconfig SND_SOC_TEGRA_AUDIO_GRAPH_CARD 184202e2f77SSameer Pujar tristate "Audio Graph Card based Tegra driver" 185202e2f77SSameer Pujar depends on SND_AUDIO_GRAPH_CARD 186202e2f77SSameer Pujar help 187202e2f77SSameer Pujar Config to enable Tegra audio machine driver based on generic 188202e2f77SSameer Pujar audio graph driver. It is a thin driver written to customize 189202e2f77SSameer Pujar few things for Tegra audio. Most of the code is re-used from 190202e2f77SSameer Pujar audio graph driver and the same DT bindings are used. 191202e2f77SSameer Pujar 192cc8f70f5SDmitry Osipenkoconfig SND_SOC_TEGRA_MACHINE_DRV 193cc8f70f5SDmitry Osipenko tristate 194cc8f70f5SDmitry Osipenko 19544b2fc2eSSvyatoslav Ryhelconfig SND_SOC_TEGRA_RT5631 19644b2fc2eSSvyatoslav Ryhel tristate "SoC Audio support for Tegra boards using an RT5631 codec" 19744b2fc2eSSvyatoslav Ryhel depends on SND_SOC_TEGRA && I2C && GPIOLIB 19844b2fc2eSSvyatoslav Ryhel select SND_SOC_TEGRA_MACHINE_DRV 19944b2fc2eSSvyatoslav Ryhel select SND_SOC_RT5631 20044b2fc2eSSvyatoslav Ryhel help 20144b2fc2eSSvyatoslav Ryhel Say Y or M here if you want to add support for SoC audio on Tegra 20244b2fc2eSSvyatoslav Ryhel boards using the RT5631 codec, such as Transformer. 20344b2fc2eSSvyatoslav Ryhel 204040a62cfSStephen Warrenconfig SND_SOC_TEGRA_RT5640 205040a62cfSStephen Warren tristate "SoC Audio support for Tegra boards using an RT5640 codec" 206e86caa01SGeert Uytterhoeven depends on I2C && GPIOLIB 207cc8f70f5SDmitry Osipenko select SND_SOC_TEGRA_MACHINE_DRV 208040a62cfSStephen Warren select SND_SOC_RT5640 209040a62cfSStephen Warren help 210040a62cfSStephen Warren Say Y or M here if you want to add support for SoC audio on Tegra 211040a62cfSStephen Warren boards using the RT5640 codec, such as Dalmore. 212040a62cfSStephen Warren 213d8259ca5SStephen Warrenconfig SND_SOC_TEGRA_WM8753 214d8259ca5SStephen Warren tristate "SoC Audio support for Tegra boards using a WM8753 codec" 215e86caa01SGeert Uytterhoeven depends on I2C && GPIOLIB 216cc8f70f5SDmitry Osipenko select SND_SOC_TEGRA_MACHINE_DRV 217d8259ca5SStephen Warren select SND_SOC_WM8753 218d8259ca5SStephen Warren help 219d8259ca5SStephen Warren Say Y or M here if you want to add support for SoC audio on Tegra 220d8259ca5SStephen Warren boards using the WM8753 codec, such as Whistler. 221d8259ca5SStephen Warren 2222ba9471bSStephen Warrenconfig SND_SOC_TEGRA_WM8903 223dc0a50afSStephen Warren tristate "SoC Audio support for Tegra boards using a WM8903 codec" 224e86caa01SGeert Uytterhoeven depends on I2C && GPIOLIB 225cc8f70f5SDmitry Osipenko select SND_SOC_TEGRA_MACHINE_DRV 2268b75d714SStephen Warren select SND_SOC_WM8903 2278b75d714SStephen Warren help 228dc0a50afSStephen Warren Say Y or M here if you want to add support for SoC audio on Tegra 229773b1d3dSStephen Warren boards using the WM8093 codec. Currently, the supported boards are 230773b1d3dSStephen Warren Harmony, Ventana, Seaboard, Kaen, and Aebl. 2318b75d714SStephen Warren 2326995b8cbSLucas Stachconfig SND_SOC_TEGRA_WM9712 2336995b8cbSLucas Stach tristate "SoC Audio support for Tegra boards using a WM9712 codec" 234e86caa01SGeert Uytterhoeven depends on GPIOLIB 235cc8f70f5SDmitry Osipenko select SND_SOC_TEGRA_MACHINE_DRV 2366995b8cbSLucas Stach select SND_SOC_TEGRA20_AC97 2376995b8cbSLucas Stach select SND_SOC_WM9712 2386995b8cbSLucas Stach help 2396995b8cbSLucas Stach Say Y or M here if you want to add support for SoC audio on Tegra 2406995b8cbSLucas Stach boards using the WM9712 (or compatible) codec. 2416995b8cbSLucas Stach 2421307394aSMike Rapoportconfig SND_SOC_TEGRA_TRIMSLICE 2431307394aSMike Rapoport tristate "SoC Audio support for TrimSlice board" 244e86caa01SGeert Uytterhoeven depends on I2C 245cc8f70f5SDmitry Osipenko select SND_SOC_TEGRA_MACHINE_DRV 246cc1bc54aSMax Filippov select SND_SOC_TLV320AIC23_I2C 2471307394aSMike Rapoport help 2481307394aSMike Rapoport Say Y or M here if you want to add support for SoC audio on the 2491307394aSMike Rapoport TrimSlice platform. 25058783fafSLeon Romanovsky 25158783fafSLeon Romanovskyconfig SND_SOC_TEGRA_ALC5632 25258783fafSLeon Romanovsky tristate "SoC Audio support for Tegra boards using an ALC5632 codec" 253e86caa01SGeert Uytterhoeven depends on I2C && GPIOLIB 254cc8f70f5SDmitry Osipenko select SND_SOC_TEGRA_MACHINE_DRV 25558783fafSLeon Romanovsky select SND_SOC_ALC5632 25658783fafSLeon Romanovsky help 25758783fafSLeon Romanovsky Say Y or M here if you want to add support for SoC audio on the 25858783fafSLeon Romanovsky Toshiba AC100 netbook. 2597637af2eSStephen Warren 2607637af2eSStephen Warrenconfig SND_SOC_TEGRA_MAX98090 2617637af2eSStephen Warren tristate "SoC Audio support for Tegra boards using a MAX98090 codec" 262e86caa01SGeert Uytterhoeven depends on I2C && GPIOLIB 263cc8f70f5SDmitry Osipenko select SND_SOC_TEGRA_MACHINE_DRV 2647637af2eSStephen Warren select SND_SOC_MAX98090 2657637af2eSStephen Warren help 2667637af2eSStephen Warren Say Y or M here if you want to add support for SoC audio on Tegra 2677637af2eSStephen Warren boards using the MAX98090 codec, such as Venice2. 268a37f1b8fSAnatol Pomozov 269d007a87bSSvyatoslav Ryhelconfig SND_SOC_TEGRA_MAX98088 270d007a87bSSvyatoslav Ryhel tristate "SoC Audio support for Tegra boards using a MAX9808x codec" 271d007a87bSSvyatoslav Ryhel depends on I2C && GPIOLIB 272d007a87bSSvyatoslav Ryhel select SND_SOC_TEGRA_MACHINE_DRV 273d007a87bSSvyatoslav Ryhel select SND_SOC_MAX98088 274d007a87bSSvyatoslav Ryhel help 275d007a87bSSvyatoslav Ryhel Say Y or M here if you want to add support for SoC audio on Tegra 276d007a87bSSvyatoslav Ryhel boards using the MAX98088 codec, such as LG X3. 277d007a87bSSvyatoslav Ryhel 278a37f1b8fSAnatol Pomozovconfig SND_SOC_TEGRA_RT5677 279a37f1b8fSAnatol Pomozov tristate "SoC Audio support for Tegra boards using a RT5677 codec" 280e86caa01SGeert Uytterhoeven depends on I2C && GPIOLIB 281cc8f70f5SDmitry Osipenko select SND_SOC_TEGRA_MACHINE_DRV 282a37f1b8fSAnatol Pomozov select SND_SOC_RT5677 283a37f1b8fSAnatol Pomozov help 284a37f1b8fSAnatol Pomozov Say Y or M here if you want to add support for SoC audio on Tegra 285a37f1b8fSAnatol Pomozov boards using the RT5677 codec, such as Ryu. 28604445681SMarcel Ziswiler 28704445681SMarcel Ziswilerconfig SND_SOC_TEGRA_SGTL5000 28804445681SMarcel Ziswiler tristate "SoC Audio support for Tegra boards using a SGTL5000 codec" 289e86caa01SGeert Uytterhoeven depends on I2C && GPIOLIB 290cc8f70f5SDmitry Osipenko select SND_SOC_TEGRA_MACHINE_DRV 29104445681SMarcel Ziswiler select SND_SOC_SGTL5000 29204445681SMarcel Ziswiler help 29304445681SMarcel Ziswiler Say Y or M here if you want to add support for SoC audio on Tegra 29404445681SMarcel Ziswiler boards using the SGTL5000 codec, such as Apalis T30, Apalis TK1 or 29504445681SMarcel Ziswiler Colibri T30. 296e86caa01SGeert Uytterhoeven 297e86caa01SGeert Uytterhoevenendif 298*41b94a6fSKuninori Morimoto 299*41b94a6fSKuninori Morimotoendmenu 300