1# SPDX-License-Identifier: GPL-2.0-only
2menu "SoC Audio for Freescale CPUs"
3
4comment "Common SoC Audio options for Freescale CPUs:"
5
6config 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
17config 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	select SND_SOC_FSL_UTILS
23	help
24	  Say Y if you want to add Synchronous Audio Interface (SAI)
25	  support for the Freescale CPUs.
26	  This option is only useful for out-of-tree drivers since
27	  in-tree drivers select it automatically.
28
29config SND_SOC_FSL_MQS
30	tristate "Medium Quality Sound (MQS) module support"
31	depends on SND_SOC_FSL_SAI
32	select REGMAP_MMIO
33	help
34	  Say Y if you want to add Medium Quality Sound (MQS)
35	  support for the Freescale CPUs.
36	  This option is only useful for out-of-tree drivers since
37	  in-tree drivers select it automatically.
38
39config SND_SOC_FSL_AUDMIX
40	tristate "Audio Mixer (AUDMIX) module support"
41	select REGMAP_MMIO
42	help
43	  Say Y if you want to add Audio Mixer (AUDMIX)
44	  support for the NXP iMX CPUs.
45
46config SND_SOC_FSL_SSI
47	tristate "Synchronous Serial Interface module (SSI) support"
48	select SND_SOC_IMX_PCM_DMA if SND_IMX_SOC != n
49	select SND_SOC_IMX_PCM_FIQ if SND_IMX_SOC != n && (MXC_TZIC || MXC_AVIC)
50	select REGMAP_MMIO
51	help
52	  Say Y if you want to add Synchronous Serial Interface (SSI)
53	  support for the Freescale CPUs.
54	  This option is only useful for out-of-tree drivers since
55	  in-tree drivers select it automatically.
56
57config SND_SOC_FSL_SPDIF
58	tristate "Sony/Philips Digital Interface (S/PDIF) module support"
59	select REGMAP_MMIO
60	select SND_SOC_IMX_PCM_DMA if SND_IMX_SOC != n
61	select SND_SOC_IMX_PCM_FIQ if SND_IMX_SOC != n && (MXC_TZIC || MXC_AVIC)
62	select BITREVERSE
63	select SND_SOC_FSL_UTILS
64	help
65	  Say Y if you want to add Sony/Philips Digital Interface (SPDIF)
66	  support for the Freescale CPUs.
67	  This option is only useful for out-of-tree drivers since
68	  in-tree drivers select it automatically.
69
70config SND_SOC_FSL_ESAI
71	tristate "Enhanced Serial Audio Interface (ESAI) module support"
72	select REGMAP_MMIO
73	select SND_SOC_IMX_PCM_DMA if SND_IMX_SOC != n
74	help
75	  Say Y if you want to add Enhanced Synchronous Audio Interface
76	  (ESAI) support for the Freescale CPUs.
77	  This option is only useful for out-of-tree drivers since
78	  in-tree drivers select it automatically.
79
80config SND_SOC_FSL_MICFIL
81	tristate "Pulse Density Modulation Microphone Interface (MICFIL) module support"
82	select REGMAP_MMIO
83	select SND_SOC_IMX_PCM_DMA if SND_IMX_SOC != n
84	select SND_SOC_GENERIC_DMAENGINE_PCM
85	select SND_SOC_FSL_UTILS
86	help
87	  Say Y if you want to add Pulse Density Modulation microphone
88	  interface (MICFIL) support for NXP.
89
90config SND_SOC_FSL_EASRC
91	tristate "Enhanced Asynchronous Sample Rate Converter (EASRC) module support"
92	depends on SND_SOC_FSL_ASRC
93	select REGMAP_MMIO
94	select SND_SOC_GENERIC_DMAENGINE_PCM
95	help
96	  Say Y if you want to add Enhanced ASRC support for NXP. The ASRC is
97	  a digital module that converts audio from a source sample rate to a
98	  destination sample rate. It is a new design module compare with the
99	  old ASRC.
100
101config SND_SOC_FSL_XCVR
102	tristate "NXP Audio Transceiver (XCVR) module support"
103	select REGMAP_MMIO
104	select SND_SOC_IMX_PCM_DMA if SND_IMX_SOC != n
105	select SND_SOC_GENERIC_DMAENGINE_PCM
106	help
107	  Say Y if you want to add Audio Transceiver (XCVR) support for NXP
108	  iMX CPUs. XCVR is a digital module that supports HDMI2.1 eARC,
109	  HDMI1.4 ARC and SPDIF.
110
111config SND_SOC_FSL_AUD2HTX
112	tristate "AUDIO TO HDMI TX module support"
113	depends on ARCH_MXC || COMPILE_TEST
114	select SND_SOC_IMX_PCM_DMA if SND_IMX_SOC != n
115	help
116	  Say Y if you want to add AUDIO TO HDMI TX support for NXP.
117
118config SND_SOC_FSL_UTILS
119	tristate
120
121config SND_SOC_FSL_RPMSG
122	tristate "NXP Audio Base On RPMSG support"
123	depends on COMMON_CLK
124	depends on RPMSG
125	depends on SND_IMX_SOC || SND_IMX_SOC = n
126	select SND_SOC_IMX_RPMSG if SND_IMX_SOC != n
127	help
128	  Say Y if you want to add rpmsg audio support for the Freescale CPUs.
129	  This option is only useful for out-of-tree drivers since
130	  in-tree drivers select it automatically.
131
132config SND_SOC_IMX_PCM_DMA
133	tristate
134	select SND_SOC_GENERIC_DMAENGINE_PCM
135
136config SND_SOC_IMX_AUDIO_RPMSG
137	tristate
138	depends on RPMSG
139
140config SND_SOC_IMX_PCM_RPMSG
141	tristate
142	depends on SND_SOC_IMX_AUDIO_RPMSG
143	select SND_SOC_GENERIC_DMAENGINE_PCM
144
145config SND_SOC_IMX_AUDMUX
146	tristate "Digital Audio Mux module support"
147	help
148	  Say Y if you want to add Digital Audio Mux (AUDMUX) support
149	  for the ARM i.MX CPUs.
150	  This option is only useful for out-of-tree drivers since
151	  in-tree drivers select it automatically.
152
153config SND_POWERPC_SOC
154	tristate "SoC Audio for Freescale PowerPC CPUs"
155	depends on FSL_SOC || PPC_MPC52xx
156	help
157	  Say Y or M if you want to add support for codecs attached to
158	  the PowerPC CPUs.
159
160config SND_IMX_SOC
161	tristate "SoC Audio for Freescale i.MX CPUs"
162	depends on ARCH_MXC || COMPILE_TEST
163	help
164	  Say Y or M if you want to add support for codecs attached to
165	  the i.MX CPUs.
166
167if SND_POWERPC_SOC
168
169config SND_MPC52xx_DMA
170	tristate
171
172config SND_SOC_POWERPC_DMA
173	tristate
174
175config SND_SOC_POWERPC_QMC_AUDIO
176	tristate "QMC ALSA SoC support"
177	depends on CPM_QMC
178	help
179	  ALSA SoC Audio support using the Freescale QUICC Multichannel
180	  Controller (QMC).
181	  Say Y or M if you want to add support for SoC audio using Freescale
182	  QMC.
183
184comment "SoC Audio support for Freescale PPC boards:"
185
186config SND_SOC_MPC8610_HPCD
187	tristate "ALSA SoC support for the Freescale MPC8610 HPCD board"
188	# I2C is necessary for the CS4270 driver
189	depends on MPC8610_HPCD && I2C
190	select SND_SOC_FSL_SSI
191	select SND_SOC_FSL_UTILS
192	select SND_SOC_POWERPC_DMA
193	select SND_SOC_CS4270
194	select SND_SOC_CS4270_VD33_ERRATA
195	default y if MPC8610_HPCD
196	help
197	  Say Y if you want to enable audio on the Freescale MPC8610 HPCD.
198
199config SND_SOC_P1022_DS
200	tristate "ALSA SoC support for the Freescale P1022 DS board"
201	# I2C is necessary for the WM8776 driver
202	depends on P1022_DS && I2C
203	select SND_SOC_FSL_SSI
204	select SND_SOC_FSL_UTILS
205	select SND_SOC_POWERPC_DMA
206	select SND_SOC_WM8776
207	default y if P1022_DS
208	help
209	  Say Y if you want to enable audio on the Freescale P1022 DS board.
210	  This will also include the Wolfson Microelectronics WM8776 codec
211	  driver.
212
213config SND_SOC_P1022_RDK
214	tristate "ALSA SoC support for the Freescale / iVeia P1022 RDK board"
215	# I2C is necessary for the WM8960 driver
216	depends on P1022_RDK && I2C
217	select SND_SOC_FSL_SSI
218	select SND_SOC_FSL_UTILS
219	select SND_SOC_POWERPC_DMA
220	select SND_SOC_WM8960
221	default y if P1022_RDK
222	help
223	  Say Y if you want to enable audio on the Freescale / iVeia
224	  P1022 RDK board.  This will also include the Wolfson
225	  Microelectronics WM8960 codec driver.
226
227config SND_SOC_MPC5200_I2S
228	tristate "Freescale MPC5200 PSC in I2S mode driver"
229	depends on PPC_MPC52xx && PPC_BESTCOMM
230	select SND_MPC52xx_DMA
231	select PPC_BESTCOMM_GEN_BD
232	help
233	  Say Y here to support the MPC5200 PSCs in I2S mode.
234
235config SND_SOC_MPC5200_AC97
236	tristate "Freescale MPC5200 PSC in AC97 mode driver"
237	depends on PPC_MPC52xx && PPC_BESTCOMM
238	select SND_SOC_AC97_BUS
239	select SND_MPC52xx_DMA
240	select PPC_BESTCOMM_GEN_BD
241	help
242	  Say Y here to support the MPC5200 PSCs in AC97 mode.
243
244config SND_MPC52xx_SOC_PCM030
245	tristate "SoC AC97 Audio support for Phytec pcm030 and WM9712"
246	depends on PPC_MPC5200_SIMPLE
247	select SND_SOC_MPC5200_AC97
248	select SND_SOC_WM9712
249	help
250	  Say Y if you want to add support for sound on the Phytec pcm030
251	  baseboard.
252
253config SND_MPC52xx_SOC_EFIKA
254	tristate "SoC AC97 Audio support for bbplan Efika and STAC9766"
255	depends on PPC_EFIKA
256	select SND_SOC_MPC5200_AC97
257	select SND_SOC_STAC9766
258	help
259	  Say Y if you want to add support for sound on the Efika.
260
261endif # SND_POWERPC_SOC
262
263config SND_SOC_IMX_PCM_FIQ
264	tristate
265	default y if (SND_SOC_FSL_SSI=m || SND_SOC_FSL_SPDIF=m) && (MXC_TZIC || MXC_AVIC)
266	select FIQ
267
268if SND_IMX_SOC
269
270comment "SoC Audio support for Freescale i.MX boards:"
271
272config SND_SOC_EUKREA_TLV320
273	tristate "Eukrea TLV320"
274	depends on ARCH_MXC && !ARM64 && I2C
275	select SND_SOC_TLV320AIC23_I2C
276	select SND_SOC_IMX_AUDMUX
277	select SND_SOC_FSL_SSI
278	select SND_SOC_IMX_PCM_DMA
279	help
280	  Enable I2S based access to the TLV320AIC23B codec attached
281	  to the SSI interface
282
283config SND_SOC_IMX_ES8328
284	tristate "SoC Audio support for i.MX boards with the ES8328 codec"
285	depends on OF && (I2C || SPI)
286	select SND_SOC_ES8328_I2C if I2C
287	select SND_SOC_ES8328_SPI if SPI_MASTER
288	select SND_SOC_IMX_PCM_DMA
289	select SND_SOC_IMX_AUDMUX
290	select SND_SOC_FSL_SSI
291	help
292	  Say Y if you want to add support for the ES8328 audio codec connected
293	  via SSI/I2S over either SPI or I2C.
294
295config SND_SOC_IMX_SGTL5000
296	tristate "SoC Audio support for i.MX boards with sgtl5000"
297	depends on OF && I2C
298	select SND_SOC_SGTL5000
299	select SND_SOC_IMX_PCM_DMA
300	select SND_SOC_IMX_AUDMUX
301	select SND_SOC_FSL_SSI
302	help
303	  Say Y if you want to add support for SoC audio on an i.MX board with
304	  a sgtl5000 codec.
305
306	  Note that this is an old driver. Consider enabling
307	  SND_SOC_FSL_ASOC_CARD and SND_SOC_SGTL5000 to use the newer
308	  driver.
309
310config SND_SOC_IMX_SPDIF
311	tristate "SoC Audio support for i.MX boards with S/PDIF"
312	select SND_SOC_IMX_PCM_DMA
313	select SND_SOC_FSL_SPDIF
314	help
315	  SoC Audio support for i.MX boards with S/PDIF
316	  Say Y if you want to add support for SoC audio on an i.MX board with
317	  a S/DPDIF.
318
319config SND_SOC_FSL_ASOC_CARD
320	tristate "Generic ASoC Sound Card with ASRC support"
321	depends on OF && I2C
322	# enforce SND_SOC_FSL_ASOC_CARD=m if SND_AC97_CODEC=m:
323	depends on SND_AC97_CODEC || SND_AC97_CODEC=n
324	select SND_SIMPLE_CARD_UTILS
325	select SND_SOC_IMX_AUDMUX
326	select SND_SOC_IMX_PCM_DMA
327	select SND_SOC_FSL_ESAI
328	select SND_SOC_FSL_SAI
329	select SND_SOC_FSL_SSI
330	select SND_SOC_TLV320AIC31XX
331	select SND_SOC_WM8994
332	select MFD_WM8994
333	help
334	 ALSA SoC Audio support with ASRC feature for Freescale SoCs that have
335	 ESAI/SAI/SSI and connect with external CODECs such as WM8962, CS42888,
336	 CS4271, CS4272, SGTL5000 and TLV320AIC32x4.
337	 Say Y if you want to add support for Freescale Generic ASoC Sound Card.
338
339config SND_SOC_IMX_AUDMIX
340	tristate "SoC Audio support for i.MX boards with AUDMIX"
341	select SND_SOC_FSL_AUDMIX
342	select SND_SOC_FSL_SAI
343	help
344	  SoC Audio support for i.MX boards with Audio Mixer
345	  Say Y if you want to add support for SoC audio on an i.MX board with
346	  an Audio Mixer.
347
348config SND_SOC_IMX_HDMI
349	tristate "SoC Audio support for i.MX boards with HDMI port"
350	select SND_SOC_FSL_SAI
351	select SND_SOC_FSL_AUD2HTX
352	select SND_SOC_HDMI_CODEC
353	help
354	  ALSA SoC Audio support with HDMI feature for Freescale SoCs that have
355	  SAI/AUD2HTX and connect with internal HDMI IP or external module
356	  SII902X.
357	  Say Y if you want to add support for SoC audio on an i.MX board with
358	  IMX HDMI.
359
360config SND_SOC_IMX_RPMSG
361	tristate "SoC Audio support for i.MX boards with rpmsg"
362	depends on RPMSG
363	select SND_SOC_IMX_PCM_RPMSG
364	select SND_SOC_IMX_AUDIO_RPMSG
365	help
366	  SoC Audio support for i.MX boards with rpmsg.
367	  There should be rpmsg devices defined in other core (M core)
368	  Say Y if you want to add support for SoC audio on an i.MX board with
369	  a rpmsg devices.
370
371config SND_SOC_IMX_CARD
372	tristate "SoC Audio Graph Sound Card support for i.MX boards"
373	depends on OF && I2C
374	select SND_SOC_AK4458
375	select SND_SOC_AK5558
376	select SND_SOC_IMX_PCM_DMA
377	select SND_SOC_FSL_SAI
378	select SND_SIMPLE_CARD_UTILS
379	help
380	  This option enables audio sound card support for i.MX boards
381	  with OF-graph DT bindings.
382	  It also support DPCM of single CPU multi Codec ststem.
383
384endif # SND_IMX_SOC
385
386endmenu
387