xref: /linux/sound/soc/fsl/Kconfig (revision 2c1ed907520c50326b8f604907a8478b27881a2e)
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 DMA_SHARED_BUFFER
10	select REGMAP_MMIO
11	select SND_SOC_GENERIC_DMAENGINE_PCM
12	select SND_COMPRESS_ACCEL
13	select SND_COMPRESS_OFFLOAD
14	help
15	  Say Y if you want to add Asynchronous Sample Rate Converter (ASRC)
16	  support for the Freescale CPUs.
17	  This option is only useful for out-of-tree drivers since
18	  in-tree drivers select it automatically.
19
20config SND_SOC_FSL_SAI
21	tristate "Synchronous Audio Interface (SAI) module support"
22	select REGMAP_MMIO
23	select SND_SOC_IMX_PCM_DMA if SND_IMX_SOC != n
24	select SND_SOC_GENERIC_DMAENGINE_PCM
25	select SND_SOC_FSL_UTILS
26	help
27	  Say Y if you want to add Synchronous Audio Interface (SAI)
28	  support for the Freescale CPUs.
29	  This option is only useful for out-of-tree drivers since
30	  in-tree drivers select it automatically.
31
32config SND_SOC_FSL_MQS
33	tristate "Medium Quality Sound (MQS) module support"
34	depends on SND_SOC_FSL_SAI
35	depends on IMX_SCMI_MISC_DRV || !IMX_SCMI_MISC_DRV
36	select REGMAP_MMIO
37	help
38	  Say Y if you want to add Medium Quality Sound (MQS)
39	  support for the Freescale CPUs.
40	  This option is only useful for out-of-tree drivers since
41	  in-tree drivers select it automatically.
42
43config SND_SOC_FSL_AUDMIX
44	tristate "Audio Mixer (AUDMIX) module support"
45	select REGMAP_MMIO
46	help
47	  Say Y if you want to add Audio Mixer (AUDMIX)
48	  support for the NXP iMX CPUs.
49
50config SND_SOC_FSL_SSI
51	tristate "Synchronous Serial Interface module (SSI) support"
52	select SND_SOC_IMX_PCM_DMA if SND_IMX_SOC != n
53	select SND_SOC_IMX_PCM_FIQ if SND_IMX_SOC != n && (MXC_TZIC || MXC_AVIC)
54	select REGMAP_MMIO
55	help
56	  Say Y if you want to add Synchronous Serial Interface (SSI)
57	  support for the Freescale CPUs.
58	  This option is only useful for out-of-tree drivers since
59	  in-tree drivers select it automatically.
60
61config SND_SOC_FSL_SPDIF
62	tristate "Sony/Philips Digital Interface (S/PDIF) module support"
63	select REGMAP_MMIO
64	select SND_SOC_IMX_PCM_DMA if SND_IMX_SOC != n
65	select SND_SOC_IMX_PCM_FIQ if SND_IMX_SOC != n && (MXC_TZIC || MXC_AVIC)
66	select BITREVERSE
67	select SND_SOC_FSL_UTILS
68	help
69	  Say Y if you want to add Sony/Philips Digital Interface (SPDIF)
70	  support for the Freescale CPUs.
71	  This option is only useful for out-of-tree drivers since
72	  in-tree drivers select it automatically.
73
74config SND_SOC_FSL_ESAI
75	tristate "Enhanced Serial Audio Interface (ESAI) module support"
76	select REGMAP_MMIO
77	select SND_SOC_IMX_PCM_DMA if SND_IMX_SOC != n
78	help
79	  Say Y if you want to add Enhanced Synchronous Audio Interface
80	  (ESAI) support for the Freescale CPUs.
81	  This option is only useful for out-of-tree drivers since
82	  in-tree drivers select it automatically.
83
84config SND_SOC_FSL_MICFIL
85	tristate "Pulse Density Modulation Microphone Interface (MICFIL) module support"
86	select REGMAP_MMIO
87	select SND_SOC_IMX_PCM_DMA if SND_IMX_SOC != n
88	select SND_SOC_GENERIC_DMAENGINE_PCM
89	select SND_SOC_FSL_UTILS
90	help
91	  Say Y if you want to add Pulse Density Modulation microphone
92	  interface (MICFIL) support for NXP.
93
94config SND_SOC_FSL_EASRC
95	tristate "Enhanced Asynchronous Sample Rate Converter (EASRC) module support"
96	depends on SND_SOC_FSL_ASRC
97	select REGMAP_MMIO
98	select SND_SOC_GENERIC_DMAENGINE_PCM
99	help
100	  Say Y if you want to add Enhanced ASRC support for NXP. The ASRC is
101	  a digital module that converts audio from a source sample rate to a
102	  destination sample rate. It is a new design module compare with the
103	  old ASRC.
104
105config SND_SOC_FSL_XCVR
106	tristate "NXP Audio Transceiver (XCVR) module support"
107	select REGMAP_MMIO
108	select SND_SOC_IMX_PCM_DMA if SND_IMX_SOC != n
109	select SND_SOC_GENERIC_DMAENGINE_PCM
110	select SND_SOC_FSL_UTILS
111	help
112	  Say Y if you want to add Audio Transceiver (XCVR) support for NXP
113	  iMX CPUs. XCVR is a digital module that supports HDMI2.1 eARC,
114	  HDMI1.4 ARC and SPDIF.
115
116config SND_SOC_FSL_AUD2HTX
117	tristate "AUDIO TO HDMI TX module support"
118	depends on ARCH_MXC || COMPILE_TEST
119	select SND_SOC_IMX_PCM_DMA if SND_IMX_SOC != n
120	help
121	  Say Y if you want to add AUDIO TO HDMI TX support for NXP.
122
123config SND_SOC_FSL_UTILS
124	tristate
125
126config SND_SOC_FSL_RPMSG
127	tristate "NXP Audio Base On RPMSG support"
128	depends on COMMON_CLK
129	depends on OF && I2C
130	depends on RPMSG
131	depends on SND_IMX_SOC || SND_IMX_SOC = n
132	select SND_SOC_IMX_RPMSG if SND_IMX_SOC != n
133	help
134	  Say Y if you want to add rpmsg audio support for the Freescale CPUs.
135	  This option is only useful for out-of-tree drivers since
136	  in-tree drivers select it automatically.
137
138config SND_SOC_FSL_LPC3XXX
139	tristate "SoC Audio for NXP LPC32XX CPUs"
140	depends on ARCH_LPC32XX || COMPILE_TEST
141	select SND_SOC_GENERIC_DMAENGINE_PCM
142	help
143	  Say Y or M if you want to add support for the LPC3XXX I2S interface.
144
145config SND_SOC_IMX_PCM_DMA
146	tristate
147	select SND_SOC_GENERIC_DMAENGINE_PCM
148
149config SND_SOC_IMX_AUDIO_RPMSG
150	tristate
151	depends on RPMSG
152
153config SND_SOC_IMX_PCM_RPMSG
154	tristate
155	depends on SND_SOC_IMX_AUDIO_RPMSG
156	select SND_SOC_GENERIC_DMAENGINE_PCM
157
158config SND_SOC_IMX_AUDMUX
159	tristate "Digital Audio Mux module support"
160	help
161	  Say Y if you want to add Digital Audio Mux (AUDMUX) support
162	  for the ARM i.MX CPUs.
163	  This option is only useful for out-of-tree drivers since
164	  in-tree drivers select it automatically.
165
166config SND_POWERPC_SOC
167	tristate "SoC Audio for Freescale PowerPC CPUs"
168	depends on FSL_SOC || PPC_MPC52xx
169	help
170	  Say Y or M if you want to add support for codecs attached to
171	  the PowerPC CPUs.
172
173config SND_IMX_SOC
174	tristate "SoC Audio for Freescale i.MX CPUs"
175	depends on ARCH_MXC || COMPILE_TEST
176	help
177	  Say Y or M if you want to add support for codecs attached to
178	  the i.MX CPUs.
179
180if SND_POWERPC_SOC
181
182config SND_MPC52xx_DMA
183	tristate
184
185config SND_SOC_POWERPC_DMA
186	tristate
187
188config SND_SOC_POWERPC_QMC_AUDIO
189	tristate "QMC ALSA SoC support"
190	depends on CPM_QMC
191	help
192	  ALSA SoC Audio support using the Freescale QUICC Multichannel
193	  Controller (QMC).
194	  Say Y or M if you want to add support for SoC audio using Freescale
195	  QMC.
196
197comment "SoC Audio support for Freescale PPC boards:"
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_FSL_ASOC_CARD
311	tristate "Generic ASoC Sound Card with ASRC support"
312	depends on OF && I2C
313	# enforce SND_SOC_FSL_ASOC_CARD=m if SND_AC97_CODEC=m:
314	depends on SND_AC97_CODEC || SND_AC97_CODEC=n
315	select SND_SIMPLE_CARD_UTILS
316	select SND_SOC_IMX_AUDMUX
317	select SND_SOC_IMX_PCM_DMA
318	select SND_SOC_FSL_ESAI
319	select SND_SOC_FSL_SAI
320	select SND_SOC_FSL_SSI
321	select SND_SOC_FSL_SPDIF
322	select SND_SOC_TLV320AIC31XX
323	select SND_SOC_WM8994
324	select MFD_WM8994
325	help
326	 ALSA SoC Audio support with ASRC feature for Freescale SoCs that have
327	 ESAI/SAI/SSI and connect with external CODECs such as WM8962, CS42888,
328	 CS4271, CS4272, SGTL5000 and TLV320AIC32x4.
329	 Say Y if you want to add support for Freescale Generic ASoC Sound Card.
330
331config SND_SOC_IMX_AUDMIX
332	tristate "SoC Audio support for i.MX boards with AUDMIX"
333	select SND_SOC_FSL_AUDMIX
334	select SND_SOC_FSL_SAI
335	help
336	  SoC Audio support for i.MX boards with Audio Mixer
337	  Say Y if you want to add support for SoC audio on an i.MX board with
338	  an Audio Mixer.
339
340config SND_SOC_IMX_HDMI
341	tristate "SoC Audio support for i.MX boards with HDMI port"
342	select SND_SOC_FSL_SAI
343	select SND_SOC_FSL_AUD2HTX
344	select SND_SOC_HDMI_CODEC
345	help
346	  ALSA SoC Audio support with HDMI feature for Freescale SoCs that have
347	  SAI/AUD2HTX and connect with internal HDMI IP or external module
348	  SII902X.
349	  Say Y if you want to add support for SoC audio on an i.MX board with
350	  IMX HDMI.
351
352config SND_SOC_IMX_RPMSG
353	tristate "SoC Audio support for i.MX boards with rpmsg"
354	depends on RPMSG
355	depends on OF && I2C
356	select SND_SOC_IMX_PCM_RPMSG
357	select SND_SOC_IMX_AUDIO_RPMSG
358	help
359	  SoC Audio support for i.MX boards with rpmsg.
360	  There should be rpmsg devices defined in other core (M core)
361	  Say Y if you want to add support for SoC audio on an i.MX board with
362	  a rpmsg devices.
363
364config SND_SOC_IMX_CARD
365	tristate "SoC Audio Graph Sound Card support for i.MX boards"
366	depends on OF && I2C
367	select SND_SOC_AK4458
368	select SND_SOC_AK5558
369	select SND_SOC_IMX_PCM_DMA
370	select SND_SOC_FSL_SAI
371	select SND_SIMPLE_CARD_UTILS
372	help
373	  This option enables audio sound card support for i.MX boards
374	  with OF-graph DT bindings.
375	  It also support DPCM of single CPU multi Codec ststem.
376
377endif # SND_IMX_SOC
378
379endmenu
380