# Kinetis K8x series configuration options

# Copyright (c) 2019 SEAL AG
# SPDX-License-Identifier: Apache-2.0

if SOC_SERIES_KINETIS_K8X

config SOC_SERIES
	default "k8x"

config NUM_IRQS
	# must be >= the highest interrupt number used
	default 106

config CPU_HAS_CUSTOM_FIXED_SOC_MPU_REGIONS
	default y

config KINETIS_FLASH_CONFIG_FOPT
	default 0x3f
	depends on KINETIS_FLASH_CONFIG

config ENTROPY_MCUX_TRNG
	default y
	depends on ENTROPY_GENERATOR

config SOC_FLASH_MCUX
	default y
	depends on FLASH

config GPIO
	default y

config USB_KINETIS
	default y
	depends on USB_DEVICE_DRIVER

config COUNTER_MCUX_PIT
	default y if HAS_MCUX_PIT
	depends on COUNTER

source "soc/arm/nxp_kinetis/k8x/Kconfig.defconfig.mk*"

endif # SOC_SERIES_KINETIS_K8X
