# nrfx I2C support

# Copyright (c) 2018, Nordic Semiconductor ASA
# SPDX-License-Identifier: Apache-2.0

menuconfig I2C_NRFX
	bool "nRF TWI nrfx drivers"
	default y
	depends on SOC_FAMILY_NRF
	help
	  Enable support for nrfx TWI drivers for nRF MCU series.

if I2C_NRFX

config I2C_0_NRF_TWI
	def_bool HAS_HW_NRF_TWI0
	select NRFX_TWI0
	help
	  Enable nRF TWI Master without EasyDMA on port 0.

config I2C_0_NRF_TWIM
	def_bool HAS_HW_NRF_TWIM0
	select NRFX_TWIM0
	help
	  Enable nRF TWI Master with EasyDMA on port 0.
	  This peripheral accepts transfers from RAM only,
	  if provided buffer is placed in flash, transfer will fail.

config I2C_1_NRF_TWI
	def_bool HAS_HW_NRF_TWI1
	select NRFX_TWI1
	help
	  Enable nRF TWI Master without EasyDMA on port 1.

config I2C_1_NRF_TWIM
	def_bool HAS_HW_NRF_TWIM1
	select NRFX_TWIM1
	help
	  Enable nRF TWI Master with EasyDMA on port 1.
	  This peripheral accepts transfers from RAM only,
	  if provided buffer is placed in flash, transfer will fail.

config I2C_2_NRF_TWIM
	def_bool HAS_HW_NRF_TWIM2
	select NRFX_TWIM2
	help
	  Enable nRF TWI Master with EasyDMA on port 2.
	  This peripheral accepts transfers from RAM only,
	  if provided buffer is placed in flash, transfer will fail.

config I2C_3_NRF_TWIM
	def_bool HAS_HW_NRF_TWIM3
	select NRFX_TWIM3
	help
	  Enable nRF TWI Master with EasyDMA on port 3.
	  This peripheral accepts transfers from RAM only,
	  if provided buffer is placed in flash, transfer will fail.

endif # I2C_NRFX
