linux/drivers/usb/serial
LI Qingwu f805ddd2e0 USB: serial: option: add Telit FN920C04 ECM compositions
commit 622865c73a upstream.

Add support for the Telit Cinterion FN920C04 module when operating in
ECM (Ethernet Control Model) mode. The following USB product IDs are
used by the module when AT#USBCFG is set to 3 or 7.

0x10A3: ECM + tty (NMEA) + tty (DUN) [+ tty (DIAG)]
T:  Bus=01 Lev=02 Prnt=02 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=1bc7 ProdID=10a3 Rev= 5.15
S:  Manufacturer=Telit Cinterion
S:  Product=FN920
S:  SerialNumber=76e7cb38
C:* #Ifs= 5 Cfg#= 1 Atr=e0 MxPwr=500mA
I:* If#= 0 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=06 Prot=00 Driver=cdc_ether
E:  Ad=82(I) Atr=03(Int.) MxPS=  16 Ivl=32ms
I:  If#= 1 Alt= 0 #EPs= 0 Cls=0a(data ) Sub=00 Prot=00 Driver=cdc_ether
I:* If#= 1 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=cdc_ether
E:  Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:* If#= 2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=60 Driver=option
E:  Ad=84(I) Atr=03(Int.) MxPS=  10 Ivl=32ms
E:  Ad=83(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:* If#= 3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=40 Driver=option
E:  Ad=86(I) Atr=03(Int.) MxPS=  10 Ivl=32ms
E:  Ad=85(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=03(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:* If#= 4 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=30 Driver=option
E:  Ad=04(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=87(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms

0x10A8: ECM + tty (DUN) + tty (AUX) [+ tty (DIAG)]
T:  Bus=03 Lev=02 Prnt=02 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=1bc7 ProdID=10a8 Rev= 5.15
S:  Manufacturer=Telit Cinterion
S:  Product=FN920
S:  SerialNumber=76e7cb38
C:* #Ifs= 5 Cfg#= 1 Atr=e0 MxPwr=500mA
I:* If#= 0 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=06 Prot=00 Driver=cdc_ether
E:  Ad=82(I) Atr=03(Int.) MxPS=  16 Ivl=32ms
I:  If#= 1 Alt= 0 #EPs= 0 Cls=0a(data ) Sub=00 Prot=00 Driver=cdc_ether
I:* If#= 1 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=cdc_ether
E:  Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:* If#= 2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=40 Driver=option
E:  Ad=84(I) Atr=03(Int.) MxPS=  10 Ivl=32ms
E:  Ad=83(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:* If#= 3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=40 Driver=option
E:  Ad=86(I) Atr=03(Int.) MxPS=  10 Ivl=32ms
E:  Ad=85(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=03(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:* If#= 4 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=30 Driver=option
E:  Ad=04(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E:  Ad=87(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms

Adding these IDs allows the option driver to automatically create the
corresponding /dev/ttyUSB* ports under ECM mode.

Tested with FN920C04 under ECM configuration (USBCFG=3 and 7).

Signed-off-by: LI Qingwu <Qing-wu.Li@leica-geosystems.com.cn>
Cc: stable@vger.kernel.org
Signed-off-by: Johan Hovold <johan@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
History 2025-10-29 14:09:00 +01:00
..
aircable.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
ark3116.c USB: serial: drop driver owner initialization 2024-08-26 15:28:25 +02:00
belkin_sa.c USB: serial: drop driver owner initialization 2024-08-26 15:28:25 +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 driver core: have match() callback in struct bus_type take a const * 2024-07-03 15:16:54 +02:00
ch341.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
console.c tty: Cleanup tty_port_set_initialized() bool parameter 2023-01-19 16:04:34 +01:00
cp210x.c USB: serial: cp210x: add Phoenix Contact UPS Device 2025-01-17 13:40:52 +01:00
cyberjack.c USB: serial: drop driver owner initialization 2024-08-26 15:28:25 +02:00
cypress_m8.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04: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: drop driver owner initialization 2024-08-26 15:28:25 +02:00
empeg.c USB: serial: drop driver owner initialization 2024-08-26 15:28:25 +02:00
ezusb_convert.pl License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
f81232.c USB: serial: drop driver owner initialization 2024-08-26 15:28:25 +02:00
f81534.c USB: serial: drop driver owner initialization 2024-08-26 15:28:25 +02:00
ftdi_sio.c USB: serial: ftdi_sio: add support for NDI EMGUIDE GEMINI 2025-07-24 08:56:20 +02: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 NDI EMGUIDE GEMINI 2025-07-24 08:56:20 +02:00
garmin_gps.c USB: serial: drop driver owner initialization 2024-08-26 15:28:25 +02:00
generic.c USB: serial: drop driver owner initialization 2024-08-26 15:28:25 +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: io_edgeport: fix use after free in debug printk 2024-10-31 14:18:51 +01: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: drop driver owner initialization 2024-08-26 15:28:25 +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: drop driver owner initialization 2024-08-26 15:28:25 +02:00
ipw.c USB: serial: drop driver owner initialization 2024-08-26 15:28:25 +02:00
ir-usb.c USB: serial: drop driver owner initialization 2024-08-26 15:28:25 +02:00
iuu_phoenix.c USB: serial: drop driver owner initialization 2024-08-26 15:28:25 +02:00
iuu_phoenix.h USB: serial: Use the correct style for SPDX License Identifier 2020-04-22 09:26:47 +02:00
Kconfig USB: serial: simple: add Nokia phone driver 2022-03-03 09:27:36 +01:00
keyspan.c USB: serial: drop driver owner initialization 2024-08-26 15:28:25 +02:00
keyspan_pda.c USB: serial: drop driver owner initialization 2024-08-26 15:28:25 +02:00
keyspan_usa26msg.h USB: serial: keyspan_usa: add proper SPDX lines for .h files 2019-01-18 11:09:32 +01:00
keyspan_usa28msg.h USB: serial: keyspan_usa: add proper SPDX lines for .h files 2019-01-18 11:09:32 +01:00
keyspan_usa49msg.h USB: serial: keyspan_usa: add proper SPDX lines for .h files 2019-01-18 11:09:32 +01:00
keyspan_usa67msg.h USB: serial: keyspan_usa: add proper SPDX lines for .h files 2019-01-18 11:09:32 +01:00
keyspan_usa90msg.h USB: serial: keyspan_usa: add proper SPDX lines for .h files 2019-01-18 11:09:32 +01:00
kl5kusb105.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
kl5kusb105.h USB: serial: kl5kusb105: remove KLSI device id 2018-07-11 10:11:29 +02:00
kobil_sct.c USB: serial: kobil_sct: restore initial terminal settings 2024-08-26 15:29:27 +02:00
kobil_sct.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
Makefile USB: serial: add MaxLinear/Exar USB to Serial driver 2021-01-21 10:49:37 +01:00
Makefile-keyspan_pda_fw USB: add SPDX identifiers to all remaining Makefiles 2017-11-07 15:53:48 +01:00
mct_u232.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04: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 driver owner initialization 2024-08-26 15:28:25 +02:00
mos7720.c USB: serial: drop driver owner initialization 2024-08-26 15:28:25 +02:00
mos7840.c USB: serial: drop driver owner initialization 2024-08-26 15:28:25 +02:00
mxuport.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
navman.c USB: serial: drop driver owner initialization 2024-08-26 15:28:25 +02:00
omninet.c USB: serial: drop driver owner initialization 2024-08-26 15:28:25 +02:00
opticon.c USB: serial: drop driver owner initialization 2024-08-26 15:28:25 +02:00
option.c USB: serial: option: add Telit FN920C04 ECM compositions 2025-10-29 14:09:00 +01:00
oti6858.c USB: serial: drop driver owner initialization 2024-08-26 15:28:25 +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: pl2303: add new chip PL2303GC-Q20 and PL2303GT-2AB 2025-06-10 07:12:59 -04:00
pl2303.h USB: serial: pl2303: add device id for Macrosilicon MS3020 2024-09-06 17:11:13 +02:00
qcaux.c USB: serial: drop driver owner initialization 2024-08-26 15:28:25 +02:00
qcserial.c USB: serial: qcserial: add support for Sierra Wireless EM86xx 2024-11-06 15:09:51 +01:00
quatech2.c USB: serial: quatech2: fix null-ptr-deref in qt2_process_read_urb() 2025-02-01 18:39:38 +01:00
safe_serial.c USB: serial: drop driver owner initialization 2024-08-26 15:28:25 +02:00
sierra.c USB: serial: drop driver owner initialization 2024-08-26 15:28:25 +02:00
spcp8x5.c USB: serial: drop driver owner initialization 2024-08-26 15:28:25 +02:00
ssu100.c USB: serial: drop driver owner initialization 2024-08-26 15:28:25 +02:00
symbolserial.c USB: serial: drop driver owner initialization 2024-08-26 15:28:25 +02:00
ti_usb_3410_5052.c USB: serial: drop driver owner initialization 2024-08-26 15:28:25 +02:00
upd78f0730.c USB: serial: drop driver owner initialization 2024-08-26 15:28:25 +02:00
usb-serial-simple.c USB: serial: simple: add OWON HDS200 series oscilloscope support 2025-05-02 07:59:11 +02:00
usb-serial.c USB: serial: set driver owner when registering drivers 2024-08-26 15:28:24 +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: serial: drop driver owner initialization 2024-08-26 15:28:25 +02:00
usb_wwan.c USB-serial updates for 5.20-rc1 2022-07-25 11:28:52 +02:00
visor.c USB: serial: drop driver owner initialization 2024-08-26 15:28:25 +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: drop driver owner initialization 2024-08-26 15:28:25 +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 USB: serial: drop driver owner initialization 2024-08-26 15:28:25 +02:00
xr_serial.c USB: serial: drop driver owner initialization 2024-08-26 15:28:25 +02:00
xsens_mt.c USB: serial: drop driver owner initialization 2024-08-26 15:28:25 +02:00