# PAN1783 EVB board configuration

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

config BOARD
	default "pan1783_evb_cpuapp" if  BOARD_PAN1783_EVB_CPUAPP
	default "pan1783a_evb_cpuapp" if  BOARD_PAN1783A_EVB_CPUAPP
	default "pan1783a_pa_evb_cpuapp" if  BOARD_PAN1783A_PA_EVB_CPUAPP
	default "pan1783_evb_cpunet" if BOARD_PAN1783_EVB_CPUNET
	default "pan1783a_evb_cpunet" if BOARD_PAN1783A_EVB_CPUNET
	default "pan1783a_pa_evb_cpunet" if BOARD_PAN1783A_PA_EVB_CPUNET

config MBOX_NRFX_IPC
	default MBOX

if BOARD_PAN1783_EVB_CPUAPP || BOARD_PAN1783A_EVB_CPUAPP || BOARD_PAN1783A_PA_EVB_CPUAPP

choice BT_HCI_BUS_TYPE
	default BT_HCI_IPC if BT
endchoice

config HEAP_MEM_POOL_ADD_SIZE_BOARD
	int
	default 4096 if BT_HCI_IPC

endif #  BOARD_PAN1783_EVB_CPUAPP || BOARD_PAN1783A_EVB_CPUAPP || BOARD_PAN1783A_PA_EVB_CPUAPP

if BOARD_PAN1783_EVB_CPUNET || BOARD_PAN1783A_EVB_CPUNET || BOARD_PAN1783A_PA_EVB_CPUNET

config BT_CTLR
	default y if BT

endif # BOARD_PAN1783_EVB_CPUNET || BOARD_PAN1783A_EVB_CPUNET || BOARD_PAN1783A_PA_EVB_CPUNET
