blob: 6bbadc2c588fea37d3cb6c24168b5d8b63c97954 [file] [log] [blame]
# 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