Cypress Port Devices Driver



Corporate Headquarters. Cypress Semiconductor Corp. 198 Champion Court San Jose, CA 95134 USA Tel: +1-408-943-2600. Recommended Resolution. Reinstall the device driver manually. From Start, search for device manager and select Device Manager from the results. Right-click the device in the list. Select Uninstall from the menu that appears. After the device is uninstalled, choose Action on the menu bar. Select Scan for hardware changes to reinstall the driver. Note You may be prompted to provide the path.

-->

Windows versions

  • Windows 10 for desktop editions (Home, Pro, Enterprise, and Education)
  • Windows 10 Mobile

Common points of discussion for OEMs who want to build Windows systems with USB Type-C connectors.

USB Type-C connector features

Symmetric and reversible design

  • The connector is symmetric. The cable has a USB Type-C connector on each end allowing the host and function device to use USB Type-C connectors. Here is an image that compares the connectors:
  • The connector is designed to be reversible. Traditional connectors had to be connected the 'right-side-up'. With the reversible design, the connector can be flipped.

Supports all USB device speeds

The connector can support USB devices that are low-speed, full-speed, high-speed, SuperSpeed (including SS+).

Alternate modes

The connector can support alternate modes. The alternate mode feature allows non-USB protocols to run over the USB cable, while simultaneously preserving USB 2.0 and charging functionality. Currently, the most popular alternate modes are DisplayPort/DockPort and MHL.

DisplayPort / DockPort

This alternate mode allows the user to project audio/video to external DisplayPort displays over a USB connector.

MHL

The MHL alternate mode is allows the user to project video/audio to external displays that support MHL.

Billboard error messages

If a user connects a USB Type-C alternate mode device or adapter that is not supported by the attached PC or phone, the device or adapter can expose a Billboard device that contains information about the error condition to help the user troubleshoot issues.

Increased power limits

A system with USB Type-C connectors has higher power limits, it can support up to 5V, 3A, 15W.

In addition, the connector can optionally support the power delivery feature as defined by the USB Power Delivery OEM . If the connector supports power delivery, a USB Type-C system can be a power source provider or a consumer and support up to 100W.

Supports USB dual roles

Peripheral devices can connect to a mobile system with USB Type-C connectors, changing the traditional role of a mobile system from function to host. When the same system is connected to a PC, the system resumes the role of a function and PC becomes the host.

Operating system input into which alternate mode needs to be negotiated, such as DP 2-lane vs. DP 4-lane

No. The operating system (or any Microsoft-provided software component) plays no part in selecting an alternate mode. The decision is made by the driver for the connector, specifically the USB connector manager (UCM) client driver. The driver does so by communicating with the connector's firmware by using hardware interfaces.

Pre-OS charging with Type-C and PD

Enabling pre-OS charging is owned by the OEM. You can choose to not implement USB Power Delivery, and charge at USB Type-C power levels until you boot into the operating system.

Charging the phone when it is a USB host to enable docking scenarios like Continuum

Here are a few things to consider:

  • You must to implement USB Power Delivery, so that power and data roles can be swapped independently.

  • Your dock’s upstream port should be implemented as a Charging UFP, defined in the USB Type-C specification. For details, see section 4.8.4, version 1.1.

  • Your dock should request a DR_Swap if it resolved to a DFP, or a PR_Swap if it resolved to a UFP.

    The initial DFP is the power source, so you must change the data role. The initial UFP is the power sink, so you must change the power role. You can perform those operations in your implementation of these callback functions:

Windows 10 Mobile support of USB billboard devices

Yes, if you connect the phone to a device that supports a USB Billboard, as per the USB Device Class Definition for Billboard Devices specification, the user is notified. Your USB connector manager (UCM) client driver is not required to handle the notification. If your system does not recognize the alternate mode, do not enter the mode.

Support for USB Type-C on earlier versions of Windows

USB Type-C is not supported on versions of Windows prior to Windows 10.

UCSI support on earlier versions of Windows

UCSI is not supported on versions of Windows prior to Windows 10.

How to test an implementation of UCSI

To test your implementation, follow the guidelines given in USB Type-C manual interoperability test procedures. We recommend running USB tests in Windows Hardware Lab Kit (HLK) for Windows 10. These tests are listed in Windows Hardware Certification Kit Tests for USB.

Drivers

Conditions and UI for the different errors

Windows 10 can show a set of USB Type-C error messages to help educate users about the limitations with different combinations of USB Type-C hardware and software. For example, the user might get 'Device is charging slowly' message if the charger connected to the USB Type-C connector is not powerful enough, not compatible with the system, or is connected to a non-charging port. For more information, see Troubleshoot messages for a USB Type-C Windows system.

Connecting a non-PD port to a PD provider and a PD consumer to a system that is not a PD provider

The non-PD port attempts to charge the system by using USB Type-C current levels. For more information, see USB 3.1 and USB Type-C specifications.

Connecting Thunderbolt, SuperMHL, or PCI express to a PC that does not support those capabilities

Cypress Port Devices Driver

The alternate mode feature allows non-USB protocols (such as Thunderbolt, SuperMHL) to run over the USB cable, while simultaneously preserving USB 2.0 and charging functionality. If a user connects a USB Type-C alternate mode device or adapter that is not supported by the attached PC or phone running Windows 10, an error condition is detected and a message is shown to the user.

  • If the device or adapter exposes a Billboard device, the user sees information about the error condition to help the troubleshoot issues. Windows 10 provides an in-box driver for a Billboard device and notifies the user that an error has occurred.
  • The user might see an error notification, 'Try improving the USB connection'. For more information, see Fix USB-C Problems.

For the best results, make sure that the alternate mode device or adapter’s requirements are met by PC or phone or cable.

Support and limitations for MTP over USB Type-C in Windows

Windows 10 for desktop editions supports MTP in the initiator role; Windows 10 Mobile supports MTP in the responder role.

How downstream devices and hubs connect and communicate with USB Connector Manager (UCM)

UCM is its own device stack (see Architecture: USB Type-C design for a Windows system). Windows 10 support for USB Type-C includes the required plumbing to make sure that the different class drivers know how to communicate with the different USB Type-C connectors. In order to get Windows 10 support for USB Type-C, you must plug into the UCM device stack.

USB Type-C MUTT requirements for HLK tests

The Windows HLK for Windows 10 contains tests for USB host and function controllers. To test your system, use a USB C-A adapter. These tests are listed in Windows Hardware Certification Kit Tests for USB.

Microsoft support for P2P data transfer between the same Windows 10 SKU

This is not a valid connection.

  • You cannot connect two PCs running Windows 10 for desktop editions.
  • You cannot connect two mobile devices running Windows 10 Mobile.

If the user attempts to make such a connection, Windows shows an error message. For more information, see Error messages for a USB Type-C Windows system.

The only valid connection is between a Windows Mobile device and Windows desktop device.

UCM class extension (UcmCx) communication with PMIC or battery driver to get/set charging status

On software-assisted charging platforms, UcmCx communicates with PMIC and the battery subsystem. The client driver may determine the charging levels by communicating with the hardware through hardware interfaces. On hardware-assisted platforms, the embedded controller is responsible for charging. UcmCx takes no part in the process.

HLK support for USB Type-C

In Windows HLK for Windows 10, there are no USB Type-C specific tests. We recommend running USB tests in Windows HLK for Windows 10. These tests are listed in Windows Hardware Certification Kit Tests for USB.

UCSI

USB Type-C Connector System Software Interface (UCSI) Specification describes the capabilities of the USB Type-C Connector System software Interface (UCSI), and explains the registers and data structures, for hardware component designers, system builders, and device driver developers.

Microsoft provides an in-box driver with Windows, UcmUcsi.sys, that implements the features defined by the specification. This driver is intended for systems with embedded controllers.

Test a UCSI implementation running on Windows 10

We recommend running USB tests in Windows HLK for Windows 10. These tests are listed in Windows Hardware Certification Kit Tests for USB.

Test a UCMCx client driver on Windows 10

We recommend running USB tests in Windows HLK for Windows 10. These tests are listed in Windows Hardware Certification Kit Tests for USB.

VBus/VConn control and role switch operations handled by the UCM class extension

The UCM class extension might get requests from the operating system to change data or power direction of the connector. When it gets those requests, it invokes client driver's implementation of EVT_UCM_CONNECTOR_SET_DATA_ROLE and EVT_UCM_CONNECTOR_SET_POWER_ROLE callback functions (if the connector implements PD). In the implementation, the client driver is expected control the VBUS and VCONN pins. For more information about those callback functions, see Write a USB Type-C connector driver.

-->

Cypress Port Devices Driver

Versions supported

Cypress Port Devices Drivers

  • Windows 10
  • Windows 8.1

Applies to

  • Device manufacturers of CDC Control devices

Microsoft-provided in-box driver (Usbser.sys) for your Communications and CDC Control device.

In Windows 10, the driver has been rewritten by using the Kernel-Mode Driver Framework that improves the overall stability of the driver.

  • Improved PnP and power management by the driver (such as, handling surprise removal).
  • Added power management features such as USB Selective Suspend.

In addition, UWP applications can now use the APIs provided by the new Windows.Devices.SerialCommunication namespace that allow apps to talk to these devices.

Usbser.sys installation

Load the Microsoft-provided in-box driver (Usbser.sys) for your Communications and CDC Control device.

Note

If you trying to install a USB device class driver included in Windows, you do not need to download the driver. They are installed automatically. If they are not installed automatically, contact the device manufacturer. For the list of USB device class driver included in Windows, see USB device class drivers included in Windows.

Windows 10

In Windows 10, a new INF, Usbser.inf, has been added to %Systemroot%Inf that loads Usbser.sys as the function device object (FDO) in the device stack. If your device belongs to the Communications and CDC Control device class, Usbser.sys is loaded automatically.You do not need to write your own INF to reference the driver. The driver is loaded based on a compatible ID match similar to other USB device class drivers included in Windows.

USBClass_02

Cypress Port Devices Driver Device

USBClass_02&SubClass_02

  • If you want to load Usbser.sys automatically, set the class code to 02 and subclass code to 02 in the Device Descriptor. For more information, see USB communications device class. With this approach, you are not required to distribute INF files for your device because the system uses Usbser.inf.
  • If your device specifies class code 02 but a subclass code value other than 02, Usbser.sys does not load automatically. Pnp Manager tries to find a driver. If a suitable driver is not found, the device might not have a driver loaded. In this case, you might have to load your own driver or write an INF that references another in-box driver.
  • If your device specifies class and subclass codes to 02, and you want to load another driver instead of Usbser.sys, you have to write an INF that specifies the hardware ID of the device and the driver to install. For examples, look through the INF files included with sample drivers and find devices similar to your device. For information about INF sections, see Overview of INF Files.

Note

Microsoft encourages you to use in-box drivers whenever possible. On mobile editions of Windows, such as Windows 10 Mobile, only drivers that are part of the operating system are loaded. Unlike desktop editions, it is not possible to load a driver through an external driver package. With the new in-box INF, Usbser.sys is automatically loaded if a USB-to-serial device is detected on the mobile device.

Devices

Windows 8.1 and earlier versions

In Windows 8.1 and earlier versions of the operating system, Usbser.sys is not automatically loaded when a USB-to-serial device is attached to a computer. To load the driver, you need to write an INF that references the modem INF (mdmcpq.inf) by using the Include directive. The directive is required for instantiating the service, copying inbox binaries, and registering a device interface GUID that applications require to find the device and talk to it. That INF specifies 'Usbser' as a lower filter driver in a device stack.

The INF also needs to specify the device setup class as Modem to use mdmcpq.inf. Under the [Version] section of the INF, specify the Modem and the device class GUID. for details, see System-Supplied Device Setup Classes.

For more information, see this KB article.

Configure selective suspend for Usbser.sys

Starting in Windows 10, Usbser.sys supports USB Selective Suspend. It allows the attached USB-to-serial device to enter a low power state when not in use, while the system remains in the S0 state. When communication with the device resumes, the device can leave the Suspend state and resume Working state. The feature is disabled by default and can be enabled and configured by setting the IdleUsbSelectiveSuspendPolicy entry under this registry key:

Cypress

To configure power management features of Usbser.sys, you can set IdleUsbSelectiveSuspendPolicy to:

  • '0x00000001': Enters selective suspend when idle, that is, when there are no active data transfers to or from the device.

  • '0x00000000': Enters selective suspend only when there are no open handles to the device.

That entry can be added in one of two ways:

Cypress Driver Download

  • Write an INF that references the install INF and add the registry entry in the HW.AddReg section.

  • Describe the registry entry in an extended properties OS feature descriptor. Add a custom property section that sets the bPropertyName field to a Unicode string, 'IdleUsbSelectiveSuspendPolicy' and wPropertyNameLength to 62 bytes. Set the bPropertyData field to '0x00000001' or '0x00000000'. The property values are stored as little-endian 32-bit integers.

    For more information, see Microsoft OS Descriptors.

Develop Windows applications for a USB CDC device

Cypress Cy7c68014 Driver

If you install Usbser.sys for the USB CDC device, here are the application programming model options:

  • Starting in Windows 10, a Windows app can send requests to Usbser.sys by using the Windows.Devices.SerialCommunication namespace. It defines Windows Runtime classes that can use to communicate with a USB CDC device through a serial port or some abstraction of a serial port. The classes provide functionality to discover such serial device, read and write data, and control serial-specific properties for flow control, such as setting baud rate, signal states.

  • In Windows 8.1 and earlier versions, you can write a Windows desktop application that opens a virtual COM port and communicates with the device. For more information, see:

    Win32 programming model:

    • .NET framework programming model:

Related topics