linux-bluetooth.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v4 0/4] Bluetooth/gnss: GNSS support for TiWi chips
@ 2024-06-06 18:30 Andreas Kemnade
  2024-06-06 18:30 ` [PATCH v4 1/4] gnss: Add AI2 protocol used by some TI combo chips Andreas Kemnade
                   ` (5 more replies)
  0 siblings, 6 replies; 28+ messages in thread
From: Andreas Kemnade @ 2024-06-06 18:30 UTC (permalink / raw)
  To: marcel, luiz.dentz, johan, pmenzel, jirislaby, andreas, gregkh,
	linux-kernel, linux-bluetooth, Adam Ford, Tony Lindgren,
	tomi.valkeinen, Péter Ujfalusi, robh, hns

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


^ permalink raw reply	[flat|nested] 28+ messages in thread
* [PATCH v3 1/4] gnss: Add AI2 protocol used by some TI combo chips.
@ 2024-06-03 14:43 Andreas Kemnade
  2024-06-03 15:34 ` bluetooth/gnss: GNSS support for TiWi chips bluez.test.bot
  0 siblings, 1 reply; 28+ messages in thread
From: Andreas Kemnade @ 2024-06-03 14:43 UTC (permalink / raw)
  To: marcel, luiz.dentz, johan, gregkh, jirislaby, andreas, pmenzel,
	linux-kernel, linux-bluetooth, Adam Ford, Tony Lindgren,
	tomi.valkeinen, Péter Ujfalusi, robh, hns

Texas Instruments uses something called Air Independent Interface (AI2) for
their WLAN/BT/GPS combo chips.

No public documentation is available, but allow that protocol to be
specified.

Signed-off-by: Andreas Kemnade <andreas@kemnade.info>
Reviewed-by: Paul Menzel <pmenzel@molgen.mpg.de>
---
 drivers/gnss/core.c  | 1 +
 include/linux/gnss.h | 1 +
 2 files changed, 2 insertions(+)

diff --git a/drivers/gnss/core.c b/drivers/gnss/core.c
index 48f2ee0f78c4d..cac9f45aec4b2 100644
--- a/drivers/gnss/core.c
+++ b/drivers/gnss/core.c
@@ -335,6 +335,7 @@ static const char * const gnss_type_names[GNSS_TYPE_COUNT] = {
 	[GNSS_TYPE_SIRF]	= "SiRF",
 	[GNSS_TYPE_UBX]		= "UBX",
 	[GNSS_TYPE_MTK]		= "MTK",
+	[GNSS_TYPE_AI2]		= "AI2",
 };
 
 static const char *gnss_type_name(const struct gnss_device *gdev)
diff --git a/include/linux/gnss.h b/include/linux/gnss.h
index 36968a0f33e8d..16b565dab83ea 100644
--- a/include/linux/gnss.h
+++ b/include/linux/gnss.h
@@ -23,6 +23,7 @@ enum gnss_type {
 	GNSS_TYPE_SIRF,
 	GNSS_TYPE_UBX,
 	GNSS_TYPE_MTK,
+	GNSS_TYPE_AI2,
 
 	GNSS_TYPE_COUNT
 };
-- 
2.39.2


^ permalink raw reply related	[flat|nested] 28+ messages in thread
* [RFC PATCH v2 1/3] gnss: Add AI2 protocol used by some TI combo chips.
@ 2024-01-28 17:33 Andreas Kemnade
  2024-01-28 18:33 ` bluetooth/gnss: GNSS support for TiWi chips bluez.test.bot
  0 siblings, 1 reply; 28+ messages in thread
From: Andreas Kemnade @ 2024-01-28 17:33 UTC (permalink / raw)
  To: marcel, johan.hedberg, luiz.dentz, johan, jirislaby, andreas,
	gregkh, linux-kernel, linux-bluetooth, Adam Ford, Tony Lindgren,
	tomi.valkeinen, Péter Ujfalusi, robh, hns

Texas Instruments uses something called Air Independent Interface (AI2) for
their WLAN/BT/GPS combo chips.
No public documentation is available, but allow that protocol to be
specified.

Signed-off-by: Andreas Kemnade <andreas@kemnade.info>
---
 drivers/gnss/core.c  | 1 +
 include/linux/gnss.h | 1 +
 2 files changed, 2 insertions(+)

diff --git a/drivers/gnss/core.c b/drivers/gnss/core.c
index 48f2ee0f78c4d..cac9f45aec4b2 100644
--- a/drivers/gnss/core.c
+++ b/drivers/gnss/core.c
@@ -335,6 +335,7 @@ static const char * const gnss_type_names[GNSS_TYPE_COUNT] = {
 	[GNSS_TYPE_SIRF]	= "SiRF",
 	[GNSS_TYPE_UBX]		= "UBX",
 	[GNSS_TYPE_MTK]		= "MTK",
+	[GNSS_TYPE_AI2]		= "AI2",
 };
 
 static const char *gnss_type_name(const struct gnss_device *gdev)
diff --git a/include/linux/gnss.h b/include/linux/gnss.h
index 36968a0f33e8d..16b565dab83ea 100644
--- a/include/linux/gnss.h
+++ b/include/linux/gnss.h
@@ -23,6 +23,7 @@ enum gnss_type {
 	GNSS_TYPE_SIRF,
 	GNSS_TYPE_UBX,
 	GNSS_TYPE_MTK,
+	GNSS_TYPE_AI2,
 
 	GNSS_TYPE_COUNT
 };
-- 
2.39.2


^ permalink raw reply related	[flat|nested] 28+ messages in thread
* [RFC PATCH 1/3] gnss: Add AI2 protocol used by some TI combo chips.
@ 2023-11-26 19:18 Andreas Kemnade
  2023-11-26 20:32 ` bluetooth/gnss: GNSS support for TiWi chips bluez.test.bot
  0 siblings, 1 reply; 28+ messages in thread
From: Andreas Kemnade @ 2023-11-26 19:18 UTC (permalink / raw)
  To: marcel, johan.hedberg, luiz.dentz, johan, arnd, gregkh, andreas,
	linux-bluetooth, linux-kernel, tomi.valkeinen, Tony Lindgren,
	Péter Ujfalusi, robh

Texas Instruments uses something called Air Independent Interface (AI2) for
their WLAN/BT/GPS combo chips.
No public documentation is available, by looking into captured data, it
becomes clear that you can either raw data or encapsulated NMEA after some
initialization commands.

Signed-off-by: Andreas Kemnade <andreas@kemnade.info>
---
 drivers/gnss/core.c  | 1 +
 include/linux/gnss.h | 1 +
 2 files changed, 2 insertions(+)

diff --git a/drivers/gnss/core.c b/drivers/gnss/core.c
index 48f2ee0f78c4d..cac9f45aec4b2 100644
--- a/drivers/gnss/core.c
+++ b/drivers/gnss/core.c
@@ -335,6 +335,7 @@ static const char * const gnss_type_names[GNSS_TYPE_COUNT] = {
 	[GNSS_TYPE_SIRF]	= "SiRF",
 	[GNSS_TYPE_UBX]		= "UBX",
 	[GNSS_TYPE_MTK]		= "MTK",
+	[GNSS_TYPE_AI2]		= "AI2",
 };
 
 static const char *gnss_type_name(const struct gnss_device *gdev)
diff --git a/include/linux/gnss.h b/include/linux/gnss.h
index 36968a0f33e8d..16b565dab83ea 100644
--- a/include/linux/gnss.h
+++ b/include/linux/gnss.h
@@ -23,6 +23,7 @@ enum gnss_type {
 	GNSS_TYPE_SIRF,
 	GNSS_TYPE_UBX,
 	GNSS_TYPE_MTK,
+	GNSS_TYPE_AI2,
 
 	GNSS_TYPE_COUNT
 };
-- 
2.39.2


^ permalink raw reply related	[flat|nested] 28+ messages in thread

end of thread, other threads:[~2025-01-16  1:10 UTC | newest]

Thread overview: 28+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-06-06 18:30 [PATCH v4 0/4] Bluetooth/gnss: GNSS support for TiWi chips Andreas Kemnade
2024-06-06 18:30 ` [PATCH v4 1/4] gnss: Add AI2 protocol used by some TI combo chips Andreas Kemnade
2024-06-06 18:59   ` Bluetooth/gnss: GNSS support for TiWi chips bluez.test.bot
2025-01-14 12:00   ` [PATCH v4 1/4] gnss: Add AI2 protocol used by some TI combo chips Johan Hovold
2024-06-06 18:30 ` [PATCH v4 2/4] Bluetooth: ti-st: Add GNSS subdevice for TI Wilink chips Andreas Kemnade
2025-01-14 12:14   ` Johan Hovold
2025-01-14 13:05     ` Andreas Kemnade
2025-01-14 15:26       ` Johan Hovold
2025-01-14 16:26         ` Andreas Kemnade
2024-06-06 18:30 ` [PATCH v4 3/4] gnss: Add driver for AI2 protocol Andreas Kemnade
2025-01-14 12:33   ` Johan Hovold
2024-06-06 18:30 ` [PATCH RFC v4 4/4] gnss: ai2: replace long sleeps by wait for acks Andreas Kemnade
2025-01-14 12:36   ` Johan Hovold
2024-06-06 20:04 ` [PATCH v4 0/4] Bluetooth/gnss: GNSS support for TiWi chips Luiz Augusto von Dentz
2024-06-06 20:19   ` Andreas Kemnade
2024-06-08 19:00     ` Adam Ford
2024-06-08 19:20       ` Andreas Kemnade
2024-06-10 23:17         ` Adam Ford
2024-06-11  8:32           ` Andreas Kemnade
2024-09-02  9:22   ` Andreas Kemnade
2024-09-02  9:26     ` Johan Hovold
2024-11-18  9:52       ` Andreas Kemnade
2025-01-14 11:57 ` Johan Hovold
2025-01-14 12:35   ` H. Nikolaus Schaller
2025-01-16  1:10   ` Sebastian Reichel
  -- strict thread matches above, loose matches on Subject: below --
2024-06-03 14:43 [PATCH v3 1/4] gnss: Add AI2 protocol used by some TI combo chips Andreas Kemnade
2024-06-03 15:34 ` bluetooth/gnss: GNSS support for TiWi chips bluez.test.bot
2024-01-28 17:33 [RFC PATCH v2 1/3] gnss: Add AI2 protocol used by some TI combo chips Andreas Kemnade
2024-01-28 18:33 ` bluetooth/gnss: GNSS support for TiWi chips bluez.test.bot
2023-11-26 19:18 [RFC PATCH 1/3] gnss: Add AI2 protocol used by some TI combo chips Andreas Kemnade
2023-11-26 20:32 ` bluetooth/gnss: GNSS support for TiWi chips bluez.test.bot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).