# i.MX8ML M7 SoC series

# Copyright (c) 2021, Laird Connectivity
# SPDX-License-Identifier: Apache-2.0

choice
prompt "i.MX8ML M7 Selection"
depends on SOC_SERIES_IMX8ML_M7

config SOC_MIMX8ML8
	bool "SOC_MIMX8ML8"
	select HAS_MCUX
	select HAS_MCUX_CCM
	select HAS_MCUX_RDC
	select CPU_HAS_ARM_MPU
	select CPU_HAS_CUSTOM_FIXED_SOC_MPU_REGIONS
	select ARM_MPU

endchoice

if SOC_SERIES_IMX8ML_M7

config SOC_PART_NUMBER_MIMX8ML8DVNLZ
	bool

config SOC_PART_NUMBER_IMX8ML_M7
	string
	default "MIMX8ML8DVNLZ" if SOC_PART_NUMBER_MIMX8ML8DVNLZ
	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.

choice CODE_LOCATION
	prompt "Code location selection"

config CODE_ITCM
	bool "Link code into internal instruction tightly coupled memory (ITCM)"

config CODE_DDR
	bool "Link code into DDR memory"

endchoice

config INIT_VIDEO_PLL
	bool "Initialize Video PLL"

endif # SOC_SERIES_IMX8ML_M7
