# Copyright (c) 2024 Nordic Semiconductor ASA
# SPDX-License-Identifier: Apache-2.0

config NORDIC_VPR_LAUNCHER
	bool "Nordic VPR coprocessor launcher"
	default y
	depends on DT_HAS_NORDIC_NRF_VPR_COPROCESSOR_ENABLED
	help
	  When enabled, the VPR coprocessors will be automatically launched
	  during system initialization.

if NORDIC_VPR_LAUNCHER

module = NORDIC_VPR_LAUNCHER
module-str = Nordic VPR Launcher
source "subsys/logging/Kconfig.template.log_config"

config NORDIC_VPR_LAUNCHER_INIT_PRIORITY
	int "Nordic VPR coprocessor launcher init priority"
	default 0
	help
	  The init priority of the VPR coprocessor launcher.

endif # NORDIC_VPR_LAUNCHER
