# Particle Boron board configuration

# Copyright (c) 2018 Peter Bigot Consulting, LLC
# SPDX-License-Identifier: Apache-2.0

if BOARD_PARTICLE_BORON

config BOARD
	default "particle_boron"

if USB

config USB_NRFX
	default y

config USB_DEVICE_STACK
	default y

endif # USB

config IEEE802154_NRF5
	default y
	depends on IEEE802154

config BT_CTLR
	default BT

if MODEM

config UART_1_NRF_FLOW_CONTROL
	default y

config MODEM_UBLOX_SARA
	default y

choice MODEM_UBLOX_SARA_VARIANT
	default MODEM_UBLOX_SARA_R4
endchoice

config UART_INTERRUPT_DRIVEN
	default y

endif # MODEM

endif # BOARD_PARTICLE_BORON
