From b35b35e05d421f5c1dd419809b536a21be2a0ada Mon Sep 17 00:00:00 2001 From: Thadeu Lima de Souza Cascardo Date: Mon, 24 May 2010 07:45:47 -0400 Subject: [PATCH] First USB sketch. --- 13buses/usb | 80 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 13buses/usb 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 -- 2.20.1