Add bluetooth channel connection callback to the incomplete BluetoothHost demo.
[pub/USBasp.git] / LUFA / Drivers / USB / LowLevel / LowLevel.h
index 8b441c2..79261cd 100644 (file)
@@ -1,21 +1,21 @@
 /*\r
              LUFA Library\r
 /*\r
              LUFA Library\r
-     Copyright (C) Dean Camera, 2009.\r
+     Copyright (C) Dean Camera, 2010.\r
               \r
   dean [at] fourwalledcubicle [dot] com\r
       www.fourwalledcubicle.com\r
 */\r
 \r
 /*\r
               \r
   dean [at] fourwalledcubicle [dot] com\r
       www.fourwalledcubicle.com\r
 */\r
 \r
 /*\r
-  Copyright 2009  Dean Camera (dean [at] fourwalledcubicle [dot] com)\r
+  Copyright 2010  Dean Camera (dean [at] fourwalledcubicle [dot] com)\r
 \r
 \r
-  Permission to use, copy, modify, and distribute this software\r
-  and its documentation for any purpose and without fee is hereby\r
-  granted, provided that the above copyright notice appear in all\r
-  copies and that both that the copyright notice and this\r
-  permission notice and warranty disclaimer appear in supporting\r
-  documentation, and that the name of the author not be used in\r
-  advertising or publicity pertaining to distribution of the\r
+  Permission to use, copy, modify, distribute, and sell this \r
+  software and its documentation for any purpose is hereby granted\r
+  without fee, provided that the above copyright notice appear in \r
+  all copies and that both that the copyright notice and this\r
+  permission notice and warranty disclaimer appear in supporting \r
+  documentation, and that the name of the author not be used in \r
+  advertising or publicity pertaining to distribution of the \r
   software without specific, written prior permission.\r
 \r
   The author disclaim all warranties with regard to this\r
   software without specific, written prior permission.\r
 \r
   The author disclaim all warranties with regard to this\r
   this software.\r
 */\r
 \r
   this software.\r
 */\r
 \r
+/** \file\r
+ *  \brief USB low level USB controller definitions.\r
+ *\r
+ *  This file contains structures, function prototypes and macros related to the low level configutation of the\r
+ *  USB controller, to start, stop and reset the USB library core.\r
+ *\r
+ *  \note This file should not be included directly. It is automatically included as needed by the USB driver\r
+ *        dispatch header located in LUFA/Drivers/USB/USB.h.\r
+ */\r
\r
 /** \ingroup Group_USB\r
  *  @defgroup Group_USBManagement USB Interface Management\r
  *\r
 /** \ingroup Group_USB\r
  *  @defgroup Group_USBManagement USB Interface Management\r
  *\r
                #endif\r
 \r
        /* Preprocessor Checks and Defines: */\r
                #endif\r
 \r
        /* Preprocessor Checks and Defines: */\r
+               #if !defined(__INCLUDE_FROM_USB_DRIVER)\r
+                       #error Do not include this file directly. Include LUFA/Drivers/USB/USB.h instead.\r
+               #endif\r
+\r
                #if !defined(F_CLOCK)\r
                        #error F_CLOCK is not defined. You must define F_CLOCK to the frequency of the unprescaled input clock in your project makefile.\r
                #endif\r
        \r
                #if (F_CLOCK == 8000000)\r
                        #if (defined(__AVR_AT90USB82__) || defined(__AVR_AT90USB162__) || \\r
                #if !defined(F_CLOCK)\r
                        #error F_CLOCK is not defined. You must define F_CLOCK to the frequency of the unprescaled input clock in your project makefile.\r
                #endif\r
        \r
                #if (F_CLOCK == 8000000)\r
                        #if (defined(__AVR_AT90USB82__) || defined(__AVR_AT90USB162__) || \\r
-                            defined(__AVR_ATMEGA8U2__) || defined(__AVR_ATMEGA16U2__))\r
+                            defined(__AVR_ATmega8U2__) || defined(__AVR_ATmega16U2__) || \\r
+                                defined(__AVR_ATmega32U2__))\r
                                #define USB_PLL_PSC                0\r
                        #elif (defined(__AVR_ATmega16U4__) || defined(__AVR_ATmega32U4__))\r
                                #define USB_PLL_PSC                0\r
                                #define USB_PLL_PSC                0\r
                        #elif (defined(__AVR_ATmega16U4__) || defined(__AVR_ATmega32U4__))\r
                                #define USB_PLL_PSC                0\r
                        #endif\r
                #elif (F_CLOCK == 16000000)\r
                        #if (defined(__AVR_AT90USB82__) || defined(__AVR_AT90USB162__) || \\r
                        #endif\r
                #elif (F_CLOCK == 16000000)\r
                        #if (defined(__AVR_AT90USB82__) || defined(__AVR_AT90USB162__) || \\r
-                            defined(__AVR_ATMEGA8U2__) || defined(__AVR_ATMEGA16U2__))\r
+                            defined(__AVR_ATmega8U2__) || defined(__AVR_ATmega16U2__) || \\r
+                                defined(__AVR_ATmega32U2__))\r
                                #define USB_PLL_PSC                (1 << PLLP0)\r
                        #elif (defined(__AVR_ATmega16U4__) || defined(__AVR_ATmega32U4__))\r
                                #define USB_PLL_PSC                (1 << PINDIV)\r
                                #define USB_PLL_PSC                (1 << PLLP0)\r
                        #elif (defined(__AVR_ATmega16U4__) || defined(__AVR_ATmega32U4__))\r
                                #define USB_PLL_PSC                (1 << PINDIV)\r
                         *                      mode speed.\r
                         *\r
                         *  \note To reduce the FLASH requirements of the library if only device or host mode is required, \r
                         *                      mode speed.\r
                         *\r
                         *  \note To reduce the FLASH requirements of the library if only device or host mode is required, \r
-                        *        this can be statically set via defining the token USB_DEVICE_ONLY for device mode or \r
-                        *        USB_HOST_ONLY for host mode in the use project makefile, passing the token to the compiler \r
+                        *        the mode can be statically set in the project makefile by defining the token USB_DEVICE_ONLY\r
+                        *        (for device mode) or USB_HOST_ONLY (for host mode), passing the token to the compiler \r
                         *        via the -D switch. If the mode is statically set, this parameter does not exist in the\r
                         *        function prototype.\r
                         *        via the -D switch. If the mode is statically set, this parameter does not exist in the\r
                         *        function prototype.\r
+                        *        \n\n\r
                         *\r
                         *  \note To reduce the FLASH requirements of the library if only fixed settings are are required,\r
                         *        the options may be set statically in the same manner as the mode (see the Mode parameter of \r
                         *        this function). To statically set the USB options, pass in the USE_STATIC_OPTIONS token,\r
                         *        defined to the appropriate options masks. When the options are statically set, this\r
                         *        parameter does not exist in the function prototype.\r
                         *\r
                         *  \note To reduce the FLASH requirements of the library if only fixed settings are are required,\r
                         *        the options may be set statically in the same manner as the mode (see the Mode parameter of \r
                         *        this function). To statically set the USB options, pass in the USE_STATIC_OPTIONS token,\r
                         *        defined to the appropriate options masks. When the options are statically set, this\r
                         *        parameter does not exist in the function prototype.\r
+                        *        \n\n\r
                         *        \r
                         *  \note The mode parameter does not exist on devices where only one mode is possible, such as USB \r
                         *        AVR models which only implement the USB device mode in hardware.\r
                         *        \r
                         *  \note The mode parameter does not exist on devices where only one mode is possible, such as USB \r
                         *        AVR models which only implement the USB device mode in hardware.\r