# This file is part of the OpenADK project. OpenADK is copyrighted
# material, please see the LICENCE file in the top-level directory.

menu "Audio devices support"
depends on ADK_TARGET_WITH_PCI \
	|| ADK_TARGET_WITH_USB \
	|| ADK_TARGET_WITH_SOUND \
	|| ADK_TARGET_QEMU \
	|| ADK_TARGET_GENERIC

config ADK_LINUX_KERNEL_SOUND
	tristate

config ADK_LINUX_KERNEL_SND_DRIVERS
	bool

config ADK_LINUX_KERNEL_SND_PCI
	bool

config ADK_LINUX_KERNEL_SND_USB
	bool

config ADK_LINUX_KERNEL_SND_SOC
	bool

config ADK_LINUX_KERNEL_SND_ARM
	bool

config ADK_LINUX_KERNEL_SND_TIMER
	tristate

config ADK_LINUX_KERNEL_SND_PCM
	tristate

config ADK_LINUX_KERNEL_SND_HWDEP
	tristate

config ADK_LINUX_KERNEL_SND_RAWMIDI
	tristate

config ADK_LINUX_KERNEL_SND_AC97_CODEC
	tristate

config ADK_LINUX_KERNEL_SND_SOC_GENERIC_DMAENGINE_PCM
	bool

config ADK_LINUX_KERNEL_SND_SOC_SPDIF
	tristate

config ADK_LINUX_KERNEL_SND_SOC_FSL_ASRC
	bool

config ADK_LINUX_KERNEL_SND_SOC_FSL_HDMI
	bool

config ADK_LINUX_KERNEL_SND_SOC_FSL_SPDIF
	tristate

config ADK_LINUX_KERNEL_SND_SOC_IMX_SGTL5000
	tristate

config ADK_LINUX_KERNEL_SND_SOC_IMX_PCM_DMA
	bool

config ADK_LINUX_KERNEL_SND_SOC_HDMI_CODEC
	tristate

config ADK_LINUX_KERNEL_SND_SOC_IMX_HDMI_DMA
	bool

config ADK_LINUX_KERNEL_SND_SOC_IMX_SPDIF
	tristate

config ADK_LINUX_KERNEL_SND_SOC_IMX_HDMI
	tristate

config ADK_LINUX_KERNEL_SND_PXA2XX_AC97
	tristate

config ADK_LINUX_KERNEL_SND_PXA2XX_SOC
	tristate

config ADK_LINUX_KERNEL_SND_SOC_I2C_AND_SPI
	tristate

config ADK_LINUX_KERNEL_SND_SOC_WM8731
	tristate
	select ADK_LINUX_KERNEL_SND_SOC_I2C_AND_SPI

config ADK_LINUX_KERNEL_SND_SOC_WM8804
	tristate
	select ADK_LINUX_KERNEL_SND_SOC_I2C_AND_SPI

config ADK_LINUX_KERNEL_SND_SOC_PCM5102A
	tristate
	select ADK_LINUX_KERNEL_SND_SOC_I2C_AND_SPI

config ADK_LINUX_KERNEL_SND_SOC_PCM512x
	tristate
	select ADK_LINUX_KERNEL_SND_SOC_I2C_AND_SPI

config ADK_LINUX_KERNEL_SND_SOC_PCM512x_I2C
	tristate
	select ADK_LINUX_KERNEL_SND_SOC_PCM512x
	select ADK_LINUX_KERNEL_SND_SOC_I2C_AND_SPI

config ADK_LINUX_KERNEL_SND_SOC_PCM512x_SPI
	tristate
	select ADK_LINUX_KERNEL_SND_SOC_PCM512x
	select ADK_LINUX_KERNEL_SND_SOC_I2C_AND_SPI

config ADK_LINUX_KERNEL_SND_DESIGNWARE_I2S
	tristate

config ADK_LINUX_KERNEL_SND_SOC_ROCKCHIP_I2S
	tristate

config ADK_LINUX_KERNEL_SND_SOC_ES8316
	tristate

config ADK_LINUX_KERNEL_SND_AUDIO_GRAPH_CARD
	tristate

config ADK_LINUX_KERNEL_SND
	tristate
	select ADK_LINUX_KERNEL_SOUND
	select ADK_LINUX_KERNEL_SND_PCM
	select ADK_LINUX_KERNEL_SND_HWDEP
	select ADK_LINUX_KERNEL_SND_TIMER

config ADK_LINUX_KERNEL_SND_TIMER
       tristate

config ADK_LINUX_KERNEL_SND_RAWMIDI
       tristate

config ADK_LINUX_KERNEL_SND_SEQUENCER
       tristate "Sequencer support"
       select ADK_LINUX_KERNEL_SND_TIMER
       select ADK_LINUX_KERNEL_SND_RAWMIDI

config ADK_LINUX_KERNEL_SND_INTEL8X0
	tristate "Intel AC97 driver"
	select ADK_LINUX_KERNEL_SND
	select ADK_LINUX_KERNEL_SND_PCI
	select ADK_LINUX_KERNEL_SND_AC97_CODEC
	default m if ADK_TARGET_QEMU_WITH_AUDIO
	default n
	depends on ADK_TARGET_WITH_PCI \
		|| ADK_TARGET_QEMU_WITH_AUDIO \
		|| ADK_TARGET_GENERIC
	help
	  Driver for intel chipsets.

config ADK_LINUX_KERNEL_SND_SOC_ROCKCHIP
	tristate "Rockchip driver (ES8316 Codec)"
	select ADK_LINUX_KERNEL_SND
	select ADK_LINUX_KERNEL_SND_SOC
	select ADK_LINUX_KERNEL_SND_SOC_ES8316
	select ADK_LINUX_KERNEL_SND_SOC_ROCKCHIP_I2S
	select ADK_LINUX_KERNEL_SND_DESIGNWARE_I2S
	select ADK_LINUX_KERNEL_SND_AUDIO_GRAPH_CARD
	default m if ADK_TARGET_SYSTEM_ROCKPI4_PLUS
	default n
	help
	  ALSA Rockchip driver
	
config ADK_LINUX_KERNEL_SND_VIA82XX
	tristate "VIA82XX driver"
	select ADK_LINUX_KERNEL_SND
	depends on ADK_TARGET_WITH_PCI || ADK_TARGET_GENERIC
	help
	 ALSA VIA82XX driver

config ADK_LINUX_KERNEL_SND_ENS1370
	tristate "Ensoniq 1370 driver"
	select ADK_LINUX_KERNEL_SND
	depends on ADK_TARGET_WITH_PCI || ADK_TARGET_GENERIC
	help
	 ALSA Ensonique 1370 driver

config ADK_LINUX_KERNEL_SND_CS5535AUDIO
	tristate "AMD CS5535 driver"
	select ADK_LINUX_KERNEL_SND_PCI
	select ADK_LINUX_KERNEL_SND_AC97_CODEC
	select ADK_LINUX_KERNEL_SND
	default m if ADK_TARGET_SYSTEM_LEMOTE_YEELONG
	default m if ADK_TARGET_MODEL_PCENGINES_ALIX1C
	depends on ADK_TARGET_WITH_PCI || ADK_TARGET_GENERIC
	help
	 ALSA AMD CS5535 driver

config ADK_LINUX_KERNEL_SND_HDSP
	tristate "RME Hammerfall DSP Audio"
	select ADK_LINUX_KERNEL_SND
	select ADK_LINUX_KERNEL_SND_PCI
	select ADK_LINUX_KERNEL_FW_LOADER
	select ADK_LINUX_KERNEL_SND_HWDEP
	select ADK_LINUX_KERNEL_SND_RAWMIDI
	select ADK_LINUX_KERNEL_SND_PCM
	default n
	depends on ADK_TARGET_WITH_PCI || ADK_TARGET_GENERIC
	help
	  ALSA driver for RME HDSP cards.

config ADK_LINUX_KERNEL_SND_PXA2XX_SOC_SPITZ
	tristate "Sharp Zaurus SoC"
	select ADK_LINUX_KERNEL_SND
	select ADK_LINUX_KERNEL_SND_ARM
	select ADK_LINUX_KERNEL_SND_PXA2XX_AC97
	select ADK_LINUX_KERNEL_SND_AC97_CODEC
	select ADK_LINUX_KERNEL_SND_SOC
	select ADK_LINUX_KERNEL_SND_PXA2XX_SOC
	depends on ADK_TARGET_SYSTEM_SHARP_ZAURUS
	default m if ADK_TARGET_SYSTEM_SHARP_ZAURUS
	default n

config ADK_LINUX_KERNEL_SND_BCM2835
	tristate "BCM28XX onboard soundcard"
	select ADK_LINUX_KERNEL_SND
	select ADK_LINUX_KERNEL_SND_ARM
	select ADK_LINUX_KERNEL_STAGING
	depends on ADK_TARGET_BOARD_BCM28XX
	default m if ADK_TARGET_HARDWARE_NONE
	default n

config ADK_LINUX_KERNEL_SND_BCM2835_SOC_I2S
	tristate
	select ADK_LINUX_KERNEL_SND
	select ADK_LINUX_KERNEL_SND_ARM
	select ADK_LINUX_KERNEL_SND_SOC
	select ADK_LINUX_KERNEL_DMA_BCM2835
	select ADK_LINUX_KERNEL_REGMAP
	select ADK_LINUX_KERNEL_REGMAP_MMIO
	depends on ADK_TARGET_BOARD_BCM28XX
	default n

config ADK_LINUX_KERNEL_SND_BCM2708_SOC_HIFIBERRY_AMP
	tristate "Hifiberry AMP"
	select ADK_LINUX_KERNEL_SND_BCM2835_SOC_I2S
	depends on ADK_TARGET_BOARD_BCM28XX

config ADK_LINUX_KERNEL_SND_BCM2708_SOC_HIFIBERRY_DAC
	tristate "Hifiberry DAC"
	select ADK_LINUX_KERNEL_SND_BCM2835_SOC_I2S
	select ADK_LINUX_KERNEL_SND_SOC_PCM5102A
	depends on ADK_TARGET_BOARD_BCM28XX

config ADK_LINUX_KERNEL_SND_BCM2708_SOC_HIFIBERRY_DACPLUS
	tristate "Hifiberry DACPLUS"
	select ADK_LINUX_KERNEL_SND_BCM2835_SOC_I2S
	select ADK_LINUX_KERNEL_SND_SOC_PCM512x_I2C
	select ADK_LINUX_KERNEL_SND_SOC_PCM512x
	depends on ADK_TARGET_BOARD_BCM28XX

config ADK_LINUX_KERNEL_SND_BCM2708_SOC_HIFIBERRY_DIGI
	tristate "Hifiberry DIGI"
	select ADK_LINUX_KERNEL_SND_BCM2835_SOC_I2S
	select ADK_LINUX_KERNEL_SND_SOC_WM8804
	depends on ADK_TARGET_BOARD_BCM28XX

config ADK_LINUX_KERNEL_SND_BCM2708_SOC_RPI_DAC
	tristate "RPI-DAC"
	select ADK_LINUX_KERNEL_SND_BCM2835_SOC_I2S
	depends on ADK_TARGET_BOARD_BCM28XX

config ADK_LINUX_KERNEL_SND_BCM2708_SOC_IQAUDIO_DAC
	tristate "IQAudio-DAC"
	select ADK_LINUX_KERNEL_SND_BCM2835_SOC_I2S
	select ADK_LINUX_KERNEL_SND_SOC_PCM512x_I2C
	depends on ADK_TARGET_BOARD_BCM28XX

config ADK_LINUX_KERNEL_SND_BCM2708_SOC_RPI_PROTO
	tristate "Rpi-Proto"
	select ADK_LINUX_KERNEL_SND_BCM2835_SOC_I2S
	select ADK_LINUX_KERNEL_SND_SOC_WM8731
	depends on ADK_TARGET_BOARD_BCM28XX

config ADK_LINUX_KERNEL_SND_IMX_SOC
	tristate "IMX6 SoC sound chip"
	select ADK_LINUX_KERNEL_SND
	select ADK_LINUX_KERNEL_SND_SOC
	select ADK_LINUX_KERNEL_SND_SOC_GENERIC_DMAENGINE_PCM
	select ADK_LINUX_KERNEL_SND_SOC_HDMI_CODEC
	select ADK_LINUX_KERNEL_SND_SOC_IMX_PCM_DMA
	select ADK_LINUX_KERNEL_SND_SOC_IMX_HDMI_DMA
	select ADK_LINUX_KERNEL_SND_SOC_IMX_HDMI
	select ADK_LINUX_KERNEL_SND_SOC_IMX_SPDIF
	select ADK_LINUX_KERNEL_SND_SOC_IMX_SGTL5000 if ADK_TARGET_MODEL_HUMMINGBOARD_I2EX
	select ADK_LINUX_KERNEL_SND_SOC_FSL_ASRC
	select ADK_LINUX_KERNEL_SND_SOC_FSL_SPDIF
	select ADK_LINUX_KERNEL_SND_SOC_FSL_HDMI
	select ADK_LINUX_KERNEL_REGMAP
	select ADK_LINUX_KERNEL_REGMAP_SPI
	select ADK_LINUX_KERNEL_REGMAP_I2C
	depends on ADK_TARGET_SYSTEM_SOLIDRUN_IMX6  || \
		ADK_TARGET_SYSTEM_PHYTEC_IMX6
	default m if ADK_TARGET_SYSTEM_SOLIDRUN_IMX6  || \
		ADK_TARGET_SYSTEM_PHYTEC_IMX6
	default n

config ADK_LINUX_KERNEL_SND_ALOOP
	tristate "Generic loopback driver (PCM)"
	select ADK_LINUX_KERNEL_SND
	select ADK_LINUX_KERNEL_SND_DRIVERS
	select ADK_LINUX_KERNEL_SND_PCM
	default n

endmenu