# BL654 USB adapter board configuration

# Copyright (c) 2021-2022 Laird Connectivity
# SPDX-License-Identifier: Apache-2.0

if BOARD_BL654_USB

config BOARD
	default "bl654_usb"

# To let the nRF5 bootloader load an application, the application
# must be linked after Nordic MBR, that is factory-programmed on the board.

# Nordic nRF5 bootloader exists outside of the partitions specified in the
# DTS file, so we manually override FLASH_LOAD_OFFSET to link the application
# correctly, after Nordic MBR, and limit the maximum size to not protude into
# the bootloader at the end of flash.

# When building MCUBoot, MCUBoot itself will select USE_DT_CODE_PARTITION
# which will make it link into the correct partition specified in DTS file,
# so no override or limit is necessary.

config FLASH_LOAD_OFFSET
	default 0x1000
	depends on !USE_DT_CODE_PARTITION

config FLASH_LOAD_SIZE
	default 0xdf000
	depends on !USE_DT_CODE_PARTITION

config USB_CDC_ACM
	default n if USB_DEVICE_BLUETOOTH

if BL654_USB_SERIAL_BACKEND_CDCACM

config UART_CONSOLE
	default CONSOLE

config USB_DEVICE_INITIALIZE_AT_BOOT
	default y if !MCUBOOT

config SHELL_BACKEND_SERIAL_CHECK_DTR
	default SHELL
	depends on UART_LINE_CTRL

config UART_LINE_CTRL
	default SHELL

# Logger cannot use itself to log
config USB_CDC_ACM_LOG_LEVEL
	default 0

# Set USB log level to error only
config USB_DEVICE_LOG_LEVEL
	default 1

endif #BL654_USB_SERIAL_BACKEND_CDCACM

config BT_CTLR
	default BT

endif # BOARD_BL654_USB
