# 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 | <ul class="ul"><br>                  <li class="li">MTP functionality is integrated over FFS</li><br><br>                  <li class="li">USB endpoints, descriptors, and IO are all executed from the MTP user space process</li><br><br>                  <li class="li">The user space application supports asynchronous IO (AIO)</li><br><br>                </ul> |
| 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)