# 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_LPADC
	bool
	help
	  Set if the LPADC 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_CCM_REV2
	bool
	help
	  Set if the revison 2 of clock control module (CCM) module is present in the SoC.
	  This is present in SoC's such as RT1170

config HAS_MCUX_SYSCON
	bool
	help
	  Set if the syscon 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_FLEXSPI
	bool
	help
	  Set if the flexible SPI (FlexSPI) 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 LPC55xxx family SoCs.

config HAS_MCUX_IAP_LEGACY
	bool
	help
	  Set if the flash memory In Applcation Programming is present in
	  the older LPC family SoCs (LPC54xxx, LPC11xxx).

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_LPC_RTC
	bool
	help
	  Set if the LPC 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_SEMC
	bool
	help
	  Set if the smart external memory controller (SEMC) 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_USB_LPCIP3511
	bool
	help
	  Set if the USB controller LPCIP3511 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_WWDT
	bool
	help
	  Set if the watchdog (WWDT) 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_SCTIMER
	bool
	help
	  Set if the sctimer 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

config HAS_MCUX_EDMA
	bool
	help
	  Set if the EDMA module is present on the SoC.

config HAS_MCUX_LPC_DMA
	bool
	help
	  Set if the DMA module is present on the SoC.

config HAS_MCUX_RDC
	bool
	help
	  Set if the RDC module is present in the SoC.

config HAS_MCUX_PIT
	bool
	help
	  Set if the PIT module is present on the SoC.

config HAS_MCUX_OS_TIMER
	bool
	help
	  Set if the OS timer is used as a kernel timer on the SoC.

config HAS_MCUX_ACMP
	bool
	help
	  Set if the ACMP module is present on the SoC.

config HAS_MCUX_PWT
	bool
	help
	  Set if the PWT module is present on the SoC.

config HAS_MCUX_RCM
	bool
	help
	  Set if the Reset Control Module (RCM) module is present in
	  the SoC.

config HAS_MCUX_CTIMER
	bool
	help
	  Set if the CTIMER module is present in the SoC.

endif # HAS_MCUX
