More AVR32 achitecture ports.
[pub/USBasp.git] / LUFA / Drivers / USB / LowLevel / LowLevel.h
index 2c8ade7..3c98c6d 100644 (file)
                #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
-                            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
-                       #elif (defined(__AVR_AT90USB646__)  || defined(__AVR_AT90USB1286__) || defined(__AVR_ATmega32U6__))\r
-                               #define USB_PLL_PSC                ((1 << PLLP1) | (1 << PLLP0))\r
-                       #elif (defined(__AVR_AT90USB647__)  || defined(__AVR_AT90USB1287__))\r
-                               #define USB_PLL_PSC                ((1 << PLLP1) | (1 << PLLP0))\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_ATmega32U2__))\r
-                               #define USB_PLL_PSC                (1 << PLLP0)\r
-                       #elif (defined(__AVR_ATmega16U4__) || defined(__AVR_ATmega32U4__))\r
-                               #define USB_PLL_PSC                (1 << PINDIV)\r
-                       #elif (defined(__AVR_AT90USB646__) || defined(__AVR_AT90USB647__) || defined(__AVR_ATmega32U6__))\r
-                               #define USB_PLL_PSC                ((1 << PLLP2) | (1 << PLLP1))\r
-                       #elif (defined(__AVR_AT90USB1286__) || defined(__AVR_AT90USB1287__))\r
-                               #define USB_PLL_PSC                ((1 << PLLP2) | (1 << PLLP0))\r
+               \r
+               #if defined(__AVR32__)\r
+                       #define USB_PLL_PSC 0\r
+               #elif defined(__AVR__)\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
-               #endif\r
                \r
-               #if !defined(USB_PLL_PSC)\r
-                       #error No PLL prescale value available for chosen F_CPU value and AVR model.\r
+                       #if (F_CLOCK == 8000000)\r
+                               #if (defined(__AVR_AT90USB82__) || defined(__AVR_AT90USB162__) || \\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
+                               #elif (defined(__AVR_AT90USB646__)  || defined(__AVR_AT90USB1286__) || defined(__AVR_ATmega32U6__))\r
+                                       #define USB_PLL_PSC                ((1 << PLLP1) | (1 << PLLP0))\r
+                               #elif (defined(__AVR_AT90USB647__)  || defined(__AVR_AT90USB1287__))\r
+                                       #define USB_PLL_PSC                ((1 << PLLP1) | (1 << PLLP0))\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_ATmega32U2__))\r
+                                       #define USB_PLL_PSC                (1 << PLLP0)\r
+                               #elif (defined(__AVR_ATmega16U4__) || defined(__AVR_ATmega32U4__))\r
+                                       #define USB_PLL_PSC                (1 << PINDIV)\r
+                               #elif (defined(__AVR_AT90USB646__) || defined(__AVR_AT90USB647__) || defined(__AVR_ATmega32U6__))\r
+                                       #define USB_PLL_PSC                ((1 << PLLP2) | (1 << PLLP1))\r
+                               #elif (defined(__AVR_AT90USB1286__) || defined(__AVR_AT90USB1287__))\r
+                                       #define USB_PLL_PSC                ((1 << PLLP2) | (1 << PLLP0))\r
+                               #endif\r
+                       #endif\r
+                       \r
+                       #if !defined(USB_PLL_PSC)\r
+                               #error No PLL prescale value available for chosen F_CLOCK value and AVR model.\r
+                       #endif\r
                #endif\r
                \r
        /* Public Interface - May be used in end-application: */\r
                                 *\r
                                 *  \note This token is not available on AVR models which do not support both host and device modes.\r
                                 */\r
-                               #define USB_MODE_UID                       3\r
+                               #define USB_MODE_UID                   3\r
                        #endif\r
                        \r
                        /** Regulator disable option mask for \ref USB_Init(). This indicates that the internal 3.3V USB data pad\r
                                 *\r
                                 *  \note This token is not available on some AVR models which do not support hardware VBUS monitoring.\r
                                 */\r
-                               #define USB_VBUS_GetStatus()             ((USBSTA & (1 << VBUS)) ? true : false)\r
+                               #define USB_VBUS_GetStatus()        ((USBSTA & (1 << VBUS)) ? true : false)\r
                        #endif\r
 \r
                        /** Detaches the device from the USB bus. This has the effect of removing the device from any\r