Message ID | 20201004095703.2633-1-lb.workbox@gmail.com |
---|---|
State | New |
Headers | show |
Series | USB: serial: option: Add Telit FT980-KS composition | expand |
On 10/4/2020 16:57, Leonid Bloch wrote: > This commit adds the following Telit FT980-KS composition: > > 0x1054: rndis, diag, adb, nmea, modem, modem, aux > > AT commands can be sent to /dev/ttyUSB5. > Please submit a verbose lsusb listing for the device, I can't imagine that the adb interface should be handled by the option serial driver so there will never be a ttyUSB5. thanks Lars
On 10/4/20 1:58 PM, Lars Melin wrote: > On 10/4/2020 16:57, Leonid Bloch wrote: >> This commit adds the following Telit FT980-KS composition: >> >> 0x1054: rndis, diag, adb, nmea, modem, modem, aux >> >> AT commands can be sent to /dev/ttyUSB5. >> > > Please submit a verbose lsusb listing for the device, I can't imagine > that the adb interface should be handled by the option serial driver so > there will never be a ttyUSB5. Please see below. Thanks, Leonid. ``` Bus 001 Device 005: ID 1bc7:1054 Telit Wireless Solutions Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 2.10 bDeviceClass 0 bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 64 idVendor 0x1bc7 Telit Wireless Solutions idProduct 0x1054 bcdDevice 4.14 iManufacturer 1 Telit Wireless Solutions iProduct 2 FT980-KS iSerial 3 cb42f61 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 0x013d bNumInterfaces 8 bConfigurationValue 1 iConfiguration 4 RNDIS_DIAG_ADB_NMEA_DUN_DUN_SER bmAttributes 0xa0 (Bus Powered) Remote Wakeup MaxPower 500mA Interface Association: bLength 8 bDescriptorType 11 bFirstInterface 0 bInterfaceCount 2 bFunctionClass 239 Miscellaneous Device bFunctionSubClass 4 bFunctionProtocol 1 iFunction 7 RNDIS Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 1 bInterfaceClass 239 Miscellaneous Device bInterfaceSubClass 4 bInterfaceProtocol 1 iInterface 5 RNDIS Communications Control ** UNRECOGNIZED: 05 24 00 10 01 ** UNRECOGNIZED: 05 24 01 00 01 ** UNRECOGNIZED: 04 24 02 00 ** UNRECOGNIZED: 05 24 06 00 01 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0008 1x 8 bytes bInterval 9 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 1 bAlternateSetting 0 bNumEndpoints 2 bInterfaceClass 10 CDC Data bInterfaceSubClass 0 bInterfaceProtocol 0 iInterface 6 RNDIS Ethernet Data Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x8e EP 14 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x0f EP 15 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 0 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 2 bAlternateSetting 0 bNumEndpoints 2 bInterfaceClass 255 Vendor Specific Class bInterfaceSubClass 255 Vendor Specific Subclass bInterfaceProtocol 48 iInterface 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x82 EP 2 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x01 EP 1 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 0 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 3 bAlternateSetting 0 bNumEndpoints 2 bInterfaceClass 255 Vendor Specific Class bInterfaceSubClass 66 bInterfaceProtocol 1 iInterface 8 ADB Interface Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x02 EP 2 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x83 EP 3 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 0 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 4 bAlternateSetting 0 bNumEndpoints 3 bInterfaceClass 255 Vendor Specific Class bInterfaceSubClass 0 bInterfaceProtocol 0 iInterface 0 ** UNRECOGNIZED: 05 24 00 10 01 ** UNRECOGNIZED: 05 24 01 00 00 ** UNRECOGNIZED: 04 24 02 02 ** UNRECOGNIZED: 05 24 06 00 00 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x85 EP 5 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x000a 1x 10 bytes bInterval 9 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x84 EP 4 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x03 EP 3 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 0 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 5 bAlternateSetting 0 bNumEndpoints 3 bInterfaceClass 255 Vendor Specific Class bInterfaceSubClass 0 bInterfaceProtocol 0 iInterface 0 ** UNRECOGNIZED: 05 24 00 10 01 ** UNRECOGNIZED: 05 24 01 00 00 ** UNRECOGNIZED: 04 24 02 02 ** UNRECOGNIZED: 05 24 06 00 00 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x87 EP 7 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x000a 1x 10 bytes bInterval 9 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x86 EP 6 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x04 EP 4 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 0 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 6 bAlternateSetting 0 bNumEndpoints 3 bInterfaceClass 255 Vendor Specific Class bInterfaceSubClass 0 bInterfaceProtocol 0 iInterface 0 ** UNRECOGNIZED: 05 24 00 10 01 ** UNRECOGNIZED: 05 24 01 00 00 ** UNRECOGNIZED: 04 24 02 02 ** UNRECOGNIZED: 05 24 06 00 00 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x89 EP 9 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x000a 1x 10 bytes bInterval 9 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x88 EP 8 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x05 EP 5 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 0 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 7 bAlternateSetting 0 bNumEndpoints 3 bInterfaceClass 255 Vendor Specific Class bInterfaceSubClass 0 bInterfaceProtocol 0 iInterface 0 ** UNRECOGNIZED: 05 24 00 10 01 ** UNRECOGNIZED: 05 24 01 00 00 ** UNRECOGNIZED: 04 24 02 02 ** UNRECOGNIZED: 05 24 06 00 00 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x8b EP 11 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x000a 1x 10 bytes bInterval 9 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x8a EP 10 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x06 EP 6 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 0 Binary Object Store Descriptor: bLength 5 bDescriptorType 15 wTotalLength 0x002a bNumDeviceCaps 3 USB 2.0 Extension Device Capability: bLength 7 bDescriptorType 16 bDevCapabilityType 2 bmAttributes 0x00000006 BESL Link Power Management (LPM) Supported SuperSpeed USB Device Capability: bLength 10 bDescriptorType 16 bDevCapabilityType 3 bmAttributes 0x00 wSpeedsSupported 0x000f Device can operate at Low Speed (1Mbps) Device can operate at Full Speed (12Mbps) Device can operate at High Speed (480Mbps) Device can operate at SuperSpeed (5Gbps) bFunctionalitySupport 1 Lowest fully-functional device speed is Full Speed (12Mbps) bU1DevExitLat 1 micro seconds bU2DevExitLat 500 micro seconds SuperSpeedPlus USB Device Capability: bLength 20 bDescriptorType 16 bDevCapabilityType 10 bmAttributes 0x00000001 Sublink Speed Attribute count 1 Sublink Speed ID count 0 wFunctionalitySupport 0x1100 bmSublinkSpeedAttr[0] 0x000a4030 Speed Attribute ID: 0 10Gb/s Symmetric RX SuperSpeedPlus bmSublinkSpeedAttr[1] 0x000a40b0 Speed Attribute ID: 0 10Gb/s Symmetric TX SuperSpeedPlus Device Status: 0x0000 (Bus Powered) ``` > > > thanks > Lars >
On 10/4/2020 20:29, Leonid Bloch wrote: > On 10/4/20 1:58 PM, Lars Melin wrote: >> On 10/4/2020 16:57, Leonid Bloch wrote: >>> This commit adds the following Telit FT980-KS composition: >>> >>> 0x1054: rndis, diag, adb, nmea, modem, modem, aux >>> >>> AT commands can be sent to /dev/ttyUSB5. >>> >> >> Please submit a verbose lsusb listing for the device, I can't imagine >> that the adb interface should be handled by the option serial driver so >> there will never be a ttyUSB5. > > Please see below. > > Thanks, > Leonid. > > ``` > Bus 001 Device 005: ID 1bc7:1054 Telit Wireless Solutions > Device Descriptor: > bLength 18 > bDescriptorType 1 > bcdUSB 2.10 > bDeviceClass 0 > bDeviceSubClass 0 > bDeviceProtocol 0 > bMaxPacketSize0 64 > idVendor 0x1bc7 Telit Wireless Solutions > idProduct 0x1054 > bcdDevice 4.14 > iManufacturer 1 Telit Wireless Solutions > iProduct 2 FT980-KS > iSerial 3 cb42f61 > bNumConfigurations 1 > Configuration Descriptor: > bLength 9 > bDescriptorType 2 > wTotalLength 0x013d > bNumInterfaces 8 > bConfigurationValue 1 > iConfiguration 4 RNDIS_DIAG_ADB_NMEA_DUN_DUN_SER > bmAttributes 0xa0 > (Bus Powered) > Remote Wakeup > MaxPower 500mA > Interface Association: > bLength 8 > bDescriptorType 11 > bFirstInterface 0 > bInterfaceCount 2 > bFunctionClass 239 Miscellaneous Device > bFunctionSubClass 4 > bFunctionProtocol 1 > iFunction 7 RNDIS > Interface Descriptor: > bLength 9 > bDescriptorType 4 > bInterfaceNumber 0 > bAlternateSetting 0 > bNumEndpoints 1 > bInterfaceClass 239 Miscellaneous Device > bInterfaceSubClass 4 > bInterfaceProtocol 1 > iInterface 5 RNDIS Communications Control > ** UNRECOGNIZED: 05 24 00 10 01 > ** UNRECOGNIZED: 05 24 01 00 01 > ** UNRECOGNIZED: 04 24 02 00 > ** UNRECOGNIZED: 05 24 06 00 01 > Endpoint Descriptor: > bLength 7 > bDescriptorType 5 > bEndpointAddress 0x81 EP 1 IN > bmAttributes 3 > Transfer Type Interrupt > Synch Type None > Usage Type Data > wMaxPacketSize 0x0008 1x 8 bytes > bInterval 9 > Interface Descriptor: > bLength 9 > bDescriptorType 4 > bInterfaceNumber 1 > bAlternateSetting 0 > bNumEndpoints 2 > bInterfaceClass 10 CDC Data > bInterfaceSubClass 0 > bInterfaceProtocol 0 > iInterface 6 RNDIS Ethernet Data > Endpoint Descriptor: > bLength 7 > bDescriptorType 5 > bEndpointAddress 0x8e EP 14 IN > bmAttributes 2 > Transfer Type Bulk > Synch Type None > Usage Type Data > wMaxPacketSize 0x0200 1x 512 bytes > bInterval 0 > Endpoint Descriptor: > bLength 7 > bDescriptorType 5 > bEndpointAddress 0x0f EP 15 OUT > bmAttributes 2 > Transfer Type Bulk > Synch Type None > Usage Type Data > wMaxPacketSize 0x0200 1x 512 bytes > bInterval 0 > Interface Descriptor: > bLength 9 > bDescriptorType 4 > bInterfaceNumber 2 > bAlternateSetting 0 > bNumEndpoints 2 > bInterfaceClass 255 Vendor Specific Class > bInterfaceSubClass 255 Vendor Specific Subclass > bInterfaceProtocol 48 > iInterface 0 > Endpoint Descriptor: > bLength 7 > bDescriptorType 5 > bEndpointAddress 0x82 EP 2 IN > bmAttributes 2 > Transfer Type Bulk > Synch Type None > Usage Type Data > wMaxPacketSize 0x0200 1x 512 bytes > bInterval 0 > Endpoint Descriptor: > bLength 7 > bDescriptorType 5 > bEndpointAddress 0x01 EP 1 OUT > bmAttributes 2 > Transfer Type Bulk > Synch Type None > Usage Type Data > wMaxPacketSize 0x0200 1x 512 bytes > bInterval 0 > Interface Descriptor: > bLength 9 > bDescriptorType 4 > bInterfaceNumber 3 > bAlternateSetting 0 > bNumEndpoints 2 > bInterfaceClass 255 Vendor Specific Class > bInterfaceSubClass 66 > bInterfaceProtocol 1 > iInterface 8 ADB Interface > Endpoint Descriptor: > bLength 7 > bDescriptorType 5 > bEndpointAddress 0x02 EP 2 OUT > bmAttributes 2 > Transfer Type Bulk > Synch Type None > Usage Type Data > wMaxPacketSize 0x0200 1x 512 bytes > bInterval 0 > Endpoint Descriptor: > bLength 7 > bDescriptorType 5 > bEndpointAddress 0x83 EP 3 IN > bmAttributes 2 > Transfer Type Bulk > Synch Type None > Usage Type Data > wMaxPacketSize 0x0200 1x 512 bytes > bInterval 0 //snip Interface #3 for ADB must be blacklisted in the option entry for the device, by using .driver_info = RSVD(3) thanks Lars
On 10/4/2020 21:16, Lars Melin wrote: > On 10/4/2020 20:29, Leonid Bloch wrote: >> On 10/4/20 1:58 PM, Lars Melin wrote: >>> On 10/4/2020 16:57, Leonid Bloch wrote: >>>> This commit adds the following Telit FT980-KS composition: >>>> >>>> 0x1054: rndis, diag, adb, nmea, modem, modem, aux >>>> >>>> AT commands can be sent to /dev/ttyUSB5. >>>> >>> >>> Please submit a verbose lsusb listing for the device, I can't imagine >>> that the adb interface should be handled by the option serial driver so >>> there will never be a ttyUSB5. >> >> Please see below. >> >> Thanks, >> Leonid. >> >> ``` >> Bus 001 Device 005: ID 1bc7:1054 Telit Wireless Solutions >> Device Descriptor: >> bLength 18 >> bDescriptorType 1 >> bcdUSB 2.10 >> bDeviceClass 0 >> bDeviceSubClass 0 >> bDeviceProtocol 0 >> bMaxPacketSize0 64 >> idVendor 0x1bc7 Telit Wireless Solutions >> idProduct 0x1054 >> bcdDevice 4.14 >> iManufacturer 1 Telit Wireless Solutions >> iProduct 2 FT980-KS >> iSerial 3 cb42f61 >> bNumConfigurations 1 >> Configuration Descriptor: >> bLength 9 >> bDescriptorType 2 >> wTotalLength 0x013d >> bNumInterfaces 8 >> bConfigurationValue 1 >> iConfiguration 4 RNDIS_DIAG_ADB_NMEA_DUN_DUN_SER >> bmAttributes 0xa0 >> (Bus Powered) >> Remote Wakeup >> MaxPower 500mA >> Interface Association: >> bLength 8 >> bDescriptorType 11 >> bFirstInterface 0 >> bInterfaceCount 2 >> bFunctionClass 239 Miscellaneous Device >> bFunctionSubClass 4 >> bFunctionProtocol 1 >> iFunction 7 RNDIS >> Interface Descriptor: >> bLength 9 >> bDescriptorType 4 >> bInterfaceNumber 0 >> bAlternateSetting 0 >> bNumEndpoints 1 >> bInterfaceClass 239 Miscellaneous Device >> bInterfaceSubClass 4 >> bInterfaceProtocol 1 >> iInterface 5 RNDIS Communications Control >> ** UNRECOGNIZED: 05 24 00 10 01 >> ** UNRECOGNIZED: 05 24 01 00 01 >> ** UNRECOGNIZED: 04 24 02 00 >> ** UNRECOGNIZED: 05 24 06 00 01 >> Endpoint Descriptor: >> bLength 7 >> bDescriptorType 5 >> bEndpointAddress 0x81 EP 1 IN >> bmAttributes 3 >> Transfer Type Interrupt >> Synch Type None >> Usage Type Data >> wMaxPacketSize 0x0008 1x 8 bytes >> bInterval 9 >> Interface Descriptor: >> bLength 9 >> bDescriptorType 4 >> bInterfaceNumber 1 >> bAlternateSetting 0 >> bNumEndpoints 2 >> bInterfaceClass 10 CDC Data >> bInterfaceSubClass 0 >> bInterfaceProtocol 0 >> iInterface 6 RNDIS Ethernet Data >> Endpoint Descriptor: >> bLength 7 >> bDescriptorType 5 >> bEndpointAddress 0x8e EP 14 IN >> bmAttributes 2 >> Transfer Type Bulk >> Synch Type None >> Usage Type Data >> wMaxPacketSize 0x0200 1x 512 bytes >> bInterval 0 >> Endpoint Descriptor: >> bLength 7 >> bDescriptorType 5 >> bEndpointAddress 0x0f EP 15 OUT >> bmAttributes 2 >> Transfer Type Bulk >> Synch Type None >> Usage Type Data >> wMaxPacketSize 0x0200 1x 512 bytes >> bInterval 0 >> Interface Descriptor: >> bLength 9 >> bDescriptorType 4 >> bInterfaceNumber 2 >> bAlternateSetting 0 >> bNumEndpoints 2 >> bInterfaceClass 255 Vendor Specific Class >> bInterfaceSubClass 255 Vendor Specific Subclass >> bInterfaceProtocol 48 >> iInterface 0 >> Endpoint Descriptor: >> bLength 7 >> bDescriptorType 5 >> bEndpointAddress 0x82 EP 2 IN >> bmAttributes 2 >> Transfer Type Bulk >> Synch Type None >> Usage Type Data >> wMaxPacketSize 0x0200 1x 512 bytes >> bInterval 0 >> Endpoint Descriptor: >> bLength 7 >> bDescriptorType 5 >> bEndpointAddress 0x01 EP 1 OUT >> bmAttributes 2 >> Transfer Type Bulk >> Synch Type None >> Usage Type Data >> wMaxPacketSize 0x0200 1x 512 bytes >> bInterval 0 >> Interface Descriptor: >> bLength 9 >> bDescriptorType 4 >> bInterfaceNumber 3 >> bAlternateSetting 0 >> bNumEndpoints 2 >> bInterfaceClass 255 Vendor Specific Class >> bInterfaceSubClass 66 >> bInterfaceProtocol 1 >> iInterface 8 ADB Interface >> Endpoint Descriptor: >> bLength 7 >> bDescriptorType 5 >> bEndpointAddress 0x02 EP 2 OUT >> bmAttributes 2 >> Transfer Type Bulk >> Synch Type None >> Usage Type Data >> wMaxPacketSize 0x0200 1x 512 bytes >> bInterval 0 >> Endpoint Descriptor: >> bLength 7 >> bDescriptorType 5 >> bEndpointAddress 0x83 EP 3 IN >> bmAttributes 2 >> Transfer Type Bulk >> Synch Type None >> Usage Type Data >> wMaxPacketSize 0x0200 1x 512 bytes >> bInterval 0 > > //snip > > Interface #3 for ADB must be blacklisted in the option entry for the > device, by using .driver_info = RSVD(3) > When looking at the entries for other Telit deices in the option driver I see that their diag interface always has the NCTRL flag so it is likely that you need that for this device also. See the entry for PID 1052 thanks Lars
Lars, Thank you for your review! The changes which you have suggested also made ModemManager to recognize the device (which it didn't do before). Please check out the v2. Cheers, Leonid. ___ On 10/4/20 5:32 PM, Lars Melin wrote: > On 10/4/2020 21:16, Lars Melin wrote: >> On 10/4/2020 20:29, Leonid Bloch wrote: >>> On 10/4/20 1:58 PM, Lars Melin wrote: >>>> On 10/4/2020 16:57, Leonid Bloch wrote: >>>>> This commit adds the following Telit FT980-KS composition: >>>>> >>>>> 0x1054: rndis, diag, adb, nmea, modem, modem, aux >>>>> >>>>> AT commands can be sent to /dev/ttyUSB5. >>>>> >>>> >>>> Please submit a verbose lsusb listing for the device, I can't imagine >>>> that the adb interface should be handled by the option serial driver so >>>> there will never be a ttyUSB5. >>> >>> Please see below. >>> >>> Thanks, >>> Leonid. >>> >>> ``` >>> Bus 001 Device 005: ID 1bc7:1054 Telit Wireless Solutions >>> Device Descriptor: >>> bLength 18 >>> bDescriptorType 1 >>> bcdUSB 2.10 >>> bDeviceClass 0 >>> bDeviceSubClass 0 >>> bDeviceProtocol 0 >>> bMaxPacketSize0 64 >>> idVendor 0x1bc7 Telit Wireless Solutions >>> idProduct 0x1054 >>> bcdDevice 4.14 >>> iManufacturer 1 Telit Wireless Solutions >>> iProduct 2 FT980-KS >>> iSerial 3 cb42f61 >>> bNumConfigurations 1 >>> Configuration Descriptor: >>> bLength 9 >>> bDescriptorType 2 >>> wTotalLength 0x013d >>> bNumInterfaces 8 >>> bConfigurationValue 1 >>> iConfiguration 4 RNDIS_DIAG_ADB_NMEA_DUN_DUN_SER >>> bmAttributes 0xa0 >>> (Bus Powered) >>> Remote Wakeup >>> MaxPower 500mA >>> Interface Association: >>> bLength 8 >>> bDescriptorType 11 >>> bFirstInterface 0 >>> bInterfaceCount 2 >>> bFunctionClass 239 Miscellaneous Device >>> bFunctionSubClass 4 >>> bFunctionProtocol 1 >>> iFunction 7 RNDIS >>> Interface Descriptor: >>> bLength 9 >>> bDescriptorType 4 >>> bInterfaceNumber 0 >>> bAlternateSetting 0 >>> bNumEndpoints 1 >>> bInterfaceClass 239 Miscellaneous Device >>> bInterfaceSubClass 4 >>> bInterfaceProtocol 1 >>> iInterface 5 RNDIS Communications Control >>> ** UNRECOGNIZED: 05 24 00 10 01 >>> ** UNRECOGNIZED: 05 24 01 00 01 >>> ** UNRECOGNIZED: 04 24 02 00 >>> ** UNRECOGNIZED: 05 24 06 00 01 >>> Endpoint Descriptor: >>> bLength 7 >>> bDescriptorType 5 >>> bEndpointAddress 0x81 EP 1 IN >>> bmAttributes 3 >>> Transfer Type Interrupt >>> Synch Type None >>> Usage Type Data >>> wMaxPacketSize 0x0008 1x 8 bytes >>> bInterval 9 >>> Interface Descriptor: >>> bLength 9 >>> bDescriptorType 4 >>> bInterfaceNumber 1 >>> bAlternateSetting 0 >>> bNumEndpoints 2 >>> bInterfaceClass 10 CDC Data >>> bInterfaceSubClass 0 >>> bInterfaceProtocol 0 >>> iInterface 6 RNDIS Ethernet Data >>> Endpoint Descriptor: >>> bLength 7 >>> bDescriptorType 5 >>> bEndpointAddress 0x8e EP 14 IN >>> bmAttributes 2 >>> Transfer Type Bulk >>> Synch Type None >>> Usage Type Data >>> wMaxPacketSize 0x0200 1x 512 bytes >>> bInterval 0 >>> Endpoint Descriptor: >>> bLength 7 >>> bDescriptorType 5 >>> bEndpointAddress 0x0f EP 15 OUT >>> bmAttributes 2 >>> Transfer Type Bulk >>> Synch Type None >>> Usage Type Data >>> wMaxPacketSize 0x0200 1x 512 bytes >>> bInterval 0 >>> Interface Descriptor: >>> bLength 9 >>> bDescriptorType 4 >>> bInterfaceNumber 2 >>> bAlternateSetting 0 >>> bNumEndpoints 2 >>> bInterfaceClass 255 Vendor Specific Class >>> bInterfaceSubClass 255 Vendor Specific Subclass >>> bInterfaceProtocol 48 >>> iInterface 0 >>> Endpoint Descriptor: >>> bLength 7 >>> bDescriptorType 5 >>> bEndpointAddress 0x82 EP 2 IN >>> bmAttributes 2 >>> Transfer Type Bulk >>> Synch Type None >>> Usage Type Data >>> wMaxPacketSize 0x0200 1x 512 bytes >>> bInterval 0 >>> Endpoint Descriptor: >>> bLength 7 >>> bDescriptorType 5 >>> bEndpointAddress 0x01 EP 1 OUT >>> bmAttributes 2 >>> Transfer Type Bulk >>> Synch Type None >>> Usage Type Data >>> wMaxPacketSize 0x0200 1x 512 bytes >>> bInterval 0 >>> Interface Descriptor: >>> bLength 9 >>> bDescriptorType 4 >>> bInterfaceNumber 3 >>> bAlternateSetting 0 >>> bNumEndpoints 2 >>> bInterfaceClass 255 Vendor Specific Class >>> bInterfaceSubClass 66 >>> bInterfaceProtocol 1 >>> iInterface 8 ADB Interface >>> Endpoint Descriptor: >>> bLength 7 >>> bDescriptorType 5 >>> bEndpointAddress 0x02 EP 2 OUT >>> bmAttributes 2 >>> Transfer Type Bulk >>> Synch Type None >>> Usage Type Data >>> wMaxPacketSize 0x0200 1x 512 bytes >>> bInterval 0 >>> Endpoint Descriptor: >>> bLength 7 >>> bDescriptorType 5 >>> bEndpointAddress 0x83 EP 3 IN >>> bmAttributes 2 >>> Transfer Type Bulk >>> Synch Type None >>> Usage Type Data >>> wMaxPacketSize 0x0200 1x 512 bytes >>> bInterval 0 >> >> //snip >> >> Interface #3 for ADB must be blacklisted in the option entry for the >> device, by using .driver_info = RSVD(3) >> > > > When looking at the entries for other Telit deices in the option driver > I see that their diag interface always has > the NCTRL flag so it is likely that you need that for this device also. > See the entry for PID 1052 > > > thanks > Lars >
On 10/4/2020 23:03, Leonid Bloch wrote: > Lars, > > > Thank you for your review! The changes which you have suggested also > made ModemManager to recognize the device (which it didn't do before). > Please check out the v2. > > > Cheers, > Leonid. The v2 looks good to me br Lars
diff --git a/drivers/usb/serial/option.c b/drivers/usb/serial/option.c index 0c6f160a214a..e7a98435ac29 100644 --- a/drivers/usb/serial/option.c +++ b/drivers/usb/serial/option.c @@ -301,6 +301,7 @@ static void option_instat_callback(struct urb *urb); #define TELIT_PRODUCT_LE920A4_1212 0x1212 #define TELIT_PRODUCT_LE920A4_1213 0x1213 #define TELIT_PRODUCT_LE920A4_1214 0x1214 +#define TELIT_PRODUCT_FT980_KS 0x1054 /* ZTE PRODUCTS */ #define ZTE_VENDOR_ID 0x19d2 @@ -1164,6 +1165,7 @@ static const struct usb_device_id option_ids[] = { { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_CC864_SINGLE) }, { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_DE910_DUAL) }, { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_UE910_V2) }, + { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_FT980_KS) }, { USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1031, 0xff), /* Telit LE910C1-EUX */ .driver_info = NCTRL(0) | RSVD(3) }, { USB_DEVICE_INTERFACE_CLASS(TELIT_VENDOR_ID, 0x1033, 0xff), /* Telit LE910C1-EUX (ECM) */
This commit adds the following Telit FT980-KS composition: 0x1054: rndis, diag, adb, nmea, modem, modem, aux AT commands can be sent to /dev/ttyUSB5. Signed-off-by: Leonid Bloch <lb.workbox@gmail.com> --- The full composition is not tested, and it is the default one according to Telit support. What is tested, is that this commit makes /dev/ttyUSB{1..7} appear upon connection of the FT980-KS, and allows sending AT commands to /dev/ttyUSB5. drivers/usb/serial/option.c | 2 ++ 1 file changed, 2 insertions(+)