# Kconfig - MCUXpresso SDK
#
# Copyright (c) 2016, Freescale Semiconductor, Inc.
#
# SPDX-License-Identifier: Apache-2.0
#

config HAS_MCUX
	bool
	select HAS_CMSIS
	depends on SOC_FAMILY_KINETIS

if HAS_MCUX

config HAS_MCUX_ADC16
	bool
	default n
	help
	  Set if the 16-bit ADC (ADC16) module is present in the SoC.

config HAS_MCUX_FTM
	bool
	default n
	help
	  Set if the FlexTimer (FTM) module is present in the SoC.

config HAS_MCUX_LPSCI
	bool
	default n
	help
	  Set if the low power uart (LPSCI) module is present in the SoC.

config HAS_MCUX_LPUART
	bool
	default n
	help
	  Set if the low power uart (LPUART) module is present in the SoC.

config HAS_MCUX_RNGA
	bool
	default n
	help
	  Set if the random number generator accelerator (RNGA) module is
	  present in the SoC.

config HAS_MCUX_TRNG
	bool
	default n
	help
	  Set if the true random number generator (TRNG) module is present in
	  the SoC.

endif # HAS_MCUX
