# Kconfig - Kinetis KL2x SoC configuration options
#
# Copyright (c) 2017, NXP
#
# SPDX-License-Identifier: Apache-2.0
#

if SOC_MKL25Z4

config SOC
	string
	default mkl25z4

config NUM_IRQS
	int
	default 32

if ADC

config ADC_MCUX_ADC16
	def_bool y

endif # ADC

if CLOCK_CONTROL

config CLOCK_CONTROL_MCUX_SIM
	def_bool y

endif # CLOCK_CONTROL

if PINMUX

config PINMUX_MCUX
	def_bool y

endif # PINMUX

if GPIO

config GPIO_MCUX
	def_bool y

endif # GPIO

if SERIAL

config UART_MCUX_LPSCI
	def_bool y

endif # SERIAL

if I2C

config I2C_MCUX
	def_bool y

endif # I2C

if SPI

config SPI_MCUX
	def_bool y

endif # SPI

if FLASH

config SOC_FLASH_MCUX
	def_bool y

endif # FLASH

endif # SOC_MKL25Z
