1<html><head><meta http-equiv="Content-Type" content="text/html; charset=ANSI_X3.4-1968"><title>Chapter 1. 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 2. 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 1. Introduction</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="index.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <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 1. 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™ 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> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <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 </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 2. Linux MUSB Basics</td></tr></table></div></body></html> 21