# Copyright (c) 2016 Intel Corporation
# SPDX-License-Identifier: Apache-2.0

config HAS_CMSIS_CORE
	bool
	select HAS_CMSIS_CORE_A if CPU_CORTEX_A
	select HAS_CMSIS_CORE_A if CPU_AARCH32_CORTEX_A
	select HAS_CMSIS_CORE_R if CPU_AARCH32_CORTEX_R
	select HAS_CMSIS_CORE_M if CPU_CORTEX_M

if HAS_CMSIS_CORE

config HAS_CMSIS_CORE_A
	bool

config HAS_CMSIS_CORE_R
	bool

config HAS_CMSIS_CORE_M
	bool

endif

menuconfig CMSIS_DSP
	bool "CMSIS-DSP Library Support"
	depends on (CPU_CORTEX && NEWLIB_LIBC) || ARCH_POSIX

if CMSIS_DSP
source "modules/Kconfig.cmsis_dsp"
endif

menuconfig CMSIS_NN
	bool "CMSIS-NN Library Support"
	depends on CPU_CORTEX_M && CMSIS_DSP

if CMSIS_NN
source "modules/Kconfig.cmsis_nn"
endif
