# SPDX-License-Identifier: GPL-2.0-only
config SND_SOC_MEDIATEK
	tristate
	select REGMAP_MMIO

config SND_SOC_MT2701
	tristate "ASoC support for Mediatek MT2701 chip"
	depends on ARCH_MEDIATEK
	select SND_SOC_MEDIATEK
	help
	  This adds ASoC driver for Mediatek MT2701 boards
	  that can be used with other codecs.
	  Select Y if you have such device.
	  If unsure select "N".

config SND_SOC_MT2701_CS42448
	tristate "ASoc Audio driver for MT2701 with CS42448 codec"
	depends on SND_SOC_MT2701 && I2C
	select SND_SOC_CS42XX8_I2C
	select SND_SOC_BT_SCO
	help
	  This adds ASoC driver for Mediatek MT2701 boards
	  with the CS42448 codecs.
	  Select Y if you have such device.
	  If unsure select "N".

config SND_SOC_MT2701_WM8960
	tristate "ASoc Audio driver for MT2701 with WM8960 codec"
	depends on SND_SOC_MT2701 && I2C
	select SND_SOC_WM8960
	help
	  This adds ASoC driver for Mediatek MT2701 boards
	  with the WM8960 codecs.
	  Select Y if you have such device.
	  If unsure select "N".

config SND_SOC_MT6797
	tristate "ASoC support for Mediatek MT6797 chip"
	depends on ARCH_MEDIATEK
	select SND_SOC_MEDIATEK
	help
	  This adds ASoC driver for Mediatek MT6797 boards
	  that can be used with other codecs.
	  Select Y if you have such device.
	  If unsure select "N".

config SND_SOC_MT6797_MT6351
	tristate "ASoc Audio driver for MT6797 with MT6351 codec"
	depends on SND_SOC_MT6797 && MTK_PMIC_WRAP
	select SND_SOC_MT6351
	help
	  This adds ASoC driver for Mediatek MT6797 boards
	  with the MT6351 codecs.
	  Select Y if you have such device.
	  If unsure select "N".

config SND_SOC_MT8173
	tristate "ASoC support for Mediatek MT8173 chip"
	depends on ARCH_MEDIATEK
	select SND_SOC_MEDIATEK
	help
	  This adds ASoC platform driver support for Mediatek MT8173 chip
	  that can be used with other codecs.
	  Select Y if you have such device.
	  Ex: MT8173

config SND_SOC_MT8173_MAX98090
	tristate "ASoC Audio driver for MT8173 with MAX98090 codec"
	depends on SND_SOC_MT8173 && I2C
	select SND_SOC_MAX98090
	help
	  This adds ASoC driver for Mediatek MT8173 boards
	  with the MAX98090 audio codec.
	  Select Y if you have such device.
	  If unsure select "N".

config SND_SOC_MT8173_RT5650
	tristate "ASoC Audio driver for MT8173 with RT5650 codec"
	depends on SND_SOC_MT8173 && I2C
	select SND_SOC_RT5645
	select SND_SOC_HDMI_CODEC
	help
	  This adds ASoC driver for Mediatek MT8173 boards
	  with the RT5650 audio codec.
	  Select Y if you have such device.
	  If unsure select "N".

config SND_SOC_MT8173_RT5650_RT5514
	tristate "ASoC Audio driver for MT8173 with RT5650 RT5514 codecs"
	depends on SND_SOC_MT8173 && I2C
	select SND_SOC_RT5645
	select SND_SOC_RT5514
	help
	  This adds ASoC driver for Mediatek MT8173 boards
	  with the RT5650 and RT5514 codecs.
	  Select Y if you have such device.
	  If unsure select "N".

config SND_SOC_MT8173_RT5650_RT5676
	tristate "ASoC Audio driver for MT8173 with RT5650 RT5676 codecs"
	depends on SND_SOC_MT8173 && I2C
	select SND_SOC_RT5645
	select SND_SOC_RT5677
	select SND_SOC_HDMI_CODEC
	help
	  This adds ASoC driver for Mediatek MT8173 boards
	  with the RT5650 and RT5676 codecs.
	  Select Y if you have such device.
	  If unsure select "N".

config SND_SOC_MT8183
	tristate "ASoC support for Mediatek MT8183 chip"
	depends on ARCH_MEDIATEK
	select SND_SOC_MEDIATEK
	help
	  This adds ASoC platform driver support for Mediatek MT8183 chip
	  that can be used with other codecs.
	  Select Y if you have such device.
	  If unsure select "N".

config SND_SOC_MT8183_MT6358_TS3A227E_MAX98357A
	tristate "ASoC Audio driver for MT8183 with MT6358 TS3A227E MAX98357A RT1015 codec"
	depends on I2C
	depends on SND_SOC_MT8183
	select SND_SOC_MT6358
	select SND_SOC_MAX98357A
	select SND_SOC_RT1015
	select SND_SOC_RT1015P
	select SND_SOC_BT_SCO
	select SND_SOC_TS3A227E
	select SND_SOC_CROS_EC_CODEC if CROS_EC
	select SND_SOC_HDMI_CODEC
	help
	  This adds ASoC driver for Mediatek MT8183 boards
	  with the MT6358 TS3A227E MAX98357A RT1015 audio codec.
	  Select Y if you have such device.
	  If unsure select "N".

config SND_SOC_MT8183_DA7219_MAX98357A
	tristate "ASoC Audio driver for MT8183 with DA7219 MAX98357A RT1015 codec"
	depends on SND_SOC_MT8183 && I2C
	select SND_SOC_MT6358
	select SND_SOC_MAX98357A
	select SND_SOC_RT1015
	select SND_SOC_RT1015P
	select SND_SOC_DA7219
	select SND_SOC_BT_SCO
	select SND_SOC_HDMI_CODEC
	help
	  This adds ASoC driver for Mediatek MT8183 boards
	  with the DA7219 MAX98357A RT1015 audio codec.
	  Select Y if you have such device.
	  If unsure select "N".

config SND_SOC_MTK_BTCVSD
	tristate "ALSA BT SCO CVSD/MSBC Driver"
	help
	  This is for software BTCVSD. This enable
	  the function for transferring/receiving
	  BT encoded data to/from BT firmware.
	  Select Y if you have such device.
	  If unsure select "N".

config SND_SOC_MT8192
	tristate "ASoC support for Mediatek MT8192 chip"
	depends on ARCH_MEDIATEK
	select SND_SOC_MEDIATEK
	help
	  This adds ASoC platform driver support for Mediatek MT8192 chip
	  that can be used with other codecs.
	  Select Y if you have such device.
	  If unsure select "N".

config SND_SOC_MT8192_MT6359_RT1015_RT5682
	tristate "ASoC Audio driver for MT8192 with MT6359 RT1015 RT5682 codec"
	depends on I2C
	depends on SND_SOC_MT8192 && MTK_PMIC_WRAP
	select SND_SOC_MT6359
	select SND_SOC_RT1015
	select SND_SOC_RT1015P
	select SND_SOC_RT5682_I2C
	select SND_SOC_DMIC
	help
	  This adds ASoC driver for Mediatek MT8192 boards
	  with the MT6359 RT1015 RT5682 audio codec.
	  Select Y if you have such device.
	  If unsure select "N".

config SND_SOC_MT8195
	tristate "ASoC support for Mediatek MT8195 chip"
	depends on ARCH_MEDIATEK || COMPILE_TEST
	depends on COMMON_CLK
	select SND_SOC_MEDIATEK
	select MFD_SYSCON if SND_SOC_MT6359
	help
	  This adds ASoC platform driver support for Mediatek MT8195 chip
	  that can be used with other codecs.
	  Select Y if you have such device.
	  If unsure select "N".

config SND_SOC_MT8195_MT6359_RT1019_RT5682
	tristate "ASoC Audio driver for MT8195 with MT6359 RT1019 RT5682 codec"
	depends on I2C
	depends on SND_SOC_MT8195 && MTK_PMIC_WRAP
	select SND_SOC_MT6359
	select SND_SOC_RT1015P
	select SND_SOC_RT5682_I2C
	select SND_SOC_DMIC
	select SND_SOC_HDMI_CODEC
	help
	  This adds ASoC driver for Mediatek MT8195 boards
	  with the MT6359 RT1019 RT5682 audio codec.
	  Select Y if you have such device.
	  If unsure select "N".

config SND_SOC_MT8518
	tristate "ASoC support for Mediatek MT8518 chip"
	select SND_SOC_MEDIATEK
	help
	  This adds ASoC platform driver support for Mediatek MT8518 chip
	  that can be used with other codecs.
	  Select Y if you have such device.
	  Ex: MT8158

config SND_SOC_MT8518_EVB
	tristate "ASoC Audio driver for MT8158 with internal codec"
	depends on SND_SOC_MT8518
	select SND_SOC_MT8518_CODEC
	help
	  This adds ASoC driver for Mediatek MT8518 boards
	  with the internal audio codec.
	  Select Y if you have such device.
	  If unsure select "N".

config SND_SOC_MT8518A_P1
	tristate "ASoC Audio driver for MT8158 with RT9114 codec"
	depends on SND_SOC_MT8518
	select RT_REGMAP
	select SND_SOC_RT9114
	help
	  This adds ASoC driver for Mediatek MT8518 boards
	  with the RT9114 codec.
	  Select Y if you have such device.
	  If unsure select "N".

config SND_SOC_MT8518B_P1
	tristate "ASoC Audio driver for MT8158 with internal codec"
	depends on SND_SOC_MT8518
	select SND_SOC_MT8518_CODEC
	help
	  This adds ASoC driver for Mediatek MT8518 boards
	  with the internal audio codec.
	  Select Y if you have such device.
	  If unsure select "N".

config SND_SOC_MT8518S_P2
	tristate "ASoC Audio driver for MT8158 with internal and AK4438 codec"
	depends on SND_SOC_MT8518
	select SND_SOC_MT8518_CODEC
	select SND_SOC_TLV320ADC3101
	select SND_SOC_AK4438
	help
	  This adds ASoC driver for Mediatek MT8518 boards
	  with the internal audio codec.
	  Select Y if you have such device.
	  If unsure select "N".

config SND_SOC_MT8518S_BRAVO
	tristate "ASoC Audio driver for Bravo board"
	depends on SND_SOC_MT8518
	select SND_SOC_TAS5720
	help
	  This adds ASoC driver for Bravo board
	  with the internal audio codec.
	  Select Y if you have such device.
	  If unsure select "N".

config SND_SOC_GAPP_AUDIO_CONTROL
	bool "GAPP Audio Control Support"
	default n
	help
	  This adds audio controls for Mediatek boards
	  with the GAPP feature support.
	  Select Y if you have such feature.
	  If unsure select "N".

config SND_SOC_MT8570
	tristate "ASoC support for Mediatek MT8570 chip"
	depends on MTK_HIFI4DSP_SUPPORT
	help
	  This adds ASoC platform driver support for Mediatek MT8570 chip
	  that can be used with other codecs.
	  Select Y if you have such device.
	  Ex: MT8570

config SND_SOC_MT8570_COMPRESS
	tristate "Compress offload support for Mediatek MT8570 chip"
	depends on SND_SOC_MT8570
	select SND_SOC_COMPRESS
	help
	  This adds Compress driver support for Mediatek MT8570 chip.
	  Only enable this when we have DSP.
	  Select Y if you need the compress feature.
	  If unsure select "N".

config SND_SOC_COMPRESS_NR_PLAYBACK_STREAMS
	int "Maximum number of compress playback streams"
	range 1 3
	default 1
	depends on SND_SOC_MT8570

config SND_SOC_MT8570_ADSP_PCM_PLAYBACK
	bool "ADSP PCM playback support for Mediatek MT8570 chip"
	depends on SND_SOC_MT8570
	help
	  This adds ADSP PCM driver support for Mediatek MT8570 chip.
	  Only enable this when we have DSP.
	  Select Y if you need the pcm playback feature.
	  If unsure select "N".

config SND_SOC_MT8570_ADSP_VOICE_ASSIST
	bool "ADSP voice assist support for Mediatek MT8570 chip"
	depends on SND_SOC_MT8570
	help
	  This adds ADSP voice asssit driver support for Mediatek MT8570 chip.
	  Only enable this when we have DSP.
	  Select Y if you need the voice assistant feature.
	  If unsure select "N".

config SND_SOC_MT8570_ADSP_PPC
	tristate "ADSP ppc support for Mediatek MT8570 chip"
	depends on SND_SOC_MT8570
	help
	  This adds ADSP ppc driver support for Mediatek MT8570 chip.
	  Only enable this when we have DSP.
	  Select Y if you need the PowerAQ feature.
	  If unsure select "N".

config SND_SOC_MT8570_ADSP_LINEIN_CAPTURE
	bool "ADSP line-in support for Mediatek MT8570 chip"
	depends on SND_SOC_MT8570
	help
	  This adds ADSP line-in driver support for Mediatek MT8570 chip.
	  Only enable this when we have DSP.
	  Select Y if you need the line-in feature.
	  If unsure select "N".

config MTK_SND_SOC_CODEC
	string "String for Mediatek audio codec"
	help
	  Specify Mediatek audio codec.
	  It depend on the string to choose the audio codec.
	  Say "mt6351" if you have mt6351 audio codec.
	  Say "mt6337" if you have mt6337 audio codec.
	  Say "mt6355" if you have mt6355 audio codec.

config MTK_SPEAKER
	bool "MTK SPEAKER AMP"
	default n
	help
	  If you say Y, enable MTK_SPEAKER_AMP
	  If the codec has internal speaker, enable this.
	  This is a config for mediatek internal speaker amp.
	  Generally you select "N", if unsupport it.

config MTK_NXP_TFA9890
	bool "MTK NXP TFA9890 SMART PA DRIVER"
	default n
	help
	  If you say Y, enable MTK_NXP_TFA9890 driver.
	  This is 3rd party's speaker amp driver.
	  TFA9890 is one of SmartPa of NXP.
	  It is a DSP connect with I2S.

config MTK_SPKGPIO_REWORK
	bool "MTK SPEAKER GPIO REWORK"
	default n
	help
	  This is only for MTK internal phone only
	  Enable SPKGPIO REWORK check functionality
	  Will choose the correct GPIO for external AMP
	  If you say Y, enable MTK_SPKGPIO_REWORK

config MTK_HP_ANASWITCH
	bool "MTK HEADPHONE ANALOG SWITCH"
	default n
	help
	  This will enable headphone analog switch control
	  for de-pop functionality
	  Only enable this when you have headphone analog switch
	  If you say Y, enable MTK_HP_ANASWITCH

config MTK_HDMI_TDM
	bool "MTK HDMI MULTI CHANNEL "
	default n
	help
	  If you say Y, enable MTK_HDMI_TDM.
	  This is for HDMI TDM function.
	  This setting help you to enable
	  HDMI multi channel function with TDM hardware.

config MTK_SND_SOC_NEW_ARCH
	bool "Support new audio architecture"
	select REGMAP_MMIO
	help
	  If you say Y, enable MTK_SND_SOC_NEW_ARCH.
	  Only enable this when you use refactored audio driver architecture.
	  If new chip after mt6757, we will enable this config.
	  Audio driver refactor to common folder and platform folder.

config MTK_AUDIO_TUNNELING_SUPPORT
	bool "Audio playback through dsp"
	select SND_SOC_COMPRESS
	help
	  Only enable this when we have DSP.
	  This makes audio output pass bitstream without any post processing.
	  The decoding process is done in DSP.
	  Select Y to enable MTK_AUDIO_TUNNELING_SUPPORT for DSP playback.

config MTK_AUDIO_SCP_SPKPROTECT_SUPPORT
	bool "speaker protection through dsp"
	help
	  Only enable this when we have DSP.
	  This makes speaker protection processing from dsp side.
	  The process is done in DSP.
	  Select Y to enable CONFIG_MTK_AUDIO_SCP_SPKPROTECT_SUPPORT for DSP playback.

