--- /dev/null
+%USB
+%Thadeu Cascardo
+
+# Universal Serial Bus
+
+* USB 1.0 and 1.1, 1.5Mbps and 12Mbps
+* USB 2.0 - up to 480Mbps
+* USB 3.0 - up to 5Gbps
+* Wireless USB - over Ultra Wideband
+
+# USB - Cont.
+
+* A master/slave bus: the master asks the slave to send data
+* Auto-configurable and hotplugable
+* Standards specifications, allowing device classes, with no specific driver
+* HCDs, USB devices and Gadget devices and their respective drivers
+
+# USB Basics
+
+* Configurations
+* Interfaces
+* Settings
+* Endpoints
+* URBs
+
+# Endpoints and URBs
+
+* IN and OUT Endpoints
+* Control Endpoints
+* Interrupt Endpoints
+* Bulk Endpoints
+* Isochronous Endpoints
+
+# USB IDs
+
+* struct usb\\_device\\_id
+* USB\\_DEVICE
+* Others
+
+# USB Driver
+
+* struct usb\\_driver
+ - name
+ - id\\_table
+ - probe
+ - disconnect
+
+# USB Interface
+
+* struct usb\\_interface
+ - struct usb\\_host\\_interface cur\\_altsetting
+ * desc.bNumEndpoints
+ * struct usb\\_endpoint\\_descriptor endpoint[].desc
+* usb\\_get\\_intf
+* usb\\_put\\_intf
+
+# Endpoints
+
+* struct usb\\_endpoint\\_descriptor
+* usb\\_endpoint\\_is\\_isoc\\_in
+* usb\\_endpoint\\_num
+
+# URBs
+
+* struct urb
+ - status
+ - transfer\\_buffer
+ - actual\\_length
+* usb\\_alloc\\_urb
+* usb\\_free\\_usb
+* usb\\_submit\\_urb
+* usb\\_kill\\_urb
+* usb\\_fill\\_control\\_urb
+* usb\\_fill\\_bulk\\_urb
+* usb\\_control\\_msg
+
+# URBs
+
+* Callbacks execute in interrupt context
+* May resubmit an URB, but must use GFP\\_ATOMIC