blob: 158731404e63e0a2084e6804f7bda1d4d45dc5b1 [file] [log] [blame]
# nrfx UART configuration
# Copyright (c) 2016 - 2018, Nordic Semiconductor ASA
# SPDX-License-Identifier: Apache-2.0
menuconfig UART_NRFX
bool "nRF UART nrfx drivers"
default y
select SERIAL_HAS_DRIVER
select SERIAL_SUPPORT_INTERRUPT
select SERIAL_SUPPORT_ASYNC
select PINCTRL
depends on DT_HAS_NORDIC_NRF_UART_ENABLED || DT_HAS_NORDIC_NRF_UARTE_ENABLED
help
Enable support for nrfx UART drivers for nRF MCU series.
Peripherals with the same instance ID cannot be used together,
e.g. UART_0 and UARTE_0.
if UART_NRFX
config UART_NRFX_UART
def_bool y
depends on DT_HAS_NORDIC_NRF_UART_ENABLED
config UART_NRFX_UARTE
def_bool y
depends on DT_HAS_NORDIC_NRF_UARTE_ENABLED
imply NRFX_UARTE_CONFIG_SKIP_PSEL_CONFIG if !UART_NRFX_UARTE_LEGACY_SHIM
imply NRFX_UARTE_CONFIG_SKIP_GPIO_CONFIG if !UART_NRFX_UARTE_LEGACY_SHIM
config UART_NRFX_UARTE_LEGACY_SHIM
bool "Legacy UARTE shim"
depends on UART_NRFX_UARTE
depends on !SOC_SERIES_NRF54LX && !SOC_SERIES_NRF54HX
# New shim takes more ROM. Until it is fixed use legacy shim.
default y
config UART_ASYNC_TX_CACHE_SIZE
int "TX cache buffer size"
depends on UART_ASYNC_API
depends on UART_NRFX_UARTE_LEGACY_SHIM
default 8
help
For UARTE, TX cache buffer is used when provided TX buffer is not located
in RAM, because EasyDMA in UARTE peripherals can only transfer data
from RAM.
if HAS_HW_NRF_UART0 || HAS_HW_NRF_UARTE0
nrfx_uart_num = 0
rsource "Kconfig.nrfx_uart_instance"
endif
if HAS_HW_NRF_UARTE1
nrfx_uart_num = 1
rsource "Kconfig.nrfx_uart_instance"
endif
if HAS_HW_NRF_UARTE2
nrfx_uart_num = 2
rsource "Kconfig.nrfx_uart_instance"
endif
if HAS_HW_NRF_UARTE3
nrfx_uart_num = 3
rsource "Kconfig.nrfx_uart_instance"
endif
if HAS_HW_NRF_UARTE00
nrfx_uart_num = 00
rsource "Kconfig.nrfx_uart_instance"
endif
if HAS_HW_NRF_UARTE20
nrfx_uart_num = 20
rsource "Kconfig.nrfx_uart_instance"
endif
if HAS_HW_NRF_UARTE21
nrfx_uart_num = 21
rsource "Kconfig.nrfx_uart_instance"
endif
if HAS_HW_NRF_UARTE22
nrfx_uart_num = 22
rsource "Kconfig.nrfx_uart_instance"
endif
if HAS_HW_NRF_UARTE30
nrfx_uart_num = 30
rsource "Kconfig.nrfx_uart_instance"
endif
if HAS_HW_NRF_UARTE120
nrfx_uart_num = 120
rsource "Kconfig.nrfx_uart_instance"
endif
if HAS_HW_NRF_UARTE130
nrfx_uart_num = 130
rsource "Kconfig.nrfx_uart_instance"
endif
if HAS_HW_NRF_UARTE131
nrfx_uart_num = 131
rsource "Kconfig.nrfx_uart_instance"
endif
if HAS_HW_NRF_UARTE132
nrfx_uart_num = 132
rsource "Kconfig.nrfx_uart_instance"
endif
if HAS_HW_NRF_UARTE133
nrfx_uart_num = 133
rsource "Kconfig.nrfx_uart_instance"
endif
if HAS_HW_NRF_UARTE134
nrfx_uart_num = 134
rsource "Kconfig.nrfx_uart_instance"
endif
if HAS_HW_NRF_UARTE135
nrfx_uart_num = 135
rsource "Kconfig.nrfx_uart_instance"
endif
if HAS_HW_NRF_UARTE136
nrfx_uart_num = 136
rsource "Kconfig.nrfx_uart_instance"
endif
if HAS_HW_NRF_UARTE137
nrfx_uart_num = 137
rsource "Kconfig.nrfx_uart_instance"
endif
config NRFX_TIMER0
default y
depends on UART_0_NRF_HW_ASYNC_TIMER = 0 \
|| UART_1_NRF_HW_ASYNC_TIMER = 0 \
|| UART_2_NRF_HW_ASYNC_TIMER = 0 \
|| UART_3_NRF_HW_ASYNC_TIMER = 0
config NRFX_TIMER1
default y
depends on UART_0_NRF_HW_ASYNC_TIMER = 1 \
|| UART_1_NRF_HW_ASYNC_TIMER = 1 \
|| UART_2_NRF_HW_ASYNC_TIMER = 1 \
|| UART_3_NRF_HW_ASYNC_TIMER = 1
config NRFX_TIMER2
default y
depends on UART_0_NRF_HW_ASYNC_TIMER = 2 \
|| UART_1_NRF_HW_ASYNC_TIMER = 2 \
|| UART_2_NRF_HW_ASYNC_TIMER = 2 \
|| UART_3_NRF_HW_ASYNC_TIMER = 2
config NRFX_TIMER3
default y
depends on UART_0_NRF_HW_ASYNC_TIMER = 3 \
|| UART_1_NRF_HW_ASYNC_TIMER = 3 \
|| UART_2_NRF_HW_ASYNC_TIMER = 3 \
|| UART_3_NRF_HW_ASYNC_TIMER = 3
config NRFX_TIMER4
default y
depends on UART_0_NRF_HW_ASYNC_TIMER = 4 \
|| UART_1_NRF_HW_ASYNC_TIMER = 4 \
|| UART_2_NRF_HW_ASYNC_TIMER = 4 \
|| UART_3_NRF_HW_ASYNC_TIMER = 4
endif # UART_NRFX