Inventra HDRC USB Controller

From Texas Instruments Embedded Processors Wiki

Jump to: navigation, search
Translate this page to   

The Inventra HDRC USB Controller (HDRC = Highspeed Dual Role Controller) is a member of an ASIC design family that is used by TI and several other vendors for implementing USB functionalities. Modes of the unit are master (host, A device; with high, full and low speed) and slave (gadget, B device; high and full speed). Some variants might only support 4 fully flexible endpoints in slave mode at the same time. In master mode some variants of this units might only drive one slave or endpoint at a time plus one hub in between. Due to the sufficiently smart switching ability between those modes the USB On-The-Go (OTG) standard is implemented by this unit.

Contents

TI semiconductors equipped with this unit

This unit is used in these TI devices:

Linux drivers

This unit is supported by the Linux kernel by the musb code and module. For using it it needs to be enabled whilst configuring the kernel included desired sub options and maybe the more general Linux USB OTG capability.

The TI data sheet for the OMAP35x (dated July 2008) lists this features:

For that specific processor at that time OTG was mentioned as not-supported by the described version of the drivers.

The LSP 1.20 documentation (April 2008) for the DaVinci family states this:

The USB peripheral provides support for USB 2.0 including HID, HDD, CD and mass storage classes. [...] The USB driver is implemented as a communication driver. EDMA is used for both host and device operations. USB host and slave drivers are described in the following sections.

And later provides this more detailed listing on the drivers maturity state:

With the publicly available preliminary documentation for LSP 2.10 dealing with the "DaVinci Linux Device Drivers" there comes a rich set of USB bandwidth benchmarks for a variety of processors and the following listing of featured USB drivers:

The software driver stack is divided in at least two functional layers. The base is the musb_hdrc module that knows about and controls the ASIC unit. The upper layers are formed by a set of gadget drivers for the various functionalities. These will, depending on system configuration, load and then plug in to the musb_hdrc module. They will get activated after the USB connection has successfully completed its configuration cycle using the Session Request Protocol (SRP) and finished this in the matching mode (host/gadget). The driver further takes care for the right voltage detection state as provided by the hardware unit. The hardware unit provides voltage level indicators matching the A mode (AVALID) and B mode (general VALID indicator) requirements, thus correct external wiring of all related pins of the SOC is necessary for proper operation.

Other Family members

Another naming related to a variant of this unit in the Linux kernel driver source is:

Inventra (Multidrop) Highspeed Dual-Role Controllers: (M)HDRC

Other variants out there in the wild are known as:

Mentor Graphics Inventra USB Full-Speed Dual-Role Controller (MUSBFDRC)

Web Links

Technology Related Press Releases

Leave a Comment
Personal tools
Namespaces
Variants
Actions
Navigation
Print/export
Toolbox