1# Copyright (c) 2023 Bjarki Arge Andreasen
2# SPDX-License-Identifier: Apache-2.0
3
4config MODEM_CELLULAR
5	bool "Generic cellular modem support"
6	select MODEM_MODULES
7	select MODEM_PPP
8	select MODEM_CMUX
9	select MODEM_CHAT
10	select MODEM_PIPE
11	select MODEM_PIPELINK
12	select MODEM_BACKEND_UART
13	select UART_USE_RUNTIME_CONFIGURE
14	select RING_BUFFER
15	select NET_L2_PPP_OPTION_MRU
16	select NET_L2_PPP_PAP
17	select NET_L2_PPP_MGMT
18	depends on (DT_HAS_QUECTEL_BG95_ENABLED || DT_HAS_QUECTEL_BG96_ENABLED || \
19				DT_HAS_SIMCOM_A76XX_ENABLED || DT_HAS_SIMCOM_SIM7080_ENABLED || \
20				DT_HAS_U_BLOX_SARA_R4_ENABLED || DT_HAS_U_BLOX_SARA_R5_ENABLED || \
21				DT_HAS_SWIR_HL7800_ENABLED || DT_HAS_TELIT_ME910G1_ENABLED || \
22				DT_HAS_TELIT_ME310G1_ENABLED || DT_HAS_QUECTEL_EG25_G_ENABLED || \
23				DT_HAS_NORDIC_NRF91_SLM_ENABLED || DT_HAS_SQN_GM02S_ENABLED || \
24				DT_HAS_U_BLOX_LARA_R6_ENABLED || DT_HAS_QUECTEL_EG800Q_ENABLED)
25	select MODEM_CMUX_DEFAULT_MTU_127 if \
26		(DT_HAS_QUECTEL_BG95_ENABLED || DT_HAS_QUECTEL_BG96_ENABLED || \
27		 DT_HAS_QUECTEL_EG25_G_ENABLED || DT_HAS_SIMCOM_SIM7080_ENABLED || \
28		 DT_HAS_U_BLOX_SARA_R4_ENABLED || DT_HAS_U_BLOX_SARA_R5_ENABLED || \
29		 DT_HAS_SWIR_HL7800_ENABLED || DT_HAS_TELIT_ME910G1_ENABLED || \
30		 DT_HAS_TELIT_ME310G1_ENABLED || DT_HAS_SQN_GM02S_ENABLED || \
31		 DT_HAS_QUECTEL_EG800Q_ENABLED || DT_HAS_SIMCOM_A76XX_ENABLED)
32	help
33	  This driver uses the generic 3gpp AT commands, along
34	  with the standard protocols CMUX and PPP, to configure
35	  cellular modems to establish a point-to-point
36	  network connection. It is a template for tailored
37	  drivers for the ublox, quectel and other modems, which
38	  include power management and more complex device specific
39	  features.
40
41if MODEM_CELLULAR
42
43config MODEM_CELLULAR_INIT_PRIORITY
44	int "Cellular modem driver initialization priority"
45	default 79
46	range 0 99
47	help
48	  Driver initialization priority for cellular modem drivers.
49	  Defaults to less than GNSS_INIT_PRIORITY, as LTE modems often
50	  integrate a GNSS modem.
51
52config MODEM_CELLULAR_APN
53	string "Static APN"
54	default "internet"
55	help
56	  If left empty the driver will wait for the application to call
57	  cellular_set_apn() before it proceeds to the dial phase.
58
59config MODEM_CELLULAR_PERIODIC_SCRIPT_MS
60	int "Periodic script interval in milliseconds"
61	default 2000
62
63config MODEM_CELLULAR_UART_BUFFER_SIZES
64	int "The UART receive and transmit buffer sizes in bytes."
65	default 512
66
67config MODEM_CELLULAR_CHAT_BUFFER_SIZE
68	int "The size of the buffer used for the chat scripts in bytes."
69	default 128
70
71config MODEM_CELLULAR_USER_PIPE_BUFFER_SIZES
72	int "The size of the buffers used for each user pipe in bytes."
73	default 128
74
75config MODEM_CELLULAR_NEW_BAUDRATE
76	int "New baudrate to configure modem to, if supported"
77	range 9600 4000000
78	default 3000000 if DT_HAS_U_BLOX_LARA_R6_ENABLED
79	default 115200
80
81config MODEM_CELLULAR_NEW_BAUDRATE_DELAY
82	int "Time modem takes to change baudrate, in milliseconds"
83	range 0 1000
84	default 100 if DT_HAS_U_BLOX_LARA_R6_ENABLED
85	default 300
86
87config MODEM_CELLULAR_RESET_POWER_ON_DELAY_MS
88	int "Delay between de-asserting the reset pin and pulsing the power pin"
89	default 500
90
91if DT_HAS_U_BLOX_LARA_R6_ENABLED
92
93choice MODEM_CELLULAR_RAT
94	prompt "Which Radio Access Technology to use"
95	default MODEM_CELLULAR_RAT_4G
96
97config MODEM_CELLULAR_RAT_4G
98	bool "Use only 4G"
99
100config MODEM_CELLULAR_RAT_4G_3G
101	bool "Use 4G & 3G"
102
103config MODEM_CELLULAR_RAT_4G_3G_2G
104	bool "Use 4G, 3G & 2G"
105
106endchoice
107
108config MODEM_CELLULAR_CLEAR_FORBIDDEN
109	bool "Clear forbidden networks from SIM-card on boot"
110
111endif #DT_HAS_U_BLOX_LARA_R6_ENABLED
112
113endif #MODEM_CELLULAR
114