# Copyright (c) 2022 Google LLC
# SPDX-License-Identifier: Apache-2.0

menuconfig DSP
	bool "DSP subsystem"
	help
	  Include the DSP (Digital Signal Processing) subsystem as a part of the
	  Zephyr build. This enables applications to include and call into the
	  <zephyr/dsp/dsp.h> header.

if DSP

config DSP_BACKEND_HAS_STATIC
	bool

choice DSP_BACKEND
	prompt "DSP library backend selection"
	default DSP_BACKEND_CMSIS if CMSIS_DSP
	default DSP_BACKEND_CUSTOM

config DSP_BACKEND_CMSIS
	bool "Use the CMSIS-DSP library as the math backend"
	depends on CMSIS_DSP
	select DSP_BACKEND_HAS_STATIC
	help
	  Implement the various zephyr DSP functions using the CMSIS-DSP library. This feature
	  requires the CMSIS module to be selected.

config DSP_BACKEND_CUSTOM
	bool "Do not use any Zephyr backends for DSP"
	help
	  Rely on the application to provide a custom DSP backend. The implementation should be
	  added to the 'zdsp' build target by the application or one of its modules.

endchoice

endif # DSP
