Skip to content

Commit fefe591

Browse files
committed
[nrf fromlist] modem: cellular: Refactor BG9x driver to use DLC1 setup script
Refactor BG9x driver to use DLC1 setup script with correct URC configuration (AT+QCFG="cmux/urcport",1) and drop the periodic script. The dial script is now only a ATD*99***1# so when PPP dialing is retried, none of the URC setup scripts are retried. Also, add the missing baud rate change script. Signed-off-by: Seppo Takalo <seppo.takalo@nordicsemi.no> Upstream PR #: 107899
1 parent a2201e9 commit fefe591

1 file changed

Lines changed: 20 additions & 17 deletions

File tree

drivers/modem/vendor_modem_cellular/cellular_quectel_bg9x.c

Lines changed: 20 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -8,16 +8,17 @@
88

99
MODEM_CELLULAR_COMMON_CHAT_MATCHES();
1010

11-
MODEM_CHAT_SCRIPT_CMDS_DEFINE(
12-
quectel_bg9x_init_chat_script_cmds, MODEM_CHAT_SCRIPT_CMD_RESP("ATE0", ok_match),
11+
MODEM_CHAT_SCRIPT_CMDS_DEFINE(quectel_bg9x_set_baudrate_cmds,
12+
MODEM_CHAT_SCRIPT_CMD_RESP("ATE0", ok_match),
13+
MODEM_CHAT_SCRIPT_CMD_RESP("AT+IPR="
14+
STRINGIFY(CONFIG_MODEM_CELLULAR_NEW_BAUDRATE), ok_match));
15+
16+
MODEM_CHAT_SCRIPT_DEFINE(quectel_bg9x_set_baudrate_chat_script, quectel_bg9x_set_baudrate_cmds,
17+
abort_matches, modem_cellular_chat_callback_handler, 1);
18+
19+
MODEM_CHAT_SCRIPT_CMDS_DEFINE(quectel_bg9x_init_chat_script_cmds,
1320
MODEM_CHAT_SCRIPT_CMD_RESP("AT+CFUN=4", ok_match),
1421
MODEM_CHAT_SCRIPT_CMD_RESP("AT+CMEE=1", ok_match),
15-
MODEM_CHAT_SCRIPT_CMD_RESP("AT+CREG=1", ok_match),
16-
MODEM_CHAT_SCRIPT_CMD_RESP("AT+CGREG=1", ok_match),
17-
MODEM_CHAT_SCRIPT_CMD_RESP("AT+CEREG=1", ok_match),
18-
MODEM_CHAT_SCRIPT_CMD_RESP("AT+CREG?", ok_match),
19-
MODEM_CHAT_SCRIPT_CMD_RESP("AT+CEREG?", ok_match),
20-
MODEM_CHAT_SCRIPT_CMD_RESP("AT+CGREG?", ok_match),
2122
MODEM_CHAT_SCRIPT_CMD_RESP("AT+CGSN", imei_match), MODEM_CHAT_SCRIPT_CMD_RESP("", ok_match),
2223
MODEM_CHAT_SCRIPT_CMD_RESP("AT+CGMM", cgmm_match), MODEM_CHAT_SCRIPT_CMD_RESP("", ok_match),
2324
MODEM_CHAT_SCRIPT_CMD_RESP("AT+CGMI", cgmi_match), MODEM_CHAT_SCRIPT_CMD_RESP("", ok_match),
@@ -31,33 +32,35 @@ MODEM_CHAT_SCRIPT_DEFINE(quectel_bg9x_init_chat_script, quectel_bg9x_init_chat_s
3132
abort_matches, modem_cellular_chat_callback_handler, 10);
3233

3334
MODEM_CHAT_SCRIPT_CMDS_DEFINE(quectel_bg9x_dial_chat_script_cmds,
34-
MODEM_CHAT_SCRIPT_CMD_RESP_MULT("AT+CGACT=0,1", allow_match),
35-
MODEM_CHAT_SCRIPT_CMD_RESP("AT+CFUN=1", ok_match),
3635
MODEM_CHAT_SCRIPT_CMD_RESP("ATD*99***1#", connect_match));
3736

3837
MODEM_CHAT_SCRIPT_DEFINE(quectel_bg9x_dial_chat_script, quectel_bg9x_dial_chat_script_cmds,
3938
dial_abort_matches, modem_cellular_chat_callback_handler, 10);
4039

41-
MODEM_CHAT_SCRIPT_CMDS_DEFINE(quectel_bg9x_periodic_chat_script_cmds,
42-
MODEM_CHAT_SCRIPT_CMD_RESP("AT+CREG?", ok_match),
40+
MODEM_CHAT_SCRIPT_CMDS_DEFINE(quectel_bg9x_network_setup_cmds,
41+
MODEM_CHAT_SCRIPT_CMD_RESP("AT+QCFG=\"cmux/urcport\",1", ok_match),
42+
MODEM_CHAT_SCRIPT_CMD_RESP("AT+CEREG=1", ok_match),
4343
MODEM_CHAT_SCRIPT_CMD_RESP("AT+CEREG?", ok_match),
44-
MODEM_CHAT_SCRIPT_CMD_RESP("AT+CGREG?", ok_match));
44+
MODEM_CHAT_SCRIPT_CMD_RESP("AT+CFUN=1", ok_match));
4545

46-
MODEM_CHAT_SCRIPT_DEFINE(quectel_bg9x_periodic_chat_script, quectel_bg9x_periodic_chat_script_cmds,
47-
abort_matches, modem_cellular_chat_callback_handler, 4);
46+
MODEM_CHAT_SCRIPT_DEFINE(quectel_bg9x_network_chat_script,
47+
quectel_bg9x_network_setup_cmds, abort_matches,
48+
modem_cellular_chat_callback_handler, 60);
4849

4950
MODEM_CHAT_MATCH_DEFINE(powerdown_match, "POWERED DOWN", "", NULL);
5051

5152
MODEM_CHAT_SCRIPT_CMDS_DEFINE(quectel_bg9x_shutdown_chat_script_cmds,
53+
MODEM_CHAT_SCRIPT_CMD_RESP("AT+CEREG=0", ok_match),
5254
MODEM_CHAT_SCRIPT_CMD_RESP("AT+QPOWD=1", powerdown_match));
5355

5456
MODEM_CHAT_SCRIPT_DEFINE(quectel_bg9x_shutdown_chat_script, quectel_bg9x_shutdown_chat_script_cmds,
55-
abort_matches, modem_cellular_chat_callback_handler, 1);
57+
abort_matches, modem_cellular_chat_callback_handler, 5);
5658

5759
static const struct modem_cellular_config_scripts quectel_bg9x_scripts = {
60+
.set_baudrate = &quectel_bg9x_set_baudrate_chat_script,
5861
.init = &quectel_bg9x_init_chat_script,
62+
.network = &quectel_bg9x_network_chat_script,
5963
.dial = &quectel_bg9x_dial_chat_script,
60-
.periodic = &quectel_bg9x_periodic_chat_script,
6164
.shutdown = &quectel_bg9x_shutdown_chat_script,
6265
};
6366

0 commit comments

Comments
 (0)