Fixed misnamed SI_Host_USBTask() and SI_Host_ConfigurePipes() functions.
[pub/USBasp.git] / LUFA / Drivers / USB / USB.h
index 9abd275..2239670 100644 (file)
  *    - LUFA/Drivers/USB/HighLevel/ConfigDescriptor.c\r
  *\r
  *  \section Module Description\r
- *  Functions, macros, variables, enums and types related to the management of USB communications.\r
+ *  Driver and framework for the USB controller hardware on the USB series of AVR microcontrollers. This module\r
+ *  consists of many submodules, and is designed to provide an easy way to configure and control USB host, device\r
+ *  or OTG mode USB applications.\r
+ *\r
+ *  The USB stack requires the sole control over the USB controller in the microcontroller only; i.e. it does not\r
+ *  require any additional AVR timers, etc. to operate. This ensures that the USB stack requires as few resources\r
+ *  as possible.\r
+ *\r
+ *  The USB stack can be used in Device Mode for connections to USB Hosts (see \ref Group_Device), in Host mode for\r
+ *  hosting of other USB devices (see \ref Group_Host), or as a dual role device which can either act as a USB host\r
+ *  or device depending on what peripheral is connected (see \ref Group_OTG). Both modes also require a common set\r
+ *  of USB management functions found \ref Group_USBManagement.\r
  */\r
 \r
 /** \ingroup Group_USB\r
  *  the standard library APIs.\r
  *\r
  *  Multiple device mode class drivers can be used within a project, including multiple instances of the\r
- *  same class driver.\r
+ *  same class driver. In this way, USB Hosts and Devices can be made quickly using the internal class drivers\r
+ *  so that more time and effort can be put into the end application instead of the USB protocol.\r
+ *\r
+ *  The available class drivers and their modes are listed below.\r
+ *\r
+ *  <table>\r
+ *  <tr>\r
+ *   <th width="100px">USB Class</th> \r
+ *   <th width="80px">Device</th> \r
+ *   <th width="80px">Host</th> \r
+ *  </tr>\r
+ *  <tr>\r
+ *   <td>Audio</td>\r
+ *   <td bgcolor="#00EE00">Yes</td>\r
+ *   <td bgcolor="#EE0000">No</td>\r
+ *  </tr>\r
+ *  <tr>\r
+ *   <td>CDC</td>\r
+ *   <td bgcolor="#00EE00">Yes</td>\r
+ *   <td bgcolor="#00EE00">Yes</td>\r
+ *  </tr>\r
+ *  <tr>\r
+ *   <td>HID</td>\r
+ *   <td bgcolor="#00EE00">Yes</td>\r
+ *   <td bgcolor="#00EE00">Yes</td>\r
+ *  </tr>\r
+ *  <tr>\r
+ *   <td>MIDI</td>\r
+ *   <td bgcolor="#00EE00">Yes</td>\r
+ *   <td bgcolor="#00EE00">Yes</td>\r
+ *  </tr>\r
+ *  <tr>\r
+ *   <td>Mass Storage</td>\r
+ *   <td bgcolor="#00EE00">Yes</td>\r
+ *   <td bgcolor="#00EE00">Yes</td>\r
+ *  </tr>\r
+ *  <tr>\r
+ *   <td>Printer</td>\r
+ *   <td bgcolor="#00EE00">Yes</td>\r
+*    <td bgcolor="#00EE00">Yes</td>\r
+ *  </tr>\r
+ *  <tr>\r
+ *   <td>RNDIS</td>\r
+ *   <td bgcolor="#00EE00">Yes</td>\r
+ *   <td bgcolor="#EE0000">No</td>\r
+ *  </tr>\r
+ *  <tr>\r
+ *   <td>Still Image</td>\r
+ *   <td bgcolor="#EE0000">No</td>\r
+ *   <td bgcolor="#00EE00">Yes</td>\r
+ *  </tr>\r
+ *  </table>\r
  */\r
  \r
 #ifndef __USB_H__\r
                #if (!(defined(__AVR_AT90USB1287__) || defined(__AVR_AT90USB647__) ||  \\r
                       defined(__AVR_AT90USB1286__) || defined(__AVR_AT90USB646__) ||  \\r
                           defined(__AVR_AT90USB162__)  || defined(__AVR_AT90USB82__)  ||  \\r
+                          defined(__AVR_ATmega32U2__)  || defined(__AVR_ATmega16U2__) ||  \\r
+                          defined(__AVR_ATmega8U2__)   ||                                 \\r
                           defined(__AVR_ATmega16U4__)  || defined(__AVR_ATmega32U4__) ||  \\r
                           defined(__AVR_ATmega32U6__)))\r
                        #error The currently selected AVR model is not supported under the USB component of the LUFA library.\r