1# Copyright (c) 2022 Google LLC
2# SPDX-License-Identifier: Apache-2.0
3
4menuconfig DSP
5	bool "DSP subsystem"
6	help
7	  Include the DSP (Digital Signal Processing) subsystem as a part of the
8	  Zephyr build. This enables applications to include and call into the
9	  <zephyr/dsp/dsp.h> header.
10
11if DSP
12
13config DSP_BACKEND_HAS_STATIC
14	bool
15
16config DSP_BACKEND_HAS_AGU
17	bool
18
19config DSP_BACKEND_HAS_XDATA_SECTION
20	bool
21
22choice DSP_BACKEND
23	prompt "DSP library backend selection"
24	default DSP_BACKEND_CMSIS if CMSIS_DSP
25	default DSP_BACKEND_ARCMWDT if ARC && "$(ZEPHYR_TOOLCHAIN_VARIANT)" = "arcmwdt"
26	default DSP_BACKEND_CUSTOM
27
28config DSP_BACKEND_CMSIS
29	bool "Use the CMSIS-DSP library as the math backend"
30	depends on CMSIS_DSP
31	select DSP_BACKEND_HAS_STATIC
32	help
33	  Implement the various zephyr DSP functions using the CMSIS-DSP library. This feature
34	  requires the CMSIS module to be selected.
35
36config DSP_BACKEND_CUSTOM
37	bool "Do not use any Zephyr backends for DSP"
38	help
39	  Rely on the application to provide a custom DSP backend. The implementation should be
40	  added to the 'zdsp' build target by the application or one of its modules.
41
42config DSP_BACKEND_ARCMWDT
43	bool "Use the mwdt library as the math backend"
44	depends on ARCMWDT_LIBC
45	depends on CMSIS_DSP
46	select DSP_BACKEND_HAS_STATIC
47	select DSP_BACKEND_HAS_AGU
48	select DSP_BACKEND_HAS_XDATA_SECTION
49	help
50	  Implement the various zephyr DSP functions using the MWDT-DSP library. This feature
51	  requires the MetaWare toolchain and CMSIS module to be selected.
52
53endchoice
54
55endif # DSP
56