# SPDX-FileCopyrightText: <text>Copyright 2021-2022, 2024-2025 Arm Limited and/or its
# affiliates <open-source-office@arm.com></text>
# SPDX-License-Identifier: Apache-2.0

config ETHOS_U
	bool "Ethos-U core driver"
	default n
	depends on MULTITHREADING
	help
	  This option enables the Arm Ethos-U core driver.

if ETHOS_U
menu "Ethos-U NPU configuration"
choice  ETHOS_U_NPU_CONFIG
	prompt "Ethos-U NPU configuration"
	default ETHOS_U55_128 if SOC_SERIES_MPS3
	default ETHOS_U65_256 if SOC_MPS4_CORSTONE315
	default ETHOS_U85_256 if SOC_MPS4_CORSTONE320
	default ETHOS_U55_256 if SOC_SERIES_M55M1X
config ETHOS_U55_64
	bool "using Ethos-U55 with 64 macs"
config ETHOS_U55_128
	bool "using Ethos-U55 with 128 macs"
config ETHOS_U55_256
	bool "using Ethos-U55 with 256 macs"
config ETHOS_U65_128
	bool "using Ethos-U65 with 128 macs"
config ETHOS_U65_256
	bool "using Ethos-U65 with 256 macs"
config ETHOS_U65_512
	bool "using Ethos-U65 with 512 macs"
config ETHOS_U85_128
	bool "using Ethos-U85 with 128 macs"
config ETHOS_U85_256
	bool "using Ethos-U85 with 256 macs"
config ETHOS_U85_512
	bool "using Ethos-U85 with 512 macs"
config ETHOS_U85_1024
	bool "using Ethos-U85 with 1024 macs"
config ETHOS_U85_2048
	bool "using Ethos-U85 with 2048 macs"
endchoice
endmenu

config ETHOS_U_NPU_NAME
	string
	default "ethos-u55-64" if ETHOS_U55_64
	default "ethos-u55-128" if ETHOS_U55_128
	default "ethos-u55-256" if ETHOS_U55_256
	default "ethos-u65-128" if ETHOS_U65_128
	default "ethos-u65-256" if ETHOS_U65_256
	default "ethos-u65-512" if ETHOS_U65_512
	default "ethos-u85-128" if ETHOS_U85_128
	default "ethos-u85-256" if ETHOS_U85_256
	default "ethos-u85-512" if ETHOS_U85_512
	default "ethos-u85-1024" if ETHOS_U85_1024
	default "ethos-u85-2048" if ETHOS_U85_2048
	help
	  Name of the used Ethos-U NPU

choice "ETHOS_U_LOG_LEVEL_CHOICE"
	prompt "Max compiled-in log level for ETHOS_U"
	default ETHOS_U_LOG_LEVEL_WRN
	depends on LOG

config ETHOS_U_LOG_LEVEL_NONE
	bool "None"

config ETHOS_U_LOG_LEVEL_ERR
	bool "Error"

config ETHOS_U_LOG_LEVEL_WRN
	bool "Warning"

config ETHOS_U_LOG_LEVEL_INF
	bool "Info"

config ETHOS_U_LOG_LEVEL_DBG
	bool "Debug"

config ETHOS_U_LOG_LEVEL_DEFAULT
	bool "Default"

endchoice

config ETHOS_U_LOG_LEVEL
	int
	# Always define the symbol so C compiles cleanly even if LOG/console is off.
	# When LOG is off, fall back to NONE (0).
	default 0 if !LOG
	default 0 if ETHOS_U_LOG_LEVEL_NONE
	default 1 if ETHOS_U_LOG_LEVEL_ERR
	default 2 if ETHOS_U_LOG_LEVEL_WRN
	default 3 if ETHOS_U_LOG_LEVEL_INF
	default 4 if ETHOS_U_LOG_LEVEL_DBG

endif
