# iMX7 M4 core series

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

choice
	prompt "i.MX7 M4 Selection"
	depends on SOC_SERIES_IMX7_M4

config SOC_MCIMX7_M4
	bool "SOC_MCIMX7_M4"
	select HAS_IMX_HAL
	select HAS_IMX_GPIO
	select HAS_IMX_I2C
	select HAS_IMX_IOMUXC

endchoice

if SOC_MCIMX7_M4

config SOC_PART_NUMBER_MCIMX7D7DVM10SC
	bool

config SOC_PART_NUMBER_MCIMX7D5EVM10SC
	bool

config SOC_PART_NUMBER_MCIMX7S3DVK08SA
	bool

config SOC_PART_NUMBER_IMX7_M4
	string
	default	"MCIMX7D7DVM10SC" if SOC_PART_NUMBER_MCIMX7D7DVM10SC
	default "MCIMX7D5EVM10SC" if SOC_PART_NUMBER_MCIMX7D5EVM10SC
	default "MCIMX7S3DVK08SA" if SOC_PART_NUMBER_MCIMX7S3DVK08SA
	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.

endif # SOC_SERIES_IMX7_M4
