1#nRF UART(E) instance configuration
2
3# Copyright (c) 2023 Nordic Semiconductor ASA
4# SPDX-License-Identifier: Apache-2.0
5
6config UART_$(nrfx_uart_num)_INTERRUPT_DRIVEN
7	bool "Interrupt support on port $(nrfx_uart_num)"
8	depends on UART_INTERRUPT_DRIVEN
9	default y
10	help
11	  This option enables UART interrupt support on port $(nrfx_uart_num).
12
13config UART_$(nrfx_uart_num)_ASYNC
14	bool "Asynchronous API support on port $(nrfx_uart_num)"
15	depends on UART_ASYNC_API && !UART_$(nrfx_uart_num)_INTERRUPT_DRIVEN
16	default y
17	help
18	  This option enables UART Asynchronous API support on port $(nrfx_uart_num).
19
20config UART_$(nrfx_uart_num)_COUNT_BYTES_WITH_TIMER
21	bool
22	depends on $(dt_nodelabel_has_prop,uart$(nrfx_uart_num),timer)
23	depends on HAS_HW_NRF_UARTE$(nrfx_uart_num)
24	default y
25	imply UARTE_NRFX_UARTE_COUNT_BYTES_WITH_TIMER
26
27config UART_$(nrfx_uart_num)_ENHANCED_POLL_OUT
28	bool "Efficient poll out on port $(nrfx_uart_num)"
29	depends on !$(dt_nodelabel_bool_prop,uart$(nrfx_uart_num),endtx-stoptx-supported)
30	default y
31	depends on HAS_HW_NRF_UARTE$(nrfx_uart_num)
32	depends on HAS_HW_NRF_PPI || HAS_HW_NRF_DPPIC
33	select NRFX_GPPI
34	help
35	  When enabled, polling out does not trigger interrupt which stops TX.
36	  Feature uses a PPI channel.
37
38config UART_$(nrfx_uart_num)_NRF_PARITY_BIT
39	bool "Parity bit"
40	help
41	  Enable parity bit.
42
43config UART_$(nrfx_uart_num)_NRF_TX_BUFFER_SIZE
44	int "Size of RAM buffer"
45	depends on HAS_HW_NRF_UARTE$(nrfx_uart_num)
46	range 1 $(UINT16_MAX)
47	default 32
48	help
49	  Size of the transmit buffer for API function: fifo_fill.
50	  This value is limited by range of TXD.MAXCNT register for
51	  particular SoC.
52
53config UART_$(nrfx_uart_num)_NRF_HW_ASYNC
54	bool "Use hardware RX byte counting"
55	depends on HAS_HW_NRF_UARTE$(nrfx_uart_num)
56	depends on UART_ASYNC_API
57	depends on HAS_HW_NRF_PPI || HAS_HW_NRF_DPPIC
58	select NRFX_GPPI
59	help
60	  If default driver uses interrupts to count incoming bytes, it is possible
61	  that with higher speeds and/or high cpu load some data can be lost.
62	  It is recommended to use hardware byte counting in such scenarios.
63	  Hardware RX byte counting requires timer instance and one PPI channel.
64
65config UART_$(nrfx_uart_num)_NRF_ASYNC_LOW_POWER
66	bool "Low power mode"
67	depends on HAS_HW_NRF_UARTE$(nrfx_uart_num)
68	depends on UART_ASYNC_API
69	default y if !PM_DEVICE
70	help
71	  When enabled, UARTE is enabled before each TX or RX usage and disabled
72	  when not used. Disabling UARTE while in idle allows to achieve lowest
73	  power consumption. It is only feasible if receiver is not always on.
74	  This option is irrelevant when device power management (PM) is enabled
75	  because then device state is controlled by the PM actions.
76
77
78config UART_$(nrfx_uart_num)_NRF_HW_ASYNC_TIMER
79	int "Timer instance"
80	depends on UART_$(nrfx_uart_num)_NRF_HW_ASYNC
81