| # Copyright (c) 2023 Trackunit Corporation |
| # SPDX-License-Identifier: Apache-2.0 |
| |
| config MODEM_BACKEND_TTY |
| bool "Modem TTY backend module" |
| select MODEM_PIPE |
| depends on ARCH_POSIX |
| |
| config MODEM_BACKEND_UART |
| bool "Modem UART backend module" |
| select MODEM_PIPE |
| select RING_BUFFER |
| depends on UART_INTERRUPT_DRIVEN || UART_ASYNC_API |
| |
| if MODEM_BACKEND_UART |
| |
| config MODEM_BACKEND_UART_ISR |
| bool "Modem UART backend module interrupt driven implementation" |
| default y if UART_INTERRUPT_DRIVEN |
| |
| config MODEM_BACKEND_UART_ASYNC |
| bool "Modem UART backend module async implementation" |
| default y if UART_ASYNC_API |
| |
| if MODEM_BACKEND_UART_ISR |
| |
| config MODEM_BACKEND_UART_ISR_RECEIVE_IDLE_TIMEOUT_MS |
| int "Modem ISR UART delay between first byte received and RECEIVE_READY pipe event" |
| default 20 |
| help |
| This defines the delay, in milliseconds, that the backend waits |
| when receiving a byte before sending the RECEIVE_READY pipe event. |
| The backend will anyway send the event before this delay if buffer space runs out. |
| A good value is ~90% the time it takes to fill half the receive buffer. |
| It can be calculated as follows: |
| (<UART receive_buf_size> / 2) / (<UART baud rate> / <UART bits per byte>) * <ms per sec> |
| By default (for the modem_cellular driver): (512 / 2) / (115200 / 10) * 1000 = 22,222 => 20 |
| |
| endif |
| |
| if MODEM_BACKEND_UART_ASYNC |
| |
| config MODEM_BACKEND_UART_ASYNC_TRANSMIT_TIMEOUT_MS |
| int "Modem async UART transmit timeout in milliseconds" |
| default 1000 |
| |
| config MODEM_BACKEND_UART_ASYNC_RECEIVE_IDLE_TIMEOUT_MS |
| int "Modem async UART receive idle timeout in milliseconds" |
| default 30 |
| |
| endif |
| |
| endif # MODEM_BACKEND_UART |