# Kconfig - nRF52840 PCA10056 board configuration
#
# Copyright (c) 2016 Nordic Semiconductor ASA
#
# SPDX-License-Identifier: Apache-2.0

if BOARD_NRF52840_PCA10056

config BOARD
	default "nrf52840_pca10056"

if ADC

config ADC_0
	default y

endif # ADC

if I2C

config I2C_0
	default y

endif # I2C

if PWM

config PWM_0
	default y

endif # PWM

if SPI

config SPI_1
	default y

config SPI_2
	default y

config SPI_3
	default y

endif # SPI

if USB

config USB_NRF52840
	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_NRF52840_PCA10056
