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.
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