# Kinetis KE1xF series configuration options

# Copyright (c) 2019-2021 Vestas Wind Systems A/S
# SPDX-License-Identifier: Apache-2.0

if SOC_SERIES_KINETIS_KE1XF

config SOC_SERIES
	default "ke1xf"

config MCUX_LPTMR_TIMER
	default y if PM

config CORTEX_M_SYSTICK
	default n if MCUX_LPTMR_TIMER

config SYS_CLOCK_HW_CYCLES_PER_SEC
	default $(dt_node_int_prop_int,/cpus/cpu@0,clock-frequency) if CORTEX_M_SYSTICK
	default $(dt_node_int_prop_int,/soc/lptmr@40040000,clock-frequency) if MCUX_LPTMR_TIMER

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

config CPU_HAS_CUSTOM_FIXED_SOC_MPU_REGIONS
	default y

config KINETIS_FLASH_CONFIG_FOPT
	default 0x7d
	depends on KINETIS_FLASH_CONFIG

config PWM_MCUX_PWT
	default y
	depends on PWM_CAPTURE

config GPIO
	default y

source "soc/arm/nxp_kinetis/ke1xf/Kconfig.defconfig.mke*"

endif # SOC_SERIES_KINETIS_KE1XF
