More AVR32 achitecture ports.
[pub/USBasp.git] / LUFA / Drivers / USB / LowLevel / Endpoint.h
index 6b16fd7..8431573 100644 (file)
                        #error Do not include this file directly. Include LUFA/Drivers/USB/USB.h instead.\r
                #endif\r
                \r
+               #if defined(__AVR32__) && !defined(__AVR32_EPREG_X)\r
+                       #define __AVR32_EPREG_X(x) ((volatile uint32_t*)AVR32_USBB_ ## x)[USB_SelectedEPNumber]                 \r
+               #endif\r
+\r
        /* Public Interface - May be used in end-application: */\r
                /* Macros: */\r
                        #if defined(__AVR32__) || defined(__DOXYGEN__)\r
                                        #if !defined(CONTROL_ONLY_DEVICE)\r
                                                #define Endpoint_GetCurrentEndpoint()     USB_SelectedEPNumber\r
                                                #define Endpoint_SelectEndpoint(epnum)    MACROS{ USB_SelectedEPNumber = (epnum); }MACROE                                       \r
-                                               #define Endpoint_IsReadWriteAllowed()     (__AVR32_EPREG_X(UESTA0) & AVR32_USBB_RWAL_MASK)\r
+                                               #define Endpoint_IsReadWriteAllowed()     (__AVR32_EPREG_X(UESTA0) & AVR32_USBB_RWALL_MASK)\r
                                        #else\r
                                                #define Endpoint_GetCurrentEndpoint()     ENDPOINT_CONTROLEP\r
                                                #define Endpoint_SelectEndpoint(epnum)    (void)(epnum)\r
                                        #endif\r
 \r
-                                       #define Endpoint_ResetFIFO(epnum)             MACROS{ AVR32_USBB.UERST |=  (AVR32_USBB_EPRST0_MASK << (epnum)); \\r
-                                                                                             AVR32_USBB.UERST &= ~(AVR32_USBB_EPRST0_MASK << (epnum));     }MACROE\r
-                                       #define Endpoint_EnableEndpoint()             MACROS{ AVR32_USBB.UERST |=  (AVR32_USBB_UERST_EPEN0_MASK << (epen)); }MACROE\r
-                                       #define Endpoint_DisableEndpoint()            MACROS{ AVR32_USBB.UERST &= ~(AVR32_USBB_UERST_EPEN0_MASK << (epen)); }MACROE\r
-                                       #define Endpoint_IsEnabled()                        ((AVR32_USBB.UERST & (AVR32_USBB_UERST_EPEN0_MASK << (epen))) ? true : false)\r
+                                       #define Endpoint_ResetFIFO(epnum)             MACROS{ AVR32_USBB.uerst |=  (AVR32_USBB_EPRST0_MASK << (epnum)); \\r
+                                                                                             AVR32_USBB.uerst &= ~(AVR32_USBB_EPRST0_MASK << (epnum));     }MACROE\r
+                                       #define Endpoint_EnableEndpoint()             MACROS{ AVR32_USBB.uerst |=  (AVR32_USBB_UERST_EPEN0_MASK << USB_SelectedEPNumber); }MACROE\r
+                                       #define Endpoint_DisableEndpoint()            MACROS{ AVR32_USBB.uerst &= ~(AVR32_USBB_UERST_EPEN0_MASK << USB_SelectedEPNumber); }MACROE\r
+                                       #define Endpoint_IsEnabled()                        ((AVR32_USBB.uerst & (AVR32_USBB_UERST_EPEN0_MASK << USB_SelectedEPNumber)) ? true : false)\r
                                        \r
                                        #define Endpoint_IsConfigured()                     ((__AVR32_EPREG_X(UESTA0) & AVR32_USBB_UESTA0_CFGOK_MASK) ? true : false)\r
                                        #define Endpoint_GetEndpointInterrupts()             (AVR32_USBB.UDINT >> AVR32_USBB_EP0INT)\r