# 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 | | | 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)