OpenCloudOS-Kernel/drivers/usb/serial
Duke Xin(辛安文) 71dfd381a7 USB: serial: option: add Quectel EM05CN modem
The EM05CN modem has 2 USB configurations that are configurable via the AT
command AT+QCFG="usbnet",[ 0 | 2 ] which make the modem enumerate with
the following interfaces, respectively:

"MBIM"  : AT + MBIM + DIAG + NMEA  + MODEM
"RMNET" : AT + DIAG + NMEA + Modem + QMI

The detailed description of the USB configuration for each mode as follows:

MBIM Mode
--------------
T:  Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  2 Spd=480  MxCh= 0
D:  Ver= 2.00 Cls=ef(misc ) Sub=02 Prot=01 MxPS=64 #Cfgs=  1
P:  Vendor=2c7c ProdID=0312 Rev= 3.18
S:  Manufacturer=Quectel
S:  Product=Quectel EM05-CN
C:* #Ifs= 6 Cfg#= 1 Atr=a0 MxPwr=500mA
A:  FirstIf#= 1 IfCount= 2 Cls=02(comm.) Sub=0e Prot=00
I:* If#= 3 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
E:  Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:* If#= 4 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
E:  Ad=83(I) Atr=03(Int.) MxPS=  10 Ivl=32ms
E:  Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:* If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
E:  Ad=85(I) Atr=03(Int.) MxPS=  10 Ivl=32ms
E:  Ad=84(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=03(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:* If#= 5 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
E:  Ad=87(I) Atr=03(Int.) MxPS=  10 Ivl=32ms
E:  Ad=86(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=04(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:* If#= 1 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=0e Prot=00 Driver=cdc_mbim
E:  Ad=89(I) Atr=03(Int.) MxPS=  64 Ivl=32ms
I:  If#= 2 Alt= 0 #EPs= 0 Cls=0a(data ) Sub=00 Prot=02 Driver=cdc_mbim
I:* If#= 2 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=02 Driver=cdc_mbim
E:  Ad=88(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=05(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms

RMNET Mode
--------------
T:  Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  3 Spd=480  MxCh= 0
D:  Ver= 2.00 Cls=ef(misc ) Sub=02 Prot=01 MxPS=64 #Cfgs=  1
P:  Vendor=2c7c ProdID=0312 Rev= 3.18
S:  Manufacturer=Quectel
S:  Product=Quectel EM05-CN
C:* #Ifs= 5 Cfg#= 1 Atr=a0 MxPwr=500mA
I:* If#= 3 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
E:  Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:* If#= 4 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
E:  Ad=83(I) Atr=03(Int.) MxPS=  10 Ivl=32ms
E:  Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:* If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
E:  Ad=85(I) Atr=03(Int.) MxPS=  10 Ivl=32ms
E:  Ad=84(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=03(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:* If#= 5 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
E:  Ad=87(I) Atr=03(Int.) MxPS=  10 Ivl=32ms
E:  Ad=86(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=04(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:* If#= 6 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
E:  Ad=89(I) Atr=03(Int.) MxPS=   8 Ivl=32ms
E:  Ad=88(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=05(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms

Signed-off-by: Duke Xin(辛安文) <duke_xinanwen@163.com>
Cc: stable@vger.kernel.org
Signed-off-by: Johan Hovold <johan@kernel.org>
2023-01-16 08:47:47 +01:00
..
Kconfig USB: serial: simple: add Nokia phone driver 2022-03-03 09:27:36 +01:00
Makefile USB: serial: add MaxLinear/Exar USB to Serial driver 2021-01-21 10:49:37 +01:00
Makefile-keyspan_pda_fw
aircable.c USB: serial: drop redundant transfer-buffer casts 2020-07-09 09:20:17 +02:00
ark3116.c usb: serial: Make ->set_termios() old ktermios const 2022-08-30 14:22:35 +02:00
belkin_sa.c usb: serial: Make ->set_termios() old ktermios const 2022-08-30 14:22:35 +02:00
belkin_sa.h USB: serial: Use the correct style for SPDX License Identifier 2020-04-22 09:26:47 +02:00
bus.c bus: Make remove callback return void 2021-07-21 11:53:42 +02:00
ch341.c Merge 6.0-rc4 into tty-next 2022-09-05 07:59:28 +02:00
console.c USB: serial: console: move mutex_unlock() before usb_serial_put() 2022-09-19 15:30:16 +02:00
cp210x.c USB: serial: cp210x: add SCALANCE LPE-9000 device id 2023-01-16 08:47:43 +01:00
cyberjack.c USB: serial: make usb_serial_driver::write_room return uint 2021-05-19 10:56:40 +02:00
cypress_m8.c usb: serial: Make ->set_termios() old ktermios const 2022-08-30 14:22:35 +02:00
cypress_m8.h USB: serial: cypress_m8: enable Simply Automated UPB PIM 2020-06-23 09:56:17 +02:00
digi_acceleport.c usb: serial: Make ->set_termios() old ktermios const 2022-08-30 14:22:35 +02:00
empeg.c docs: usb: rename files to .rst and add them to drivers-api 2019-06-20 14:28:36 +02:00
ezusb_convert.pl
f81232.c USB: serial: f81232: fix division by zero on line-speed change 2022-11-30 12:27:44 +01:00
f81534.c USB: serial: f81534: fix division by zero on line-speed change 2022-11-30 12:27:59 +01:00
ftdi_sio.c USB/Thunderbolt changes for 6.1-rc1 2022-10-07 16:48:26 -07:00
ftdi_sio.h USB: serial: ftdi_sio: rename channel index 2022-09-15 08:05:53 +02:00
ftdi_sio_ids.h USB: serial: ftdi_sio: add support for HP and HA devices 2022-09-15 08:06:06 +02:00
garmin_gps.c treewide: Convert del_timer*() to timer_shutdown*() 2022-12-25 13:38:09 -08:00
generic.c USB: serial: make usb_serial_driver::chars_in_buffer return uint 2021-05-19 10:56:41 +02:00
io_16654.h USB: serial: Use the correct style for SPDX License Identifier 2020-04-22 09:26:47 +02:00
io_edgeport.c usb: serial: Make ->set_termios() old ktermios const 2022-08-30 14:22:35 +02:00
io_edgeport.h USB: serial: io_edgeport: drop unused definitions 2021-04-08 09:50:04 +02:00
io_ionsp.h USB: serial: Use the correct style for SPDX License Identifier 2020-04-22 09:26:47 +02:00
io_ti.c usb: serial: Make ->set_termios() old ktermios const 2022-08-30 14:22:35 +02:00
io_ti.h USB: serial: io_ti: drop unnecessary packed attributes 2021-04-13 18:23:34 +02:00
io_usbvend.h USB: serial: io_ti: add Agilent E5805A support 2022-06-09 14:13:28 +02:00
ipaq.c USB: serial: replace symbolic permissions by octal permissions 2021-08-26 09:38:27 +02:00
ipw.c
ir-usb.c usb: serial: Make ->set_termios() old ktermios const 2022-08-30 14:22:35 +02:00
iuu_phoenix.c usb: serial: Make ->set_termios() old ktermios const 2022-08-30 14:22:35 +02:00
iuu_phoenix.h USB: serial: Use the correct style for SPDX License Identifier 2020-04-22 09:26:47 +02:00
keyspan.c usb: serial: Make ->set_termios() old ktermios const 2022-08-30 14:22:35 +02:00
keyspan_pda.c usb: serial: Make ->set_termios() old ktermios const 2022-08-30 14:22:35 +02:00
keyspan_usa26msg.h
keyspan_usa28msg.h
keyspan_usa49msg.h
keyspan_usa67msg.h
keyspan_usa90msg.h
kl5kusb105.c usb: serial: Make ->set_termios() old ktermios const 2022-08-30 14:22:35 +02:00
kl5kusb105.h
kobil_sct.c usb: serial: Make ->set_termios() old ktermios const 2022-08-30 14:22:35 +02:00
kobil_sct.h
mct_u232.c usb: serial: Make ->set_termios() old ktermios const 2022-08-30 14:22:35 +02:00
mct_u232.h USB: serial: Use the correct style for SPDX License Identifier 2020-04-22 09:26:47 +02:00
metro-usb.c USB: serial: drop irq-flags initialisations 2021-05-21 15:46:25 +02:00
mos7720.c usb: serial: Make ->set_termios() old ktermios const 2022-08-30 14:22:35 +02:00
mos7840.c treewide: Convert del_timer*() to timer_shutdown*() 2022-12-25 13:38:09 -08:00
mxuport.c usb: serial: Make ->set_termios() old ktermios const 2022-08-30 14:22:35 +02:00
navman.c
omninet.c USB: serial: omninet: update driver description 2021-05-25 08:59:17 +02:00
opticon.c USB: serial: use kmemdup instead of kmalloc + memcpy 2022-06-22 08:56:52 +02:00
option.c USB: serial: option: add Quectel EM05CN modem 2023-01-16 08:47:47 +01:00
oti6858.c usb: serial: Make ->set_termios() old ktermios const 2022-08-30 14:22:35 +02:00
oti6858.h USB: serial: Use the correct style for SPDX License Identifier 2020-04-22 09:26:47 +02:00
pl2303.c usb: serial: Make ->set_termios() old ktermios const 2022-08-30 14:22:35 +02:00
pl2303.h USB: serial: pl2303: add device id for HP LM930 Display 2022-05-05 13:31:03 +02:00
qcaux.c
qcserial.c USB: serial: qcserial: add new usb-id for Dell branded EM7455 2022-09-27 09:04:28 +02:00
quatech2.c usb: serial: Make ->set_termios() old ktermios const 2022-08-30 14:22:35 +02:00
safe_serial.c
sierra.c USB: serial: fix tty-port initialized comments 2022-07-25 11:01:40 +02:00
spcp8x5.c usb: serial: Make ->set_termios() old ktermios const 2022-08-30 14:22:35 +02:00
ssu100.c usb: serial: Make ->set_termios() old ktermios const 2022-08-30 14:22:35 +02:00
symbolserial.c USB: serial: make remove callback return void 2021-02-09 13:13:58 +01:00
ti_usb_3410_5052.c usb: serial: Make ->set_termios() old ktermios const 2022-08-30 14:22:35 +02:00
upd78f0730.c usb: serial: Make ->set_termios() old ktermios const 2022-08-30 14:22:35 +02:00
usb-serial-simple.c USB: serial: simple: add Nokia phone driver 2022-03-03 09:27:36 +01:00
usb-serial.c tty: Make ->set_termios() old ktermios const 2022-08-30 14:22:35 +02:00
usb-wwan.h USB: serial: make usb_serial_driver::chars_in_buffer return uint 2021-05-19 10:56:41 +02:00
usb_debug.c
usb_wwan.c USB-serial updates for 5.20-rc1 2022-07-25 11:28:52 +02:00
visor.c docs: usb: rename files to .rst and add them to drivers-api 2019-06-20 14:28:36 +02:00
visor.h USB: serial: Use the correct style for SPDX License Identifier 2020-04-22 09:26:47 +02:00
whiteheat.c usb: serial: Make ->set_termios() old ktermios const 2022-08-30 14:22:35 +02:00
whiteheat.h USB: serial: Use the correct style for SPDX License Identifier 2020-04-22 09:26:47 +02:00
wishbone-serial.c
xr_serial.c USB: serial: xr: avoid requesting zero DTE rate 2022-11-30 12:28:51 +01:00
xsens_mt.c