# Software specifications
Source: [https://docs.qualcomm.com/doc/80-88500-4/topic/109_Software_specifications.html](https://docs.qualcomm.com/doc/80-88500-4/topic/109_Software_specifications.html)
The USB software uses Linux kernel 5.4. The kernel should be configured to enable USB support and drive the USB connection on the device.
The following are the software features:
- MTP function over FunctionFS (FFS)
- New HS-PHY SNPS driver
- New HS-PHY driver for the new PHY being used
Table : USB features
| Feature | Supported | Comments |
| --- | --- | --- |
| Peripheral ADB | Yes | ADB functionality is integrated over FFS |
| Peripheral mass storage | Yes | – |
| Peripheral diag | Yes | – |
| Peripheral DUN | Yes | – |
| Peripheral QMI RmNet | Yes | – |
| Peripheral RNDIS | Yes | – |
| Peripheral ECM | No | Not officially supported but can be enabled (throughput results may differ) |
| Peripheral MBIM | No | – |
| Peripheral NCM | Yes | Only functional testing is done on the NCM interface |
| Peripheral MTP | Yes |
- MTP functionality is integrated over FFS
- USB endpoints, descriptors, and IO are all executed from the MTP user space process
- The user space application supports asynchronous IO (AIO)
|
| Peripheral digital audio | No | – |
| Peripheral HSIC | No | – |
| QDSS | Yes | – |
| Host USB 3.0 driver (xHCI) | Yes | Both USB controllers support the xHCI architecture |
| USB attached SCSI protocol | No | UASP is not supported in any platform |
| Host HS USB | Yes | – |
| Host HSIC | No | – |
| Host HID/MS/Hub driver | Yes | – |
| Host digital audio driver | Yes | Implements low power USB audio path, as well as support for auto-suspend |
| Host video driver | Yes | Verified on limited webcam models |
| Host HSIC link power management | No | – |
| Peripheral USB link power management | Yes | – |
| Accessory charger adapter (ACA) | No | Discontinued due to low market adaption |
| USB host PC charging (SDP) | Yes | BC 1.2 charger detection |
| USB wall charging (DCP) | Yes | BC 1.2 charger detection |
| OTG | No | Dual-role device support is possible (Host/Device mode support); no support for SRP/HNP |
| Qualcomm® Quick Charge™ Technology 2.0/3.0/4.0 | Yes | Depends on if PM8150B is used |
| USB Type-C | Yes | Supports current charging, CC logic, and SS-USB switch selection |
| USB Type-C Analog Audio | No | – |
| USB PD2.0/3.0 charging | Yes | PD support is based on whether the PM8150B solution is used. This feature highlights only the PD 3.0 charging part of the PD specification; not fully compliant with the USB Power Delivery 3.0 Specification – implements certain features, such as PPS and PD 3.0 sink only mode. |
| USB Type-C display port | Yes | Supports SS-USB + DP operating concurrently (2 DP lanes) |
| USB proprietary charger detection | Yes | Supported by PM8150B |
| USB floated charger detection | Yes | Supported by PM8150B |
| USB3.1 Gen2 | Yes | Both USB controllers are USB 3.1 Gen2 capable (10 Gbps) |
## USB use cases
The following are examples of USB use cases:
- Software loading:
- Emergency download (PBL) (QFIL)
- UEFI (fastboot)
- Debugging tools:
- RAM dump collection (XBL)
- ADB and diag
- Device storage – Media transfer protocol (MTP), picture transfer protocol (PTP), and mass storage
- Device tethering – Remote network driver interface specification (RNDIS) and remote wireless wide area network (RmNet)
- Host mode – Detection of hubs, HIDs, mass storage devices, and so on.
- USB charging
## USB configurations
Table : USB kernel configurations (mandatory)
| Configuration | Enabled | Comments |
| --- | --- | --- |
| CONFIG\_USB | Yes | Main USB kernel configuration |
| CONFIG\_USB\_PHY | Yes | Enables the USB PHY framework; required if using separate PHY drivers |
| CONFIG\_USB\_MSM\_SSPHY\_QMP | Yes | Enables the SS-USB QMP PHY driver |
| CONFIG\_MSM\_HSUSB\_PHY | Yes | – |
| CONFIG\_USB\_DWC3\_MSM | Yes | Enables the DWC3 controller driver |
| CONFIG\_USB\_LIBCOMPOSITE | Yes | Enables ConfigFS support |
| CONFIG\_USB\_GADGET | Yes | Enables USB gadget support; required for CONFIG\_USB\_LIBCOMPOSITE |
| CONFIG\_USB\_XHCI\_HCD | Yes | Enables the XHCI host stack |
Table : USB kernel configurations (optional)
| Configuration | Enabled | Comments |
| --- | --- | --- |
| CONFIG\_USB\_GADGET\_DEBUG\_FILES | Yes | Enables added debug files in the USB device controller (UDC) layer |
| CONFIG\_USB\_GADGET\_DEBUG\_FS | Yes | Enables debug files when debugfs is mounted |
Table : USB PD configurations
| Configuration | Enabled | Comments |
| --- | --- | --- |
| CONFIG\_USB\_PD\_POLICY | Yes | Enables the PD policy engine |
| CONFIG\_QPNP\_USB\_PDPHY | Yes | Enables the qpnp-pdphy driver to interact with the policy engine |
Table : USB Type-C configurations
| Configuration | Enabled | Comments |
| --- | --- | --- |
| CONFIG\_QPNP\_SMB5 | Yes | Enables the PMIC driver to handle USB Type-C events |
**Parent Topic:** [USB](https://docs.qualcomm.com/doc/80-88500-4/topic/106_USB.html)
Last Published: Aug 18, 2023
[Previous Topic
USB power management](https://docs.qualcomm.com/bundle/publicresource/80-88500-4/topics/111_USB_power_management.md) [Next Topic
USB composition](https://docs.qualcomm.com/bundle/publicresource/80-88500-4/topics/110_USB_composition.md)