[RFC PATCH 0/3] bluetooth/gnss: GNSS support for TiWi chips
From: Andreas Kemnade
Date: Sun Nov 26 2023 - 14:19:09 EST
Some of these chips have GNSS support. In some vendor kernels
a driver on top of misc/ti-st can be found providing a /dev/tigps
device which speaks the secretive Air Independent Interface (AI2) protocol.
Implement something comparable as a GNSS interface.
With some userspace tools a proof-of-concept can be shown. A position
can be successfully read out. Basic properties of the protocol are
understood.
This was tested on the Epson Moverio BT-200.
This is sent out as an early RFC to ensure I am going onto the right
track:
So the main questions I see:
- is the approach right to abandon drivers/misc/ti-st?
- Output at /dev/gnssX:
AI2 vs. NMEA
The chip can be configured into sending AI2-encapsulated NMEA,
or proving data in a binary format.
Some research has to be done yet for the details.
A pile of logs is waiting for further analysis...
Arguments for/against NMEA:
+ Userspace is prepared to handle it
+ Power management can be easily done by the kernel
- Less functionality can be used.
Arguments for/against AI2:
+ Full functionality can be accessed from userspace (incl. A-GPS,
maybe raw satellite data)
- Userspace has to behave to have proper power management
- No freely (not even as in beer) tool available to fully use AI2,
so there will be only a real advantage after long "French Cafe"
sessions.
More detailed tings:
- Some live cycle management is left out. Since it depends
on the decisions above, I have not put much thought into it.
- Should some pieces go into drivers/gnss?
- detection for GNSS availability: For now the node name is
used. But the device should be there if the chip supports it
and things are wired up properly.
Andreas Kemnade (3):
gnss: Add AI2 protocol used by some TI combo chips.
bluetooth: ti-st: add GNSS support for TI Wilink chips
drivers: misc: ti-st: begin to deorbit
drivers/bluetooth/hci_ll.c | 154 ++++++++++++++++++++++++++++++++++++-
drivers/gnss/core.c | 1 +
drivers/misc/ti-st/Kconfig | 2 +-
include/linux/gnss.h | 1 +
4 files changed, 156 insertions(+), 2 deletions(-)
--
2.39.2