# SPDX-License-Identifier: BSD-3-Clause

config INTEL_HDA
	bool "Intel HDA driver"
	depends on CAVS
	default n
	help
	  Select this to enable Intel HDA driver. The HDA driver provides
	  interface for host and HD-Audio data transfers.

config INTEL_MN
	bool
	depends on CAVS
	default n
	help
	  Select this if the platform supports M/N dividers.

config INTEL_MCLK
	bool
	depends on CAVS
	default n
	help
	  Select this to enable driver for Intel MCLK and M/N dividers.

config INTEL_SSP
	bool "Intel SSP driver"
	depends on CAVS
	select INTEL_MCLK
	default n
	help
	  Select this to enable Intel Synchronous Serial Port (SSP) driver.

config INTEL_ALH
	bool "Intel ALH driver"
	depends on CAVS
	default n
	help
	  Select this to enable Intel ALH driver.
	  The ALH is an intermediary device, which acts as a hub and provides an
	  abstracted support for numerous sound interfaces (e.g. SoundWire).

config INTEL_DMIC
	bool "Intel DMIC driver"
	depends on CAVS
	default n
	help
	  Select this to enable Intel DMIC driver. The DMIC driver provides
	  as DAI the SoC direct attach digital microphones interface.

if INTEL_DMIC

choice
	prompt "FIR decimation coefficients set"
	default INTEL_DMIC_FIR_FULL

config INTEL_DMIC_FIR_FULL
	bool "Full set"
	select INTEL_DMIC_FIR_DECIMATE_BY_2
	select INTEL_DMIC_FIR_DECIMATE_BY_3
	select INTEL_DMIC_FIR_DECIMATE_BY_4
	select INTEL_DMIC_FIR_DECIMATE_BY_5
	select INTEL_DMIC_FIR_DECIMATE_BY_6
	select INTEL_DMIC_FIR_DECIMATE_BY_8
	select INTEL_DMIC_FIR_DECIMATE_BY_12
	help
	  This option adds to previous all currently defined FIR
	  coefficients sets to support sample rates 8 - 96 kHz with
	  several microphone clock rates. The tables increase the size
	  of the driver so this option should not be used in minimal
	  systems.

config INTEL_DMIC_FIR_LOW_MEMORY
	bool "Small set"
	select INTEL_DMIC_FIR_DECIMATE_BY_2
	select INTEL_DMIC_FIR_DECIMATE_BY_6
	help
	  This option is used to minimize driver footprint but
	  preserve support for 48 kHz and 16 kHz sample rates
	  at typical 2.4 MHz microphone clock rate. The option
	  enables decimation factors 2 and 6.

config INTEL_DMIC_FIR_CUSTOM
	bool "Custom set"
	help
	  This option is used to select each supported decimation
	  factor.

endchoice

menu "Decimation factors"
	visible if INTEL_DMIC_FIR_CUSTOM

config INTEL_DMIC_FIR_DECIMATE_BY_2
	bool "FIR decimate by 2"
	default n
	help
	  This includes FIR coefficients to decimate by 2 into the build. It
	  is commonly used for 48 kHz capture with 2.4 MHz microphone clock.
	  Decimate by 2 in FIR gives good bandwidth vs. Nyquist and narrow
	  transition region due to lower FIR order need compared to higher
	  decimation factors.

config INTEL_DMIC_FIR_DECIMATE_BY_3
	bool "FIR decimate by 3"
	default n
	help
	  This includes FIR coefficients to decimate by 3 into the build.
	  Decimation by 3 in FIR is useful with microphone clock and sample
	  rate combinations where a 3 is the lowest factor of the oversampling
	  ratio. Having this low prime decimation factor for FIR enabled is
	  useful when decimation by 2 is not possible.

config INTEL_DMIC_FIR_DECIMATE_BY_4
	bool "FIR decimate by 4"
	default n
	help
	  This includes FIR coefficients to decimate by 4 into the build.
	  Decimation by 4 in FIR is useful in some cases with high microphone
	  clock rates due to max. decimation factor limit of CIC. In such
	  cases decimation by 2 may not be usable.

config INTEL_DMIC_FIR_DECIMATE_BY_5
	bool "FIR decimate by 5"
	default n
	help
	  This includes FIR coefficients to decimate by 5 into the build.
	  Decimation by 5 in FIR is useful with microphone clock and sample
	  rate combinations where a 5 is the lowest factor of the oversampling
	  ratio.

config INTEL_DMIC_FIR_DECIMATE_BY_6
	bool "FIR decimate by 6"
	default n
	help
	  This includes FIR coefficients to decimate by 6 into the build. It
	  is commonly used for 16 kHz capture from secondary FIFO while
	  primary FIFO is configured for 48 kHz rate.

config INTEL_DMIC_FIR_DECIMATE_BY_8
	bool "FIR decimate by 8"
	default n
	help
	  This includes FIR coefficients to decimate by 8 into the build.
	  The high FIR decimation factors are needed for high microphone clock
	  rates due to max. decimation factor limitation of CIC. Also dual
	  FIFO configurations may need for one FIR decimation such high
	  decimation factor.

config INTEL_DMIC_FIR_DECIMATE_BY_12
	bool "FIR decimate by 12"
	default n
	help
	  This includes FIR coefficients to decimate by 12 into the build. It
	  is used for 16 kHz capture for secondary FIFO while the primary
	  FIFO is configured for 96 kHz.

endmenu # "Decimation factors"

endif # INTEL_DMIC
