199 lines
6.3 KiB
Plaintext
199 lines
6.3 KiB
Plaintext
# Modem configuration options
|
|
|
|
# Copyright (c) 2018 Foundries.io
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
menuconfig MODEM
|
|
bool "Modem drivers"
|
|
help
|
|
Enable config options for modem drivers.
|
|
|
|
if MODEM
|
|
|
|
module = MODEM
|
|
module-str = modem
|
|
source "subsys/logging/Kconfig.template.log_config"
|
|
|
|
config MODEM_RECEIVER
|
|
bool "Modem receiver helper driver"
|
|
depends on SERIAL_SUPPORT_INTERRUPT
|
|
select UART_INTERRUPT_DRIVEN
|
|
select RING_BUFFER
|
|
help
|
|
This driver allows modem drivers to communicate over UART with custom
|
|
defined protocols. Driver doesn't inspect received data and all
|
|
aspects of received protocol data are handled by application via
|
|
work method provided. This driver differs from the pipe UART driver
|
|
in that callbacks are executed in a different work queue and data is
|
|
passed around in k_pipe structures.
|
|
|
|
config MODEM_RECEIVER_MAX_CONTEXTS
|
|
int "Maximum number of modem receiver contexts"
|
|
depends on MODEM_RECEIVER
|
|
range 1 10
|
|
default 1
|
|
help
|
|
Maximum number of modem receiver contexts to handle. For most
|
|
purposes this should stay at 1.
|
|
|
|
config MODEM_CONTEXT
|
|
bool "Modem context helper driver [EXPERIMENTAL]"
|
|
select EXPERIMENTAL
|
|
help
|
|
This driver allows modem drivers to communicate with an interface
|
|
using custom defined protocols. Driver doesn't inspect received data
|
|
and all aspects of received protocol data are handled by application
|
|
work method provided. This driver combines abstractions for:
|
|
modem interface, command handler, pin config and socket handling each
|
|
of which will need to be configured.
|
|
|
|
if MODEM_CONTEXT
|
|
|
|
config MODEM_CONTEXT_MAX_NUM
|
|
int "Maximum number of modem contexts"
|
|
default 1
|
|
help
|
|
Maximum number of modem contexts to handle. For most
|
|
purposes this should stay at 1.
|
|
|
|
config MODEM_CONTEXT_VERBOSE_DEBUG
|
|
bool "Verbose debug output in the modem context"
|
|
help
|
|
Enabling this setting will turn on VERY heavy debugging from the
|
|
modem context helper. Do NOT leave on for production.
|
|
|
|
config MODEM_IFACE_UART
|
|
bool "UART-based modem interface"
|
|
select RING_BUFFER
|
|
help
|
|
To configure this layer for use, create a modem_iface_uart_data
|
|
object and pass it's reference to modem_iface_uart_init()
|
|
along with the modem_iface reference from your modem_context object
|
|
and the UART device name.
|
|
|
|
if MODEM_IFACE_UART
|
|
|
|
choice MODEM_IFACE_UART_BACKEND
|
|
prompt "UART backend to use for modem interface"
|
|
default MODEM_IFACE_UART_INTERRUPT
|
|
|
|
config MODEM_IFACE_UART_INTERRUPT
|
|
bool "UART-based modem interface using interrupt API"
|
|
depends on SERIAL_SUPPORT_INTERRUPT
|
|
select UART_INTERRUPT_DRIVEN
|
|
|
|
config MODEM_IFACE_UART_ASYNC
|
|
bool "UART-based modem interface using async API"
|
|
depends on SERIAL_SUPPORT_ASYNC
|
|
select UART_ASYNC_API
|
|
|
|
endchoice
|
|
|
|
if MODEM_IFACE_UART_ASYNC
|
|
|
|
config MODEM_IFACE_UART_ASYNC_RX_BUFFER_SIZE
|
|
int "Size in bytes of the RX buffers provided to UART driver"
|
|
default 64
|
|
help
|
|
Increasing this value decreases the number of UART interrupts needed
|
|
to receive large packets.
|
|
|
|
config MODEM_IFACE_UART_ASYNC_RX_NUM_BUFFERS
|
|
int "Number of RX buffers available to the UART driver"
|
|
default 2
|
|
help
|
|
This value needs to be twice the number of UART modems using the
|
|
driver to avoid buffer starvation.
|
|
|
|
config MODEM_IFACE_UART_ASYNC_RX_TIMEOUT_US
|
|
int "Timeout for flushing RX buffers after receiving no additional data"
|
|
default 278
|
|
help
|
|
Decreasing this value can help increase data throughput when high
|
|
baudrates are used. 278us is 4 bytes at 115200 baud. Decreasing this
|
|
value too much can result in spurious interrupts. Leaving it too
|
|
high can reduce data throughput.
|
|
|
|
endif # MODEM_IFACE_UART_ASYNC
|
|
|
|
endif # MODEM_IFACE_UART
|
|
|
|
config MODEM_CMD_HANDLER
|
|
bool "Generic modem command handler"
|
|
select NET_BUF
|
|
help
|
|
This generic command handler uses a modem interface to process
|
|
incoming data and hand it back to the modem driver via callbacks
|
|
defined for:
|
|
- modem responses
|
|
- unsolicited messages
|
|
- specified handlers for current operation
|
|
To configure this layer for use, create a modem_cmd_handler_data
|
|
object and pass it's reference to modem_cmd_handler_init() along with
|
|
the modem_cmd_handler reference from your modem_context object.
|
|
|
|
config MODEM_CMD_HANDLER_MAX_PARAM_COUNT
|
|
int "Maximum number of params parsed per command"
|
|
depends on MODEM_CMD_HANDLER
|
|
default 6
|
|
help
|
|
This option sets the maximum number of parameters which may be
|
|
parsed by the command handler. This is also limited by the length
|
|
of the match_buf (match_buf_len) field as it needs to be large
|
|
enough to hold a single line of data (ending with /r).
|
|
|
|
endif # MODEM_CONTEXT
|
|
|
|
config MODEM_SOCKET
|
|
bool "Generic modem socket support layer"
|
|
help
|
|
This layer provides much of the groundwork for keeping track of
|
|
modem "sockets" throughout their lifecycle (from the initial offload
|
|
API calls through the command handler call back layers).
|
|
To configure this layer for use, create a modem_socket_config
|
|
object with your socket data and pass it's reference to
|
|
modem_socket_init().
|
|
Note that the modem socket uses runtime allocated file descriptors
|
|
reserved from the fdtable, for which the max count is set using the
|
|
Kconfig option ZVFS_OPEN_MAX. Make sure to update this value as both
|
|
the modem sockets and the POSIX_API, if used, share them.
|
|
|
|
config MODEM_SOCKET_PACKET_COUNT
|
|
int "Maximum number of stored packet sizes per socket"
|
|
depends on MODEM_SOCKET
|
|
default 6
|
|
help
|
|
As the modem indicates more data is available to be received,
|
|
these values are organized into "packets". This setting limits
|
|
the maximum number of packet sizes the socket can keep track of.
|
|
|
|
config MODEM_SHELL
|
|
bool "Modem shell utilities"
|
|
select SHELL
|
|
help
|
|
Activate shell module that provides modem utilities like
|
|
sending a command to the modem UART.
|
|
|
|
config MODEM_SIM_NUMBERS
|
|
bool "Query the SIM for IMSI and ICCID"
|
|
default y
|
|
help
|
|
Query the SIM card for the IMSI and ICCID identifiers. This
|
|
can be disabled if the application does not use a SIM.
|
|
|
|
config MODEM_CELL_INFO
|
|
bool "Query for operator and cell info"
|
|
help
|
|
Query for numerical operator id, location area code and cell id.
|
|
|
|
source "drivers/modem/Kconfig.ublox-sara-r4"
|
|
source "drivers/modem/Kconfig.quectel-bg9x"
|
|
source "drivers/modem/Kconfig.wncm14a2a"
|
|
source "drivers/modem/Kconfig.cellular"
|
|
source "drivers/modem/Kconfig.at_shell"
|
|
|
|
source "drivers/modem/Kconfig.hl7800"
|
|
source "drivers/modem/Kconfig.simcom-sim7080"
|
|
|
|
endif # MODEM
|