[PATCH] gnss/usb: Add U-blox 8/M8 device id

Daniel Danzberger posted 1 patch 1 year, 3 months ago
drivers/gnss/usb.c | 1 +
1 file changed, 1 insertion(+)
[PATCH] gnss/usb: Add U-blox 8/M8 device id
Posted by Daniel Danzberger 1 year, 3 months ago
Adds support for U-Blox 8 GNSS devices

Signed-off-by: Daniel Danzberger <dd@embedd.com>
---
 drivers/gnss/usb.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/gnss/usb.c b/drivers/gnss/usb.c
index 028ce56b20ea..927f89a5b3f0 100644
--- a/drivers/gnss/usb.c
+++ b/drivers/gnss/usb.c
@@ -18,6 +18,7 @@
 
 static const struct usb_device_id gnss_usb_id_table[] = {
 	{ USB_DEVICE(0x1199, 0xb000) },		/* Sierra Wireless XM1210 */
+	{ USB_DEVICE(0x1546, 0x01a8) },         /* U-blox 8/M8 GNSS Receiver */
 	{ }
 };
 MODULE_DEVICE_TABLE(usb, gnss_usb_id_table);
-- 
2.39.2
Re: [PATCH] gnss/usb: Add U-blox 8/M8 device id
Posted by Johan Hovold 1 year, 3 months ago
On Sat, Oct 26, 2024 at 09:58:57AM +0200, Daniel Danzberger wrote:
> Adds support for U-Blox 8 GNSS devices

Please post the output of lsusb -v (or usb-devices) for this device.

IIRC this is a USB CDC device, which is already managed by the cdc-acm
driver.

Johan
Re: [PATCH] gnss/usb: Add U-blox 8/M8 device id
Posted by Daniel Danzberger 1 year, 2 months ago
Hi Johan,

this is the lsusb -v output:
--
root@test1:~# lsusb -v -s  001:002 

Bus 001 Device 002: ID 1546:01a8 u-blox AG - www.u-blox.com u-blox GNSS receiver
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               1.10
  bDeviceClass            2 [unknown]
  bDeviceSubClass         0 [unknown]
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  idVendor           0x1546 u-blox AG - www.u-blox.com
  idProduct          0x01a8 u-blox GNSS receiver
  bcdDevice            3.01
  iManufacturer           1 u-blox AG - www.u-blox.com
  iProduct                2 u-blox GNSS receiver
  iSerial                 0 
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x003e
    bNumInterfaces          2
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0xc0
      Self Powered
    MaxPower              100mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         2 [unknown]
      bInterfaceSubClass      2 [unknown]
      bInterfaceProtocol      1 
      iInterface              0 
      CDC Header:
        bcdCDC               1.10
      CDC ACM:
        bmCapabilities       0x02
          line coding and serial state
      CDC Call Management:
        bmCapabilities       0x03
          call management
          use DataInterface
        bDataInterface          1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval             255
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass        10 [unknown]
      bInterfaceSubClass      0 [unknown]
      bInterfaceProtocol    255 
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x01  EP 1 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               0
Device Status:     0x0001
  Self Powered

--

This is a cat on the device, so you can see it's in fact usb gnss capable:
--
root@test1:~# cat /dev/gnss0 
$GNTXT,01,01,02,u-blox AG - www.u-blox.com*4E
$GNTXT,01,01,02,HW UBX-M8030 00080000*60
$GNTXT,01,01,02,ROM CORE 3.01 (107888)*2B
$GNTXT,01,01,02,FWVER=SPG 3.01*46
$GNTXT,01,01,02,PROTVER=18.00*11
$GNTXT,01,01,02,GPS;GLO;GAL;BDS*77
$GNTXT,01,01,02,SBAS;IMES;QZSS*49
$GNTXT,01,01,02,GNSS OTP=GPS;GLO*37
$GNTXT,01,01,02,LLC=FFFFFFFF-FFFFFFE3-FFFFFFFF-FFFFFFFF-FFFFFFE9*27
$GNTXT,01,01,02,ANTSUPERV=AC SD PDoS SR*3E
$GNTXT,01,01,02,ANTSTATUS=OK*25
$GNTXT,01,01,02,PF=3DF*49
$GNRMC,,V,,,,,,,,,,N*4D
$GNVTG,,,,,,,,,N*2E
$GNGGA,,,,,,0,00,99.99,,,,,,*56
$GNGSA,A,1,,,,,,,,,,,,,99.99,99.99,99.99*2E
--

On Tue, 2024-10-29 at 13:03 +0100, Johan Hovold wrote:
> On Sat, Oct 26, 2024 at 09:58:57AM +0200, Daniel Danzberger wrote:
> > Adds support for U-Blox 8 GNSS devices
> 
> Please post the output of lsusb -v (or usb-devices) for this device.
> 
> IIRC this is a USB CDC device, which is already managed by the cdc-acm
> driver.
> 
> Johan
> 

-- 
Regards

Daniel Danzberger
embeDD GmbH, Alter Postplatz 2, CH-6370 Stans
Re: [PATCH] gnss/usb: Add U-blox 8/M8 device id
Posted by Johan Hovold 1 year ago
Hi Daniel,

and sorry about the late follow up on this.

On Sat, Nov 23, 2024 at 11:38:42AM +0100, Daniel Danzberger wrote:

> this is the lsusb -v output:
> --
> root@test1:~# lsusb -v -s  001:002 
> 
> Bus 001 Device 002: ID 1546:01a8 u-blox AG - www.u-blox.com u-blox GNSS receiver
> Device Descriptor:
>   bLength                18
>   bDescriptorType         1
>   bcdUSB               1.10
>   bDeviceClass            2 [unknown]
>   bDeviceSubClass         0 [unknown]
>   bDeviceProtocol         0 

Not sure why your lsusb says unknown here, but this is a CDC-ACM device:

  bDeviceClass            2 Communications

>   bMaxPacketSize0        64
>   idVendor           0x1546 u-blox AG - www.u-blox.com
>   idProduct          0x01a8 u-blox GNSS receiver
>   bcdDevice            3.01
>   iManufacturer           1 u-blox AG - www.u-blox.com
>   iProduct                2 u-blox GNSS receiver
>   iSerial                 0 
>   bNumConfigurations      1

>     Interface Descriptor:
>       bLength                 9
>       bDescriptorType         4
>       bInterfaceNumber        0
>       bAlternateSetting       0
>       bNumEndpoints           1
>       bInterfaceClass         2 [unknown]
>       bInterfaceSubClass      2 [unknown]
>       bInterfaceProtocol      1 

      bInterfaceClass         2 Communications
      bInterfaceSubClass      2 Abstract (modem)
      bInterfaceProtocol      1 AT-commands (v.25ter)

>       iInterface              0 
>       CDC Header:
>         bcdCDC               1.10
>       CDC ACM:
>         bmCapabilities       0x02
>           line coding and serial state
>       CDC Call Management:
>         bmCapabilities       0x03
>           call management
>           use DataInterface
>         bDataInterface          1
>       Endpoint Descriptor:
>         bLength                 7
>         bDescriptorType         5
>         bEndpointAddress     0x83  EP 3 IN
>         bmAttributes            3
>           Transfer Type            Interrupt
>           Synch Type               None
>           Usage Type               Data
>         wMaxPacketSize     0x0040  1x 64 bytes
>         bInterval             255
>     Interface Descriptor:
>       bLength                 9
>       bDescriptorType         4
>       bInterfaceNumber        1
>       bAlternateSetting       0
>       bNumEndpoints           2
>       bInterfaceClass        10 [unknown]
>       bInterfaceSubClass      0 [unknown]
>       bInterfaceProtocol    255 

      bInterfaceClass        10 CDC Data
      bInterfaceSubClass      0 
      bInterfaceProtocol    255 Vendor specific

>       iInterface              0 
>       Endpoint Descriptor:
>         bLength                 7
>         bDescriptorType         5
>         bEndpointAddress     0x01  EP 1 OUT
>         bmAttributes            2
>           Transfer Type            Bulk
>           Synch Type               None
>           Usage Type               Data
>         wMaxPacketSize     0x0040  1x 64 bytes
>         bInterval               0
>       Endpoint Descriptor:
>         bLength                 7
>         bDescriptorType         5
>         bEndpointAddress     0x82  EP 2 IN
>         bmAttributes            2
>           Transfer Type            Bulk
>           Synch Type               None
>           Usage Type               Data
>         wMaxPacketSize     0x0040  1x 64 bytes
>         bInterval               0
> Device Status:     0x0001
>   Self Powered

These device are currently handled by the cdc-acm driver and there is
currently no point in moving them to a different driver (and potentially
breaking people's setups).

I have one of these here myself, and the fact that we already have a
driver for them was the reason for me not adding it to the GNSS USB
driver already (I even think I used this device when writing the
driver).

> On Tue, 2024-10-29 at 13:03 +0100, Johan Hovold wrote:
> > On Sat, Oct 26, 2024 at 09:58:57AM +0200, Daniel Danzberger wrote:
> > > Adds support for U-Blox 8 GNSS devices
> > 
> > Please post the output of lsusb -v (or usb-devices) for this device.
> > 
> > IIRC this is a USB CDC device, which is already managed by the cdc-acm
> > driver.

Johan