blob: ddfd9380804e95ce55232f61ec8f2691df6c381f [file] [log] [blame]
# 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.
Peripherals with the same instance ID cannot be used together,
e.g. I2C_0 and SPI_0. You may need to disable SPI_0 or SPI_1.
if I2C_NRFX
choice I2C_0_NRF_TYPE
prompt "I2C Port 0 Driver type"
# In most Nordic SoCs, SPI and TWI peripherals with the same instance
# number share certain resources and therefore cannot be used at the
# same time (in nRF91 and nRF53 Series this limitation concerns UART
# peripherals as well). In nRF52810 though, there are only single
# instances of these peripherals and they are arranged in a different
# way, so this limitation does not apply.
depends on I2C_0 && (SOC_NRF52810 || \
(!SPI_0 && !(SOC_SERIES_NRF91X && UART_0_NRF_UARTE)) || \
(!SPI_0 && !(SOC_SERIES_NRF53X && UART_0_NRF_UARTE)))
config I2C_0_NRF_TWI
bool "nRF TWI 0"
depends on HAS_HW_NRF_TWI0
select NRFX_TWI0
help
Enable nRF TWI Master without EasyDMA on port 0.
config I2C_0_NRF_TWIM
bool "nRF TWIM 0"
depends on 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.
endchoice
choice I2C_1_NRF_TYPE
prompt "I2C Port 1 Driver type"
# In Nordic SoCs, SPI and TWI peripherals with the same instance number
# share certain resources and therefore cannot be used at the same time
# (in nRF91 and nRF53 Series this limitation concerns UART peripherals
# as well).
depends on I2C_1 && !SPI_1 && \
!(SOC_SERIES_NRF91X && UART_1_NRF_UARTE) && \
!(SOC_SERIES_NRF53X && UART_1_NRF_UARTE)
config I2C_1_NRF_TWI
bool "nRF TWI 1"
depends on HAS_HW_NRF_TWI1
select NRFX_TWI1
help
Enable nRF TWI Master without EasyDMA on port 1.
config I2C_1_NRF_TWIM
bool "nRF TWIM 1"
depends on 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.
endchoice
choice I2C_2_NRF_TYPE
prompt "I2C Port 2 Driver type"
# In Nordic SoCs, SPI and TWI peripherals with the same instance number
# share certain resources and therefore cannot be used at the same time
# (in nRF91 and nRF53 Series this limitation concerns UART peripherals
# as well).
depends on I2C_2 && !SPI_2 && \
!(SOC_SERIES_NRF91X && UART_2_NRF_UARTE) && \
!(SOC_SERIES_NRF53X && UART_2_NRF_UARTE)
config I2C_2_NRF_TWIM
bool "nRF TWIM 2"
depends on 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.
endchoice
choice I2C_3_NRF_TYPE
prompt "I2C Port 3 Driver type"
# In Nordic SoCs, SPI and TWI peripherals with the same instance number
# share certain resources and therefore cannot be used at the same time
# (in nRF91 and nRF53 Series this limitation concerns UART peripherals
# as well).
depends on I2C_3 && !SPI_3 && \
!(SOC_SERIES_NRF91X && UART_3_NRF_UARTE) && \
!(SOC_SERIES_NRF53X && UART_3_NRF_UARTE)
config I2C_3_NRF_TWIM
bool "nRF TWIM 3"
depends on 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.
endchoice
endif # I2C_NRFX