Update UC3 platform driver support to use the bitmasks defined in the header files...
[pub/USBasp.git] / LUFA / Drivers / USB / USB.h
index 6777618..fa4fcf1 100644 (file)
  *  Master include file for the library USB functionality.
  *
  *  This file should be included in all user projects making use of the USB portions of the library, instead of
- *  including any headers in the USB/LowLevel/ or USB/HighLevel/ subdirectories.
+ *  the individual USB driver submodule headers.
  */
 
-/** @defgroup Group_USB USB Core - LUFA/Drivers/USB/USB.h
+/** \defgroup Group_USB USB Core - LUFA/Drivers/USB/USB.h
  *
  *  \section Sec_Dependencies Module Source Dependencies
  *  The following files must be built with any user project that uses this module:
- *    - LUFA/Drivers/USB/LowLevel/Device.c <i>(Makefile source module name: LUFA_SRC_USB)</i>
- *    - LUFA/Drivers/USB/LowLevel/Endpoint.c <i>(Makefile source module name: LUFA_SRC_USB)</i>
- *    - LUFA/Drivers/USB/LowLevel/Host.c <i>(Makefile source module name: LUFA_SRC_USB)</i>
- *    - LUFA/Drivers/USB/LowLevel/Pipe.c <i>(Makefile source module name: LUFA_SRC_USB)</i>
- *    - LUFA/Drivers/USB/LowLevel/USBController.c <i>(Makefile source module name: LUFA_SRC_USB)</i>
- *    - LUFA/Drivers/USB/LowLevel/USBInterrupt.c <i>(Makefile source module name: LUFA_SRC_USB)</i>
- *    - LUFA/Drivers/USB/HighLevel/ConfigDescriptor.c <i>(Makefile source module name: LUFA_SRC_USB)</i>
- *    - LUFA/Drivers/USB/HighLevel/DeviceStandardReq.c <i>(Makefile source module name: LUFA_SRC_USB)</i>
- *    - LUFA/Drivers/USB/HighLevel/Events.c <i>(Makefile source module name: LUFA_SRC_USB)</i>
- *    - LUFA/Drivers/USB/HighLevel/EndpointStream.c <i>(Makefile source module name: LUFA_SRC_USB)</i>
- *    - LUFA/Drivers/USB/HighLevel/HostStandardReq.c <i>(Makefile source module name: LUFA_SRC_USB)</i>
- *    - LUFA/Drivers/USB/HighLevel/PipeStream.c <i>(Makefile source module name: LUFA_SRC_USB)</i>
- *    - LUFA/Drivers/USB/HighLevel/USBTask.c <i>(Makefile source module name: LUFA_SRC_USB)</i>
+ *    - LUFA/Drivers/USB/Core/ConfigDescriptor.c <i>(Makefile source module name: LUFA_SRC_USB)</i>
+ *    - LUFA/Drivers/USB/Core/DeviceStandardReq.c <i>(Makefile source module name: LUFA_SRC_USB)</i>
+ *    - LUFA/Drivers/USB/Core/Events.c <i>(Makefile source module name: LUFA_SRC_USB)</i>
+ *    - LUFA/Drivers/USB/Core/HostStandardReq.c <i>(Makefile source module name: LUFA_SRC_USB)</i>
+ *    - LUFA/Drivers/USB/Core/USBTask.c <i>(Makefile source module name: LUFA_SRC_USB)</i>
+ *    - LUFA/Drivers/USB/Core/<i>ARCH</i>/Device_<i>ARCH</i>.c <i>(Makefile source module name: LUFA_SRC_USB)</i>
+ *    - LUFA/Drivers/USB/Core/<i>ARCH</i>/Endpoint_<i>ARCH</i>.c <i>(Makefile source module name: LUFA_SRC_USB)</i>
+ *    - LUFA/Drivers/USB/Core/<i>ARCH</i>/EndpointStream_<i>ARCH</i>.c <i>(Makefile source module name: LUFA_SRC_USB)</i>
+ *    - LUFA/Drivers/USB/Core/<i>ARCH</i>/Host_<i>ARCH</i>.c <i>(Makefile source module name: LUFA_SRC_USB)</i>
+ *    - LUFA/Drivers/USB/Core/<i>ARCH</i>/Pipe_<i>ARCH</i>.c <i>(Makefile source module name: LUFA_SRC_USB)</i>
+ *    - LUFA/Drivers/USB/Core/<i>ARCH</i>/PipeStream_<i>ARCH</i>.c <i>(Makefile source module name: LUFA_SRC_USB)</i>
+ *    - LUFA/Drivers/USB/Core/<i>ARCH</i>/USBController_<i>ARCH</i>.c <i>(Makefile source module name: LUFA_SRC_USB)</i>
+ *    - LUFA/Drivers/USB/Core/<i>ARCH</i>/USBInterrupt_<i>ARCH</i>.c <i>(Makefile source module name: LUFA_SRC_USB)</i>
+ *    - LUFA/Drivers/USB/Class/Common/HIDParser.c <i>(Makefile source module name: LUFA_SRC_USB)</i>
  *
  *  \section Sec_ModDescription Module Description
- *  Driver and framework for the USB controller hardware on the USB series of AVR microcontrollers. This module
+ *  Driver and framework for the USB controller of the selected architecture and microcontroller model. This module
  *  consists of many submodules, and is designed to provide an easy way to configure and control USB host, device
  *  or OTG mode USB applications.
  *
  *  The USB stack requires the sole control over the USB controller in the microcontroller only; i.e. it does not
- *  require any additional AVR timers, etc. to operate. This ensures that the USB stack requires as few resources
- *  as possible.
+ *  require any additional timers or other peripherals to operate. This ensures that the USB stack requires as few
+ *  resources as possible.
  *
  *  The USB stack can be used in Device Mode for connections to USB Hosts (see \ref Group_Device), in Host mode for
  *  hosting of other USB devices (see \ref Group_Host), or as a dual role device which can either act as a USB host
@@ -70,7 +71,7 @@
  *  of USB management functions found \ref Group_USBManagement.
  */
 
-/** @defgroup Group_USBClassDrivers USB Class Drivers
+/** \defgroup Group_USBClassDrivers USB Class Drivers
  *
  *  Drivers for both host and device mode of the standard USB classes, for rapid application development.
  *  Class drivers give a framework which sits on top of the low level library API, allowing for standard
@@ -93,7 +94,7 @@
  *  <tr>
  *   <td>Audio</td>
  *   <td bgcolor="#00EE00">Yes</td>
- *   <td bgcolor="#EE0000">No</td>
+ *   <td bgcolor="#00EE00">Yes</td>
  *  </tr>
  *  <tr>
  *   <td>CDC</td>
  *
  *  To initialize the Class driver instance, the driver's <tt><i>{Class Name}</i>_Device_ConfigureEndpoints()</tt> function
  *  should be called in response to the \ref EVENT_USB_Device_ConfigurationChanged() event. This function will return a
- *  boolean value if the driver successfully initialized the instance. Like all the class driver functions, this function
+ *  boolean true value if the driver successfully initialized the instance. Like all the class driver functions, this function
  *  takes in the address of the specific instance you wish to initialize - in this manner, multiple separate instances of
  *  the same class type can be initialized like this:
  *
 #define __USB_H__
 
        /* Macros: */
-               #if !defined(__DOXYGEN__)
-                       #define __INCLUDE_FROM_USB_DRIVER
-               #endif
+               #define __INCLUDE_FROM_USB_DRIVER
 
        /* Includes: */
-               #include "HighLevel/USBMode.h"
-
-       /* Preprocessor Checks: */
-               #if (!defined(USB_SERIES_2_AVR) && !defined(USB_SERIES_4_AVR) && \
-                    !defined(USB_SERIES_6_AVR) && !defined(USB_SERIES_7_AVR))
-                       #error The currently selected AVR model is not supported under the USB component of the LUFA library.
-               #endif
+               #include "../../Common/Common.h"
+               #include "Core/USBMode.h"
 
        /* Includes: */
-               #include "HighLevel/USBTask.h"
-               #include "HighLevel/Events.h"
-               #include "HighLevel/StdDescriptors.h"
-               #include "HighLevel/ConfigDescriptor.h"
-
-               #include "LowLevel/USBController.h"
-               #include "LowLevel/USBInterrupt.h"
+               #include "Core/USBTask.h"
+               #include "Core/Events.h"
+               #include "Core/StdDescriptors.h"
+               #include "Core/ConfigDescriptor.h"
+               #include "Core/USBController.h"
+               #include "Core/USBInterrupt.h"
 
                #if defined(USB_CAN_BE_HOST) || defined(__DOXYGEN__)
-                       #include "LowLevel/Host.h"
-                       #include "LowLevel/Pipe.h"
-                       #include "HighLevel/HostStandardReq.h"
-                       #include "HighLevel/PipeStream.h"
+                       #include "Core/Host.h"
+                       #include "Core/Pipe.h"
+                       #include "Core/HostStandardReq.h"
+                       #include "Core/PipeStream.h"
                #endif
 
                #if defined(USB_CAN_BE_DEVICE) || defined(__DOXYGEN__)
-                       #include "LowLevel/Device.h"
-                       #include "LowLevel/Endpoint.h"
-                       #include "HighLevel/DeviceStandardReq.h"
-                       #include "HighLevel/EndpointStream.h"
+                       #include "Core/Device.h"
+                       #include "Core/Endpoint.h"
+                       #include "Core/DeviceStandardReq.h"
+                       #include "Core/EndpointStream.h"
                #endif
 
                #if defined(USB_CAN_BE_BOTH) || defined(__DOXYGEN__)
-                       #include "LowLevel/OTG.h"
+                       #include "Core/OTG.h"
                #endif
                
                #include "Class/Audio.h"