# Kinetis KWx MCU series

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

choice
	prompt "Kinetis KWx MCU Selection"
	depends on SOC_SERIES_KINETIS_KWX

config SOC_MKW22D5
	bool "SOC_MKW22D5"
	select CPU_CORTEX_M4
	select CPU_CORTEX_M_HAS_DWT
	select HAS_MCUX
	select HAS_MCUX_ADC16
	select HAS_MCUX_FTFX
	select HAS_MCUX_FTM
	select HAS_MCUX_RNGA
	select HAS_MCUX_SIM
	select HAS_OSC
	select HAS_MCG
	select HAS_MCUX_RCM

config SOC_MKW24D5
	bool "SOC_MKW24D5"
	select CPU_CORTEX_M4
	select CPU_CORTEX_M_HAS_DWT
	select HAS_MCUX
	select HAS_MCUX_ADC16
	select HAS_MCUX_FTFX
	select HAS_MCUX_FTM
	select HAS_MCUX_RNGA
	select HAS_MCUX_SIM
	select HAS_OSC
	select HAS_MCG
	select HAS_MCUX_RCM

config SOC_MKW40Z4
	bool "SOC_MKW40Z4"
	select CPU_CORTEX_M0PLUS
	select HAS_MCUX
	select HAS_MCUX_ADC16
	select HAS_MCUX_LPUART
	select HAS_MCUX_SIM
	select HAS_MCUX_TRNG
	select HAS_OSC
	select HAS_MCG
	select HAS_MCUX_RCM

config SOC_MKW41Z4
	bool "SOC_MKW41Z4"
	select CPU_CORTEX_M0PLUS
	select HAS_MCUX
	select HAS_MCUX_ADC16
	select HAS_MCUX_FTFX
	select HAS_MCUX_LPUART
	select HAS_MCUX_RTC
	select HAS_MCUX_SIM
	select HAS_MCUX_TPM
	select HAS_MCUX_TRNG
	select HAS_OSC
	select HAS_MCG
	select HAS_MCUX_RCM

endchoice

if SOC_SERIES_KINETIS_KWX

config SOC_PART_NUMBER_MKW22D512VHA5
	bool

config SOC_PART_NUMBER_MKW24D512VHA5
	bool

config SOC_PART_NUMBER_MKW40Z160VHT4
	bool

config SOC_PART_NUMBER_MKW41Z256VHT4
	bool

config SOC_PART_NUMBER_MKW41Z512VHT4
	bool

config SOC_PART_NUMBER_KINETIS_KWX
	string
	default "MKW22D512VHA5" if SOC_PART_NUMBER_MKW22D512VHA5
	default "MKW24D512VHA5" if SOC_PART_NUMBER_MKW24D512VHA5
	default "MKW40Z160VHT4" if SOC_PART_NUMBER_MKW40Z160VHT4
	default "MKW41Z256VHT4" if SOC_PART_NUMBER_MKW41Z256VHT4
	default "MKW41Z512VHT4" if SOC_PART_NUMBER_MKW41Z512VHT4
	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_KINETIS_KWX
