Skip to contentSkip to conversation

usb: Add support for u-blox LARA-R6 modules family

PATCH Superseded Marco De Marco 2 participants 4 messages Jun 30, 2021 – Jul 5, 2021

Subsystems (5)

v1 of 2 Superseded Latest is v2 →

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 usb: Add support for u-blox LARA-R6 modules family

Support for u-blox LARA-R6 modules family, usb serial interface.

---

drivers/usb/serial/option.c +3 -0
index aeaa3756f..05d0379c9 100644
@@ -238,6 +238,7 @@ static void option_instat_callback(struct urb *urb);
 #define QUECTEL_PRODUCT_UC15			0x9090
 /* These u-blox products use Qualcomm's vendor ID */
 #define UBLOX_PRODUCT_R410M			0x90b2
+#define UBLOX_PRODUCT_R6XX          0x90fa
 /* These Yuga products use Qualcomm's vendor ID */
 #define YUGA_PRODUCT_CLM920_NC5			0x9625
 
@@ -1101,6 +1102,8 @@ static const struct usb_device_id option_ids[] = {
 	/* u-blox products using Qualcomm vendor ID */
 	{ USB_DEVICE(QUALCOMM_VENDOR_ID, UBLOX_PRODUCT_R410M),
 	  .driver_info = RSVD(1) | RSVD(3) },
+	{ USB_DEVICE(QUALCOMM_VENDOR_ID, UBLOX_PRODUCT_R6XX),
+	  .driver_info = RSVD(3) },
 	/* Quectel products using Quectel vendor ID */
 	{ USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EC21, 0xff, 0xff, 0xff),
 	  .driver_info = NUMEP2 },
maintainer
#1 lore raw
Quoted 1 line · Marco De Marco

Support for u-blox LARA-R6 modules family, usb serial interface.

Please include the interface layout here too (cf. commit 4205cb01f6e9 ("USB: serial: option: adding support for ublox R410M")) and post the output of usb-devices (or lsusb -v) for this device.

Isn't there an ADB interface that should be reserved as well for example?

Please also use the common "USB: serial: option:" prefix in your commit summary (Subject).

drivers/usb/serial/option.c static void option_instat_callback(struct urb *urb); · line 241

Quoted 13 lines

---

drivers/usb/serial/option.c +1 -0
index aeaa3756f..05d0379c9 100644
@@ -238,6 +238,7 @@ static void option_instat_callback(struct urb *urb);
 #define QUECTEL_PRODUCT_UC15			0x9090
 /* These u-blox products use Qualcomm's vendor ID */
 #define UBLOX_PRODUCT_R410M			0x90b2
+#define UBLOX_PRODUCT_R6XX          0x90fa

Looks like the indentation for the value is off here, or in any case you should be using tabs rather than spaces.

drivers/usb/serial/option.c static const struct usb_device_id option_ids[] = { · line 1109

Quoted 12 lines
drivers/usb/serial/option.c +2 -0
 /* These Yuga products use Qualcomm's vendor ID */
 #define YUGA_PRODUCT_CLM920_NC5			0x9625
 
@@ -1101,6 +1102,8 @@ static const struct usb_device_id option_ids[] = {
 	/* u-blox products using Qualcomm vendor ID */
 	{ USB_DEVICE(QUALCOMM_VENDOR_ID, UBLOX_PRODUCT_R410M),
 	  .driver_info = RSVD(1) | RSVD(3) },
+	{ USB_DEVICE(QUALCOMM_VENDOR_ID, UBLOX_PRODUCT_R6XX),
+	  .driver_info = RSVD(3) },
 	/* Quectel products using Quectel vendor ID */
 	{ USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EC21, 0xff, 0xff, 0xff),
 	  .driver_info = NUMEP2 },

Johan

#2 lore raw

Re: [PATCH] usb: serial: option: Add support for u-blox LARA-R6 family

The patch is meant to support LARA-R6 Cat 1 module family.

Module USB ID:
Vendor ID: 0x05c6
Product ID: 0x90fA

Interface layout:
If 0: Diagnostic
If 1: AT parser
If 2: AT parser
If 3: QMI wwan (not available in all versions)

---

ADB interface is not available.
Diagnostic interface (If 0) can be used with option driver.

Output of usb-devices command (this version does not have QMI WWAN):

T:  Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  3 Spd=480 MxCh= 0
D:  Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
P:  Vendor=05c6 ProdID=90fa Rev=00.00
S:  Manufacturer=Qualcomm, Incorporated
S:  Product=Qualcomm CDMA Technologies MSM
S:  SerialNumber=7da8aacd
C:  #Ifs= 3 Cfg#= 1 Atr=c0 MxPwr=500mA
I:  If#=0x0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=30 Driver=(none)
I:  If#=0x1 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
I:  If#=0x2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=fe Prot=ff Driver=(none)

Thanks for your patience.

drivers/net/usb/qmi_wwan.c +1 -0
index d08e1de26..bef24b50b 100644
@@ -1115,6 +1115,7 @@ static const struct usb_device_id products[] = {
 	{QMI_FIXED_INTF(0x05c6, 0x9083, 3)},
 	{QMI_FIXED_INTF(0x05c6, 0x9084, 4)},
 	{QMI_FIXED_INTF(0x05c6, 0x90b2, 3)},    /* ublox R410M */
+	{QMI_QUIRK_SET_DTR(0x05c6, 0x90fa, 3)}, /* ublox R6XX  */
 	{QMI_FIXED_INTF(0x05c6, 0x920d, 0)},
 	{QMI_FIXED_INTF(0x05c6, 0x920d, 5)},
 	{QMI_QUIRK_SET_DTR(0x05c6, 0x9625, 4)},	/* YUGA CLM920-NC5 */
drivers/usb/serial/option.c +3 -0
index aeaa3756f..32d1eac8c 100644
@@ -238,6 +238,7 @@ static void option_instat_callback(struct urb *urb);
 #define QUECTEL_PRODUCT_UC15			0x9090
 /* These u-blox products use Qualcomm's vendor ID */
 #define UBLOX_PRODUCT_R410M			0x90b2
+#define UBLOX_PRODUCT_R6XX			0x90fa
 /* These Yuga products use Qualcomm's vendor ID */
 #define YUGA_PRODUCT_CLM920_NC5			0x9625
 
@@ -1101,6 +1102,8 @@ static const struct usb_device_id option_ids[] = {
 	/* u-blox products using Qualcomm vendor ID */
 	{ USB_DEVICE(QUALCOMM_VENDOR_ID, UBLOX_PRODUCT_R410M),
 	  .driver_info = RSVD(1) | RSVD(3) },
+	{ USB_DEVICE(QUALCOMM_VENDOR_ID, UBLOX_PRODUCT_R6XX),
+	  .driver_info = RSVD(3) },
 	/* Quectel products using Quectel vendor ID */
 	{ USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EC21, 0xff, 0xff, 0xff),
 	  .driver_info = NUMEP2 },
Quoted 51 lines · On giovedì 1 luglio 2021 09:14:25 CEST you wrote:
Quoted 1 line · Marco De Marco

Support for u-blox LARA-R6 modules family, usb serial interface.

Please include the interface layout here too (cf. commit 4205cb01f6e9 ("USB: serial: option: adding support for ublox R410M")) and post the output of usb-devices (or lsusb -v) for this device.

Isn't there an ADB interface that should be reserved as well for example?

Please also use the common "USB: serial: option:" prefix in your commit summary (Subject).

Quoted 9 lines

---

drivers/usb/serial/option.c +0 -0
index aeaa3756f..05d0379c9 100644

drivers/usb/serial/option.c static void option_instat_callback(struct urb *urb); · line 243

Quoted 6 lines
drivers/usb/serial/option.c +1 -0
@@ -238,6 +238,7 @@ static void option_instat_callback(struct urb *urb);
 
 #define QUECTEL_PRODUCT_UC15			0x9090
 /* These u-blox products use Qualcomm's vendor ID */
 #define UBLOX_PRODUCT_R410M			0x90b2
 
+#define UBLOX_PRODUCT_R6XX          0x90fa

Looks like the indentation for the value is off here, or in any case you should be using tabs rather than spaces.

Quoted 13 lines
drivers/usb/serial/option.c +0 -0
 /* These Yuga products use Qualcomm's vendor ID */

#define YUGA_PRODUCT_CLM920_NC5 0x9625

drivers/usb/serial/option.c +2 -0
@@ -1101,6 +1102,8 @@ static const struct usb_device_id option_ids[] = {
 
 	/* u-blox products using Qualcomm vendor ID */
 	{ USB_DEVICE(QUALCOMM_VENDOR_ID, UBLOX_PRODUCT_R410M),
 
 	  .driver_info = RSVD(1) | RSVD(3) },
 
+	{ USB_DEVICE(QUALCOMM_VENDOR_ID, UBLOX_PRODUCT_R6XX),
+	  .driver_info = RSVD(3) },

drivers/usb/serial/option.c

Quoted 4 lines
drivers/usb/serial/option.c +0 -0
 	/* Quectel products using Quectel vendor ID */
 	{ USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EC21,
 	0xff, 0xff, 0xff),>  	
 	  .driver_info = NUMEP2 },

Johan

maintainer
#3 lore raw

Re: [PATCH] usb: serial: option: Add support for u-blox LARA-R6 family

Quoted 31 lines · Marco De Marco

The patch is meant to support LARA-R6 Cat 1 module family.

Module USB ID:
Vendor ID: 0x05c6
Product ID: 0x90fA

Interface layout:
If 0: Diagnostic
If 1: AT parser
If 2: AT parser
If 3: QMI wwan (not available in all versions)

---

ADB interface is not available.
Diagnostic interface (If 0) can be used with option driver.

Output of usb-devices command (this version does not have QMI WWAN):

T:  Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  3 Spd=480 MxCh= 0
D:  Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
P:  Vendor=05c6 ProdID=90fa Rev=00.00
S:  Manufacturer=Qualcomm, Incorporated
S:  Product=Qualcomm CDMA Technologies MSM
S:  SerialNumber=7da8aacd
C:  #Ifs= 3 Cfg#= 1 Atr=c0 MxPwr=500mA
I:  If#=0x0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=30 Driver=(none)
I:  If#=0x1 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
I:  If#=0x2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=fe Prot=ff Driver=(none)
Quoted 1 line

Thanks for your patience.

Thanks for the details. All looks good now except that you included the qmi_wwan changes below.

Can you resend this as a v2 (i.e. a new mail with subject "[PATCH v2]
USB: serial: ...") without the qmi_wwan bits?

Generally when updating you should include a short summary below the cut-off line ("---"). Please keep the usb-devices output there as well when resending for completeness (or put it in the commit message).

Quoted 25 lines
drivers/net/usb/qmi_wwan.c +1 -0
index d08e1de26..bef24b50b 100644
@@ -1115,6 +1115,7 @@ static const struct usb_device_id products[] = {
 	{QMI_FIXED_INTF(0x05c6, 0x9083, 3)},
 	{QMI_FIXED_INTF(0x05c6, 0x9084, 4)},
 	{QMI_FIXED_INTF(0x05c6, 0x90b2, 3)},    /* ublox R410M */
+	{QMI_QUIRK_SET_DTR(0x05c6, 0x90fa, 3)}, /* ublox R6XX  */
 	{QMI_FIXED_INTF(0x05c6, 0x920d, 0)},
 	{QMI_FIXED_INTF(0x05c6, 0x920d, 5)},
 	{QMI_QUIRK_SET_DTR(0x05c6, 0x9625, 4)},	/* YUGA CLM920-NC5 */
drivers/usb/serial/option.c +1 -0
index aeaa3756f..32d1eac8c 100644
@@ -238,6 +238,7 @@ static void option_instat_callback(struct urb *urb);
 #define QUECTEL_PRODUCT_UC15			0x9090
 /* These u-blox products use Qualcomm's vendor ID */
 #define UBLOX_PRODUCT_R410M			0x90b2
+#define UBLOX_PRODUCT_R6XX			0x90fa
 /* These Yuga products use Qualcomm's vendor ID */
 #define YUGA_PRODUCT_CLM920_NC5			0x9625
 

drivers/usb/serial/option.c static const struct usb_device_id option_ids[] = { · line 1109

Quoted 8 lines
drivers/usb/serial/option.c +2 -0
@@ -1101,6 +1102,8 @@ static const struct usb_device_id option_ids[] = {
 	/* u-blox products using Qualcomm vendor ID */
 	{ USB_DEVICE(QUALCOMM_VENDOR_ID, UBLOX_PRODUCT_R410M),
 	  .driver_info = RSVD(1) | RSVD(3) },
+	{ USB_DEVICE(QUALCOMM_VENDOR_ID, UBLOX_PRODUCT_R6XX),
+	  .driver_info = RSVD(3) },
 	/* Quectel products using Quectel vendor ID */
 	{ USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EC21, 0xff, 0xff, 0xff),
 	  .driver_info = NUMEP2 },

Johan