# SPDX-License-Identifier: GPL-2.0-only

menu "CODEC drivers"

config DEVICE_MODULES_SND_SOC_ALL_CODECS
	tristate "Build all ASoC CODEC drivers"
	depends on COMPILE_TEST
	imply DEVICE_MODULES_SND_SOC_MT6351
	imply DEVICE_MODULES_SND_SOC_MT6358
	imply DEVICE_MODULES_SND_SOC_MT6359
	imply SND_SOC_MT6359P
	imply SND_SOC_MT6368
	imply DEVICE_MODULES_SND_SOC_HDMI_CODEC
	imply DEVICE_MODULES_SND_SOC_EARC_RX
	imply SND_SOC_RT5512
	imply SND_SOC_TFA9874
	help
	  Normally ASoC codec drivers are only built if a machine driver which
	  uses them is also built since they are only usable with a machine
	  driver.  Selecting this option will allow these drivers to be built
	  without an explicit machine driver for test and development purposes.

	  Support for the bus types used to access the codecs to be built must
	  be selected separately.

	  If unsure select "N".

config DEVICE_MODULES_SND_SOC_HDMI_CODEC
	tristate
	select SND_PCM_ELD
	select SND_PCM_IEC958
	select HDMI

config DEVICE_MODULES_SND_SOC_EARC_RX
    tristate "MTK_EARC Receiver"
	help
	  enable EARC driver.
	  select this if support EARC function.
	  this is a audio in path.
	  EARC meet HDMI2.1 spec.
config SND_SOC_RT5512
	tristate "Mediatek RT5512 speaker amplifier"
	depends on I2C
	help
	  Config of RT5512. It is a Smart power
	  amplifier which contain speaker protection,
	  multi-band DRC, equalizer function. It would
	  be set to yes if device with RT5512 on it.

config SND_SOC_TFA9874
	tristate "NXP TFA9874 speaker amplifier"
	depends on I2C
	help
	  Config of TFA9874. It is a Smart power
	  amplifier which contain speaker protection,
	  multi-band DRC, equalizer function. It would
	  be set to yes if device with TFA9874 on it.

config SND_SOC_MT6338
	tristate "MediaTek MT6338 Codec driver"
	depends on MFD_MT6338
	help
	  MediaTek MT6338 is a audio codec which contain
	  three ADC for uplink path(MICs), and
	  three DAC for downlink path(handset,
	  headset, lineout).

config SND_SOC_MT6338_ACCDET
	tristate "MediaTek MT6338 ACCDET driver"
	depends on MFD_MT6338
	help
	  ACCDET means Accessory Detection technology,
	  MediaTek develop it for ASoC codec soc-jack
	  detection mechanism. Select N if you don't
	  have jack on board.

config DEVICE_MODULES_SND_SOC_MT6351
	tristate "MediaTek MT6351 Codec"

config DEVICE_MODULES_SND_SOC_MT6358
	tristate "MediaTek MT6358 Codec"
	help
	  Enable support for the platform which uses MT6358 as
	  external codec device.

config DEVICE_MODULES_SND_SOC_MT6359
	tristate "MediaTek MT6359 Codec"
	depends on DEVICE_MODULES_MTK_PMIC_WRAP
	help
	  Enable support for the platform which uses MT6359 as
	  external codec device.

config DEVICE_MODULES_SND_SOC_MT6359_ACCDET
	tristate "MediaTek MT6359 ACCDET driver"
	depends on DEVICE_MODULES_MTK_PMIC_WRAP
	help
	  ACCDET means Accessory Detection technology, MediaTek develop it
	  for ASoC codec soc-jack detection mechanism.
	  Select N if you don't have jack on board.

config SND_SOC_MT6368_ACCDET
	tristate "MediaTek MT6368 ACCDET driver"
	depends on MFD_MTK_SPMI_PMIC
	help
	  ACCDET means Accessory Detection technology,
	  MediaTek develop it for ASoC codec soc-jack
	  detection mechanism. Select N if you don't
	  have jack on board.

config SND_SOC_MT6359P
	tristate "MediaTek MT6359P Codec driver"
	help
	  MediaTek MT6359P is a codec which contain
	  three ADC for uplink path(MICs), and
	  three DAC for downlink path(handset,
	  headset, lineout).

config SND_SOC_MT6359P_ACCDET
	tristate "MediaTek MT6359 ACCDET driver"
	help
	  ACCDET means Accessory Detection technology, MediaTek develop it
	  for ASoC codec soc-jack detection mechanism.
	  Select N if you don't have jack on board.

config SND_SOC_MT6368
	tristate "MediaTek MT6368 Codec driver"
	help
	  MediaTek MT6368 is a audio codec which contain
	  three ADC for uplink path(MICs), and
	  three DAC for downlink path(handset,
	  headset, lineout).

endmenu
