# MCUXpresso SDK

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

config HAS_MCUX
	bool
	select HAS_CMSIS_CORE
	depends on SOC_FAMILY_KINETIS || SOC_FAMILY_IMX || SOC_FAMILY_LPC

if HAS_MCUX

config HAS_MCUX_ADC12
	bool
	help
	  Set if the 12-bit ADC (ADC12) module is present in the SoC.

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

config HAS_MCUX_CACHE
	bool
	help
	  Set if the L1 or L2 cache is present in the SoC.

config HAS_MCUX_CCM
	bool
	help
	  Set if the clock control module (CCM) module is present in the SoC.

config HAS_MCUX_PCC
	bool
	help
	  Set if the peripheral clock controller module (PCC) module is
	  present in the SoC.

config HAS_MCUX_ELCDIF
	bool
	help
	  Set if the enhanced LCD interface (eLCDIF) module is present in the
	  SoC.

config HAS_MCUX_ENET
	bool
	help
	  Set if the ethernet (ENET) module is present in the SoC.

config HAS_MCUX_FLEXCAN
	bool
	help
	  Set if the FlexCAN module is presents in the SoC.

config HAS_MCUX_FLEXCOMM
	bool
	help
	  Set if the flexcomm (FLEXCOMM) module is present in the SoC.

config HAS_MCUX_FTFX
	bool
	help
	  Set if the flash memory (FTFA, FTFE, or FTFL) module is present in
	  the SoC.

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

config HAS_MCUX_IAP
	bool
	help
	  Set if the flash memory In Applcation Programming is present in
	  the LPC family SoCs.

config HAS_MCUX_IGPIO
	bool
	help
	  Set if the iMX GPIO (IGPIO) module is present in the SoC.

config HAS_MCUX_LPI2C
	bool
	help
	  Set if the low power I2C (LPI2C) module is present in the SoC.

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

config HAS_MCUX_LPSPI
	bool
	help
	  Set if the low power SPI (LPSPI) module is present in the SoC.

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

config HAS_MCUX_GPT
	bool
	help
	  Set if the general purpose timer (GPT) module is present in the SoC.

config HAS_MCUX_RNG
	bool
	help
	  Set if the LPC specific random number generator (RNG) module is
	  present in the SoC.

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

config HAS_MCUX_RTC
	bool
	help
	  Set if the real time clock (RTC) modules is present in the SoC.

config HAS_MCUX_SCG
	bool
	help
	  Set if the system clock generator (SCG) module is present in the
	  SoC.

config HAS_MCUX_SIM
	bool
	help
	  Set if the system integration module (SIM) module is present in the
	  SoC.

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

config HAS_MCUX_USB_EHCI
	bool
	help
	  Set if the USB controller EHCI module is present in the SoC.

config HAS_MCUX_USDHC1
	bool
	help
	  Set if the USDHC instance 1 module is present in the SoC.

config HAS_MCUX_USDHC2
	bool
	help
	  Set if the USDHC2 instance 2 module is present in the SoC.

config HAS_MCUX_WDOG32
	bool
	help
	  Set if the watchdog (WDOG32) module is present in the SoC.

config HAS_MCUX_PWM
	bool
	help
	  Set if the PWM  module is present in the SoC.

config HAS_MCUX_SMC
	bool
	help
	  Set if the SMC  module is present in the SoC.

config HAS_MCUX_CSI
	bool
	help
	  Set if the CMOS Sensor Interface module is present in the SoC.

config HAS_MCUX_LPTMR
	bool
	help
	  Set if the Low Power Timer (LPTMR) module is present in the SoC.

config HAS_MCUX_DAC
	bool
	help
	  Set if the Digital-to-Analog (DAC) module is present in the SoC.

config HAS_MCUX_DAC32
	bool
	help
	  Set if the Digital-to-Analog (DAC32) module is present in the SoC.

config HAS_MCUX_TPM
	bool
	help
	  Set if the Timer/PWM Module is present in the SoC

endif # HAS_MCUX
