1# SPDX-License-Identifier: BSD-3-Clause
2
3config INTEL_HDA
4	bool "Intel HDA driver"
5	depends on CAVS
6	default n
7	help
8	  Select this to enable Intel HDA driver. The HDA driver provides
9	  interface for host and HD-Audio data transfers.
10
11config INTEL_MN
12	bool
13	depends on CAVS
14	default n
15	help
16	  Select this if the platform supports M/N dividers.
17
18config INTEL_MCLK
19	bool
20	depends on CAVS
21	default n
22	help
23	  Select this to enable driver for Intel MCLK and M/N dividers.
24
25config INTEL_SSP
26	bool "Intel SSP driver"
27	depends on CAVS
28	select INTEL_MCLK
29	default n
30	help
31	  Select this to enable Intel Synchronous Serial Port (SSP) driver.
32
33config INTEL_ALH
34	bool "Intel ALH driver"
35	depends on CAVS
36	default n
37	help
38	  Select this to enable Intel ALH driver.
39	  The ALH is an intermediary device, which acts as a hub and provides an
40	  abstracted support for numerous sound interfaces (e.g. SoundWire).
41
42config INTEL_DMIC
43	bool "Intel DMIC driver"
44	depends on CAVS
45	default n
46	help
47	  Select this to enable Intel DMIC driver. The DMIC driver provides
48	  as DAI the SoC direct attach digital microphones interface.
49
50if INTEL_DMIC
51
52choice
53	prompt "Driver operation mode"
54	default INTEL_DMIC_TPLG_PARAMS
55        help
56          The driver can support two operation modes.
57          - A HW registers dump blob that is passed via IPC
58          - DAI tokens those describe the use case PCM format
59            and PDM bus and microphone parameters
60
61config INTEL_DMIC_NHLT
62       bool "Use NHLT DMIC blob"
63       help
64         All registers configuration is retrieved from blob. The
65	 number of channels, sample rate, and PCM format are
66	 defined in the blob and there are no runtime made
67	 configuration choices.
68
69config INTEL_DMIC_TPLG_PARAMS
70       bool "Use parameters from topology"
71       help
72         All registers confifguration is computed on the fly
73	 based on use case and microphone datasheet parameters
74	 and topology defined PCM format. The parameters are
75	 easy to to customize in the topology.
76
77endchoice
78
79if INTEL_DMIC_TPLG_PARAMS
80
81choice
82	prompt "FIR decimation coefficients set"
83	default INTEL_DMIC_FIR_FULL
84
85config INTEL_DMIC_FIR_FULL
86	bool "Full set"
87	select INTEL_DMIC_FIR_DECIMATE_BY_2
88	select INTEL_DMIC_FIR_DECIMATE_BY_3
89	select INTEL_DMIC_FIR_DECIMATE_BY_4
90	select INTEL_DMIC_FIR_DECIMATE_BY_5
91	select INTEL_DMIC_FIR_DECIMATE_BY_6
92	select INTEL_DMIC_FIR_DECIMATE_BY_8
93	select INTEL_DMIC_FIR_DECIMATE_BY_10
94	select INTEL_DMIC_FIR_DECIMATE_BY_12
95	help
96	  This option adds to previous all currently defined FIR
97	  coefficients sets to support sample rates 8 - 96 kHz with
98	  several microphone clock rates. The tables increase the size
99	  of the driver so this option should not be used in minimal
100	  systems.
101
102config INTEL_DMIC_FIR_LOW_MEMORY
103	bool "Small set"
104	select INTEL_DMIC_FIR_DECIMATE_BY_2
105	select INTEL_DMIC_FIR_DECIMATE_BY_6
106	help
107	  This option is used to minimize driver footprint but
108	  preserve support for 48 kHz and 16 kHz sample rates
109	  at typical 2.4 MHz microphone clock rate. The option
110	  enables decimation factors 2 and 6.
111
112config INTEL_DMIC_FIR_CUSTOM
113	bool "Custom set"
114	help
115	  This option is used to select each supported decimation
116	  factor.
117
118endchoice
119
120menu "Decimation factors"
121	visible if INTEL_DMIC_FIR_CUSTOM
122
123config INTEL_DMIC_FIR_DECIMATE_BY_2
124	bool "FIR decimate by 2"
125	default n
126	help
127	  This includes FIR coefficients to decimate by 2 into the build. It
128	  is commonly used for 48 kHz capture with 2.4 MHz microphone clock.
129	  Decimate by 2 in FIR gives good bandwidth vs. Nyquist and narrow
130	  transition region due to lower FIR order need compared to higher
131	  decimation factors.
132
133config INTEL_DMIC_FIR_DECIMATE_BY_3
134	bool "FIR decimate by 3"
135	default n
136	help
137	  This includes FIR coefficients to decimate by 3 into the build.
138	  Decimation by 3 in FIR is useful with microphone clock and sample
139	  rate combinations where a 3 is the lowest factor of the oversampling
140	  ratio. Having this low prime decimation factor for FIR enabled is
141	  useful when decimation by 2 is not possible.
142
143config INTEL_DMIC_FIR_DECIMATE_BY_4
144	bool "FIR decimate by 4"
145	default n
146	help
147	  This includes FIR coefficients to decimate by 4 into the build.
148	  Decimation by 4 in FIR is useful in some cases with high microphone
149	  clock rates due to max. decimation factor limit of CIC. In such
150	  cases decimation by 2 may not be usable.
151
152config INTEL_DMIC_FIR_DECIMATE_BY_5
153	bool "FIR decimate by 5"
154	default n
155	help
156	  This includes FIR coefficients to decimate by 5 into the build.
157	  Decimation by 5 in FIR is useful with microphone clock and sample
158	  rate combinations where a 5 is the lowest factor of the oversampling
159	  ratio.
160
161config INTEL_DMIC_FIR_DECIMATE_BY_6
162	bool "FIR decimate by 6"
163	default n
164	help
165	  This includes FIR coefficients to decimate by 6 into the build. It
166	  is commonly used for 16 kHz capture from secondary FIFO while
167	  primary FIFO is configured for 48 kHz rate.
168
169config INTEL_DMIC_FIR_DECIMATE_BY_8
170	bool "FIR decimate by 8"
171	default n
172	help
173	  This includes FIR coefficients to decimate by 8 into the build.
174	  The high FIR decimation factors are needed for high microphone clock
175	  rates due to max. decimation factor limitation of CIC. Also dual
176	  FIFO configurations may need for one FIR decimation such high
177	  decimation factor.
178
179config INTEL_DMIC_FIR_DECIMATE_BY_10
180	bool "FIR decimate by 10"
181	default n
182	help
183	  This includes FIR coefficients to decimate by 10 into the build.
184	  The high FIR decimation factors are needed for high microphone clock
185	  rates due to max. decimation factor limitation of CIC. Also dual
186	  FIFO configurations may need for one FIR decimation such high
187	  decimation factor.
188
189config INTEL_DMIC_FIR_DECIMATE_BY_12
190	bool "FIR decimate by 12"
191	default n
192	help
193	  This includes FIR coefficients to decimate by 12 into the build. It
194	  is used for 16 kHz capture for secondary FIFO while the primary
195	  FIFO is configured for 96 kHz.
196
197endmenu # "Decimation factors"
198
199endif
200
201endif # INTEL_DMIC
202