# Kconfig - nRF52 PCA20020 board configuration
#
# Copyright (c) 2018 Aapo Vienamo
#
# SPDX-License-Identifier: Apache-2.0

if BOARD_NRF52_PCA20020

config BOARD
	default "nrf52_pca20020"

config I2C
	default y

if I2C

config I2C_0
	default y

config I2C_1
	default y

if I2C_0

choice I2C_0_NRF_TYPE
	default I2C_0_NRF_TWIM

endchoice

endif # I2C_0

if I2C_1

choice I2C_1_NRF_TYPE
	default I2C_1_NRF_TWIM

endchoice

config GPIO_SX1509B
	default y

config GPIO_SX1509B_INIT_PRIORITY
	default 70

endif # I2C_1

endif # I2C

config BT_CTLR
	default BT

endif # BOARD_NRF52_PCA20020
