# SPDX-License-Identifier: (GPL-2.0-only OR BSD-3-Clause)

config SND_SOC_SOF_IMX_TOPLEVEL
	bool "SOF support for NXP i.MX audio DSPs"
	depends on ARM64|| COMPILE_TEST
	depends on SND_SOC_SOF_OF
	help
	  This adds support for Sound Open Firmware for NXP i.MX platforms.
	  Say Y if you have such a device.
	  If unsure select "N".

if SND_SOC_SOF_IMX_TOPLEVEL

config SND_SOC_SOF_IMX_OF
	def_tristate SND_SOC_SOF_OF
	select SND_SOC_SOF_IMX8 if SND_SOC_SOF_IMX8_SUPPORT
	select SND_SOC_SOF_IMX8M if SND_SOC_SOF_IMX8M_SUPPORT
	help
	  This option is not user-selectable but automagically handled by
	  'select' statements at a higher level.

config SND_SOC_SOF_IMX_COMMON
	tristate
	help
	  This option is not user-selectable but automagically handled by
	  'select' statements at a higher level.

config SND_SOC_SOF_IMX8_SUPPORT
	bool "SOF support for i.MX8"
	depends on IMX_SCU=y || IMX_SCU=SND_SOC_SOF_IMX_OF
	depends on IMX_DSP=y || IMX_DSP=SND_SOC_SOF_IMX_OF
	help
	  This adds support for Sound Open Firmware for NXP i.MX8 platforms.
	  Say Y if you have such a device.
	  If unsure select "N".

config SND_SOC_SOF_IMX8
	tristate
	select SND_SOC_SOF_IMX_COMMON
	select SND_SOC_SOF_XTENSA
	select SND_SOC_SOF_COMPRESS
	help
	  This option is not user-selectable but automagically handled by
	  'select' statements at a higher level.

config SND_SOC_SOF_IMX8M_SUPPORT
	bool "SOF support for i.MX8M"
	depends on IMX_DSP=y || IMX_DSP=SND_SOC_SOF_OF
	help
	  This adds support for Sound Open Firmware for NXP i.MX8M platforms.
	  Say Y if you have such a device.
	  If unsure select "N".

config SND_SOC_SOF_IMX8M
	tristate
	select SND_SOC_SOF_IMX_COMMON
	select SND_SOC_SOF_XTENSA
	select SND_SOC_SOF_COMPRESS
	help
	  This option is not user-selectable but automagically handled by
	  'select' statements at a higher level.

endif ## SND_SOC_SOF_IMX_IMX_TOPLEVEL
