# Copyright (c) 2023 Bjarki Arge Andreasen
# SPDX-License-Identifier: Apache-2.0

config MODEM_CELLULAR
	bool "Generic cellular modem support"
	select MODEM_MODULES
	select MODEM_PPP
	select MODEM_CMUX
	select MODEM_CHAT
	select MODEM_PIPE
	select MODEM_BACKEND_UART
	select RING_BUFFER
	select NET_L2_PPP_OPTION_MRU
	select NET_L2_PPP_PAP
	depends on (DT_HAS_QUECTEL_BG95_ENABLED || DT_HAS_ZEPHYR_GSM_PPP_ENABLED || \
		    DT_HAS_SIMCOM_SIM7080_ENABLED || DT_HAS_U_BLOX_SARA_R4_ENABLED || \
		    DT_HAS_U_BLOX_SARA_R5_ENABLED || DT_HAS_SWIR_HL7800_ENABLED || \
		    DT_HAS_TELIT_ME910G1_ENABLED || DT_HAS_QUECTEL_EG25_G_ENABLED || \
		    DT_HAS_NORDIC_NRF91_SLM_ENABLED)
	help
	  This driver uses the generic 3gpp AT commands, along
	  with the standard protocols CMUX and PPP, to configure
	  cellular modems to establish a point-to-point
	  network connection. It is a plug-in replacement for the
	  existing GSM_PPP driver, and a template for tailored
	  drivers for the ublox, quectel and other modems, which
	  include power management and more complex device specific
	  features.

if MODEM_CELLULAR

config MODEM_CELLULAR_APN
	string "APN"
	default "internet"

config MODEM_CELLULAR_PERIODIC_SCRIPT_MS
	int "Periodic script interval in milliseconds"
	default 2000

config MODEM_CELLULAR_UART_BUFFER_SIZES
	int "The UART receive and transmit buffer sizes in bytes."
	default 512

config MODEM_CELLULAR_CMUX_MAX_FRAME_SIZE
	int "The maximum CMUX frame size in bytes."
	default 128
	help
	  This value affects the size of buffers used to receive and transmit CMUX frames.

config MODEM_CELLULAR_CHAT_BUFFER_SIZES
	int "The size of the buffers used for the chat scripts in bytes."
	default 128

endif
