# Kinetis KW2xD SoC configuration options

# Copyright (c) 2017, Phytec Messtechnik GmbH
# SPDX-License-Identifier: Apache-2.0

if SOC_MKW22D5 || SOC_MKW24D5

config SOC
	default "mkw22d5"
	depends on SOC_MKW22D5

config SOC
	default "mkw24d5"
	depends on SOC_MKW24D5

config NUM_IRQS
	default 65

config ADC_MCUX_ADC16
	default y
	depends on ADC

if CLOCK_CONTROL

config CLOCK_CONTROL_MCUX_SIM
	default y

config CLOCK_CONTROL_MCUX_MCG
	default y

endif # CLOCK_CONTROL

config PINMUX_MCUX
	default y
	depends on PINMUX

config GPIO_MCUX
	default y
	depends on GPIO

config I2C_MCUX
	default y
	depends on I2C

config SPI
	default y

config PWM_MCUX_FTM
	default y
	depends on PWM

config SPI_MCUX_DSPI
	default y
	depends on SPI

config ENTROPY_MCUX_RNGA
	default y
	depends on ENTROPY_GENERATOR

config SOC_FLASH_MCUX
	default y
	depends on FLASH

config UART_MCUX
	default y
	depends on SERIAL

config USB_KINETIS
	default y
	depends on USB_DEVICE_DRIVER

config WDT_MCUX_WDOG
	default y
	depends on WATCHDOG

endif # SOC_MKW2xD512
