1 # SPDX-License-Identifier: GPL-2.0-only
2 menu "SoC Audio for Freescale CPUs"
3 
4 comment "Common SoC Audio options for Freescale CPUs:"
5 
6 config SND_SOC_FSL_ASRC
7 	tristate "Asynchronous Sample Rate Converter (ASRC) module support"
8 	depends on HAS_DMA
9 	select REGMAP_MMIO
10 	select SND_SOC_GENERIC_DMAENGINE_PCM
11 	help
12 	  Say Y if you want to add Asynchronous Sample Rate Converter (ASRC)
13 	  support for the Freescale CPUs.
14 	  This option is only useful for out-of-tree drivers since
15 	  in-tree drivers select it automatically.
16 
17 config SND_SOC_FSL_SAI
18 	tristate "Synchronous Audio Interface (SAI) module support"
19 	select REGMAP_MMIO
20 	select SND_SOC_IMX_PCM_DMA if SND_IMX_SOC != n
21 	select SND_SOC_GENERIC_DMAENGINE_PCM
22 	help
23 	  Say Y if you want to add Synchronous Audio Interface (SAI)
24 	  support for the Freescale CPUs.
25 	  This option is only useful for out-of-tree drivers since
26 	  in-tree drivers select it automatically.
27 
28 config SND_SOC_FSL_MQS
29 	tristate "Medium Quality Sound (MQS) module support"
30 	depends on SND_SOC_FSL_SAI
31 	select REGMAP_MMIO
32 	help
33 	  Say Y if you want to add Medium Quality Sound (MQS)
34 	  support for the Freescale CPUs.
35 	  This option is only useful for out-of-tree drivers since
36 	  in-tree drivers select it automatically.
37 
38 config SND_SOC_FSL_AUDMIX
39 	tristate "Audio Mixer (AUDMIX) module support"
40 	select REGMAP_MMIO
41 	help
42 	  Say Y if you want to add Audio Mixer (AUDMIX)
43 	  support for the NXP iMX CPUs.
44 
45 config SND_SOC_FSL_SSI
46 	tristate "Synchronous Serial Interface module (SSI) support"
47 	select SND_SOC_IMX_PCM_DMA if SND_IMX_SOC != n
48 	select SND_SOC_IMX_PCM_FIQ if SND_IMX_SOC != n && (MXC_TZIC || MXC_AVIC)
49 	select REGMAP_MMIO
50 	help
51 	  Say Y if you want to add Synchronous Serial Interface (SSI)
52 	  support for the Freescale CPUs.
53 	  This option is only useful for out-of-tree drivers since
54 	  in-tree drivers select it automatically.
55 
56 config SND_SOC_FSL_SPDIF
57 	tristate "Sony/Philips Digital Interface (S/PDIF) module support"
58 	select REGMAP_MMIO
59 	select SND_SOC_IMX_PCM_DMA if SND_IMX_SOC != n
60 	select SND_SOC_IMX_PCM_FIQ if SND_IMX_SOC != n && (MXC_TZIC || MXC_AVIC)
61 	select BITREVERSE
62 	help
63 	  Say Y if you want to add Sony/Philips Digital Interface (SPDIF)
64 	  support for the Freescale CPUs.
65 	  This option is only useful for out-of-tree drivers since
66 	  in-tree drivers select it automatically.
67 
68 config SND_SOC_FSL_ESAI
69 	tristate "Enhanced Serial Audio Interface (ESAI) module support"
70 	select REGMAP_MMIO
71 	select SND_SOC_IMX_PCM_DMA if SND_IMX_SOC != n
72 	help
73 	  Say Y if you want to add Enhanced Synchronous Audio Interface
74 	  (ESAI) support for the Freescale CPUs.
75 	  This option is only useful for out-of-tree drivers since
76 	  in-tree drivers select it automatically.
77 
78 config SND_SOC_FSL_MICFIL
79 	tristate "Pulse Density Modulation Microphone Interface (MICFIL) module support"
80 	select REGMAP_MMIO
81 	select SND_SOC_IMX_PCM_DMA if SND_IMX_SOC != n
82 	select SND_SOC_GENERIC_DMAENGINE_PCM
83 	help
84 	  Say Y if you want to add Pulse Density Modulation microphone
85 	  interface (MICFIL) support for NXP.
86 
87 config SND_SOC_FSL_EASRC
88 	tristate "Enhanced Asynchronous Sample Rate Converter (EASRC) module support"
89 	depends on SND_SOC_FSL_ASRC
90 	select REGMAP_MMIO
91 	select SND_SOC_GENERIC_DMAENGINE_PCM
92 	help
93 	  Say Y if you want to add Enhanced ASRC support for NXP. The ASRC is
94 	  a digital module that converts audio from a source sample rate to a
95 	  destination sample rate. It is a new design module compare with the
96 	  old ASRC.
97 
98 config SND_SOC_FSL_UTILS
99 	tristate
100 
101 config SND_SOC_IMX_PCM_DMA
102 	tristate
103 	select SND_SOC_GENERIC_DMAENGINE_PCM
104 
105 config SND_SOC_IMX_AUDMUX
106 	tristate "Digital Audio Mux module support"
107 	help
108 	  Say Y if you want to add Digital Audio Mux (AUDMUX) support
109 	  for the ARM i.MX CPUs.
110 	  This option is only useful for out-of-tree drivers since
111 	  in-tree drivers select it automatically.
112 
113 config SND_POWERPC_SOC
114 	tristate "SoC Audio for Freescale PowerPC CPUs"
115 	depends on FSL_SOC || PPC_MPC52xx
116 	help
117 	  Say Y or M if you want to add support for codecs attached to
118 	  the PowerPC CPUs.
119 
120 config SND_IMX_SOC
121 	tristate "SoC Audio for Freescale i.MX CPUs"
122 	depends on ARCH_MXC || COMPILE_TEST
123 	help
124 	  Say Y or M if you want to add support for codecs attached to
125 	  the i.MX CPUs.
126 
127 if SND_POWERPC_SOC
128 
129 config SND_MPC52xx_DMA
130 	tristate
131 
132 config SND_SOC_POWERPC_DMA
133 	tristate
134 
135 comment "SoC Audio support for Freescale PPC boards:"
136 
137 config SND_SOC_MPC8610_HPCD
138 	tristate "ALSA SoC support for the Freescale MPC8610 HPCD board"
139 	# I2C is necessary for the CS4270 driver
140 	depends on MPC8610_HPCD && I2C
141 	select SND_SOC_FSL_SSI
142 	select SND_SOC_FSL_UTILS
143 	select SND_SOC_POWERPC_DMA
144 	select SND_SOC_CS4270
145 	select SND_SOC_CS4270_VD33_ERRATA
146 	default y if MPC8610_HPCD
147 	help
148 	  Say Y if you want to enable audio on the Freescale MPC8610 HPCD.
149 
150 config SND_SOC_P1022_DS
151 	tristate "ALSA SoC support for the Freescale P1022 DS board"
152 	# I2C is necessary for the WM8776 driver
153 	depends on P1022_DS && I2C
154 	select SND_SOC_FSL_SSI
155 	select SND_SOC_FSL_UTILS
156 	select SND_SOC_POWERPC_DMA
157 	select SND_SOC_WM8776
158 	default y if P1022_DS
159 	help
160 	  Say Y if you want to enable audio on the Freescale P1022 DS board.
161 	  This will also include the Wolfson Microelectronics WM8776 codec
162 	  driver.
163 
164 config SND_SOC_P1022_RDK
165 	tristate "ALSA SoC support for the Freescale / iVeia P1022 RDK board"
166 	# I2C is necessary for the WM8960 driver
167 	depends on P1022_RDK && I2C
168 	select SND_SOC_FSL_SSI
169 	select SND_SOC_FSL_UTILS
170 	select SND_SOC_POWERPC_DMA
171 	select SND_SOC_WM8960
172 	default y if P1022_RDK
173 	help
174 	  Say Y if you want to enable audio on the Freescale / iVeia
175 	  P1022 RDK board.  This will also include the Wolfson
176 	  Microelectronics WM8960 codec driver.
177 
178 config SND_SOC_MPC5200_I2S
179 	tristate "Freescale MPC5200 PSC in I2S mode driver"
180 	depends on PPC_MPC52xx && PPC_BESTCOMM
181 	select SND_MPC52xx_DMA
182 	select PPC_BESTCOMM_GEN_BD
183 	help
184 	  Say Y here to support the MPC5200 PSCs in I2S mode.
185 
186 config SND_SOC_MPC5200_AC97
187 	tristate "Freescale MPC5200 PSC in AC97 mode driver"
188 	depends on PPC_MPC52xx && PPC_BESTCOMM
189 	select SND_SOC_AC97_BUS
190 	select SND_MPC52xx_DMA
191 	select PPC_BESTCOMM_GEN_BD
192 	help
193 	  Say Y here to support the MPC5200 PSCs in AC97 mode.
194 
195 config SND_MPC52xx_SOC_PCM030
196 	tristate "SoC AC97 Audio support for Phytec pcm030 and WM9712"
197 	depends on PPC_MPC5200_SIMPLE
198 	select SND_SOC_MPC5200_AC97
199 	select SND_SOC_WM9712
200 	help
201 	  Say Y if you want to add support for sound on the Phytec pcm030
202 	  baseboard.
203 
204 config SND_MPC52xx_SOC_EFIKA
205 	tristate "SoC AC97 Audio support for bbplan Efika and STAC9766"
206 	depends on PPC_EFIKA
207 	select SND_SOC_MPC5200_AC97
208 	select SND_SOC_STAC9766
209 	help
210 	  Say Y if you want to add support for sound on the Efika.
211 
212 endif # SND_POWERPC_SOC
213 
214 config SND_SOC_IMX_PCM_FIQ
215 	tristate
216 	default y if SND_SOC_IMX_SSI=y && (SND_SOC_FSL_SSI=m || SND_SOC_FSL_SPDIF=m) && (MXC_TZIC || MXC_AVIC)
217 	select FIQ
218 
219 if SND_IMX_SOC
220 
221 config SND_SOC_IMX_SSI
222 	tristate
223 	select SND_SOC_FSL_UTILS
224 
225 comment "SoC Audio support for Freescale i.MX boards:"
226 
227 config SND_MXC_SOC_WM1133_EV1
228 	tristate "Audio on the i.MX31ADS with WM1133-EV1 fitted"
229 	depends on MACH_MX31ADS_WM1133_EV1
230 	select SND_SOC_WM8350
231 	select SND_SOC_IMX_PCM_FIQ
232 	select SND_SOC_IMX_AUDMUX
233 	select SND_SOC_IMX_SSI
234 	help
235 	  Enable support for audio on the i.MX31ADS with the WM1133-EV1
236 	  PMIC board with WM8835x fitted.
237 
238 config SND_SOC_MX27VIS_AIC32X4
239 	tristate "SoC audio support for Visstrim M10 boards"
240 	depends on MACH_IMX27_VISSTRIM_M10 && I2C
241 	select SND_SOC_TLV320AIC32X4
242 	select SND_SOC_IMX_PCM_DMA
243 	select SND_SOC_IMX_AUDMUX
244 	select SND_SOC_IMX_SSI
245 	help
246 	  Say Y if you want to add support for SoC audio on Visstrim SM10
247 	  board with TLV320AIC32X4 codec.
248 
249 config SND_SOC_PHYCORE_AC97
250 	tristate "SoC Audio support for Phytec phyCORE (and phyCARD) boards"
251 	depends on MACH_PCM043 || MACH_PCA100
252 	select SND_SOC_AC97_BUS
253 	select SND_SOC_WM9712
254 	select SND_SOC_IMX_PCM_FIQ
255 	select SND_SOC_IMX_AUDMUX
256 	select SND_SOC_IMX_SSI
257 	help
258 	  Say Y if you want to add support for SoC audio on Phytec phyCORE
259 	  and phyCARD boards in AC97 mode
260 
261 config SND_SOC_EUKREA_TLV320
262 	tristate "Eukrea TLV320"
263 	depends on ARCH_MXC && !ARM64 && I2C
264 	select SND_SOC_TLV320AIC23_I2C
265 	select SND_SOC_IMX_AUDMUX
266 	select SND_SOC_IMX_SSI
267 	select SND_SOC_FSL_SSI
268 	select SND_SOC_IMX_PCM_DMA
269 	help
270 	  Enable I2S based access to the TLV320AIC23B codec attached
271 	  to the SSI interface
272 
273 config SND_SOC_IMX_ES8328
274 	tristate "SoC Audio support for i.MX boards with the ES8328 codec"
275 	depends on OF && (I2C || SPI)
276 	select SND_SOC_ES8328_I2C if I2C
277 	select SND_SOC_ES8328_SPI if SPI_MASTER
278 	select SND_SOC_IMX_PCM_DMA
279 	select SND_SOC_IMX_AUDMUX
280 	select SND_SOC_FSL_SSI
281 	help
282 	  Say Y if you want to add support for the ES8328 audio codec connected
283 	  via SSI/I2S over either SPI or I2C.
284 
285 config SND_SOC_IMX_SGTL5000
286 	tristate "SoC Audio support for i.MX boards with sgtl5000"
287 	depends on OF && I2C
288 	select SND_SOC_SGTL5000
289 	select SND_SOC_IMX_PCM_DMA
290 	select SND_SOC_IMX_AUDMUX
291 	select SND_SOC_FSL_SSI
292 	help
293 	  Say Y if you want to add support for SoC audio on an i.MX board with
294 	  a sgtl5000 codec.
295 
296 config SND_SOC_IMX_SPDIF
297 	tristate "SoC Audio support for i.MX boards with S/PDIF"
298 	select SND_SOC_IMX_PCM_DMA
299 	select SND_SOC_FSL_SPDIF
300 	help
301 	  SoC Audio support for i.MX boards with S/PDIF
302 	  Say Y if you want to add support for SoC audio on an i.MX board with
303 	  a S/DPDIF.
304 
305 config SND_SOC_IMX_MC13783
306 	tristate "SoC Audio support for I.MX boards with mc13783"
307 	depends on MFD_MC13XXX && ARM
308 	select SND_SOC_IMX_SSI
309 	select SND_SOC_IMX_AUDMUX
310 	select SND_SOC_MC13783
311 	select SND_SOC_IMX_PCM_DMA
312 
313 config SND_SOC_FSL_ASOC_CARD
314 	tristate "Generic ASoC Sound Card with ASRC support"
315 	depends on OF && I2C
316 	# enforce SND_SOC_FSL_ASOC_CARD=m if SND_AC97_CODEC=m:
317 	depends on SND_AC97_CODEC || SND_AC97_CODEC=n
318 	select SND_SIMPLE_CARD_UTILS
319 	select SND_SOC_IMX_AUDMUX
320 	select SND_SOC_IMX_PCM_DMA
321 	select SND_SOC_FSL_ESAI
322 	select SND_SOC_FSL_SAI
323 	select SND_SOC_FSL_SSI
324 	help
325 	 ALSA SoC Audio support with ASRC feature for Freescale SoCs that have
326 	 ESAI/SAI/SSI and connect with external CODECs such as WM8962, CS42888,
327 	 CS4271, CS4272, SGTL5000 and TLV320AIC32x4.
328 	 Say Y if you want to add support for Freescale Generic ASoC Sound Card.
329 
330 config SND_SOC_IMX_AUDMIX
331 	tristate "SoC Audio support for i.MX boards with AUDMIX"
332 	select SND_SOC_FSL_AUDMIX
333 	select SND_SOC_FSL_SAI
334 	help
335 	  SoC Audio support for i.MX boards with Audio Mixer
336 	  Say Y if you want to add support for SoC audio on an i.MX board with
337 	  an Audio Mixer.
338 
339 endif # SND_IMX_SOC
340 
341 endmenu
342