1<html><head><meta http-equiv="Content-Type" content="text/html; charset=ANSI_X3.4-1968"><title>Chapter&#160;4.&#160;Peripheral Controller Drivers</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="USB Gadget API for Linux"><link rel="up" href="index.html" title="USB Gadget API for Linux"><link rel="prev" href="re66.html" title=".//drivers/usb/gadget/function/f_serial.c"><link rel="next" href="gadget.html" title="Chapter&#160;5.&#160;Gadget Drivers"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter&#160;4.&#160;Peripheral Controller Drivers</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="re66.html">Prev</a>&#160;</td><th width="60%" align="center">&#160;</th><td width="20%" align="right">&#160;<a accesskey="n" href="gadget.html">Next</a></td></tr></table><hr></div><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="controllers"></a>Chapter&#160;4.&#160;Peripheral Controller Drivers</h1></div></div></div><p>The first hardware supporting this API was the NetChip 2280
2controller, which supports USB 2.0 high speed and is based on PCI.
3This is the <code class="filename">net2280</code> driver module.
4The driver supports Linux kernel versions 2.4 and 2.6;
5contact NetChip Technologies for development boards and product
6information.
7</p><p>Other hardware working in the "gadget" framework includes:
8Intel's PXA 25x and IXP42x series processors
9(<code class="filename">pxa2xx_udc</code>),
10Toshiba TC86c001 "Goku-S" (<code class="filename">goku_udc</code>),
11Renesas SH7705/7727 (<code class="filename">sh_udc</code>),
12MediaQ 11xx (<code class="filename">mq11xx_udc</code>),
13Hynix HMS30C7202 (<code class="filename">h7202_udc</code>),
14National 9303/4 (<code class="filename">n9604_udc</code>),
15Texas Instruments OMAP (<code class="filename">omap_udc</code>),
16Sharp LH7A40x (<code class="filename">lh7a40x_udc</code>),
17and more.
18Most of those are full speed controllers.
19</p><p>At this writing, there are people at work on drivers in
20this framework for several other USB device controllers,
21with plans to make many of them be widely available.
22</p><p>A partial USB simulator,
23the <code class="filename">dummy_hcd</code> driver, is available.
24It can act like a net2280, a pxa25x, or an sa11x0 in terms
25of available endpoints and device speeds; and it simulates
26control, bulk, and to some extent interrupt transfers.
27That lets you develop some parts of a gadget driver on a normal PC,
28without any special hardware, and perhaps with the assistance
29of tools such as GDB running with User Mode Linux.
30At least one person has expressed interest in adapting that
31approach, hooking it up to a simulator for a microcontroller.
32Such simulators can help debug subsystems where the runtime hardware
33is unfriendly to software development, or is not yet available.
34</p><p>Support for other controllers is expected to be developed
35and contributed
36over time, as this driver framework evolves.
37</p></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="re66.html">Prev</a>&#160;</td><td width="20%" align="center">&#160;</td><td width="40%" align="right">&#160;<a accesskey="n" href="gadget.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">
38   .//drivers/usb/gadget/function/f_serial.c
39  &#160;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top">&#160;Chapter&#160;5.&#160;Gadget Drivers</td></tr></table></div></body></html>
40