0001 # SPDX-License-Identifier: GPL-2.0-only
0002 menu "SoC Audio for Freescale CPUs"
0003
0004 comment "Common SoC Audio options for Freescale CPUs:"
0005
0006 config SND_SOC_FSL_ASRC
0007 tristate "Asynchronous Sample Rate Converter (ASRC) module support"
0008 depends on HAS_DMA
0009 select REGMAP_MMIO
0010 select SND_SOC_GENERIC_DMAENGINE_PCM
0011 help
0012 Say Y if you want to add Asynchronous Sample Rate Converter (ASRC)
0013 support for the Freescale CPUs.
0014 This option is only useful for out-of-tree drivers since
0015 in-tree drivers select it automatically.
0016
0017 config SND_SOC_FSL_SAI
0018 tristate "Synchronous Audio Interface (SAI) module support"
0019 select REGMAP_MMIO
0020 select SND_SOC_IMX_PCM_DMA if SND_IMX_SOC != n
0021 select SND_SOC_GENERIC_DMAENGINE_PCM
0022 select SND_SOC_FSL_UTILS
0023 help
0024 Say Y if you want to add Synchronous Audio Interface (SAI)
0025 support for the Freescale CPUs.
0026 This option is only useful for out-of-tree drivers since
0027 in-tree drivers select it automatically.
0028
0029 config SND_SOC_FSL_MQS
0030 tristate "Medium Quality Sound (MQS) module support"
0031 depends on SND_SOC_FSL_SAI
0032 select REGMAP_MMIO
0033 help
0034 Say Y if you want to add Medium Quality Sound (MQS)
0035 support for the Freescale CPUs.
0036 This option is only useful for out-of-tree drivers since
0037 in-tree drivers select it automatically.
0038
0039 config SND_SOC_FSL_AUDMIX
0040 tristate "Audio Mixer (AUDMIX) module support"
0041 select REGMAP_MMIO
0042 help
0043 Say Y if you want to add Audio Mixer (AUDMIX)
0044 support for the NXP iMX CPUs.
0045
0046 config SND_SOC_FSL_SSI
0047 tristate "Synchronous Serial Interface module (SSI) support"
0048 select SND_SOC_IMX_PCM_DMA if SND_IMX_SOC != n
0049 select SND_SOC_IMX_PCM_FIQ if SND_IMX_SOC != n && (MXC_TZIC || MXC_AVIC)
0050 select REGMAP_MMIO
0051 help
0052 Say Y if you want to add Synchronous Serial Interface (SSI)
0053 support for the Freescale CPUs.
0054 This option is only useful for out-of-tree drivers since
0055 in-tree drivers select it automatically.
0056
0057 config SND_SOC_FSL_SPDIF
0058 tristate "Sony/Philips Digital Interface (S/PDIF) module support"
0059 select REGMAP_MMIO
0060 select SND_SOC_IMX_PCM_DMA if SND_IMX_SOC != n
0061 select SND_SOC_IMX_PCM_FIQ if SND_IMX_SOC != n && (MXC_TZIC || MXC_AVIC)
0062 select BITREVERSE
0063 select SND_SOC_FSL_UTILS
0064 help
0065 Say Y if you want to add Sony/Philips Digital Interface (SPDIF)
0066 support for the Freescale CPUs.
0067 This option is only useful for out-of-tree drivers since
0068 in-tree drivers select it automatically.
0069
0070 config SND_SOC_FSL_ESAI
0071 tristate "Enhanced Serial Audio Interface (ESAI) module support"
0072 select REGMAP_MMIO
0073 select SND_SOC_IMX_PCM_DMA if SND_IMX_SOC != n
0074 help
0075 Say Y if you want to add Enhanced Synchronous Audio Interface
0076 (ESAI) support for the Freescale CPUs.
0077 This option is only useful for out-of-tree drivers since
0078 in-tree drivers select it automatically.
0079
0080 config SND_SOC_FSL_MICFIL
0081 tristate "Pulse Density Modulation Microphone Interface (MICFIL) module support"
0082 select REGMAP_MMIO
0083 select SND_SOC_IMX_PCM_DMA if SND_IMX_SOC != n
0084 select SND_SOC_GENERIC_DMAENGINE_PCM
0085 select SND_SOC_FSL_UTILS
0086 help
0087 Say Y if you want to add Pulse Density Modulation microphone
0088 interface (MICFIL) support for NXP.
0089
0090 config SND_SOC_FSL_EASRC
0091 tristate "Enhanced Asynchronous Sample Rate Converter (EASRC) module support"
0092 depends on SND_SOC_FSL_ASRC
0093 select REGMAP_MMIO
0094 select SND_SOC_GENERIC_DMAENGINE_PCM
0095 help
0096 Say Y if you want to add Enhanced ASRC support for NXP. The ASRC is
0097 a digital module that converts audio from a source sample rate to a
0098 destination sample rate. It is a new design module compare with the
0099 old ASRC.
0100
0101 config SND_SOC_FSL_XCVR
0102 tristate "NXP Audio Transceiver (XCVR) module support"
0103 select REGMAP_MMIO
0104 select SND_SOC_IMX_PCM_DMA if SND_IMX_SOC != n
0105 select SND_SOC_GENERIC_DMAENGINE_PCM
0106 help
0107 Say Y if you want to add Audio Transceiver (XCVR) support for NXP
0108 iMX CPUs. XCVR is a digital module that supports HDMI2.1 eARC,
0109 HDMI1.4 ARC and SPDIF.
0110
0111 config SND_SOC_FSL_AUD2HTX
0112 tristate "AUDIO TO HDMI TX module support"
0113 depends on ARCH_MXC || COMPILE_TEST
0114 select SND_SOC_IMX_PCM_DMA if SND_IMX_SOC != n
0115 help
0116 Say Y if you want to add AUDIO TO HDMI TX support for NXP.
0117
0118 config SND_SOC_FSL_UTILS
0119 tristate
0120
0121 config SND_SOC_FSL_RPMSG
0122 tristate "NXP Audio Base On RPMSG support"
0123 depends on COMMON_CLK
0124 depends on RPMSG
0125 depends on SND_IMX_SOC || SND_IMX_SOC = n
0126 select SND_SOC_IMX_RPMSG if SND_IMX_SOC != n
0127 help
0128 Say Y if you want to add rpmsg audio support for the Freescale CPUs.
0129 This option is only useful for out-of-tree drivers since
0130 in-tree drivers select it automatically.
0131
0132 config SND_SOC_IMX_PCM_DMA
0133 tristate
0134 select SND_SOC_GENERIC_DMAENGINE_PCM
0135
0136 config SND_SOC_IMX_AUDIO_RPMSG
0137 tristate
0138 depends on RPMSG
0139
0140 config SND_SOC_IMX_PCM_RPMSG
0141 tristate
0142 depends on SND_SOC_IMX_AUDIO_RPMSG
0143 select SND_SOC_GENERIC_DMAENGINE_PCM
0144
0145 config SND_SOC_IMX_AUDMUX
0146 tristate "Digital Audio Mux module support"
0147 help
0148 Say Y if you want to add Digital Audio Mux (AUDMUX) support
0149 for the ARM i.MX CPUs.
0150 This option is only useful for out-of-tree drivers since
0151 in-tree drivers select it automatically.
0152
0153 config SND_POWERPC_SOC
0154 tristate "SoC Audio for Freescale PowerPC CPUs"
0155 depends on FSL_SOC || PPC_MPC52xx
0156 help
0157 Say Y or M if you want to add support for codecs attached to
0158 the PowerPC CPUs.
0159
0160 config SND_IMX_SOC
0161 tristate "SoC Audio for Freescale i.MX CPUs"
0162 depends on ARCH_MXC || COMPILE_TEST
0163 help
0164 Say Y or M if you want to add support for codecs attached to
0165 the i.MX CPUs.
0166
0167 if SND_POWERPC_SOC
0168
0169 config SND_MPC52xx_DMA
0170 tristate
0171
0172 config SND_SOC_POWERPC_DMA
0173 tristate
0174
0175 comment "SoC Audio support for Freescale PPC boards:"
0176
0177 config SND_SOC_MPC8610_HPCD
0178 tristate "ALSA SoC support for the Freescale MPC8610 HPCD board"
0179 # I2C is necessary for the CS4270 driver
0180 depends on MPC8610_HPCD && I2C
0181 select SND_SOC_FSL_SSI
0182 select SND_SOC_FSL_UTILS
0183 select SND_SOC_POWERPC_DMA
0184 select SND_SOC_CS4270
0185 select SND_SOC_CS4270_VD33_ERRATA
0186 default y if MPC8610_HPCD
0187 help
0188 Say Y if you want to enable audio on the Freescale MPC8610 HPCD.
0189
0190 config SND_SOC_P1022_DS
0191 tristate "ALSA SoC support for the Freescale P1022 DS board"
0192 # I2C is necessary for the WM8776 driver
0193 depends on P1022_DS && I2C
0194 select SND_SOC_FSL_SSI
0195 select SND_SOC_FSL_UTILS
0196 select SND_SOC_POWERPC_DMA
0197 select SND_SOC_WM8776
0198 default y if P1022_DS
0199 help
0200 Say Y if you want to enable audio on the Freescale P1022 DS board.
0201 This will also include the Wolfson Microelectronics WM8776 codec
0202 driver.
0203
0204 config SND_SOC_P1022_RDK
0205 tristate "ALSA SoC support for the Freescale / iVeia P1022 RDK board"
0206 # I2C is necessary for the WM8960 driver
0207 depends on P1022_RDK && I2C
0208 select SND_SOC_FSL_SSI
0209 select SND_SOC_FSL_UTILS
0210 select SND_SOC_POWERPC_DMA
0211 select SND_SOC_WM8960
0212 default y if P1022_RDK
0213 help
0214 Say Y if you want to enable audio on the Freescale / iVeia
0215 P1022 RDK board. This will also include the Wolfson
0216 Microelectronics WM8960 codec driver.
0217
0218 config SND_SOC_MPC5200_I2S
0219 tristate "Freescale MPC5200 PSC in I2S mode driver"
0220 depends on PPC_MPC52xx && PPC_BESTCOMM
0221 select SND_MPC52xx_DMA
0222 select PPC_BESTCOMM_GEN_BD
0223 help
0224 Say Y here to support the MPC5200 PSCs in I2S mode.
0225
0226 config SND_SOC_MPC5200_AC97
0227 tristate "Freescale MPC5200 PSC in AC97 mode driver"
0228 depends on PPC_MPC52xx && PPC_BESTCOMM
0229 select SND_SOC_AC97_BUS
0230 select SND_MPC52xx_DMA
0231 select PPC_BESTCOMM_GEN_BD
0232 help
0233 Say Y here to support the MPC5200 PSCs in AC97 mode.
0234
0235 config SND_MPC52xx_SOC_PCM030
0236 tristate "SoC AC97 Audio support for Phytec pcm030 and WM9712"
0237 depends on PPC_MPC5200_SIMPLE
0238 select SND_SOC_MPC5200_AC97
0239 select SND_SOC_WM9712
0240 help
0241 Say Y if you want to add support for sound on the Phytec pcm030
0242 baseboard.
0243
0244 config SND_MPC52xx_SOC_EFIKA
0245 tristate "SoC AC97 Audio support for bbplan Efika and STAC9766"
0246 depends on PPC_EFIKA
0247 select SND_SOC_MPC5200_AC97
0248 select SND_SOC_STAC9766
0249 help
0250 Say Y if you want to add support for sound on the Efika.
0251
0252 endif # SND_POWERPC_SOC
0253
0254 config SND_SOC_IMX_PCM_FIQ
0255 tristate
0256 default y if (SND_SOC_FSL_SSI=m || SND_SOC_FSL_SPDIF=m) && (MXC_TZIC || MXC_AVIC)
0257 select FIQ
0258
0259 if SND_IMX_SOC
0260
0261 comment "SoC Audio support for Freescale i.MX boards:"
0262
0263 config SND_SOC_EUKREA_TLV320
0264 tristate "Eukrea TLV320"
0265 depends on ARCH_MXC && !ARM64 && I2C
0266 select SND_SOC_TLV320AIC23_I2C
0267 select SND_SOC_IMX_AUDMUX
0268 select SND_SOC_FSL_SSI
0269 select SND_SOC_IMX_PCM_DMA
0270 help
0271 Enable I2S based access to the TLV320AIC23B codec attached
0272 to the SSI interface
0273
0274 config SND_SOC_IMX_ES8328
0275 tristate "SoC Audio support for i.MX boards with the ES8328 codec"
0276 depends on OF && (I2C || SPI)
0277 select SND_SOC_ES8328_I2C if I2C
0278 select SND_SOC_ES8328_SPI if SPI_MASTER
0279 select SND_SOC_IMX_PCM_DMA
0280 select SND_SOC_IMX_AUDMUX
0281 select SND_SOC_FSL_SSI
0282 help
0283 Say Y if you want to add support for the ES8328 audio codec connected
0284 via SSI/I2S over either SPI or I2C.
0285
0286 config SND_SOC_IMX_SGTL5000
0287 tristate "SoC Audio support for i.MX boards with sgtl5000"
0288 depends on OF && I2C
0289 select SND_SOC_SGTL5000
0290 select SND_SOC_IMX_PCM_DMA
0291 select SND_SOC_IMX_AUDMUX
0292 select SND_SOC_FSL_SSI
0293 help
0294 Say Y if you want to add support for SoC audio on an i.MX board with
0295 a sgtl5000 codec.
0296
0297 config SND_SOC_IMX_SPDIF
0298 tristate "SoC Audio support for i.MX boards with S/PDIF"
0299 select SND_SOC_IMX_PCM_DMA
0300 select SND_SOC_FSL_SPDIF
0301 help
0302 SoC Audio support for i.MX boards with S/PDIF
0303 Say Y if you want to add support for SoC audio on an i.MX board with
0304 a S/DPDIF.
0305
0306 config SND_SOC_FSL_ASOC_CARD
0307 tristate "Generic ASoC Sound Card with ASRC support"
0308 depends on OF && I2C
0309 # enforce SND_SOC_FSL_ASOC_CARD=m if SND_AC97_CODEC=m:
0310 depends on SND_AC97_CODEC || SND_AC97_CODEC=n
0311 select SND_SIMPLE_CARD_UTILS
0312 select SND_SOC_IMX_AUDMUX
0313 select SND_SOC_IMX_PCM_DMA
0314 select SND_SOC_FSL_ESAI
0315 select SND_SOC_FSL_SAI
0316 select SND_SOC_FSL_SSI
0317 select SND_SOC_TLV320AIC31XX
0318 select SND_SOC_WM8994
0319 select MFD_WM8994
0320 help
0321 ALSA SoC Audio support with ASRC feature for Freescale SoCs that have
0322 ESAI/SAI/SSI and connect with external CODECs such as WM8962, CS42888,
0323 CS4271, CS4272, SGTL5000 and TLV320AIC32x4.
0324 Say Y if you want to add support for Freescale Generic ASoC Sound Card.
0325
0326 config SND_SOC_IMX_AUDMIX
0327 tristate "SoC Audio support for i.MX boards with AUDMIX"
0328 select SND_SOC_FSL_AUDMIX
0329 select SND_SOC_FSL_SAI
0330 help
0331 SoC Audio support for i.MX boards with Audio Mixer
0332 Say Y if you want to add support for SoC audio on an i.MX board with
0333 an Audio Mixer.
0334
0335 config SND_SOC_IMX_HDMI
0336 tristate "SoC Audio support for i.MX boards with HDMI port"
0337 select SND_SOC_FSL_SAI
0338 select SND_SOC_FSL_AUD2HTX
0339 select SND_SOC_HDMI_CODEC
0340 help
0341 ALSA SoC Audio support with HDMI feature for Freescale SoCs that have
0342 SAI/AUD2HTX and connect with internal HDMI IP or external module
0343 SII902X.
0344 Say Y if you want to add support for SoC audio on an i.MX board with
0345 IMX HDMI.
0346
0347 config SND_SOC_IMX_RPMSG
0348 tristate "SoC Audio support for i.MX boards with rpmsg"
0349 depends on RPMSG
0350 select SND_SOC_IMX_PCM_RPMSG
0351 select SND_SOC_IMX_AUDIO_RPMSG
0352 help
0353 SoC Audio support for i.MX boards with rpmsg.
0354 There should be rpmsg devices defined in other core (M core)
0355 Say Y if you want to add support for SoC audio on an i.MX board with
0356 a rpmsg devices.
0357
0358 config SND_SOC_IMX_CARD
0359 tristate "SoC Audio Graph Sound Card support for i.MX boards"
0360 depends on OF && I2C
0361 select SND_SOC_AK4458
0362 select SND_SOC_AK5558
0363 select SND_SOC_IMX_PCM_DMA
0364 select SND_SOC_FSL_SAI
0365 select SND_SIMPLE_CARD_UTILS
0366 help
0367 This option enables audio sound card support for i.MX boards
0368 with OF-graph DT bindings.
0369 It also support DPCM of single CPU multi Codec ststem.
0370
0371 endif # SND_IMX_SOC
0372
0373 endmenu