# Adafruit ItsyBitsy nRF52840 Express board configuration

# Copyright (c) 2022 Embla Flatlandsmo <embla.flatlandsmo@gmail.com>
# SPDX-License-Identifier: Apache-2.0

if BOARD_ADAFRUIT_ITSYBITSY

config BT_CTLR
	default BT

if BOARD_SERIAL_BACKEND_CDC_ACM

config USB_DEVICE_STACK
	default y

config USB_CDC_ACM
	default SERIAL

config UART_CONSOLE
	default CONSOLE

config USB_DEVICE_INITIALIZE_AT_BOOT
	default y if CONSOLE

config SHELL_BACKEND_SERIAL_CHECK_DTR
	default SHELL
	depends on UART_LINE_CTRL

config UART_LINE_CTRL
	default SHELL

config USB_DEVICE_REMOTE_WAKEUP
	default n

if LOG

# 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

# Wait 1500ms at startup for logging
config LOG_PROCESS_THREAD_STARTUP_DELAY_MS
	default 1500

endif # LOG

endif # BOARD_SERIAL_BACKEND_CDC_ACM

endif # BOARD_ADAFRUIT_ITSYBITSY
