next up previous contents index
Next: The USB Device Driver Up: Programming Guide for Linux Previous: USB Device Drivers   Contents   Index


The Linux USB Subsystem

In Linux there exists a subsystem called ``The USB Core'' with a specific API to support USB devices and host controllers. Its purpose is to abstract all hardware or device dependent parts by defining a set of data structures, macros and functions.

The USB core contains routines common to all USB device drivers and host controller drivers. These functions can be grouped into an upper and a lower API layer. As shown in figure 3 there exists an API for USB device drivers and another one for host controllers. The following section concentrates on the USB device driver layer, because the development for host controller drivers is already finished.

This section will give an overview of the USB framework by explaining entry points and the usage of API functions. If you are not familar with linux device drivers the following section might not be very useful. Appropriate literature can be found here [8], [9].

Figure 3: USB Core API Layers
\includegraphics [width=\linewidth]{usbcore}



Subsections
next up previous contents index
Next: The USB Device Driver Up: Programming Guide for Linux Previous: USB Device Drivers   Contents   Index
Detlef Fliegl
2001-01-08