From f189174533566395b0529af257645e6b3c3040b9 Mon Sep 17 00:00:00 2001 From: Serhii Kostiuk Date: Wed, 18 Jan 2023 23:50:48 +0200 Subject: [GP-1733] L6G1 Support - Capabilities cellWwan and cellPpp Define the new "cellPpp" capability for radios that do not support PPP and do not have the "modem_at0" interface. Set the "cellWwan" capability to "true" for radios that do not support PPP, but also do not support QMI WWAN. Assumption: radios without PPP and QMI WWAN support some other protocol, like ECM WWAN. NOTE: L6G1 does not support PPP and uses ECM WWAN instead of QMI WWAN, hence the radio does not have the "/dev/cdc-wdm0" interface and requires special handling to set the "cellWwan" capability. --- src/Device/Device.cpp | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/Device/Device.cpp b/src/Device/Device.cpp index 6ef807e..5f0e281 100644 --- a/src/Device/Device.cpp +++ b/src/Device/Device.cpp @@ -37,6 +37,7 @@ std::map Device::capabilityList = { {"battery", false}, {"bluetooth", false}, {"cell", false}, + {"cellPpp", false}, {"cellWwan", false}, {"din", false}, {"dout", false}, @@ -316,9 +317,18 @@ void Device::mapFileToCapability() { S_IFREG) { /* lora-network-server is a regular file */ capabilityList["loraNetworkServer"] = true; } - if (fileType("/dev/cdc-wdm0") == - S_IFCHR) { /* Cellular modem is wwan/qmi character device */ - capabilityList["cellWwan"] = true; + if (capabilityList["cell"]) { /* only on devices with Cellular */ + if (fileType("/dev/cdc-wdm0") == S_IFCHR) { + /* Cellular modem is wwan/qmi/mbim character device */ + capabilityList["cellWwan"] = true; + } + if (!fileExists("/dev/modem_at0") && fileType("/dev/modem_at1") == S_IFCHR) { + /* Cellular modem without PPP support, probably uses ECM WWAN */ + capabilityList["cellWwan"] = true; + } else { + /* all other radios - assume PPP is supported */ + capabilityList["cellPpp"] = true; + } } if (fileType("/dev/ext_serial") == S_IFCHR) { /* ext_serial is a character device */ -- cgit v1.2.3