Skip to content

Commit 21d74e2

Browse files
committed
[nrf fromtree] modem: cellular: Refactor nRF91-slm driver for network script
Refactor "nordic,nrf91-slm" to configure URC and PPP in the network setup script. The dial script can be now left empty as AT#XPPP=1 automatically starts the PPP on the secondary DLC. Signed-off-by: Seppo Takalo <seppo.takalo@nordicsemi.no> (cherry picked from commit 1ead2a4)
1 parent c879911 commit 21d74e2

1 file changed

Lines changed: 25 additions & 19 deletions

File tree

drivers/modem/vendor_modem_cellular/cellular_nordic_nrf91_slm.c

Lines changed: 25 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -10,49 +10,55 @@
1010

1111
MODEM_CELLULAR_COMMON_CHAT_MATCHES();
1212

13-
MODEM_CHAT_MATCH_DEFINE(xiccid_match, "+%XICCID: ", "", modem_cellular_chat_on_iccid);
13+
MODEM_CHAT_MATCH_DEFINE(xiccid_match, "%XICCID: ", "", modem_cellular_chat_on_iccid);
14+
MODEM_CHAT_MATCH_DEFINE(uicc_initialized, "%XSIM: 1", "", NULL);
1415

15-
MODEM_CHAT_SCRIPT_CMDS_DEFINE(
16-
nordic_nrf91_slm_init_chat_script_cmds, MODEM_CHAT_SCRIPT_CMD_RESP_MULT("AT", allow_match),
16+
MODEM_CHAT_SCRIPT_CMDS_DEFINE(nordic_nrf91_slm_init_chat_script_cmds,
17+
MODEM_CHAT_SCRIPT_CMD_RESP("AT", ok_match),
1718
MODEM_CHAT_SCRIPT_CMD_RESP("AT+CMEE=1", ok_match),
18-
MODEM_CHAT_SCRIPT_CMD_RESP("AT+CEREG=1", ok_match),
19-
MODEM_CHAT_SCRIPT_CMD_RESP("AT+CGEREP=1", ok_match),
2019
MODEM_CHAT_SCRIPT_CMD_RESP("AT+CGSN", imei_match), MODEM_CHAT_SCRIPT_CMD_RESP("", ok_match),
2120
MODEM_CHAT_SCRIPT_CMD_RESP("AT+CGMM", cgmm_match), MODEM_CHAT_SCRIPT_CMD_RESP("", ok_match),
2221
MODEM_CHAT_SCRIPT_CMD_RESP("AT+CGMI", cgmi_match), MODEM_CHAT_SCRIPT_CMD_RESP("", ok_match),
2322
MODEM_CHAT_SCRIPT_CMD_RESP("AT+CGMR", cgmr_match), MODEM_CHAT_SCRIPT_CMD_RESP("", ok_match),
23+
MODEM_CHAT_SCRIPT_CMD_RESP("AT%XSIM=1", ok_match),
24+
MODEM_CHAT_SCRIPT_CMD_RESP("AT+CFUN=41", uicc_initialized),
25+
MODEM_CHAT_SCRIPT_CMD_RESP("AT%XICCID", xiccid_match),
26+
MODEM_CHAT_SCRIPT_CMD_RESP("", ok_match),
27+
MODEM_CHAT_SCRIPT_CMD_RESP("AT+CIMI", cimi_match),
28+
MODEM_CHAT_SCRIPT_CMD_RESP("", ok_match),
29+
MODEM_CHAT_SCRIPT_CMD_RESP("AT%XSIM=0", ok_match),
2430
MODEM_CHAT_SCRIPT_CMD_RESP("AT#XCMUX=1", ok_match));
2531

2632
MODEM_CHAT_SCRIPT_DEFINE(nordic_nrf91_slm_init_chat_script, nordic_nrf91_slm_init_chat_script_cmds,
2733
abort_matches, modem_cellular_chat_callback_handler, 10);
2834

29-
MODEM_CHAT_SCRIPT_CMDS_DEFINE(nordic_nrf91_slm_dial_chat_script_cmds,
30-
MODEM_CHAT_SCRIPT_CMD_RESP("AT#XPPP=0", ok_match),
31-
MODEM_CHAT_SCRIPT_CMD_RESP("AT+CFUN=4", ok_match),
32-
MODEM_CHAT_SCRIPT_CMD_RESP("AT+CIMI", cimi_match),
33-
MODEM_CHAT_SCRIPT_CMD_RESP("", ok_match),
34-
MODEM_CHAT_SCRIPT_CMD_RESP("AT%XICCID", xiccid_match),
35-
MODEM_CHAT_SCRIPT_CMD_RESP("", ok_match),
35+
MODEM_CHAT_SCRIPT_CMDS_DEFINE(nordic_nrf91_slm_network_cmds,
36+
MODEM_CHAT_SCRIPT_CMD_RESP("AT+CEREG=1", ok_match),
37+
MODEM_CHAT_SCRIPT_CMD_RESP("AT+CEREG?", ok_match),
3638
MODEM_CHAT_SCRIPT_CMD_RESP("AT#XPPP=1", ok_match),
37-
MODEM_CHAT_SCRIPT_CMD_RESP("AT+CFUN=1", ok_match),
38-
MODEM_CHAT_SCRIPT_CMD_RESP("AT#XCMUX=2", ok_match));
39+
MODEM_CHAT_SCRIPT_CMD_RESP("AT+CFUN=1", ok_match));
3940

40-
MODEM_CHAT_SCRIPT_DEFINE(nordic_nrf91_slm_dial_chat_script, nordic_nrf91_slm_dial_chat_script_cmds,
41-
dial_abort_matches, modem_cellular_chat_callback_handler, 10);
41+
MODEM_CHAT_SCRIPT_DEFINE(nordic_nrf91_slm_network_chat_script, nordic_nrf91_slm_network_cmds,
42+
abort_matches, modem_cellular_chat_callback_handler, 10);
4243

43-
MODEM_CHAT_SCRIPT_EMPTY_DEFINE(nordic_nrf91_slm_periodic_chat_script);
44+
/* In nRF91 Serial Modem AT#XPPP=1 triggers PPP automatically on a secondary DLC,
45+
* so empty dial script is used
46+
*/
47+
MODEM_CHAT_SCRIPT_NO_ABORT_DEFINE(nordic_nrf91_slm_dial_chat_script, modem_chat_empty_script_chats,
48+
modem_cellular_chat_callback_handler, 0);
4449

4550
MODEM_CHAT_SCRIPT_CMDS_DEFINE(nordic_nrf91_slm_shutdown_chat_script_cmds,
51+
MODEM_CHAT_SCRIPT_CMD_RESP("AT+CEREG=0", ok_match),
4652
MODEM_CHAT_SCRIPT_CMD_RESP("AT+CFUN=0", ok_match));
4753

4854
MODEM_CHAT_SCRIPT_DEFINE(nordic_nrf91_slm_shutdown_chat_script,
4955
nordic_nrf91_slm_shutdown_chat_script_cmds, abort_matches,
50-
modem_cellular_chat_callback_handler, 2);
56+
modem_cellular_chat_callback_handler, 5);
5157

5258
static const struct modem_cellular_config_scripts nrf91_slm_scripts = {
5359
.init = &nordic_nrf91_slm_init_chat_script,
60+
.network = &nordic_nrf91_slm_network_chat_script,
5461
.dial = &nordic_nrf91_slm_dial_chat_script,
55-
.periodic = &nordic_nrf91_slm_periodic_chat_script,
5662
.shutdown = &nordic_nrf91_slm_shutdown_chat_script,
5763
};
5864

0 commit comments

Comments
 (0)