# 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"

if UART_NRFX

config UART_0_NRF_TX_PIN
	default 3

config UART_0_NRF_RX_PIN
	default 2

endif # UART_NRFX

config I2C
	def_bool y

if I2C

config I2C_NRFX
	def_bool y

if I2C_NRFX

config I2C_0
	def_bool y

config I2C_1
	def_bool y

endif #I2C_NRFX

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
	def_bool y

config GPIO_SX1509B_INIT_PRIORITY
	default 70

endif # I2C_1

endif # I2C

endif # BOARD_NRF52_PCA20020
