# SPDX-License-Identifier: Apache-2.0

if BOARD_NRF52_BSIM

config BUILD_OUTPUT_BIN
	default n

config BUILD_OUTPUT_EXE
	default y

config OUTPUT_PRINT_MEMORY_USAGE
	default n

config BOARD
	default "nrf52_bsim"

config SYS_CLOCK_HW_CYCLES_PER_SEC
	default 32768

config SYS_CLOCK_TICKS_PER_SEC
	default 128 if !TICKLESS_KERNEL
	default 32768

config BT_CTLR
	default y
	depends on BT

# The 15.4 driver Tx encryption is currently not functional with this
# simulated board => we disable it by default. With this Openthread will normally
# default to encrypt packets on its own.
config NRF_802154_ENCRYPTION
	default n

if LOG

# For this board we can log synchronously without any problem
# Doing so will be nicer for debugging
choice LOG_MODE
	default LOG_MODE_IMMEDIATE
endchoice

endif # LOG

if CONSOLE

config POSIX_ARCH_CONSOLE
	default y if !SERIAL

config UART_CONSOLE
	default y if SERIAL

endif # CONSOLE

endif # BOARD_NRF52_BSIM
