# Copyright (c) 2021 NXP
# SPDX-License-Identifier: Apache-2.0

choice
	prompt "NXP i.MX8M Audio DSP Selection"
	depends on SOC_SERIES_NXP_IMX8M

	config SOC_MIMX8M_ADSP
		bool "NXP i.MX8MP Audio DSP"
		select HAS_MCUX if CLOCK_CONTROL
		select HAS_MCUX_CCM if CLOCK_CONTROL
		select HAS_MCUX_IOMUXC if PINCTRL
		select PINCTRL_IMX if HAS_MCUX_IOMUXC

endchoice

if SOC_SERIES_NXP_IMX8M

config SOC_PART_NUMBER_MIMX8ML8DVNLZ
	bool

config SOC_PART_NUMBER_MIMX8ML8CVNKZ
	bool

config SOC_PART_NUMBER_MIMX8MP_DSP
	string
	default "MIMX8ML8DVNLZ_dsp" if  SOC_PART_NUMBER_MIMX8ML8DVNLZ
	default "MIMX8ML8CVNKZ_dsp" if  SOC_PART_NUMBER_MIMX8ML8CVNKZ
	help
	  This string holds the full part number of the SoC. It is a hidden option
	  that you should not set directly. The part number selection choice defines
	  the default value for this string.

config SOC_PART_NUMBER
	string
	default SOC_PART_NUMBER_MIMX8MP_DSP if SOC_MIMX8M_ADSP

endif # SOC_SERIES_NXP_IMX8M
