# Kinetis KWx SoC configuration options

# SPDX-License-Identifier: Apache-2.0

if SOC_MKW40Z4

config SOC
	default "mkw40z4"

config NUM_IRQS
	default 32

if ADC

config ADC_MCUX_ADC16
	default y

endif # ADC

if CLOCK_CONTROL

config CLOCK_CONTROL_MCUX_SIM
	default y

endif # CLOCK_CONTROL

if PINMUX

config PINMUX_MCUX
	default y

endif # PINMUX

if GPIO

config GPIO_MCUX
	default y

endif # GPIO

if SERIAL

config UART_MCUX_LPUART
	default y

endif # SERIAL

if I2C

config I2C_MCUX
	default y

endif # I2C

if SPI

config SPI_MCUX_DSPI
	default y

endif # SPI

if ENTROPY_GENERATOR

config ENTROPY_MCUX_TRNG
	default y

endif # ENTROPY_GENERATOR

if FLASH

config SOC_FLASH_MCUX
	default y

endif # FLASH

endif # SOC_MKW40Z4
