Migrating legacy USB Stack to USB Type-C platforms

Migrating legacy USB Stack to USB Type-C platforms
by Rajaram Regupathy on 11-19-2015 at 4:00 pm

There is a great deal of buzz around the new USB Type-C connector and its power delivery specifications. Industry leaders like Intel, Google, and Apple are leading the way by integrating this new connector into products like MacBook and Chromebook. The new connector will soon find its way into smartphones and many other types of products.

Just as USB slowly replaced legacy ports, USB Type-C may slowly replace most of the connectors on your PCs or Notebooks. This next-generation connector is powerful and flexible. It has the capability of providing up to 100 W of power and enabling support for multiple functions over the same lines in a standard way. This sharing of signal lines and higher power negotiation is achieved using a protocol defined in the USB Power Delivery specification over Configuration Channel (CC) signal line of the USB Type-C connector.

This article explores some of the key changes that needs to be looked into while planning integration legacy USB stack with USB Type-C support

V[SUB]Bus[/SUB] Session/Power Role Swap:
One of the important changes in the new specification involves the V[SUB]Bus[/SUB] line. Over and above the support for higher power, there are other changes that will affect a legacy USB system. For example, the new specification enables a USB device to power up the host and also defines scenarios where removal of the V[SUB]Bus[/SUB] does not indicate disconnection. During a session, using the Power Role Swap command a device can change the flow of V[SUB]Bus,[/SUB], during which V[SUB]Bus[/SUB] will drop close to 0V. V[SUB]Bus[/SUB] management is handled outside of the USB system, thus necessitating legacy USB systems to handle such scenarios in tandem with the CC module.

Role Negotiation – Data Role Swap – No OTG:
One of the more complex implementations in legacy USB system is the On The Go (OTG) state and timing implementation. The new specification helps decide role of a device over the CC channel using simple protocol commands or basing the role on the initial state of the CC channel. Thus, a legacy USB system now has to now migrate from OTG to the CC protocol to base its on events from the CC module.

USB Connection/Disconnection:
Connection and disconnection of USB functionality in legacy OTG connectors was implemented primarily using the ID pin or V[SUB]Bus[/SUB]. In the new USB Type-C environment, connection and disconnection is based on the state of the CC channel. The voltage level of the CC signal line helps determine the connection status to the CC module, which then has to be communicated to the legacy USB system. This CC signal line also helps determine how much current can be consumed when the system is not in power delivery mode. Thus, a legacy USB system has to wait for events from the CC module for connection and disconnection, as well as for power capabilities.

Alternate Modes:
The new USB Type-C connector supports multiple functions over and above USB functionality over its USB signals lines. For example, if a system enters a 4-port Display Port alternate mode, the Display Port interface consumes all super speed signal lines of the USB Type-C port. As a consequence, no USB 3 functionality is available during alternate mode. This multiplexing of USB signal lines is handled outside the USB software subsystem, namely the CC module, and the legacy USB subsystem need to be adapted for such changes.

Billboard Class:
A new class of USB device – Billboard class – has been defined by the USB Implementers Forum (USBIF) for the devices that supports alternate modes. As the designation suggests, Billboard class is an informative class and is used to communicate the alternate modes supported by a device to the host. It is important to note that this class does not support any USB functions and thus does not consume any endpoints. This change requires a new driver to read and interpret descriptors, then present the descriptors of this new class to the user.

This article explored some of the key changes that needs to be taken care in a legacy USB host or a device stack when migrating to the new USB Type-C connector. Though the change is on the USB connector, it has impact on the USB software behavior as well. Also developers has to keep in mind with the new USB Type-C connector, the USB Type-C cable determines also plays role in determining the system behavior.