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	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
28config 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
38config 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
45config 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
56config 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
68config 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
78config 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
87config 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
98config SND_SOC_FSL_UTILS
99	tristate
100
101config SND_SOC_IMX_PCM_DMA
102	tristate
103	select SND_SOC_GENERIC_DMAENGINE_PCM
104
105config 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
113config 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
120config 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
127if SND_POWERPC_SOC
128
129config SND_MPC52xx_DMA
130	tristate
131
132config SND_SOC_POWERPC_DMA
133	tristate
134
135comment "SoC Audio support for Freescale PPC boards:"
136
137config 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
150config 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
164config 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
178config 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
186config 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
195config 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
204config 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
212endif # SND_POWERPC_SOC
213
214config 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
219if SND_IMX_SOC
220
221config SND_SOC_IMX_SSI
222	tristate
223	select SND_SOC_FSL_UTILS
224
225comment "SoC Audio support for Freescale i.MX boards:"
226
227config 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
238config 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
249config 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
261config 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
273config 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
285config 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
296config 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
305config 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
313config 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
330config 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
339endif # SND_IMX_SOC
340
341endmenu
342