# Kconfig - 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 "Enable 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_SHELL
	bool "Enable modem shell utilities"
	select SHELL
	help
	  Activate shell module that provides modem utilities like
	  sending a command to the modem UART.

source "drivers/modem/Kconfig.wncm14a2a"

endif # MODEM
