Skip to content

Commit 5bd812d

Browse files
guildeol-stracfriedt
authored andcommitted
drivers: modem: Add support for Quectel BG96
Added support for compatible 'quectel,bg96' in modem_cellular.c Renamed BG95-specific variables to BG9x, since the initialization for BG95 and BG9x is similar. Signed-off-by: Guilherme Costa <[email protected]>
1 parent 6fd5518 commit 5bd812d

File tree

2 files changed

+38
-33
lines changed

2 files changed

+38
-33
lines changed

drivers/modem/Kconfig.cellular

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -14,20 +14,20 @@ config MODEM_CELLULAR
1414
select NET_L2_PPP_OPTION_MRU
1515
select NET_L2_PPP_PAP
1616
select NET_L2_PPP_MGMT
17-
depends on (DT_HAS_QUECTEL_BG95_ENABLED || DT_HAS_SIMCOM_A76XX_ENABLED || \
18-
DT_HAS_SIMCOM_SIM7080_ENABLED || DT_HAS_U_BLOX_SARA_R4_ENABLED || \
19-
DT_HAS_U_BLOX_SARA_R5_ENABLED || DT_HAS_SWIR_HL7800_ENABLED || \
20-
DT_HAS_TELIT_ME910G1_ENABLED || DT_HAS_TELIT_ME310G1_ENABLED || \
21-
DT_HAS_QUECTEL_EG25_G_ENABLED || DT_HAS_NORDIC_NRF91_SLM_ENABLED || \
22-
DT_HAS_SQN_GM02S_ENABLED || DT_HAS_U_BLOX_LARA_R6_ENABLED || \
23-
DT_HAS_QUECTEL_EG800Q_ENABLED)
17+
depends on (DT_HAS_QUECTEL_BG95_ENABLED || DT_HAS_QUECTEL_BG96_ENABLED || \
18+
DT_HAS_SIMCOM_A76XX_ENABLED || DT_HAS_SIMCOM_SIM7080_ENABLED || \
19+
DT_HAS_U_BLOX_SARA_R4_ENABLED || DT_HAS_U_BLOX_SARA_R5_ENABLED || \
20+
DT_HAS_SWIR_HL7800_ENABLED || DT_HAS_TELIT_ME910G1_ENABLED || \
21+
DT_HAS_TELIT_ME310G1_ENABLED || DT_HAS_QUECTEL_EG25_G_ENABLED || \
22+
DT_HAS_NORDIC_NRF91_SLM_ENABLED || DT_HAS_SQN_GM02S_ENABLED || \
23+
DT_HAS_U_BLOX_LARA_R6_ENABLED || DT_HAS_QUECTEL_EG800Q_ENABLED)
2424
select MODEM_CMUX_DEFAULT_MTU_127 if \
25-
(DT_HAS_QUECTEL_BG95_ENABLED || DT_HAS_QUECTEL_EG25_G_ENABLED || \
26-
DT_HAS_SIMCOM_SIM7080_ENABLED || DT_HAS_U_BLOX_SARA_R4_ENABLED || \
27-
DT_HAS_U_BLOX_SARA_R5_ENABLED || DT_HAS_SWIR_HL7800_ENABLED || \
28-
DT_HAS_TELIT_ME910G1_ENABLED || DT_HAS_TELIT_ME310G1_ENABLED || \
29-
DT_HAS_SQN_GM02S_ENABLED || DT_HAS_QUECTEL_EG800Q_ENABLED || \
30-
DT_HAS_SIMCOM_A76XX_ENABLED)
25+
(DT_HAS_QUECTEL_BG95_ENABLED || DT_HAS_QUECTEL_BG96_ENABLED || \
26+
DT_HAS_QUECTEL_EG25_G_ENABLED || DT_HAS_SIMCOM_SIM7080_ENABLED || \
27+
DT_HAS_U_BLOX_SARA_R4_ENABLED || DT_HAS_U_BLOX_SARA_R5_ENABLED || \
28+
DT_HAS_SWIR_HL7800_ENABLED || DT_HAS_TELIT_ME910G1_ENABLED || \
29+
DT_HAS_TELIT_ME310G1_ENABLED || DT_HAS_SQN_GM02S_ENABLED || \
30+
DT_HAS_QUECTEL_EG800Q_ENABLED || DT_HAS_SIMCOM_A76XX_ENABLED)
3131
help
3232
This driver uses the generic 3gpp AT commands, along
3333
with the standard protocols CMUX and PPP, to configure

drivers/modem/modem_cellular.c

Lines changed: 25 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -538,9 +538,10 @@ MODEM_CHAT_MATCHES_DEFINE(dial_abort_matches,
538538
MODEM_CHAT_MATCH("NO CARRIER", "", NULL),
539539
MODEM_CHAT_MATCH("NO DIALTONE", "", NULL));
540540

541-
#if DT_HAS_COMPAT_STATUS_OKAY(swir_hl7800) || DT_HAS_COMPAT_STATUS_OKAY(sqn_gm02s) || \
542-
DT_HAS_COMPAT_STATUS_OKAY(quectel_eg800q) || DT_HAS_COMPAT_STATUS_OKAY(quectel_eg25_g) || \
543-
DT_HAS_COMPAT_STATUS_OKAY(quectel_bg95) || DT_HAS_COMPAT_STATUS_OKAY(simcom_a76xx)
541+
#if DT_HAS_COMPAT_STATUS_OKAY(swir_hl7800) || DT_HAS_COMPAT_STATUS_OKAY(sqn_gm02s) || \
542+
DT_HAS_COMPAT_STATUS_OKAY(quectel_eg800q) || DT_HAS_COMPAT_STATUS_OKAY(quectel_eg25_g) || \
543+
DT_HAS_COMPAT_STATUS_OKAY(quectel_bg95) || DT_HAS_COMPAT_STATUS_OKAY(quectel_bg96) || \
544+
DT_HAS_COMPAT_STATUS_OKAY(simcom_a76xx)
544545
MODEM_CHAT_MATCH_DEFINE(connect_match, "CONNECT", "", NULL);
545546
#endif
546547

@@ -1957,8 +1958,8 @@ static int modem_cellular_init(const struct device *dev)
19571958
* dial out and put the DLCI channel into data mode.
19581959
*/
19591960

1960-
#if DT_HAS_COMPAT_STATUS_OKAY(quectel_bg95)
1961-
MODEM_CHAT_SCRIPT_CMDS_DEFINE(quectel_bg95_init_chat_script_cmds,
1961+
#if DT_HAS_COMPAT_STATUS_OKAY(quectel_bg95) || DT_HAS_COMPAT_STATUS_OKAY(quectel_bg96)
1962+
MODEM_CHAT_SCRIPT_CMDS_DEFINE(quectel_bg9x_init_chat_script_cmds,
19621963
MODEM_CHAT_SCRIPT_CMD_RESP("ATE0", ok_match),
19631964
MODEM_CHAT_SCRIPT_CMD_RESP("AT+CFUN=4", ok_match),
19641965
MODEM_CHAT_SCRIPT_CMD_RESP("AT+CMEE=1", ok_match),
@@ -1982,34 +1983,34 @@ MODEM_CHAT_SCRIPT_CMDS_DEFINE(quectel_bg95_init_chat_script_cmds,
19821983
MODEM_CHAT_SCRIPT_CMD_RESP("", ok_match),
19831984
MODEM_CHAT_SCRIPT_CMD_RESP_NONE("AT+CMUX=0,0,5,127", 300));
19841985

1985-
MODEM_CHAT_SCRIPT_DEFINE(quectel_bg95_init_chat_script, quectel_bg95_init_chat_script_cmds,
1986+
MODEM_CHAT_SCRIPT_DEFINE(quectel_bg9x_init_chat_script, quectel_bg9x_init_chat_script_cmds,
19861987
abort_matches, modem_cellular_chat_callback_handler, 10);
19871988

1988-
MODEM_CHAT_SCRIPT_CMDS_DEFINE(quectel_bg95_dial_chat_script_cmds,
1989+
MODEM_CHAT_SCRIPT_CMDS_DEFINE(quectel_bg9x_dial_chat_script_cmds,
19891990
MODEM_CHAT_SCRIPT_CMD_RESP_MULT("AT+CGACT=0,1", allow_match),
19901991
MODEM_CHAT_SCRIPT_CMD_RESP("AT+CGDCONT=1,\"IP\","
19911992
"\""CONFIG_MODEM_CELLULAR_APN"\"",
19921993
ok_match),
19931994
MODEM_CHAT_SCRIPT_CMD_RESP("AT+CFUN=1", ok_match),
19941995
MODEM_CHAT_SCRIPT_CMD_RESP("ATD*99***1#", connect_match));
19951996

1996-
MODEM_CHAT_SCRIPT_DEFINE(quectel_bg95_dial_chat_script, quectel_bg95_dial_chat_script_cmds,
1997+
MODEM_CHAT_SCRIPT_DEFINE(quectel_bg9x_dial_chat_script, quectel_bg9x_dial_chat_script_cmds,
19971998
dial_abort_matches, modem_cellular_chat_callback_handler, 10);
19981999

1999-
MODEM_CHAT_SCRIPT_CMDS_DEFINE(quectel_bg95_periodic_chat_script_cmds,
2000+
MODEM_CHAT_SCRIPT_CMDS_DEFINE(quectel_bg9x_periodic_chat_script_cmds,
20002001
MODEM_CHAT_SCRIPT_CMD_RESP("AT+CREG?", ok_match),
20012002
MODEM_CHAT_SCRIPT_CMD_RESP("AT+CEREG?", ok_match),
20022003
MODEM_CHAT_SCRIPT_CMD_RESP("AT+CGREG?", ok_match));
20032004

2004-
MODEM_CHAT_SCRIPT_DEFINE(quectel_bg95_periodic_chat_script,
2005-
quectel_bg95_periodic_chat_script_cmds, abort_matches,
2005+
MODEM_CHAT_SCRIPT_DEFINE(quectel_bg9x_periodic_chat_script,
2006+
quectel_bg9x_periodic_chat_script_cmds, abort_matches,
20062007
modem_cellular_chat_callback_handler, 4);
20072008

2008-
MODEM_CHAT_SCRIPT_CMDS_DEFINE(quectel_bg95_shutdown_chat_script_cmds,
2009+
MODEM_CHAT_SCRIPT_CMDS_DEFINE(quectel_bg9x_shutdown_chat_script_cmds,
20092010
MODEM_CHAT_SCRIPT_CMD_RESP("AT+QPOWD=1", ok_match));
20102011

2011-
MODEM_CHAT_SCRIPT_DEFINE(quectel_bg95_shutdown_chat_script,
2012-
quectel_bg95_shutdown_chat_script_cmds, abort_matches,
2012+
MODEM_CHAT_SCRIPT_DEFINE(quectel_bg9x_shutdown_chat_script,
2013+
quectel_bg9x_shutdown_chat_script_cmds, abort_matches,
20132014
modem_cellular_chat_callback_handler, 10);
20142015
#endif
20152016

@@ -2677,7 +2678,7 @@ MODEM_CHAT_SCRIPT_DEFINE(sqn_gm02s_periodic_chat_script,
26772678
&MODEM_CELLULAR_INST_NAME(config, inst), POST_KERNEL, 99, \
26782679
&modem_cellular_api);
26792680

2680-
#define MODEM_CELLULAR_DEVICE_QUECTEL_BG95(inst) \
2681+
#define MODEM_CELLULAR_DEVICE_QUECTEL_BG9X(inst) \
26812682
MODEM_PPP_DEFINE(MODEM_CELLULAR_INST_NAME(ppp, inst), NULL, 98, 1500, 64); \
26822683
\
26832684
static struct modem_cellular_data MODEM_CELLULAR_INST_NAME(data, inst) = { \
@@ -2692,10 +2693,10 @@ MODEM_CHAT_SCRIPT_DEFINE(sqn_gm02s_periodic_chat_script,
26922693
\
26932694
MODEM_CELLULAR_DEFINE_INSTANCE(inst, 1500, 100, 10000, 5000, false, \
26942695
NULL, \
2695-
&quectel_bg95_init_chat_script, \
2696-
&quectel_bg95_dial_chat_script, \
2697-
&quectel_bg95_periodic_chat_script, \
2698-
&quectel_bg95_shutdown_chat_script)
2696+
&quectel_bg9x_init_chat_script, \
2697+
&quectel_bg9x_dial_chat_script, \
2698+
&quectel_bg9x_periodic_chat_script, \
2699+
&quectel_bg9x_shutdown_chat_script)
26992700

27002701
#define MODEM_CELLULAR_DEVICE_QUECTEL_EG25_G(inst) \
27012702
MODEM_PPP_DEFINE(MODEM_CELLULAR_INST_NAME(ppp, inst), NULL, 98, 1500, 64); \
@@ -2926,7 +2927,11 @@ MODEM_CHAT_SCRIPT_DEFINE(sqn_gm02s_periodic_chat_script,
29262927
&sqn_gm02s_periodic_chat_script, NULL)
29272928

29282929
#define DT_DRV_COMPAT quectel_bg95
2929-
DT_INST_FOREACH_STATUS_OKAY(MODEM_CELLULAR_DEVICE_QUECTEL_BG95)
2930+
DT_INST_FOREACH_STATUS_OKAY(MODEM_CELLULAR_DEVICE_QUECTEL_BG9X)
2931+
#undef DT_DRV_COMPAT
2932+
2933+
#define DT_DRV_COMPAT quectel_bg96
2934+
DT_INST_FOREACH_STATUS_OKAY(MODEM_CELLULAR_DEVICE_QUECTEL_BG9X)
29302935
#undef DT_DRV_COMPAT
29312936

29322937
#define DT_DRV_COMPAT quectel_eg25_g

0 commit comments

Comments
 (0)