# Kconfig - Electronut Labs Papyr board configuration
#
# Copyright (c) 2018 Electronut Labs
#
# SPDX-License-Identifier: Apache-2.0

if BOARD_NRF52840_PAPYR

config BOARD
	default "nrf52840_papyr"

if ADC

config ADC_0
        default y

endif # ADC

if USB

config USB_NRF52840
	default y

config USB_DEVICE_STACK
	default y

endif # USB

if IEEE802154

config IEEE802154_NRF5
	default y

endif # IEEE802154

if PWM

config PWM_0
	default y

endif # PWM

if I2C

config I2C_0
	default y

endif # I2C

if SPI

config SPI_1
	default y

endif # SPI

config BT_CTLR
	default BT

endif # BOARD_NRF52840_PAPYR
