* [RFC PATCH] gnss: usb: add support for U-Blox NEO-M9N
@ 2021-12-27 1:23 Peter Robinson
2022-01-31 10:16 ` Johan Hovold
0 siblings, 1 reply; 2+ messages in thread
From: Peter Robinson @ 2021-12-27 1:23 UTC (permalink / raw)
To: linux-usb, linux-kernel; +Cc: Peter Robinson, Johan Hovold
Add support for the USB interface of the SparkFun NEO-M9N
GPS Breakout receiver.
Bus 001 Device 005: ID 1546:01a9 U-Blox AG u-blox GNSS receiver
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 1.10
bDeviceClass 2 Communications
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
idVendor 0x1546 U-Blox AG
idProduct 0x01a9
bcdDevice 4.04
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 0mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 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 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
Signed-off-by: Peter Robinson <pbrobinson@gmail.com>
Cc: Johan Hovold <johan@kernel.org>
---
Hi Johan,
I've tested your GNSS USB series with a pair of U-Blox devices, adding
the above USB ID. Only one included here for feedback to guage your thoughts.
By defauly The U-Blox devices enumerate with the CDC ACM driver and output
NMEA data via /dev/ttyACM0. With this patch and cdc_acm blocked I get
/dev/gnss0 and can cat it to get NMEA data. Is your expectation to move
these sort of devices over to the usb gnss driver too?
Peter
drivers/gnss/usb.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/gnss/usb.c b/drivers/gnss/usb.c
index 792235a688ea..775d58c2dbe1 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, 0x01a9) }, /* U-Blox NEO-M9N GNSS receiver */
{ }
};
MODULE_DEVICE_TABLE(usb, gnss_usb_id_table);
--
2.33.1
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [RFC PATCH] gnss: usb: add support for U-Blox NEO-M9N
2021-12-27 1:23 [RFC PATCH] gnss: usb: add support for U-Blox NEO-M9N Peter Robinson
@ 2022-01-31 10:16 ` Johan Hovold
0 siblings, 0 replies; 2+ messages in thread
From: Johan Hovold @ 2022-01-31 10:16 UTC (permalink / raw)
To: Peter Robinson; +Cc: linux-usb, linux-kernel
Hi Peter,
and sorry about the late reply.
On Mon, Dec 27, 2021 at 01:23:57AM +0000, Peter Robinson wrote:
> Add support for the USB interface of the SparkFun NEO-M9N
> GPS Breakout receiver.
>
> Bus 001 Device 005: ID 1546:01a9 U-Blox AG u-blox GNSS receiver
> Device Descriptor:
> bLength 18
> bDescriptorType 1
> bcdUSB 1.10
> bDeviceClass 2 Communications
> bDeviceSubClass 0
> bDeviceProtocol 0
> bMaxPacketSize0 64
> idVendor 0x1546 U-Blox AG
> idProduct 0x01a9
> bcdDevice 4.04
> 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 0mA
> Interface Descriptor:
> bLength 9
> bDescriptorType 4
> bInterfaceNumber 0
> bAlternateSetting 0
> bNumEndpoints 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 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
>
> Signed-off-by: Peter Robinson <pbrobinson@gmail.com>
> Cc: Johan Hovold <johan@kernel.org>
> ---
> Hi Johan,
>
> I've tested your GNSS USB series with a pair of U-Blox devices, adding
> the above USB ID. Only one included here for feedback to guage your thoughts.
> By defauly The U-Blox devices enumerate with the CDC ACM driver and output
> NMEA data via /dev/ttyACM0. With this patch and cdc_acm blocked I get
> /dev/gnss0 and can cat it to get NMEA data. Is your expectation to move
> these sort of devices over to the usb gnss driver too?
Thanks for testing.
I also used u-blox receiver when developing the USB support, but
enabling support for these devices properly would require adding a few
more missing bits, including blacklisting the corresponding ids in
cdc-acm.
I think I'll look into doing this, but I'm currently quite short on
time.
I'll keep you posted.
Johan
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2022-01-31 10:16 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-12-27 1:23 [RFC PATCH] gnss: usb: add support for U-Blox NEO-M9N Peter Robinson
2022-01-31 10:16 ` Johan Hovold
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).