[PATCH v4 0/4] Bluetooth/gnss: GNSS support for TiWi chips

Andreas Kemnade
2024-06-06T18:30:46Z

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.

To be more compatible with userspace send out NMEA by default but
allow a more raw mode by using a module parameter.

This was tested on the Epson Moverio BT-200.

Who will take this series (1-3)? GNSS with ack from Bluetooth?

Changes since V3:
- Finally remove the period from 1/4 subject
- include things directly for get_unaligned_le16() to fix 0-day issues

Changes since V2:
- Optimize waits
- Fix some packet analysis / checksum computation issue
- Adding a proposal for removing those waits as RFC
- Minor spell corrections and improved descriptions

Changes since V1:
- Set up things for NMEA output
- Powerup/down at open()/close()
- split out logic between drivers/bluetooth and drivers/gnss
- leave out drivers/misc/ti-st driver removal to avoid
filling up mailboxes during the iterations, this series is
still a proof that it is not needed, will take the brush after
this series is accepted.

Andreas Kemnade (4):
gnss: Add AI2 protocol used by some TI combo chips
Bluetooth: ti-st: Add GNSS subdevice for TI Wilink chips
gnss: Add driver for AI2 protocol
gnss: ai2: replace long sleeps by wait for acks

drivers/bluetooth/hci_ll.c | 81 +++++
drivers/gnss/Kconfig | 13 +
drivers/gnss/Makefile | 3 +
drivers/gnss/ai2.c | 560 +++++++++++++++++++++++++++++++++++
drivers/gnss/core.c | 1 +
include/linux/gnss.h | 1 +
include/linux/ti_wilink_st.h | 8 +
7 files changed, 667 insertions(+)
create mode 100644 drivers/gnss/ai2.c

--
2.39.2