1# Sierra Wireless HL7800 modem driver options
2
3# Copyright (c) 2020 Laird Connectivity
4# SPDX-License-Identifier: Apache-2.0
5
6menuconfig MODEM_HL7800
7	bool "Enable Sierra Wireless HL7800 modem driver"
8	select MODEM_RECEIVER
9	select NET_OFFLOAD
10	imply GPIO
11	help
12	  Choose this setting to enable
13	  Sierra Wireless HL7800 LTE-M/NB-IoT modem driver.
14
15if MODEM_HL7800
16
17config MODEM_HL7800_FW_UPDATE
18	bool "Enable firmware update"
19	select FILE_SYSTEM
20	help
21	  Enable the ability to update the HL7800 via XMODEM
22	  by providing an update file to the update API.
23
24config MODEM_HL7800_RECV_BUF_CNT
25	int "The number of allocated network buffers"
26	default 30
27
28config MODEM_HL7800_RECV_BUF_SIZE
29	int "The size of the network buffers in bytes"
30	default 128
31
32config MODEM_HL7800_SET_APN_NAME_ON_STARTUP
33	bool "Set APN name during driver init"
34	help
35	  If APN doesn't match MODEM_HL7800_APN_NAME on startup,
36	  then it will be set.
37
38if MODEM_HL7800_SET_APN_NAME_ON_STARTUP
39
40config MODEM_HL7800_APN_NAME
41	string "APN name for establishing network connection"
42	help
43	  This setting is used in the AT+CGDCONT command to set the APN name
44	  for the PDP context.
45
46endif # MODEM_HL7800_SET_APN_NAME_ON_STARTUP
47
48choice MODEM_HL7800_RAT
49	bool "Radio Access Technology Mode"
50	default MODEM_HL7800_RAT_NO_CHANGE
51
52config MODEM_HL7800_RAT_NO_CHANGE
53	bool "Don't change the RAT"
54	help
55	  Leave the HL7800 RAT unchanged during modem init.
56
57config MODEM_HL7800_RAT_M1
58	bool "LTE-M1"
59	help
60	  Enable LTE Cat-M1 mode during modem init.
61
62config MODEM_HL7800_RAT_NB1
63	bool "NB-IoT"
64	help
65	  Enable LTE Cat-NB1 mode during modem init.
66
67endchoice
68
69menuconfig MODEM_HL7800_CONFIGURE_BANDS
70	bool "Configure modem bands"
71	default "y"
72	help
73	  Choose this setting to configure which LTE bands the
74	  HL7800 modem should use.
75
76if MODEM_HL7800_CONFIGURE_BANDS
77
78config MODEM_HL7800_BAND_1
79	bool "Enable Band 1  (2000MHz)"
80	default "y"
81	help
82	  Enable Band 1 (2000MHz)
83
84config MODEM_HL7800_BAND_2
85	bool "Enable Band 2  (1900MHz)"
86	default "y"
87	help
88	  Enable Band 2 (1900MHz)
89
90config MODEM_HL7800_BAND_3
91	bool "Enable Band 3  (1800MHz)"
92	default "y"
93	help
94	  Enable Band 3 (1800MHz)
95
96config MODEM_HL7800_BAND_4
97	bool "Enable Band 4  (1700MHz)"
98	default "y"
99	help
100	  Enable Band 4 (1700MHz)
101
102config MODEM_HL7800_BAND_5
103	bool "Enable Band 5  (850MHz)"
104	default "y"
105	help
106	  Enable Band 5 (850MHz)
107
108config MODEM_HL7800_BAND_8
109	bool "Enable Band 8  (900MHz)"
110	default "y"
111	help
112	  Enable Band 8 (900MHz)
113
114config MODEM_HL7800_BAND_9
115	bool "Enable Band 9  (1900MHz)"
116	help
117	  Enable Band 9 (1900MHz)
118
119config MODEM_HL7800_BAND_10
120	bool "Enable Band 10 (2100MHz)"
121	help
122	  Enable Band 10 (2100MHz)
123
124config MODEM_HL7800_BAND_12
125	bool "Enable Band 12 (700MHz)"
126	default "y"
127	help
128	  Enable Band 12 (700MHz)
129
130config MODEM_HL7800_BAND_13
131	bool "Enable Band 13 (700MHz)"
132	default "y"
133	help
134	  Enable Band 13 (700MHz)
135
136config MODEM_HL7800_BAND_14
137	bool "Enable Band 14 (700MHz)"
138	help
139	  Enable Band 14 (700MHz)
140
141config MODEM_HL7800_BAND_17
142	bool "Enable Band 17 (700MHz)"
143	help
144	  Enable Band 17 (700MHz)
145
146config MODEM_HL7800_BAND_18
147	bool "Enable Band 18 (800MHz)"
148	help
149	  Enable Band 18 (800MHz)
150
151config MODEM_HL7800_BAND_19
152	bool "Enable Band 19 (800MHz)"
153	help
154	  Enable Band 19 (800MHz)
155
156config MODEM_HL7800_BAND_20
157	bool "Enable Band 20 (800MHz)"
158	default "y"
159	help
160	  Enable Band 20 (800MHz)
161
162config MODEM_HL7800_BAND_25
163	bool "Enable Band 25 (1900MHz)"
164	help
165	  Enable Band 25 (1900MHz)
166
167config MODEM_HL7800_BAND_26
168	bool "Enable Band 26 (800MHz)"
169	help
170	  Enable Band 26 (800MHz)
171
172config MODEM_HL7800_BAND_27
173	bool "Enable Band 27 (800MHz)"
174	help
175	  Enable Band 27 (800MHz)
176
177config MODEM_HL7800_BAND_28
178	bool "Enable Band 28 (700MHz)"
179	default "y"
180	help
181	  Enable Band 28 (700MHz)
182
183config MODEM_HL7800_BAND_66
184	bool "Enable Band 66 (1800MHz)"
185	help
186	  Enable Band 66 (1800MHz)
187
188endif # MODEM_HL7800_CONFIGURE_BAND
189
190menuconfig MODEM_HL7800_LOW_POWER_MODE
191	bool "Enable low power modes"
192	help
193	  Choose this setting to enable a low power mode for the HL7800 modem
194
195if MODEM_HL7800_LOW_POWER_MODE
196
197choice
198	prompt "Low Power Mode"
199	default MODEM_HL7800_EDRX
200
201config MODEM_HL7800_EDRX
202	bool "eDRX"
203	help
204	  Enable LTE eDRX
205
206config MODEM_HL7800_PSM
207	bool "PSM"
208	help
209	  Enable Power Save Mode (PSM)
210endchoice
211
212if MODEM_HL7800_EDRX
213
214config MODEM_HL7800_EDRX_VALUE
215	string "Requested eDRX timer"
216	default "0101"
217	help
218	  Half a byte in a 4-bit format. The eDRX value refers to bit 4 to 1
219	  of octet 3 of the Extended DRX parameters information element.
220	  Default value is 81.92 seconds.
221
222endif # MODEM_HL7800_EDRX
223
224if MODEM_HL7800_PSM
225
226config MODEM_HL7800_PSM_PERIODIC_TAU
227	string "Requested extended periodic TAU timer"
228	default "10000010"
229	help
230	  Requested extended periodic TAU (tracking area update) value (T3412)
231	  to be allocated to the UE in E-UTRAN. One byte in an 8-bit format.
232	  Default value is 1 minute.
233
234config MODEM_HL7800_PSM_ACTIVE_TIME
235	string "Requested active time"
236	default "00001111"
237	help
238	  Requested Active Time value (T3324) to be allocated to the UE.
239	  One byte in an 8-bit format. Default value is 30 seconds.
240
241endif # MODEM_HL7800_PSM
242
243endif # MODEM_HL7800_LOW_POWER_MODE
244
245config MODEM_HL7800_RX_STACK_SIZE
246	int "Size of the stack for the HL7800 modem driver RX thread"
247	default 1536 if MODEM_HL7800_POLTE
248	default 1280
249	help
250	  This stack is used by the HL7800 RX thread.
251
252config MODEM_HL7800_RX_WORKQ_STACK_SIZE
253	int "Size of the stack for the HL7800 modem driver work queue"
254	default 2048
255	help
256	  This stack is used by the work queue to pass off net_pkt data
257	  to the rest of the network stack, letting the rx thread continue
258	  processing data.
259
260config MODEM_HL7800_INIT_PRIORITY
261	int "HL7800 driver init priority"
262	default 80
263	help
264	  HL7800 device driver initialization priority.
265	  Do not mess with it unless you know what you are doing.
266	  Note that the priority needs to be lower than the net stack
267	  so that it can start before the networking sub-system.
268
269config MODEM_HL7800_GET_IP_ADDR_INFO_ATTEMPTS
270	int "Number of attempts to get IP address info during init"
271	default 4
272
273choice
274	prompt "Modem Boot Type"
275	default MODEM_HL7800_BOOT_NORMAL
276
277config MODEM_HL7800_BOOT_NORMAL
278	bool "No Delay"
279
280config MODEM_HL7800_BOOT_DELAY
281	bool "Delay secondary initialization of driver and network attach"
282	help
283	  When true the application must call mdm_hl7800_reset.
284	  This mode delays the validity of modem info.
285
286config MODEM_HL7800_BOOT_IN_AIRPLANE_MODE
287	bool "Enter airplane mode during init"
288	help
289	  mdm_hl7800_set_functionality must be used by app to exit
290	  airplane mode.
291	  If bands are reconfigured, then this setting is overridden
292	  because modem is rebooted into full functionality mode.
293
294endchoice
295
296config MODEM_HL7800_GPS
297	bool "Enable GPS command and handlers"
298
299config MODEM_HL7800_USE_GLONASS
300	bool "Use GLONASS in addition to GPS"
301	depends on MODEM_HL7800_GPS
302
303config MODEM_HL7800_POLTE
304	bool "Enable PoLTE commands and handlers"
305
306choice
307	prompt "IP Address family"
308	default MODEM_HL7800_ADDRESS_FAMILY_IPV4V6
309	help
310	  The address family for IP connections.
311
312config MODEM_HL7800_ADDRESS_FAMILY_IPV4
313	bool "IPv4"
314
315config MODEM_HL7800_ADDRESS_FAMILY_IPV6
316	bool "IPv6"
317
318config MODEM_HL7800_ADDRESS_FAMILY_IPV4V6
319	bool "IPv4v6"
320
321endchoice
322
323endif # MODEM_HL7800
324