Driver Framework

Linux kernel provides a complete set of USB driver programs. The USB framework uses a tree structure and only allows to have one host device on a bus.

The following diagram shows the USB framework from the host or slave’s point of view.
Figure 1. Driver Framework

The main tasks of the USB subsystem include:

  • Register and manage device drivers
  • Locate drivers for USB devices, then initialize and configure the device
  • Display device tree in the kernel
  • Interact with devices