From nobody Tue Dec 16 16:55:48 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 61CD8C61D90 for ; Tue, 21 Nov 2023 21:06:03 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231335AbjKUVGE (ORCPT ); Tue, 21 Nov 2023 16:06:04 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:32972 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229488AbjKUVGD (ORCPT ); Tue, 21 Nov 2023 16:06:03 -0500 Received: from NAM04-MW2-obe.outbound.protection.outlook.com (mail-mw2nam04olkn2050.outbound.protection.outlook.com [40.92.46.50]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id EDF5A1A2; Tue, 21 Nov 2023 13:05:58 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Ug/dd1U9aau40nh57CvqGBYwJNTwyzw1d4A3cshljVdYEI8dx/dTQUpaOuoAMKwdQLo/UcZ0fvGsg5lZqxJFXSMHZSjB9KVxYLcRjNID2TARk4gENWxh4kscjDu3FbY4SQgVN7Zfgg6SsUcqx85uUjBT07vhsrpDOHbkuhiz1naQwnitUukP9QhSEeauCtCA7rR8Dok+kp5HIffctZtB9E+Z1PAJ+jaZf4GdcLKxGix7IdSciMs3wbPAglzJexjk2xcuVkWOVPqClLGScjVbLUZeitiJ4F3Jfms7fbYkTb35jZeCgLV+oIuQ+m/fX0OdYsD/2oC2jtooWWUm8fZ+Xw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=JeUdYAvZd9hmtZD/EA+fOv6da+hYcOPCOoOyCWOTWco=; b=Z457s306gYgIyu9Fxs6/5naTNOd5kqklwQcUkFFTX3BT6eq9Z2SsbzMfOFEw80/eYXONaiO88JRdAIUlIr0X063c15FK33TjI+eso7DwM+LtcUF4lVKmwKxFeBYGVE938a53+YXkTLqPvXvjlTTpViKUSZhwM9clb2NoTIYwRaX86/Vp2hyBLlGzSae9Ku71hf8j+kwFxSIMjFT8seZ+ev+yvcYj4llwcoo0oFWgjr2oScAoBTI0tXovYOMlSUrm+Sw/oXWXXLyuC9x8a96t4d3G45mTPIbowZ/RDv/+54W5N5sKjpuR2g1iYVLYYDUmfmrU9Vtt9O+PRdTdVAs5qQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hotmail.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=JeUdYAvZd9hmtZD/EA+fOv6da+hYcOPCOoOyCWOTWco=; b=baKQmC6FR3brx009xPiICBVciGbE8Az3zupSrhNsgOwgf+b0XUzsrhNM9+r+9QCybqr73pKOqA5wGH0ZGESzA0+8zgFYM65tKENBaiE0TNBHqoiulR+mU6neWbAMY7eHvgshk6qtTZ2Y/tDLrgbTsCS8lxI6SslWMPn7IemZFvJBJBou355gpBsCsCvhe1dHu71EBV/ZsXFqdfoV+7l4pcJ/vJ8vJ0FGDzm953PzdUxNCJcy8qPfImbLnT067biISE9Iygb76CQ0l1Qyexyafo96hjtpjccNuzul/05+ZfiCxadhvDFKFhuUvCRYa0favISuT26tTL0AkWnZNAcTAA== Received: from PH0PR06MB7817.namprd06.prod.outlook.com (2603:10b6:510:ed::8) by PH0PR06MB7872.namprd06.prod.outlook.com (2603:10b6:510:aa::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7002.28; Tue, 21 Nov 2023 21:05:57 +0000 Received: from PH0PR06MB7817.namprd06.prod.outlook.com ([fe80::8837:cc08:d48d:74e4]) by PH0PR06MB7817.namprd06.prod.outlook.com ([fe80::8837:cc08:d48d:74e4%4]) with mapi id 15.20.7002.028; Tue, 21 Nov 2023 21:05:56 +0000 From: Victor Fragoso To: "johan@kernel.org" CC: "gregkh@linuxfoundation.org" , "linux-usb@vger.kernel.org" , "linux-kernel@vger.kernel.org" Subject: [PATCH v2] USB: serial: option: add Fibocom L7xx modules Thread-Topic: [PATCH v2] USB: serial: option: add Fibocom L7xx modules Thread-Index: AQHaHL6FSg+Jc3n8XUKpheSgkQBqXQ== Date: Tue, 21 Nov 2023 21:05:56 +0000 Message-ID: <39dd187fe27244f28fa729ce134d9d130147f2e1.camel@hotmail.com> Accept-Language: pt-BR, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-exchange-messagesentrepresentingtype: 1 x-tmn: [MdqIxyQqFgPUZZVWYPr/4dQt+u4QFxWW] x-ms-publictraffictype: Email x-ms-traffictypediagnostic: PH0PR06MB7817:EE_|PH0PR06MB7872:EE_ x-ms-office365-filtering-correlation-id: 86a2228a-618e-405a-eabd-08dbead5a7ec x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: HIaKXmAQoSgpqKYEyFimSw7cLzBaM+X5meqIxzL2ONAibpxJuvtk6MD6WWyPbIY9oy7TTQgme3gWsQfjoC97JE7ywm3kM2Ivu+UofDAO+KwfW8rCwsnC2vykvaGufkWvY9AuGPs99T2hQTjZpgiFu3ug+VvRevkp+4PkC29amQ18ZUGzdRQBM5USAGt2fIyoIdl5sX/muJECLwPN78QUbSSRyo/5sJkVrGHYYh/fRB45GR4iyo6kZVuBKgOXn3dLAz9sU8e+7Romw6ETNySWthZ/7Qv68in/fLlxLFE3FwF39xs8d+NoueP24b+lc3ECWH8BIq4JrQoZJyi/b4fHm7PYt66AHB8dpsLFEqNF3w6AqtZyKNmIdQnqfGdz99TOevixUq96KonE5WALg7e8fmQYjzUaxeT7MnHldh4dJqEAsH2kO1a+wqVf8JbVfyRpWnQ1R9FZPWWkcWyjNv3Vq+dq5QSFLaJ4JqVY1Hva7o5MT1lx7CfPC1yDY+xM0RBEm29eOFHy3e2gcEQ/mOGigx59D+pyg0dmtUkUKfwOjovCNslp27Rcsf/Z90nNKWcB x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?M1BMUFE2S3NYK1Qrc21ERndybHpxN2lCaExuQmtCWkh3OSt5TXNWNUZ3Y29w?= =?utf-8?B?UWl0LzArRkczc0JCVE91enFhM1FhQUovdHNoMGw1a1dUR2VBYXJJMGZXY3pW?= =?utf-8?B?MUNGc001UkIxb0Zpakg2eTI4bU04cjhWV1p5ZXg2NDdVVlVWWlhydWxMUVNn?= =?utf-8?B?aHdSZnQwMktrL0pjbCtTZjJTVEJFZlVFYzIzSEhpMUR3UmY0RUd1U3cxdUhj?= =?utf-8?B?S0JHQ2pwMDlZb2xjUEtPOE1ZVmlLREd1M0xSQ2hxTStMU3RiWDFOdjNRdjhh?= =?utf-8?B?dGVUMVJMbEpWM0hKdFVla2lwYTgvN21CcmZRVGJxVDZMNFpKTEVpanp6VVZt?= =?utf-8?B?SC9ONC9RM3ZYelhDcTZnd2g0TDEyTEhLallsaVVNRmQ3bGg5VXJ5NStYbEpS?= =?utf-8?B?dGlpUVZ1VFJ1YTVsR2JQUi92c2FudGRyQmh2aTBYVmc3VDlXZS9Rbi9leS9O?= =?utf-8?B?NFZHamRCbUJIRU1Mb1dpZ0htQUdjVktoTmxodVdDV0tYL29oUEs3VElUMkhM?= =?utf-8?B?cnRDREc2Z2lqWmFtZFFGWDNySE11U3FCRmMyOUJ2a3dQVm1yMkE3dnpVN0hU?= =?utf-8?B?bENZVkx2VGtXK0hJdjc2MlJzTWFRdjc0Y2pVR3VqZTdiTzJuaTloSFVhS25X?= =?utf-8?B?eUhQd282MXk0VDAzbExJQ0NpOVBmYUd5eEw5U0xnWEZoMjF3K0x6MUYxczcy?= =?utf-8?B?VXkxM2hUUVQrU1M3MkhhK2tDSzMyVTB5SmZ3c01WT3gxWHIyUnhTTGxKc3dy?= =?utf-8?B?RGdKdG1jVEJNWExoMVdhQkVsQmhsaXNZNUhHeHhzQlg1d0NHZVBoU1FFNXdK?= =?utf-8?B?bU8wZ0hjWWd6TlZxNGdCSEFDMm1CU2pxL2QvbHU4cWh1dlpOZW5YNjJBTitH?= =?utf-8?B?cXBKd0VJby9VcHk2c3g4cDdCNXk5TTBPQUNtSnFHMHNTeEFiS3lGK2J5UG9o?= =?utf-8?B?cWx6WXhzdWJuV213N2l4UWtYL1h6SjBQTDVGSGt4VVJ2cXNtaFlRK3B1NEYv?= =?utf-8?B?UHBRVFpVUkJKcmMvN0laM3NqRXhNTDZjSUQ3RkpoSHhtdk9nUTlWeTZNUC9Q?= =?utf-8?B?czhmb0RoYlN6T04yTWt0d0pDUnNNLzRMQVh2UmFDc1duNVJkR2RuaERwdUNX?= =?utf-8?B?dFB3ekQ5ZU4wM3M2OENQWVFMZGZoSzNrYm1kV1J1VWZTZ25HY0JSRTdRc1U3?= =?utf-8?B?Z2ZEV0RuekZnVVBNNmtpQUpXVXo1YTluOENmZE5vL0pmNGFqeVdPb3Brejhw?= =?utf-8?B?L1pEVWNkdmg5V1krMlVDQ1R6dnpTOHgxVGtQeFA1Z29CSEd5aUZwa3pwblhZ?= =?utf-8?B?TDM4Yngvbnpqc01nR21Fd0ErM0RYRDdJM2QwcG9yVUl1aitWMHIxRTJTUHN3?= =?utf-8?B?Y0VrMXRHaHJ4cU9sQkdUUTljR0tQcWxjbW5YVXo5RjFUaklQU1BuTnVJNGpn?= =?utf-8?B?Z3NlK3lsY0t6T1RUYWpPV2dPLzc3cEhKVGkySzRBR3JBUVRNdzluQWdSZFBR?= =?utf-8?B?QTQ4Y3U5YWcvN21yb25NWE9qTVRYa29PZndOWGYrYUFCeEtVblJrcWFuUDI5?= =?utf-8?B?cHdrMmdZWWNDN1FxeGhIeHlrcFFtRGxaRWF3TEJVc0JxL3d0M0gxUHhZSmdu?= =?utf-8?Q?ME+jQ4wWEpq3CUHVs/gWfgLqTYaHNdWdNwzCjiGGelw4=3D?= Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: sct-15-20-4755-11-msonline-outlook-73ede.templateTenant X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: PH0PR06MB7817.namprd06.prod.outlook.com X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-CrossTenant-Network-Message-Id: 86a2228a-618e-405a-eabd-08dbead5a7ec X-MS-Exchange-CrossTenant-rms-persistedconsumerorg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Nov 2023 21:05:56.8994 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR06MB7872 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Add support for Fibocom L716-EU module series. L716-EU is a Fibocom module based on ZTE's V3E/V3T chipset. Device creates multiple interfaces when connected to PC as follows: - Network Interface: ECM or RNDIS (set by FW or AT Command) - ttyUSB0: AT port - ttyUSB1: Modem port - ttyUSB2: AT2 port - ttyUSB3: Trace port for log information - ADB: ADB port for debugging. ("Driver=3Dusbfs" when ADB server enabled) Here are the outputs of lsusb and usb-devices: $ ls /dev/ttyUSB* /dev/ttyUSB0 /dev/ttyUSB1 /dev/ttyUSB2 /dev/ttyUSB3 usb-devices: L716-EU (ECM mode): T: Bus=3D03 Lev=3D01 Prnt=3D01 Port=3D01 Cnt=3D01 Dev#=3D 51 Spd=3D480 Mx= Ch=3D 0 D: Ver=3D 2.00 Cls=3D00(>ifc ) Sub=3D00 Prot=3D00 MxPS=3D64 #Cfgs=3D 1 P: Vendor=3D2cb7 ProdID=3D0001 Rev=3D 1.00 S: Manufacturer=3DFibocom,Incorporated S: Product=3DFibocom Mobile Boardband S: SerialNumber=3D1234567890ABCDEF C:* #Ifs=3D 7 Cfg#=3D 1 Atr=3De0 MxPwr=3D500mA A: FirstIf#=3D 0 IfCount=3D 2 Cls=3D02(comm.) Sub=3D06 Prot=3D00 I:* If#=3D 0 Alt=3D 0 #EPs=3D 1 Cls=3D02(comm.) Sub=3D06 Prot=3D00 Driver= =3Dcdc_ether E: Ad=3D87(I) Atr=3D03(Int.) MxPS=3D 16 Ivl=3D32ms I: If#=3D 1 Alt=3D 0 #EPs=3D 0 Cls=3D0a(data ) Sub=3D00 Prot=3D00 Driver= =3Dcdc_ether I:* If#=3D 1 Alt=3D 1 #EPs=3D 2 Cls=3D0a(data ) Sub=3D00 Prot=3D00 Driver= =3Dcdc_ether E: Ad=3D81(I) Atr=3D02(Bulk) MxPS=3D 512 Ivl=3D0ms E: Ad=3D01(O) Atr=3D02(Bulk) MxPS=3D 512 Ivl=3D0ms I:* If#=3D 2 Alt=3D 0 #EPs=3D 2 Cls=3Dff(vend.) Sub=3Dff Prot=3Dff Driver= =3Doption E: Ad=3D82(I) Atr=3D02(Bulk) MxPS=3D 512 Ivl=3D0ms E: Ad=3D02(O) Atr=3D02(Bulk) MxPS=3D 512 Ivl=3D0ms I:* If#=3D 3 Alt=3D 0 #EPs=3D 2 Cls=3Dff(vend.) Sub=3Dff Prot=3Dff Driver= =3Doption E: Ad=3D83(I) Atr=3D02(Bulk) MxPS=3D 512 Ivl=3D0ms E: Ad=3D03(O) Atr=3D02(Bulk) MxPS=3D 512 Ivl=3D0ms I:* If#=3D 4 Alt=3D 0 #EPs=3D 2 Cls=3Dff(vend.) Sub=3Dff Prot=3Dff Driver= =3Doption E: Ad=3D84(I) Atr=3D02(Bulk) MxPS=3D 512 Ivl=3D0ms E: Ad=3D04(O) Atr=3D02(Bulk) MxPS=3D 512 Ivl=3D0ms I:* If#=3D 5 Alt=3D 0 #EPs=3D 2 Cls=3Dff(vend.) Sub=3Dff Prot=3Dff Driver= =3Doption E: Ad=3D85(I) Atr=3D02(Bulk) MxPS=3D 512 Ivl=3D0ms E: Ad=3D05(O) Atr=3D02(Bulk) MxPS=3D 512 Ivl=3D0ms I:* If#=3D 6 Alt=3D 0 #EPs=3D 2 Cls=3Dff(vend.) Sub=3D42 Prot=3D01 Driver= =3Dusbfs E: Ad=3D86(I) Atr=3D02(Bulk) MxPS=3D 512 Ivl=3D0ms E: Ad=3D06(O) Atr=3D02(Bulk) MxPS=3D 512 Ivl=3D0ms L716-EU (RNDIS mode): T: Bus=3D03 Lev=3D01 Prnt=3D01 Port=3D01 Cnt=3D01 Dev#=3D 49 Spd=3D480 Mx= Ch=3D 0 D: Ver=3D 2.00 Cls=3D00(>ifc ) Sub=3D00 Prot=3D00 MxPS=3D64 #Cfgs=3D 1 P: Vendor=3D2cb7 ProdID=3D0001 Rev=3D 1.00 S: Manufacturer=3DFibocom,Incorporated S: Product=3DFibocom Mobile Boardband S: SerialNumber=3D1234567890ABCDEF C:* #Ifs=3D 7 Cfg#=3D 1 Atr=3De0 MxPwr=3D500mA A: FirstIf#=3D 0 IfCount=3D 2 Cls=3De0(wlcon) Sub=3D01 Prot=3D03 I:* If#=3D 0 Alt=3D 0 #EPs=3D 1 Cls=3D02(comm.) Sub=3D02 Prot=3Dff Driver= =3Drndis_host E: Ad=3D87(I) Atr=3D03(Int.) MxPS=3D 8 Ivl=3D32ms I:* If#=3D 1 Alt=3D 0 #EPs=3D 2 Cls=3D0a(data ) Sub=3D00 Prot=3D00 Driver= =3Drndis_host E: Ad=3D81(I) Atr=3D02(Bulk) MxPS=3D 512 Ivl=3D0ms E: Ad=3D01(O) Atr=3D02(Bulk) MxPS=3D 512 Ivl=3D0ms I:* If#=3D 2 Alt=3D 0 #EPs=3D 2 Cls=3Dff(vend.) Sub=3Dff Prot=3Dff Driver= =3Doption E: Ad=3D82(I) Atr=3D02(Bulk) MxPS=3D 512 Ivl=3D0ms E: Ad=3D02(O) Atr=3D02(Bulk) MxPS=3D 512 Ivl=3D0ms I:* If#=3D 3 Alt=3D 0 #EPs=3D 2 Cls=3Dff(vend.) Sub=3Dff Prot=3Dff Driver= =3Doption E: Ad=3D83(I) Atr=3D02(Bulk) MxPS=3D 512 Ivl=3D0ms E: Ad=3D03(O) Atr=3D02(Bulk) MxPS=3D 512 Ivl=3D0ms I:* If#=3D 4 Alt=3D 0 #EPs=3D 2 Cls=3Dff(vend.) Sub=3Dff Prot=3Dff Driver= =3Doption E: Ad=3D84(I) Atr=3D02(Bulk) MxPS=3D 512 Ivl=3D0ms E: Ad=3D04(O) Atr=3D02(Bulk) MxPS=3D 512 Ivl=3D0ms I:* If#=3D 5 Alt=3D 0 #EPs=3D 2 Cls=3Dff(vend.) Sub=3Dff Prot=3Dff Driver= =3Doption E: Ad=3D85(I) Atr=3D02(Bulk) MxPS=3D 512 Ivl=3D0ms E: Ad=3D05(O) Atr=3D02(Bulk) MxPS=3D 512 Ivl=3D0ms I:* If#=3D 6 Alt=3D 0 #EPs=3D 2 Cls=3Dff(vend.) Sub=3D42 Prot=3D01 Driver= =3Dusbfs E: Ad=3D86(I) Atr=3D02(Bulk) MxPS=3D 512 Ivl=3D0ms E: Ad=3D06(O) Atr=3D02(Bulk) MxPS=3D 512 Ivl=3D0ms Signed-off-by: Victor Fragoso Reviewed-by: Lars Melin --- Changes since v1: - Removed non-essential VID/PID to work with L716-EU tested module. - Added device entry comment according to tested module/modes. - Added according to VID/PID order - Commit message improved with more information about module ports. --- drivers/usb/serial/option.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/usb/serial/option.c b/drivers/usb/serial/option.c index 45dcfaadaf98..f46df561cc7c 100644 --- a/drivers/usb/serial/option.c +++ b/drivers/usb/serial/option.c @@ -2249,6 +2249,7 @@ static const struct usb_device_id option_ids[] =3D { .driver_info =3D RSVD(4) | RSVD(5) | RSVD(6) }, { USB_DEVICE(0x1782, 0x4d10) }, /* Fibocom L610 (AT mode) */ { USB_DEVICE_INTERFACE_CLASS(0x1782, 0x4d11, 0xff) }, /* Fibocom L610 (= ECM/RNDIS mode) */ + { USB_DEVICE_AND_INTERFACE_INFO(0x2cb7, 0x0001, 0xff, 0xff, 0xff) }, /* F= ibocom L716-EU (ECM/RNDIS mode) */ { USB_DEVICE(0x2cb7, 0x0104), /* Fibocom NL678 series */ .driver_info =3D RSVD(4) | RSVD(5) }, { USB_DEVICE_INTERFACE_CLASS(0x2cb7, 0x0105, 0xff), /* Fibocom NL678 se= ries */ --=20 2.34.1