api: allow tagging AT ports as GPS control

There are devices with multiple AT ports where only one of them is
supposed to be used for GNSS control (and data).
This commit is contained in:
Aleksander Morgado
2022-02-09 15:39:44 +01:00
parent deaf0646c4
commit 343f27a5e7
2 changed files with 20 additions and 0 deletions

View File

@@ -129,6 +129,19 @@
*/ */
#define ID_MM_PORT_TYPE_AT_SECONDARY "ID_MM_PORT_TYPE_AT_SECONDARY" #define ID_MM_PORT_TYPE_AT_SECONDARY "ID_MM_PORT_TYPE_AT_SECONDARY"
/**
* ID_MM_PORT_TYPE_AT_GPS_CONTROL:
*
* This is a port-specific tag applied to TTYs that we know in advance
* are AT ports to be used for GPS control. Depending on the device,
* this may or may not mean the same port is also used fo GPS data.
*
* This tag will also proevent QCDM probing on the port.
*
* Since: 1.20
*/
#define ID_MM_PORT_TYPE_AT_GPS_CONTROL "ID_MM_PORT_TYPE_AT_GPS_CONTROL"
/** /**
* ID_MM_PORT_TYPE_AT_PPP: * ID_MM_PORT_TYPE_AT_PPP:
* *

View File

@@ -391,6 +391,13 @@ base_modem_internal_grab_port (MMBaseModem *self,
mm_obj_dbg (port, "AT port flagged as PPP"); mm_obj_dbg (port, "AT port flagged as PPP");
at_pflags = MM_PORT_SERIAL_AT_FLAG_PPP; at_pflags = MM_PORT_SERIAL_AT_FLAG_PPP;
} }
/* Additionally, the ports may also be flagged as GPS control explicitly, if there is
* one specific port to be used for that purpose */
if (mm_kernel_device_get_property_as_boolean (kernel_device, ID_MM_PORT_TYPE_AT_GPS_CONTROL)) {
mm_obj_dbg (port, "AT port flagged as GPS control");
at_pflags = MM_PORT_SERIAL_AT_FLAG_GPS_CONTROL;
}
} }
/* The plugin may specify NONE_NO_GENERIC to avoid the generic /* The plugin may specify NONE_NO_GENERIC to avoid the generic
* port type hints from being applied. */ * port type hints from being applied. */