Linus TorvaldsLinux-2.6.12-rc21da177e21 years agoHistory
54 lines · 2.4 KB · Text
RawDownload
To understand all the Linux-USB framework, you'll use these resources:     * This source code.  This is necessarily an evolving work, and      includes kerneldoc that should help you get a current overview.      ("make pdfdocs", and then look at "usb.pdf" for host side and      "gadget.pdf" for peripheral side.)  Also, Documentation/usb has      more information.     * The USB 2.0 specification (from www.usb.org), with supplements      such as those for USB OTG and the various device classes.      The USB specification has a good overview chapter, and USB      peripherals conform to the widely known "Chapter 9".     * Chip specifications for USB controllers.  Examples include      host controllers (on PCs, servers, and more); peripheral      controllers (in devices with Linux firmware, like printers or      cell phones); and hard-wired peripherals like Ethernet adapters.     * Specifications for other protocols implemented by USB peripheral      functions.  Some are vendor-specific; others are vendor-neutral      but just standardized outside of the www.usb.org team. Here is a list of what each subdirectory here is, and what is contained inthem. core/		- This is for the core USB host code, including the		  usbfs files and the hub class driver ("khubd"). host/		- This is for USB host controller drivers.  This		  includes UHCI, OHCI, EHCI, and others that might		  be used with more specialized "embedded" systems. gadget/		- This is for USB peripheral controller drivers and		  the various gadget drivers which talk to them.  Individual USB driver directories.  A new driver should be added to thefirst subdirectory in the list below that it fits into. image/		- This is for still image drivers, like scanners or		  digital cameras.input/		- This is for any driver that uses the input subsystem,		  like keyboard, mice, touchscreens, tablets, etc.media/		- This is for multimedia drivers, like video cameras,		  radios, and any other drivers that talk to the v4l		  subsystem.net/		- This is for network drivers.serial/		- This is for USB to serial drivers.storage/	- This is for USB mass-storage drivers.class/		- This is for all USB device drivers that do not fit		  into any of the above categories, and work for a range		  of USB Class specified devices. misc/		- This is for all USB device drivers that do not fit		  into any of the above categories.