# 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 PINMUX_MCUX
	default y
	depends on PINMUX

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
