]>
Commit | Line | Data |
---|---|---|
5c17fab8 GKH |
1 | From c840244aba7ad2b83ed904378b36bd6aef25511c Mon Sep 17 00:00:00 2001 |
2 | From: Jerry Meng <jerry-meng@foxmail.com> | |
3 | Date: Mon, 15 Apr 2024 15:04:29 +0800 | |
4 | Subject: USB: serial: option: support Quectel EM060K sub-models | |
5 | ||
6 | From: Jerry Meng <jerry-meng@foxmail.com> | |
7 | ||
8 | commit c840244aba7ad2b83ed904378b36bd6aef25511c upstream. | |
9 | ||
10 | EM060K_129, EM060K_12a, EM060K_12b and EM0060K_12c are EM060K's sub-models, | |
11 | having the same name "Quectel EM060K-GL" and the same interface layout. | |
12 | ||
13 | MBIM + GNSS + DIAG + NMEA + AT + QDSS + DPL | |
14 | ||
15 | T: Bus=03 Lev=01 Prnt=01 Port=01 Cnt=02 Dev#= 8 Spd=480 MxCh= 0 | |
16 | D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1 | |
17 | P: Vendor=2c7c ProdID=0129 Rev= 5.04 | |
18 | S: Manufacturer=Quectel | |
19 | S: Product=Quectel EM060K-GL | |
20 | S: SerialNumber=f6fa08b6 | |
21 | C:* #Ifs= 8 Cfg#= 1 Atr=a0 MxPwr=500mA | |
22 | A: FirstIf#= 0 IfCount= 2 Cls=02(comm.) Sub=0e Prot=00 | |
23 | I:* If#= 0 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=0e Prot=00 Driver=cdc_mbim | |
24 | E: Ad=81(I) Atr=03(Int.) MxPS= 64 Ivl=32ms | |
25 | I: If#= 1 Alt= 0 #EPs= 0 Cls=0a(data ) Sub=00 Prot=02 Driver=cdc_mbim | |
26 | I:* If#= 1 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=02 Driver=cdc_mbim | |
27 | E: Ad=8e(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms | |
28 | E: Ad=0f(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms | |
29 | I:* If#= 2 Alt= 0 #EPs= 1 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none) | |
30 | E: Ad=82(I) Atr=03(Int.) MxPS= 64 Ivl=32ms | |
31 | I:* If#= 3 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=30 Driver=option | |
32 | E: Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms | |
33 | E: Ad=83(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms | |
34 | I:* If#= 4 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=40 Driver=option | |
35 | E: Ad=85(I) Atr=03(Int.) MxPS= 10 Ivl=32ms | |
36 | E: Ad=84(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms | |
37 | E: Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms | |
38 | I:* If#= 5 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=40 Driver=option | |
39 | E: Ad=87(I) Atr=03(Int.) MxPS= 10 Ivl=32ms | |
40 | E: Ad=86(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms | |
41 | E: Ad=03(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms | |
42 | I:* If#= 6 Alt= 0 #EPs= 1 Cls=ff(vend.) Sub=ff Prot=70 Driver=(none) | |
43 | E: Ad=88(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms | |
44 | I:* If#= 7 Alt= 0 #EPs= 1 Cls=ff(vend.) Sub=ff Prot=80 Driver=(none) | |
45 | E: Ad=8f(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms | |
46 | ||
47 | Signed-off-by: Jerry Meng <jerry-meng@foxmail.com> | |
48 | Cc: stable@vger.kernel.org | |
49 | Signed-off-by: Johan Hovold <johan@kernel.org> | |
50 | Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> | |
51 | --- | |
52 | drivers/usb/serial/option.c | 16 ++++++++++++++++ | |
53 | 1 file changed, 16 insertions(+) | |
54 | ||
55 | --- a/drivers/usb/serial/option.c | |
56 | +++ b/drivers/usb/serial/option.c | |
57 | @@ -255,6 +255,10 @@ static void option_instat_callback(struc | |
58 | #define QUECTEL_PRODUCT_EM061K_LMS 0x0124 | |
59 | #define QUECTEL_PRODUCT_EC25 0x0125 | |
60 | #define QUECTEL_PRODUCT_EM060K_128 0x0128 | |
61 | +#define QUECTEL_PRODUCT_EM060K_129 0x0129 | |
62 | +#define QUECTEL_PRODUCT_EM060K_12a 0x012a | |
63 | +#define QUECTEL_PRODUCT_EM060K_12b 0x012b | |
64 | +#define QUECTEL_PRODUCT_EM060K_12c 0x012c | |
65 | #define QUECTEL_PRODUCT_EG91 0x0191 | |
66 | #define QUECTEL_PRODUCT_EG95 0x0195 | |
67 | #define QUECTEL_PRODUCT_BG96 0x0296 | |
68 | @@ -1218,6 +1222,18 @@ static const struct usb_device_id option | |
69 | { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM060K_128, 0xff, 0xff, 0x30) }, | |
70 | { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM060K_128, 0xff, 0x00, 0x40) }, | |
71 | { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM060K_128, 0xff, 0xff, 0x40) }, | |
72 | + { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM060K_129, 0xff, 0xff, 0x30) }, | |
73 | + { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM060K_129, 0xff, 0x00, 0x40) }, | |
74 | + { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM060K_129, 0xff, 0xff, 0x40) }, | |
75 | + { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM060K_12a, 0xff, 0xff, 0x30) }, | |
76 | + { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM060K_12a, 0xff, 0x00, 0x40) }, | |
77 | + { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM060K_12a, 0xff, 0xff, 0x40) }, | |
78 | + { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM060K_12b, 0xff, 0xff, 0x30) }, | |
79 | + { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM060K_12b, 0xff, 0x00, 0x40) }, | |
80 | + { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM060K_12b, 0xff, 0xff, 0x40) }, | |
81 | + { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM060K_12c, 0xff, 0xff, 0x30) }, | |
82 | + { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM060K_12c, 0xff, 0x00, 0x40) }, | |
83 | + { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM060K_12c, 0xff, 0xff, 0x40) }, | |
84 | { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM061K_LCN, 0xff, 0xff, 0x30) }, | |
85 | { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM061K_LCN, 0xff, 0x00, 0x40) }, | |
86 | { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM061K_LCN, 0xff, 0xff, 0x40) }, |