ASoC: Intel: Skylake: Shield against no-NHLT configurations
[sfrench/cifs-2.6.git] / sound / soc / intel / Kconfig
1 # SPDX-License-Identifier: GPL-2.0-only
2 config SND_SOC_INTEL_SST_TOPLEVEL
3         bool "Intel ASoC SST drivers"
4         default y
5         depends on X86 || COMPILE_TEST
6         select SND_SOC_INTEL_MACH
7         help
8           Intel ASoC SST Platform Drivers. If you have a Intel machine that
9           has an audio controller with a DSP and I2S or DMIC port, then
10           enable this option by saying Y
11
12           Note that the answer to this question doesn't directly affect the
13           kernel: saying N will just cause the configurator to skip all
14           the questions about Intel SST drivers.
15
16 if SND_SOC_INTEL_SST_TOPLEVEL
17
18 config SND_SST_IPC
19         tristate
20         # This option controls the IPC core for HiFi2 platforms
21
22 config SND_SST_IPC_PCI
23         tristate
24         select SND_SST_IPC
25         # This option controls the PCI-based IPC for HiFi2 platforms
26         #  (Medfield, Merrifield).
27
28 config SND_SST_IPC_ACPI
29         tristate
30         select SND_SST_IPC
31         # This option controls the ACPI-based IPC for HiFi2 platforms
32         # (Baytrail, Cherrytrail)
33
34 config SND_SOC_INTEL_SST_ACPI
35         tristate
36         # This option controls ACPI-based probing on
37         # Haswell/Broadwell/Baytrail legacy and will be set
38         # when these platforms are enabled
39
40 config SND_SOC_INTEL_SST
41         tristate
42
43 config SND_SOC_INTEL_SST_FIRMWARE
44         tristate
45         select DW_DMAC_CORE
46         # This option controls firmware download on
47         # Haswell/Broadwell/Baytrail legacy and will be set
48         # when these platforms are enabled
49
50 config SND_SOC_INTEL_HASWELL
51         tristate "Haswell/Broadwell Platforms"
52         depends on SND_DMA_SGBUF
53         depends on DMADEVICES && ACPI
54         select SND_SOC_INTEL_SST
55         select SND_SOC_INTEL_SST_ACPI
56         select SND_SOC_INTEL_SST_FIRMWARE
57         select SND_SOC_ACPI_INTEL_MATCH
58         help
59           If you have a Intel Haswell or Broadwell platform connected to
60           an I2S codec, then enable this option by saying Y or m. This is
61           typically used for Chromebooks. This is a recommended option.
62           This option is mutually exclusive with the SOF support on
63           Broadwell. If you want to enable SOF on Broadwell, you need to
64           deselect this option first.
65
66 config SND_SOC_INTEL_BAYTRAIL
67         tristate "Baytrail (legacy) Platforms"
68         depends on DMADEVICES && ACPI && SND_SST_ATOM_HIFI2_PLATFORM=n && SND_SOC_SOF_BAYTRAIL=n
69         select SND_SOC_INTEL_SST
70         select SND_SOC_INTEL_SST_ACPI
71         select SND_SOC_INTEL_SST_FIRMWARE
72         select SND_SOC_ACPI_INTEL_MATCH
73         help
74           If you have a Intel Baytrail platform connected to an I2S codec,
75           then enable this option by saying Y or m. This was typically used
76           for Baytrail Chromebooks but this option is now deprecated and is
77           not recommended, use SND_SST_ATOM_HIFI2_PLATFORM instead.
78
79 config SND_SST_ATOM_HIFI2_PLATFORM
80         tristate
81         select SND_SOC_COMPRESS
82
83 config SND_SST_ATOM_HIFI2_PLATFORM_PCI
84         tristate "PCI HiFi2 (Merrifield) Platforms"
85         depends on X86 && PCI
86         select SND_SST_IPC_PCI
87         select SND_SST_ATOM_HIFI2_PLATFORM
88         help
89           If you have a Intel Merrifield/Edison platform, then
90           enable this option by saying Y or m. Distros will typically not
91           enable this option: while Merrifield/Edison can run a mainline
92           kernel with limited functionality it will require a firmware file
93           which is not in the standard firmware tree
94
95 config SND_SST_ATOM_HIFI2_PLATFORM_ACPI
96         tristate "ACPI HiFi2 (Baytrail, Cherrytrail) Platforms"
97         default ACPI
98         depends on X86 && ACPI && PCI
99         select SND_SST_IPC_ACPI
100         select SND_SST_ATOM_HIFI2_PLATFORM
101         select SND_SOC_ACPI_INTEL_MATCH
102         select IOSF_MBI
103         help
104           If you have a Intel Baytrail or Cherrytrail platform with an I2S
105           codec, then enable this option by saying Y or m. This is a
106           recommended option
107           This option is mutually exclusive with the SOF support on
108           Baytrail/Cherrytrail. If you want to enable SOF on
109           Baytrail/Cherrytrail, you need to deselect this option first.
110
111 config SND_SOC_INTEL_SKYLAKE
112         tristate "All Skylake/SST Platforms"
113         depends on PCI && ACPI
114         depends on COMMON_CLK
115         select SND_SOC_INTEL_SKL
116         select SND_SOC_INTEL_APL
117         select SND_SOC_INTEL_KBL
118         select SND_SOC_INTEL_GLK
119         select SND_SOC_INTEL_CNL
120         select SND_SOC_INTEL_CFL
121         help
122           This is a backwards-compatible option to select all devices
123           supported by the Intel SST/Skylake driver. This option is no
124           longer recommended and will be deprecated when the SOF
125           driver is introduced.  Distributions should explicitly
126           select which platform uses this driver.
127
128 config SND_SOC_INTEL_SKL
129         tristate "Skylake Platforms"
130         depends on PCI && ACPI
131         depends on COMMON_CLK
132         select SND_SOC_INTEL_SKYLAKE_FAMILY
133         help
134           If you have a Intel Skylake platform with the DSP enabled
135           in the BIOS then enable this option by saying Y or m.
136
137 config SND_SOC_INTEL_APL
138         tristate "Broxton/ApolloLake Platforms"
139         depends on PCI && ACPI
140         depends on COMMON_CLK
141         select SND_SOC_INTEL_SKYLAKE_FAMILY
142         help
143           If you have a Intel Broxton/ApolloLake platform with the DSP
144           enabled in the BIOS then enable this option by saying Y or m.
145
146 config SND_SOC_INTEL_KBL
147         tristate "Kabylake Platforms"
148         depends on PCI && ACPI
149         depends on COMMON_CLK
150         select SND_SOC_INTEL_SKYLAKE_FAMILY
151         help
152           If you have a Intel Kabylake platform with the DSP
153           enabled in the BIOS then enable this option by saying Y or m.
154
155 config SND_SOC_INTEL_GLK
156         tristate "GeminiLake Platforms"
157         depends on PCI && ACPI
158         depends on COMMON_CLK
159         select SND_SOC_INTEL_SKYLAKE_FAMILY
160         help
161           If you have a Intel GeminiLake platform with the DSP
162           enabled in the BIOS then enable this option by saying Y or m.
163
164 config SND_SOC_INTEL_CNL
165         tristate "CannonLake/WhiskyLake Platforms"
166         depends on PCI && ACPI
167         depends on COMMON_CLK
168         select SND_SOC_INTEL_SKYLAKE_FAMILY
169         help
170           If you have a Intel CNL/WHL platform with the DSP
171           enabled in the BIOS then enable this option by saying Y or m.
172
173 config SND_SOC_INTEL_CFL
174         tristate "CoffeeLake Platforms"
175         depends on PCI && ACPI
176         depends on COMMON_CLK
177         select SND_SOC_INTEL_SKYLAKE_FAMILY
178         help
179           If you have a Intel CoffeeLake platform with the DSP
180           enabled in the BIOS then enable this option by saying Y or m.
181
182 config SND_SOC_INTEL_CML_H
183         tristate "CometLake-H Platforms"
184         depends on PCI && ACPI
185         depends on COMMON_CLK
186         select SND_SOC_INTEL_SKYLAKE_FAMILY
187         help
188           If you have a Intel CometLake-H platform with the DSP
189           enabled in the BIOS then enable this option by saying Y or m.
190
191 config SND_SOC_INTEL_CML_LP
192         tristate "CometLake-LP Platforms"
193         depends on PCI && ACPI
194         depends on COMMON_CLK
195         select SND_SOC_INTEL_SKYLAKE_FAMILY
196         help
197           If you have a Intel CometLake-LP platform with the DSP
198           enabled in the BIOS then enable this option by saying Y or m.
199
200 config SND_SOC_INTEL_SKYLAKE_FAMILY
201         tristate
202         select SND_SOC_INTEL_SKYLAKE_COMMON
203
204 if SND_SOC_INTEL_SKYLAKE_FAMILY
205
206 config SND_SOC_INTEL_SKYLAKE_SSP_CLK
207         tristate
208
209 config SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC
210         bool "HDAudio codec support"
211         help
212           This option broke audio on Linus' Skylake laptop in December 2018
213           and the race conditions during the probe were not fixed since.
214           This option is DEPRECATED, all HDaudio codec support needs
215           to be handled by the SOF driver.
216           Distributions should not enable this option and there are no known
217           users of this capability.
218
219 config SND_SOC_INTEL_SKYLAKE_COMMON
220         tristate
221         select SND_HDA_EXT_CORE
222         select SND_HDA_DSP_LOADER
223         select SND_SOC_TOPOLOGY
224         select SND_SOC_INTEL_SST
225         select SND_SOC_HDAC_HDA if SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC
226         select SND_SOC_ACPI_INTEL_MATCH
227         select SND_INTEL_DSP_CONFIG
228         help
229           If you have a Intel Skylake/Broxton/ApolloLake/KabyLake/
230           GeminiLake or CannonLake platform with the DSP enabled in the BIOS
231           then enable this option by saying Y or m.
232
233 endif ## SND_SOC_INTEL_SKYLAKE_FAMILY
234
235 endif ## SND_SOC_INTEL_SST_TOPLEVEL
236
237 if SND_SOC_INTEL_SST_TOPLEVEL || SND_SOC_SOF_INTEL_TOPLEVEL
238
239 config SND_SOC_ACPI_INTEL_MATCH
240         tristate
241         select SND_SOC_ACPI if ACPI
242         # this option controls the compilation of ACPI matching tables and
243         # helpers and is not meant to be selected by the user.
244
245 endif ## SND_SOC_INTEL_SST_TOPLEVEL || SND_SOC_SOF_INTEL_TOPLEVEL
246
247
248 # ASoC codec drivers
249 source "sound/soc/intel/boards/Kconfig"