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