From: Thadeu Lima de Souza Cascardo Date: Mon, 24 May 2010 11:45:47 +0000 (-0400) Subject: First USB sketch. X-Git-Url: http://git.cascardo.info/?p=cascardo%2Fkernel%2Fslides%2F.git;a=commitdiff_plain First USB sketch. --- diff --git a/13buses/usb b/13buses/usb new file mode 100644 index 0000000..0ae9a96 --- /dev/null +++ b/13buses/usb @@ -0,0 +1,80 @@ +%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