# Particle Xenon board configuration

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

if BOARD_PARTICLE_XENON

config BOARD
	default "particle_xenon"

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_XENON
