1# SPDX-License-Identifier: GPL-2.0-only
2config SND_SOC_SOF_INTEL_TOPLEVEL
3	bool "SOF support for Intel audio DSPs"
4	depends on X86 || COMPILE_TEST
5	help
6	  This adds support for Sound Open Firmware for Intel(R) platforms.
7	  Say Y if you have such a device.
8	  If unsure select "N".
9
10if SND_SOC_SOF_INTEL_TOPLEVEL
11
12config SND_SOC_SOF_INTEL_HIFI_EP_IPC
13	tristate
14	help
15	  This option is not user-selectable but automagically handled by
16	  'select' statements at a higher level.
17
18config SND_SOC_SOF_INTEL_ATOM_HIFI_EP
19	tristate
20	select SND_SOC_SOF_INTEL_COMMON
21	select SND_SOC_SOF_INTEL_HIFI_EP_IPC
22	help
23	  This option is not user-selectable but automagically handled by
24	  'select' statements at a higher level.
25
26config SND_SOC_SOF_INTEL_COMMON
27	tristate
28	select SND_SOC_SOF
29	select SND_SOC_ACPI_INTEL_MATCH
30	select SND_SOC_SOF_XTENSA
31	select SND_SOC_INTEL_MACH
32	select SND_SOC_ACPI if ACPI
33	select SND_INTEL_DSP_CONFIG
34	help
35	  This option is not user-selectable but automagically handled by
36	  'select' statements at a higher level.
37
38if SND_SOC_SOF_ACPI
39
40config SND_SOC_SOF_BAYTRAIL
41	tristate "SOF support for Baytrail, Braswell and Cherrytrail"
42	default SND_SOC_SOF_ACPI
43	select SND_SOC_SOF_IPC3
44	select SND_SOC_SOF_INTEL_COMMON
45	select SND_SOC_SOF_INTEL_ATOM_HIFI_EP
46	select SND_SOC_SOF_ACPI_DEV
47	select IOSF_MBI if X86 && PCI
48	help
49	  This adds support for Sound Open Firmware for Intel(R) platforms
50	  using the Baytrail, Braswell or Cherrytrail processors.
51	  This option can coexist in the same build with the Atom legacy
52	  drivers, currently the default but which will be deprecated
53	  at some point.
54	  Existing firmware/topology binaries and UCM configurations
55	  typically located in the root file system are already
56	  compatible with both SOF or Atom/SST legacy drivers.
57	  This is a recommended option for distributions.
58	  Say Y if you want to enable SOF on Baytrail/Cherrytrail.
59	  If unsure select "N".
60
61config SND_SOC_SOF_BROADWELL
62	tristate "SOF support for Broadwell"
63	default SND_SOC_SOF_ACPI
64	select SND_SOC_SOF_IPC3
65	select SND_SOC_SOF_INTEL_COMMON
66	select SND_SOC_SOF_INTEL_HIFI_EP_IPC
67	select SND_SOC_SOF_ACPI_DEV
68	help
69	  This adds support for Sound Open Firmware for Intel(R) platforms
70	  using the Broadwell processors.
71	  This option can coexist in the same build with the default 'catpt'
72	  driver.
73	  Existing firmware/topology binaries and UCM configurations typically
74	  located in the root file system are already compatible with both SOF
75	  or catpt drivers.
76	  SOF does not fully support Broadwell and has limitations related to
77	  DMA and suspend-resume, this is not a recommended option for
78	  distributions.
79	  Say Y if you want to enable SOF on Broadwell.
80	  If unsure select "N".
81
82endif ## SND_SOC_SOF_ACPI
83
84if SND_SOC_SOF_PCI
85
86config SND_SOC_SOF_MERRIFIELD
87	tristate "SOF support for Tangier/Merrifield"
88	default SND_SOC_SOF_PCI
89	select SND_SOC_SOF_PCI_DEV
90	select SND_SOC_SOF_IPC3
91	select SND_SOC_SOF_INTEL_ATOM_HIFI_EP
92	help
93	  This adds support for Sound Open Firmware for Intel(R) platforms
94	  using the Tangier/Merrifield processors.
95	  Say Y if you have such a device.
96	  If unsure select "N".
97
98config SND_SOC_SOF_INTEL_SKL
99	tristate
100	select SND_SOC_SOF_HDA_COMMON
101	select SND_SOC_SOF_IPC4
102
103config SND_SOC_SOF_SKYLAKE
104	tristate "SOF support for SkyLake"
105	default SND_SOC_SOF_PCI
106	select SND_SOC_SOF_INTEL_SKL
107	help
108	  This adds support for the Intel(R) platforms using the SkyLake processors.
109	  Say Y if you have such a device.
110	  If unsure select "N".
111	  This is intended only for developers and not a recommend option for distros.
112
113config SND_SOC_SOF_KABYLAKE
114	tristate "SOF support for KabyLake"
115	default SND_SOC_SOF_PCI
116	select SND_SOC_SOF_INTEL_SKL
117	help
118	  This adds support for the Intel(R) platforms using the KabyLake processors.
119	  Say Y if you have such a device.
120	  If unsure select "N".
121	  This is intended only for developers and not a recommend option for distros.
122
123config SND_SOC_SOF_INTEL_APL
124	tristate
125	select SND_SOC_SOF_HDA_COMMON
126	select SND_SOC_SOF_IPC3
127	select SND_SOC_SOF_IPC4
128
129config SND_SOC_SOF_APOLLOLAKE
130	tristate "SOF support for Apollolake"
131	default SND_SOC_SOF_PCI
132	select SND_SOC_SOF_INTEL_APL
133	help
134	  This adds support for Sound Open Firmware for Intel(R) platforms
135	  using the Apollolake processors.
136	  Say Y if you have such a device.
137	  If unsure select "N".
138
139config SND_SOC_SOF_GEMINILAKE
140	tristate "SOF support for GeminiLake"
141	default SND_SOC_SOF_PCI
142	select SND_SOC_SOF_INTEL_APL
143	help
144	  This adds support for Sound Open Firmware for Intel(R) platforms
145	  using the Geminilake processors.
146	  Say Y if you have such a device.
147	  If unsure select "N".
148
149config SND_SOC_SOF_INTEL_CNL
150	tristate
151	select SND_SOC_SOF_HDA_COMMON
152	select SND_SOC_SOF_INTEL_SOUNDWIRE_LINK_BASELINE
153	select SND_SOC_SOF_IPC3
154	select SND_SOC_SOF_IPC4
155
156config SND_SOC_SOF_CANNONLAKE
157	tristate "SOF support for Cannonlake"
158	default SND_SOC_SOF_PCI
159	select SND_SOC_SOF_INTEL_CNL
160	help
161	  This adds support for Sound Open Firmware for Intel(R) platforms
162	  using the Cannonlake processors.
163	  Say Y if you have such a device.
164	  If unsure select "N".
165
166config SND_SOC_SOF_COFFEELAKE
167	tristate "SOF support for CoffeeLake"
168	default SND_SOC_SOF_PCI
169	select SND_SOC_SOF_INTEL_CNL
170	help
171	  This adds support for Sound Open Firmware for Intel(R) platforms
172	  using the Coffeelake processors.
173	  Say Y if you have such a device.
174	  If unsure select "N".
175
176config SND_SOC_SOF_COMETLAKE
177	tristate "SOF support for CometLake"
178	default SND_SOC_SOF_PCI
179	select SND_SOC_SOF_INTEL_CNL
180	help
181	  This adds support for Sound Open Firmware for Intel(R) platforms
182	  using the Cometlake processors.
183	  If unsure select "N".
184
185config SND_SOC_SOF_INTEL_ICL
186	tristate
187	select SND_SOC_SOF_HDA_COMMON
188	select SND_SOC_SOF_INTEL_SOUNDWIRE_LINK_BASELINE
189	select SND_SOC_SOF_IPC3
190	select SND_SOC_SOF_IPC4
191
192config SND_SOC_SOF_ICELAKE
193	tristate "SOF support for Icelake"
194	default SND_SOC_SOF_PCI
195	select SND_SOC_SOF_INTEL_ICL
196	help
197	  This adds support for Sound Open Firmware for Intel(R) platforms
198	  using the Icelake processors.
199	  Say Y if you have such a device.
200	  If unsure select "N".
201
202config SND_SOC_SOF_JASPERLAKE
203	tristate "SOF support for JasperLake"
204	default SND_SOC_SOF_PCI
205	select SND_SOC_SOF_INTEL_ICL
206	help
207	  This adds support for Sound Open Firmware for Intel(R) platforms
208	  using the JasperLake processors.
209	  Say Y if you have such a device.
210	  If unsure select "N".
211
212config SND_SOC_SOF_INTEL_TGL
213	tristate
214	select SND_SOC_SOF_HDA_COMMON
215	select SND_SOC_SOF_INTEL_SOUNDWIRE_LINK_BASELINE
216	select SND_SOC_SOF_IPC3
217	select SND_SOC_SOF_IPC4
218
219config SND_SOC_SOF_TIGERLAKE
220	tristate "SOF support for Tigerlake"
221	default SND_SOC_SOF_PCI
222	select SND_SOC_SOF_INTEL_TGL
223	help
224	  This adds support for Sound Open Firmware for Intel(R) platforms
225	  using the Tigerlake processors.
226	  Say Y if you have such a device.
227	  If unsure select "N".
228
229config SND_SOC_SOF_ELKHARTLAKE
230	tristate "SOF support for ElkhartLake"
231	default SND_SOC_SOF_PCI
232	select SND_SOC_SOF_INTEL_TGL
233	help
234	  This adds support for Sound Open Firmware for Intel(R) platforms
235	  using the ElkhartLake processors.
236	  Say Y if you have such a device.
237	  If unsure select "N".
238
239config SND_SOC_SOF_ALDERLAKE
240	tristate "SOF support for Alderlake"
241	default SND_SOC_SOF_PCI
242	select SND_SOC_SOF_INTEL_TGL
243	help
244	  This adds support for Sound Open Firmware for Intel(R) platforms
245	  using the Alderlake processors.
246	  Say Y if you have such a device.
247	  If unsure select "N".
248
249config SND_SOC_SOF_INTEL_MTL
250	tristate
251	select SND_SOC_SOF_HDA_COMMON
252	select SND_SOC_SOF_INTEL_SOUNDWIRE_LINK_BASELINE
253	select SND_SOC_SOF_IPC4
254
255config SND_SOC_SOF_METEORLAKE
256	tristate "SOF support for Meteorlake"
257	default SND_SOC_SOF_PCI
258	select SND_SOC_SOF_INTEL_MTL
259	help
260	  This adds support for Sound Open Firmware for Intel(R) platforms
261	  using the Meteorlake processors.
262	  Say Y if you have such a device.
263	  If unsure select "N".
264
265config SND_SOC_SOF_INTEL_LNL
266	tristate
267	select SND_SOC_SOF_HDA_COMMON
268	select SND_SOC_SOF_INTEL_SOUNDWIRE_LINK_BASELINE
269	select SND_SOC_SOF_IPC4
270
271config SND_SOC_SOF_LUNARLAKE
272	tristate "SOF support for Lunarlake"
273	default SND_SOC_SOF_PCI
274	select SND_SOC_SOF_INTEL_LNL
275	help
276	  This adds support for Sound Open Firmware for Intel(R) platforms
277	  using the Lunarlake processors.
278	  Say Y if you have such a device.
279	  If unsure select "N".
280
281config SND_SOC_SOF_HDA_COMMON
282	tristate
283	select SND_SOC_SOF_INTEL_COMMON
284	select SND_SOC_SOF_PCI_DEV
285	select SND_INTEL_DSP_CONFIG
286	select SND_SOC_SOF_HDA_LINK_BASELINE
287	select SND_SOC_SOF_HDA_PROBES
288	select SND_SOC_SOF_HDA_MLINK if SND_SOC_SOF_HDA_LINK
289	help
290	  This option is not user-selectable but automagically handled by
291	  'select' statements at a higher level.
292
293config SND_SOC_SOF_HDA_MLINK
294	tristate
295	help
296	  This option is not user-selectable but automagically handled by
297	  'select' statements at a higher level.
298
299if SND_SOC_SOF_HDA_COMMON
300
301config SND_SOC_SOF_HDA_LINK
302	bool "SOF support for HDA Links(HDA/HDMI)"
303	help
304	  This adds support for HDA links(HDA/HDMI) with Sound Open Firmware
305	  for Intel(R) platforms.
306	  Say Y if you want to enable HDA links with SOF.
307	  If unsure select "N".
308
309config SND_SOC_SOF_HDA_AUDIO_CODEC
310	bool "SOF support for HDAudio codecs"
311	depends on SND_SOC_SOF_HDA_LINK
312	select SND_SOC_SOF_PROBE_WORK_QUEUE
313	help
314	  This adds support for HDAudio codecs with Sound Open Firmware
315	  for Intel(R) platforms.
316	  Say Y if you want to enable HDAudio codecs with SOF.
317	  If unsure select "N".
318
319endif ## SND_SOC_SOF_HDA_COMMON
320
321config SND_SOC_SOF_HDA_LINK_BASELINE
322	tristate
323	select SND_SOC_SOF_HDA if SND_SOC_SOF_HDA_LINK
324	help
325	  This option is not user-selectable but automagically handled by
326	  'select' statements at a higher level.
327
328config SND_SOC_SOF_HDA
329	tristate
330	select SND_HDA_EXT_CORE if SND_SOC_SOF_HDA_LINK
331	select SND_SOC_HDAC_HDA if SND_SOC_SOF_HDA_AUDIO_CODEC
332	help
333	  This option is not user-selectable but automagically handled by
334	  'select' statements at a higher level.
335
336config SND_SOC_SOF_HDA_PROBES
337	tristate
338	select SND_SOC_SOF_DEBUG_PROBES
339	help
340	  The option enables the data probing for Intel(R) Skylake and newer
341	  (HDA) platforms.
342	  This option is not user-selectable but automagically handled by
343	  'select' statements at a higher level.
344
345config SND_SOC_SOF_INTEL_SOUNDWIRE_LINK_BASELINE
346	tristate
347	select SOUNDWIRE_INTEL if SND_SOC_SOF_INTEL_SOUNDWIRE != n
348	select SND_INTEL_SOUNDWIRE_ACPI if SND_SOC_SOF_INTEL_SOUNDWIRE != n
349
350config SND_SOC_SOF_INTEL_SOUNDWIRE
351	tristate "SOF support for SoundWire"
352	default SND_SOC_SOF_INTEL_SOUNDWIRE_LINK_BASELINE
353	depends on SND_SOC_SOF_INTEL_SOUNDWIRE_LINK_BASELINE
354	depends on ACPI && SOUNDWIRE
355	depends on !(SOUNDWIRE=m && SND_SOC_SOF_INTEL_SOUNDWIRE_LINK_BASELINE=y)
356	help
357	  This adds support for SoundWire with Sound Open Firmware
358	  for Intel(R) platforms.
359	  Say Y if you want to enable SoundWire links with SOF.
360	  If unsure select "N".
361
362endif ## SND_SOC_SOF_PCI
363
364endif ## SND_SOC_SOF_INTEL_TOPLEVEL
365