1# nrfx UART configuration 2 3# Copyright (c) 2016 - 2018, Nordic Semiconductor ASA 4# SPDX-License-Identifier: Apache-2.0 5 6menuconfig UART_NRFX 7 bool "nRF UART nrfx drivers" 8 default y 9 select SERIAL_HAS_DRIVER 10 select SERIAL_SUPPORT_INTERRUPT 11 select SERIAL_SUPPORT_ASYNC 12 select PINCTRL 13 depends on DT_HAS_NORDIC_NRF_UART_ENABLED || DT_HAS_NORDIC_NRF_UARTE_ENABLED 14 help 15 Enable support for nrfx UART drivers for nRF MCU series. 16 Peripherals with the same instance ID cannot be used together, 17 e.g. UART_0 and UARTE_0. 18 19if UART_NRFX 20 21config UART_NRFX_UART 22 def_bool y 23 depends on DT_HAS_NORDIC_NRF_UART_ENABLED 24 25config UART_NRFX_UARTE 26 def_bool y 27 depends on DT_HAS_NORDIC_NRF_UARTE_ENABLED 28 imply NRFX_UARTE_CONFIG_SKIP_PSEL_CONFIG if !UART_NRFX_UARTE_LEGACY_SHIM 29 imply NRFX_UARTE_CONFIG_SKIP_GPIO_CONFIG if !UART_NRFX_UARTE_LEGACY_SHIM 30 31config UART_NRFX_UARTE_LEGACY_SHIM 32 bool "Legacy UARTE shim" 33 depends on UART_NRFX_UARTE 34 default y 35 help 36 Disabling this option is deprecated. 37 38config DEPRECATED_UART_NRFX_UARTE_LEGACY_SHIM 39 bool 40 default y if !UART_NRFX_UARTE_LEGACY_SHIM 41 depends on UART_NRFX_UARTE 42 select DEPRECATED 43 44config UART_NRFX_UARTE_ENHANCED_RX 45 bool "Enhanced RX handling" 46 depends on UART_ASYNC_API 47 depends on UART_NRFX_UARTE_LEGACY_SHIM 48 default y 49 help 50 Enable RX handling mode which is switching buffers on timeout. This is an 51 enhancement compared to other two modes (default and hardware assisted). 52 Default mode could miscount bytes when interrupt was not handled on time 53 and hardware assisted required TIMER peripheral instance and PPI channel 54 for accurate byte counting. 55 56config UART_ASYNC_TX_CACHE_SIZE 57 int "TX cache buffer size" 58 depends on UART_ASYNC_API 59 depends on UART_NRFX_UARTE_LEGACY_SHIM 60 default 8 61 help 62 For UARTE, TX cache buffer is used when provided TX buffer is not located 63 in RAM, because EasyDMA in UARTE peripherals can only transfer data 64 from RAM. 65 66if HAS_HW_NRF_UART0 || HAS_HW_NRF_UARTE0 67nrfx_uart_num = 0 68rsource "Kconfig.nrfx_uart_instance" 69endif 70 71if HAS_HW_NRF_UARTE1 72nrfx_uart_num = 1 73rsource "Kconfig.nrfx_uart_instance" 74endif 75 76if HAS_HW_NRF_UARTE2 77nrfx_uart_num = 2 78rsource "Kconfig.nrfx_uart_instance" 79endif 80 81if HAS_HW_NRF_UARTE3 82nrfx_uart_num = 3 83rsource "Kconfig.nrfx_uart_instance" 84endif 85 86if HAS_HW_NRF_UARTE00 87nrfx_uart_num = 00 88rsource "Kconfig.nrfx_uart_instance" 89endif 90 91if HAS_HW_NRF_UARTE20 92nrfx_uart_num = 20 93rsource "Kconfig.nrfx_uart_instance" 94endif 95 96if HAS_HW_NRF_UARTE21 97nrfx_uart_num = 21 98rsource "Kconfig.nrfx_uart_instance" 99endif 100 101if HAS_HW_NRF_UARTE22 102nrfx_uart_num = 22 103rsource "Kconfig.nrfx_uart_instance" 104endif 105 106if HAS_HW_NRF_UARTE30 107nrfx_uart_num = 30 108rsource "Kconfig.nrfx_uart_instance" 109endif 110 111if HAS_HW_NRF_UARTE120 112 113config UART_NRFX_UARTE_USE_CLOCK_CONTROL 114 def_bool y 115 select CLOCK_CONTROL 116 117nrfx_uart_num = 120 118rsource "Kconfig.nrfx_uart_instance" 119endif 120 121if HAS_HW_NRF_UARTE130 122nrfx_uart_num = 130 123rsource "Kconfig.nrfx_uart_instance" 124endif 125 126if HAS_HW_NRF_UARTE131 127nrfx_uart_num = 131 128rsource "Kconfig.nrfx_uart_instance" 129endif 130 131if HAS_HW_NRF_UARTE132 132nrfx_uart_num = 132 133rsource "Kconfig.nrfx_uart_instance" 134endif 135 136if HAS_HW_NRF_UARTE133 137nrfx_uart_num = 133 138rsource "Kconfig.nrfx_uart_instance" 139endif 140 141if HAS_HW_NRF_UARTE134 142nrfx_uart_num = 134 143rsource "Kconfig.nrfx_uart_instance" 144endif 145 146if HAS_HW_NRF_UARTE135 147nrfx_uart_num = 135 148rsource "Kconfig.nrfx_uart_instance" 149endif 150 151if HAS_HW_NRF_UARTE136 152nrfx_uart_num = 136 153rsource "Kconfig.nrfx_uart_instance" 154endif 155 156if HAS_HW_NRF_UARTE137 157nrfx_uart_num = 137 158rsource "Kconfig.nrfx_uart_instance" 159endif 160 161config NRFX_TIMER0 162 default y 163 depends on UART_0_NRF_HW_ASYNC_TIMER = 0 \ 164 || UART_1_NRF_HW_ASYNC_TIMER = 0 \ 165 || UART_2_NRF_HW_ASYNC_TIMER = 0 \ 166 || UART_3_NRF_HW_ASYNC_TIMER = 0 167 168config NRFX_TIMER1 169 default y 170 depends on UART_0_NRF_HW_ASYNC_TIMER = 1 \ 171 || UART_1_NRF_HW_ASYNC_TIMER = 1 \ 172 || UART_2_NRF_HW_ASYNC_TIMER = 1 \ 173 || UART_3_NRF_HW_ASYNC_TIMER = 1 174 175config NRFX_TIMER2 176 default y 177 depends on UART_0_NRF_HW_ASYNC_TIMER = 2 \ 178 || UART_1_NRF_HW_ASYNC_TIMER = 2 \ 179 || UART_2_NRF_HW_ASYNC_TIMER = 2 \ 180 || UART_3_NRF_HW_ASYNC_TIMER = 2 181 182config NRFX_TIMER3 183 default y 184 depends on UART_0_NRF_HW_ASYNC_TIMER = 3 \ 185 || UART_1_NRF_HW_ASYNC_TIMER = 3 \ 186 || UART_2_NRF_HW_ASYNC_TIMER = 3 \ 187 || UART_3_NRF_HW_ASYNC_TIMER = 3 188 189config NRFX_TIMER4 190 default y 191 depends on UART_0_NRF_HW_ASYNC_TIMER = 4 \ 192 || UART_1_NRF_HW_ASYNC_TIMER = 4 \ 193 || UART_2_NRF_HW_ASYNC_TIMER = 4 \ 194 || UART_3_NRF_HW_ASYNC_TIMER = 4 195 196endif # UART_NRFX 197