# FSL FRDM K22F platform configuration options

# Copyright (c) 2018 Prevas A/S
# SPDX-License-Identifier: Apache-2.0

if SOC_MK22F51212

config SOC
	default "mk22f51212"

config ADC_MCUX_ADC16
	default y
	depends on ADC

config DAC_MCUX_DAC
	default y
	depends on DAC

if CLOCK_CONTROL

config CLOCK_CONTROL_MCUX_MCG
	default y

config CLOCK_CONTROL_MCUX_SIM
	default y

endif # CLOCK_CONTROL

config GPIO
	default y

config GPIO_MCUX
	default y
	depends on GPIO

config I2C_MCUX
	default y
	depends on I2C

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_MK22F12
