1<html><head><meta http-equiv="Content-Type" content="text/html; charset=ANSI_X3.4-1968"><title>Chapter&#160;1.&#160;Introduction</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="Writing an MUSB Glue Layer"><link rel="up" href="index.html" title="Writing an MUSB Glue Layer"><link rel="prev" href="index.html" title="Writing an MUSB Glue Layer"><link rel="next" href="linux-musb-basics.html" title="Chapter&#160;2.&#160;Linux MUSB Basics"></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;1.&#160;Introduction</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="index.html">Prev</a>&#160;</td><th width="60%" align="center">&#160;</th><td width="20%" align="right">&#160;<a accesskey="n" href="linux-musb-basics.html">Next</a></td></tr></table><hr></div><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="introduction"></a>Chapter&#160;1.&#160;Introduction</h1></div></div></div><p>
2      The Linux MUSB subsystem is part of the larger Linux USB
3      subsystem. It provides support for embedded USB Device Controllers
4      (UDC) that do not use Universal Host Controller Interface (UHCI)
5      or Open Host Controller Interface (OHCI).
6    </p><p>
7      Instead, these embedded UDC rely on the USB On-the-Go (OTG)
8      specification which they implement at least partially. The silicon
9      reference design used in most cases is the Multipoint USB
10      Highspeed Dual-Role Controller (MUSB HDRC) found in the Mentor
11      Graphics Inventra&#8482; design.
12    </p><p>
13      As a self-taught exercise I have written an MUSB glue layer for
14      the Ingenic JZ4740 SoC, modelled after the many MUSB glue layers
15      in the kernel source tree. This layer can be found at
16      drivers/usb/musb/jz4740.c. In this documentation I will walk
17      through the basics of the jz4740.c glue layer, explaining the
18      different pieces and what needs to be done in order to write your
19      own device glue layer.
20    </p></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="index.html">Prev</a>&#160;</td><td width="20%" align="center">&#160;</td><td width="40%" align="right">&#160;<a accesskey="n" href="linux-musb-basics.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Writing an MUSB Glue Layer&#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;2.&#160;Linux MUSB Basics</td></tr></table></div></body></html>
21