mirror of
https://github.com/torvalds/linux.git
synced 2024-11-15 08:31:55 +00:00
d007a87bd7
Add Maxim MAX9808x codec support to the Tegra ASoC machine driver. This codec is found on LG T30 devices like Optimus 4X HD and Optimus Vu. Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com> Link: https://lore.kernel.org/r/20230308073502.5421-9-clamor95@gmail.com Signed-off-by: Mark Brown <broonie@kernel.org>
295 lines
11 KiB
Plaintext
295 lines
11 KiB
Plaintext
# SPDX-License-Identifier: GPL-2.0-only
|
|
config SND_SOC_TEGRA
|
|
tristate "SoC Audio for the Tegra System-on-Chip"
|
|
depends on (ARCH_TEGRA && TEGRA20_APB_DMA) || COMPILE_TEST
|
|
depends on COMMON_CLK
|
|
depends on RESET_CONTROLLER
|
|
select REGMAP_MMIO
|
|
select SND_SOC_GENERIC_DMAENGINE_PCM
|
|
help
|
|
Say Y or M here if you want support for SoC audio on Tegra.
|
|
|
|
if SND_SOC_TEGRA
|
|
|
|
config SND_SOC_TEGRA20_AC97
|
|
tristate "Tegra20 AC97 interface"
|
|
select SND_SOC_AC97_BUS
|
|
select SND_SOC_TEGRA20_DAS
|
|
help
|
|
Say Y or M if you want to add support for codecs attached to the
|
|
Tegra20 AC97 interface. You will also need to select the individual
|
|
machine drivers to support below.
|
|
|
|
config SND_SOC_TEGRA20_DAS
|
|
tristate "Tegra20 DAS module"
|
|
help
|
|
Say Y or M if you want to add support for the Tegra20 DAS module.
|
|
You will also need to select the individual machine drivers to
|
|
support below.
|
|
|
|
config SND_SOC_TEGRA20_I2S
|
|
tristate "Tegra20 I2S interface"
|
|
select SND_SOC_TEGRA20_DAS
|
|
help
|
|
Say Y or M if you want to add support for codecs attached to the
|
|
Tegra20 I2S interface. You will also need to select the individual
|
|
machine drivers to support below.
|
|
|
|
config SND_SOC_TEGRA20_SPDIF
|
|
tristate "Tegra20 SPDIF interface"
|
|
help
|
|
Say Y or M if you want to add support for the Tegra20 SPDIF interface.
|
|
You will also need to select the individual machine drivers to support
|
|
below.
|
|
|
|
config SND_SOC_TEGRA30_AHUB
|
|
tristate "Tegra30 AHUB module"
|
|
help
|
|
Say Y or M if you want to add support for the Tegra30 AHUB module.
|
|
You will also need to select the individual machine drivers to
|
|
support below.
|
|
|
|
config SND_SOC_TEGRA30_I2S
|
|
tristate "Tegra30 I2S interface"
|
|
select SND_SOC_TEGRA30_AHUB
|
|
help
|
|
Say Y or M if you want to add support for codecs attached to the
|
|
Tegra30 I2S interface. You will also need to select the individual
|
|
machine drivers to support below.
|
|
|
|
config SND_SOC_TEGRA210_AHUB
|
|
tristate "Tegra210 AHUB module"
|
|
help
|
|
Config to enable Audio Hub (AHUB) module, which comprises of a
|
|
switch called Audio Crossbar (AXBAR) used to configure or modify
|
|
the audio routing path between various HW accelerators present in
|
|
AHUB.
|
|
Say Y or M if you want to add support for Tegra210 AHUB module.
|
|
|
|
config SND_SOC_TEGRA210_DMIC
|
|
tristate "Tegra210 DMIC module"
|
|
help
|
|
Config to enable the Digital MIC (DMIC) controller which is used
|
|
to interface with Pulse Density Modulation (PDM) input devices.
|
|
The DMIC controller implements a converter to convert PDM signals
|
|
to Pulse Code Modulation (PCM) signals. This can be viewed as a
|
|
PDM receiver.
|
|
Say Y or M if you want to add support for Tegra210 DMIC module.
|
|
|
|
config SND_SOC_TEGRA210_I2S
|
|
tristate "Tegra210 I2S module"
|
|
help
|
|
Config to enable the Inter-IC Sound (I2S) Controller which
|
|
implements full-duplex and bidirectional and single direction
|
|
point-to-point serial interfaces. It can interface with I2S
|
|
compatible devices.
|
|
Say Y or M if you want to add support for Tegra210 I2S module.
|
|
|
|
config SND_SOC_TEGRA210_OPE
|
|
tristate "Tegra210 OPE module"
|
|
help
|
|
Config to enable the Output Processing Engine (OPE) which includes
|
|
Parametric Equalizer (PEQ) and Multi Band Dynamic Range Compressor
|
|
(MBDRC) sub blocks for data processing. It can support up to 8
|
|
channels.
|
|
Say Y or M if you want to add support for Tegra210 OPE module.
|
|
|
|
config SND_SOC_TEGRA186_ASRC
|
|
tristate "Tegra186 ASRC module"
|
|
help
|
|
Config to enable the Asynchronous Sample Rate Converter (ASRC),
|
|
which converts the sampling frequency of the input signal from
|
|
one frequency to another. It can handle over a wide range of
|
|
sample rate ratios (freq_in/freq_out) from 1:24 to 24:1.
|
|
ASRC has two modes of operation. One where ratio can be programmed
|
|
in SW and the other where it gets information from ratio estimator
|
|
module.
|
|
Say Y or M if you want to add support for Tegra186 ASRC module.
|
|
|
|
config SND_SOC_TEGRA186_DSPK
|
|
tristate "Tegra186 DSPK module"
|
|
help
|
|
Config to enable the Digital Speaker Controller (DSPK) which
|
|
converts the multi-bit Pulse Code Modulation (PCM) audio input to
|
|
oversampled 1-bit Pulse Density Modulation (PDM) output. From the
|
|
signal flow perspective DSPK can be viewed as a PDM transmitter
|
|
that up-samples the input to the desired sampling rate by
|
|
interpolation and then converts the oversampled PCM input to
|
|
the desired 1-bit output via Delta Sigma Modulation (DSM).
|
|
Say Y or M if you want to add support for Tegra186 DSPK module.
|
|
|
|
config SND_SOC_TEGRA210_ADMAIF
|
|
tristate "Tegra210 ADMAIF module"
|
|
help
|
|
Config to enable ADMAIF which is the interface between ADMA and
|
|
Audio Hub (AHUB). Each ADMA channel that sends/receives data to/
|
|
from AHUB must interface through an ADMAIF channel. ADMA channel
|
|
sending data to AHUB pairs with an ADMAIF Tx channel, where as
|
|
ADMA channel receiving data from AHUB pairs with an ADMAIF Rx
|
|
channel. Buffer size is configurable for each ADMAIIF channel.
|
|
Say Y or M if you want to add support for Tegra210 ADMAIF module.
|
|
|
|
config SND_SOC_TEGRA210_MVC
|
|
tristate "Tegra210 MVC module"
|
|
help
|
|
Config to enable the digital Master Volume Controller (MVC) which
|
|
provides gain or attenuation to a digital signal path. It can be
|
|
used in input or output signal path. It can be used either for
|
|
per-stream volume control or for master volume control.
|
|
Say Y or M if you want to add support for Tegra210 MVC module.
|
|
|
|
config SND_SOC_TEGRA210_SFC
|
|
tristate "Tegra210 SFC module"
|
|
help
|
|
Config to enable the Sampling Frequency Converter (SFC) which
|
|
converts the sampling frequency of input signal to another
|
|
frequency. It supports sampling frequency conversion of streams
|
|
up to 2 channels (stereo).
|
|
Say Y or M if you want to add support for Tegra210 SFC module.
|
|
|
|
config SND_SOC_TEGRA210_AMX
|
|
tristate "Tegra210 AMX module"
|
|
help
|
|
Config to enable the Audio Multiplexer (AMX) which can multiplex
|
|
four input streams (each of up to 16 channels) and generate
|
|
output stream (of up to 16 channels). A byte RAM helps to form an
|
|
output frame by any combination of bytes from the input frames.
|
|
Say Y or M if you want to add support for Tegra210 AMX module.
|
|
|
|
config SND_SOC_TEGRA210_ADX
|
|
tristate "Tegra210 ADX module"
|
|
help
|
|
Config to enable the Audio Demultiplexer (ADX) which takes an
|
|
input stream (up to 16 channels) and demultiplexes it into four
|
|
output streams (each of up to 16 channels). A byte RAM helps to
|
|
form output frames by any combination of bytes from the input
|
|
frame. Its design is identical to that of byte RAM in the AMX
|
|
except that the data flow direction is reversed.
|
|
Say Y or M if you want to add support for Tegra210 ADX module.
|
|
|
|
config SND_SOC_TEGRA210_MIXER
|
|
tristate "Tegra210 Mixer module"
|
|
help
|
|
Config to enable the Mixer module which can help to mix multiple
|
|
audio streams. It supports mixing of up to 10 input streams,
|
|
where each stream can contain maximum of 8 channels. It supports
|
|
5 output each of which can be a mix of any combination of 10
|
|
input streams.
|
|
Say Y or M if you want to add support for Tegra210 Mixer module.
|
|
|
|
config SND_SOC_TEGRA_AUDIO_GRAPH_CARD
|
|
tristate "Audio Graph Card based Tegra driver"
|
|
depends on SND_AUDIO_GRAPH_CARD
|
|
help
|
|
Config to enable Tegra audio machine driver based on generic
|
|
audio graph driver. It is a thin driver written to customize
|
|
few things for Tegra audio. Most of the code is re-used from
|
|
audio graph driver and the same DT bindings are used.
|
|
|
|
config SND_SOC_TEGRA_MACHINE_DRV
|
|
tristate
|
|
|
|
config SND_SOC_TEGRA_RT5631
|
|
tristate "SoC Audio support for Tegra boards using an RT5631 codec"
|
|
depends on SND_SOC_TEGRA && I2C && GPIOLIB
|
|
select SND_SOC_TEGRA_MACHINE_DRV
|
|
select SND_SOC_RT5631
|
|
help
|
|
Say Y or M here if you want to add support for SoC audio on Tegra
|
|
boards using the RT5631 codec, such as Transformer.
|
|
|
|
config SND_SOC_TEGRA_RT5640
|
|
tristate "SoC Audio support for Tegra boards using an RT5640 codec"
|
|
depends on I2C && GPIOLIB
|
|
select SND_SOC_TEGRA_MACHINE_DRV
|
|
select SND_SOC_RT5640
|
|
help
|
|
Say Y or M here if you want to add support for SoC audio on Tegra
|
|
boards using the RT5640 codec, such as Dalmore.
|
|
|
|
config SND_SOC_TEGRA_WM8753
|
|
tristate "SoC Audio support for Tegra boards using a WM8753 codec"
|
|
depends on I2C && GPIOLIB
|
|
select SND_SOC_TEGRA_MACHINE_DRV
|
|
select SND_SOC_WM8753
|
|
help
|
|
Say Y or M here if you want to add support for SoC audio on Tegra
|
|
boards using the WM8753 codec, such as Whistler.
|
|
|
|
config SND_SOC_TEGRA_WM8903
|
|
tristate "SoC Audio support for Tegra boards using a WM8903 codec"
|
|
depends on I2C && GPIOLIB
|
|
select SND_SOC_TEGRA_MACHINE_DRV
|
|
select SND_SOC_WM8903
|
|
help
|
|
Say Y or M here if you want to add support for SoC audio on Tegra
|
|
boards using the WM8093 codec. Currently, the supported boards are
|
|
Harmony, Ventana, Seaboard, Kaen, and Aebl.
|
|
|
|
config SND_SOC_TEGRA_WM9712
|
|
tristate "SoC Audio support for Tegra boards using a WM9712 codec"
|
|
depends on GPIOLIB
|
|
select SND_SOC_TEGRA_MACHINE_DRV
|
|
select SND_SOC_TEGRA20_AC97
|
|
select SND_SOC_WM9712
|
|
help
|
|
Say Y or M here if you want to add support for SoC audio on Tegra
|
|
boards using the WM9712 (or compatible) codec.
|
|
|
|
config SND_SOC_TEGRA_TRIMSLICE
|
|
tristate "SoC Audio support for TrimSlice board"
|
|
depends on I2C
|
|
select SND_SOC_TEGRA_MACHINE_DRV
|
|
select SND_SOC_TLV320AIC23_I2C
|
|
help
|
|
Say Y or M here if you want to add support for SoC audio on the
|
|
TrimSlice platform.
|
|
|
|
config SND_SOC_TEGRA_ALC5632
|
|
tristate "SoC Audio support for Tegra boards using an ALC5632 codec"
|
|
depends on I2C && GPIOLIB
|
|
select SND_SOC_TEGRA_MACHINE_DRV
|
|
select SND_SOC_ALC5632
|
|
help
|
|
Say Y or M here if you want to add support for SoC audio on the
|
|
Toshiba AC100 netbook.
|
|
|
|
config SND_SOC_TEGRA_MAX98090
|
|
tristate "SoC Audio support for Tegra boards using a MAX98090 codec"
|
|
depends on I2C && GPIOLIB
|
|
select SND_SOC_TEGRA_MACHINE_DRV
|
|
select SND_SOC_MAX98090
|
|
help
|
|
Say Y or M here if you want to add support for SoC audio on Tegra
|
|
boards using the MAX98090 codec, such as Venice2.
|
|
|
|
config SND_SOC_TEGRA_MAX98088
|
|
tristate "SoC Audio support for Tegra boards using a MAX9808x codec"
|
|
depends on I2C && GPIOLIB
|
|
select SND_SOC_TEGRA_MACHINE_DRV
|
|
select SND_SOC_MAX98088
|
|
help
|
|
Say Y or M here if you want to add support for SoC audio on Tegra
|
|
boards using the MAX98088 codec, such as LG X3.
|
|
|
|
config SND_SOC_TEGRA_RT5677
|
|
tristate "SoC Audio support for Tegra boards using a RT5677 codec"
|
|
depends on I2C && GPIOLIB
|
|
select SND_SOC_TEGRA_MACHINE_DRV
|
|
select SND_SOC_RT5677
|
|
help
|
|
Say Y or M here if you want to add support for SoC audio on Tegra
|
|
boards using the RT5677 codec, such as Ryu.
|
|
|
|
config SND_SOC_TEGRA_SGTL5000
|
|
tristate "SoC Audio support for Tegra boards using a SGTL5000 codec"
|
|
depends on I2C && GPIOLIB
|
|
select SND_SOC_TEGRA_MACHINE_DRV
|
|
select SND_SOC_SGTL5000
|
|
help
|
|
Say Y or M here if you want to add support for SoC audio on Tegra
|
|
boards using the SGTL5000 codec, such as Apalis T30, Apalis TK1 or
|
|
Colibri T30.
|
|
|
|
endif
|