Peripheral Controller Drivers

The first hardware supporting this API is the NetChip 2280 controller, which supports USB 2.0 high speed and is based on PCI. This is the net2280 driver module. The driver supports Linux kernel versions 2.4 and 2.5; contact NetChip Technologies for development boards and product information.

For users of Intel's PXA 2xx series processors, a pxa2xx_udc driver is available.

At this writing, there are people at work on drivers in this framework for several other USB device controllers, with plans to make many of them be widely available.

A partial USB simulator, the dummy_hcd driver, is available. It can act like a net2280, a pxa25x, or an sa11x0 in terms of available endpoints and device speeds; and it simulates control, bulk, and to some extent interrupt transfers. That lets you develop some parts of a gadget driver on a normal PC, without any special hardware, and perhaps with the assistance of tools such as GDB running with User Mode Linux. At least one person has expressed interest in adapting that approach, hooking it up to a simulator for a microcontroller. Such simulators can help debug subsystems where the runtime hardware is unfriendly to software development, or is not yet available.

Support for other controllers is expected to be developed and contributed over time, as this driver framework evolves.