EZ-USB on Linux
A company called AnchorChips (now owned by Cypress) came out with an innovative and useful product a while ago: an enhanced 8051 (8 bit CPU) based microcontroller that has direct hardware support to run USB 1.1 devices. That product, updated, is known as the EZ USB FX. It can support all USB endpoints (30 plus control).
When USB 2.0 came out, this product was updated to support its much faster speeds (480 MBit/sec), calling that product the EZ USB FX2. The FX2 doesn't support quite as many endpoints (six plus control), but it does handle multibuffered high speed transfers in hardware. Device firmware just processes interrupts, fills buffers, and tells the hardware to do its thing.
There are a fair number of projects that work with both EZ-USB devices and with Linux (on the host side). This web page is designed as a community resource, with (cross)links to related projects as well as hosting some Linux-focused efforts directly
From a system perspective, an EZ-USB device with its firmware are comparable to a Linux system with an implementation of the USB Gadget API (a standard part of Linux 2.5) and some gadget driver using that. The Linux system will typically be much more powerful, since it has at least a 32-bit processor and richer software environment. However, the EZ-USB device will be a fraction of its cost.