# PAN1783 EVB board configuration

# Copyright (c) 2023 Panasonic Industrial Devices Europe GmbH
# SPDX-License-Identifier: Apache-2.0

if SOC_NRF5340_CPUAPP_QKAA

config DOMAIN_CPUNET_BOARD
	string
	default "pan1783_evb/nrf5340/cpunet" if BOARD_PAN1783_EVB_NRF5340_CPUAPP
	default "pan1783a_evb/nrf5340/cpunet" if BOARD_PAN1783A_EVB_NRF5340_CPUAPP
	default "pan1783a_pa_evb/nrf5340/cpunet" if BOARD_PAN1783A_PA_EVB_NRF5340_CPUAPP
	help
	  The board which will be used for CPUNET domain when creating a multi
	  image application where one or more images should be located on
	  another board. For example hci_ipc on the nRF5340_cpunet for
	  Bluetooth applications.

endif # SOC_NRF5340_CPUAPP_QKAA

config DOMAIN_CPUAPP_BOARD
	string
	default "pan1783_evb/nrf5340/cpuapp" if BOARD_PAN1783_EVB_NRF5340_CPUNET
	default "pan1783a_evb/nrf5340/cpuapp" if BOARD_PAN1783A_EVB_NRF5340_CPUNET
	default "pan1783a_pa_evb/nrf5340/cpuapp" if BOARD_PAN1783A_PA_EVB_NRF5340_CPUNET
	help
	  The board which will be used for CPUAPP domain when creating a multi
	  image application where one or more images should be located on
	  another board.
