# Kconfig - nRF52 VBLUno52 board configuration
#
# Copyright (c) 2017 VNG IoT Lab
#
# SPDX-License-Identifier: Apache-2.0

if BOARD_NRF52_VBLUNO52

config BOARD
	default nrf52_vbluno52

if GPIO_NRF5

config GPIO_NRF5_P0
	default y

endif # GPIO_NRF5

if UART_NRF5

config UART_NRF5_GPIO_TX_PIN
	default 6

config UART_NRF5_GPIO_RX_PIN
	default 8

config UART_NRF5_GPIO_RTS_PIN
	default 5

config UART_NRF5_GPIO_CTS_PIN
	default 7

endif # UART_NRF5

if I2C

config I2C_NRF5
	def_bool y

config I2C_0
	default y

config I2C_0_IRQ_PRI
	default 1

endif # I2C

if I2C_NRF5

config I2C_NRF5_GPIO_SCL_PIN
	default 27

config I2C_NRF5_GPIO_SCA_PIN
	default 26

config I2C_0_DEFAULT_CFG
	# Standard speed, master
	default 0x12

endif # I2C_NRF5

endif # BOARD_NRF52_VBLUNO52
