# nRF52 PCA10059 board configuration
#
# Copyright (c) 2018 Nordic Semiconductor ASA
#
# SPDX-License-Identifier: Apache-2.0

if BOARD_NRF52840_PCA10059

config BOARD
	default "nrf52840_pca10059"

if BOARD_HAS_NRF5_BOOTLOADER && !USE_DT_CODE_PARTITION

# To let the nRF5 bootloader load an application, the application
# must be linked after Nordic MBR, that is factory-programmed on the board.

# Nordic nRF5 booatloader exists outside of the partitions specified in the
# DTS file, so we manually override FLASH_LOAD_OFFEST to link the application
# correctly, after Nordic MBR.

# When building MCUBoot, MCUBoot itself will select USE_DT_CODE_PARTITION
# which will make it link into the correct partition specified in DTS file,
# so no override is necessary.

config FLASH_LOAD_OFFSET
	default 0x1000

endif # BOARD_HAS_NRF5_BOOTLOADER && !USE_DT_CODE_PARTITION

if ADC

config ADC_0
	default y

endif # ADC

if I2C

config I2C_0
	default y

endif # I2C

if SPI

config SPI_1
	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_NRF52840_PCA10059
