# Particle Argon board configuration

# Copyright (c) 2018 Matthias Boesl
# SPDX-License-Identifier: Apache-2.0

if BOARD_PARTICLE_ARGON

config BOARD
	default "particle_argon"

if ADC

config ADC_0
	default y

endif # ADC

if I2C

config I2C_0
	default y

endif # I2C

if SPI

config SPI_2
	default y

endif # SPI

if USB

config USB_NRFX
	default y

config USB_DEVICE_STACK
	default y

endif # USB

if IEEE802154

config IEEE802154_NRF5
	default y

endif # IEEE802154

config BT_CTLR
	default BT

endif # BOARD_PARTICLE_ARGON
