Implementation of several key core USB driver functions for the new USB XMEGA devices.
[pub/lufa.git] / LUFA / Drivers / USB / Core / XMEGA / Endpoint_XMEGA.h
index e43422e..c444433 100644 (file)
        /* Private Interface - For use in library only: */\r
        #if !defined(__DOXYGEN__)\r
                /* Macros: */\r
-                       #define _ENDPOINT_GET_MAXSIZE(EPIndex)         _ENDPOINT_GET_MAXSIZE2(ENDPOINT_DETAILS_EP ## EPIndex)\r
-                       #define _ENDPOINT_GET_MAXSIZE2(EPDetails)      _ENDPOINT_GET_MAXSIZE3(EPDetails)\r
-                       #define _ENDPOINT_GET_MAXSIZE3(MaxSize, Banks) (MaxSize)\r
-\r
-                       #define _ENDPOINT_GET_BANKS(EPIndex)           _ENDPOINT_GET_BANKS2(ENDPOINT_DETAILS_EP ## EPIndex)\r
-                       #define _ENDPOINT_GET_BANKS2(EPDetails)        _ENDPOINT_GET_BANKS3(EPDetails)\r
-                       #define _ENDPOINT_GET_BANKS3(MaxSize, Banks)   (Banks)\r
-\r
-                       #if defined(USB_SERIES_4_AVR) || defined(USB_SERIES_6_AVR) || defined(USB_SERIES_7_AVR)\r
-                               #define ENDPOINT_DETAILS_MAXEP             7\r
-\r
-                               #define ENDPOINT_DETAILS_EP0               64,  1\r
-                               #define ENDPOINT_DETAILS_EP1               256, 2\r
-                               #define ENDPOINT_DETAILS_EP2               64,  2\r
-                               #define ENDPOINT_DETAILS_EP3               64,  2\r
-                               #define ENDPOINT_DETAILS_EP4               64,  2\r
-                               #define ENDPOINT_DETAILS_EP5               64,  2\r
-                               #define ENDPOINT_DETAILS_EP6               64,  2\r
-                       #else\r
-                               #define ENDPOINT_DETAILS_MAXEP             5\r
+                       #define _ENDPOINT_GET_MAXSIZE(EPIndex)         1023\r
+                       #define _ENDPOINT_GET_BANKS(EPIndex)           2\r
 \r
-                               #define ENDPOINT_DETAILS_EP0               64,  1\r
-                               #define ENDPOINT_DETAILS_EP1               64,  1\r
-                               #define ENDPOINT_DETAILS_EP2               64,  1\r
-                               #define ENDPOINT_DETAILS_EP3               64,  2\r
-                               #define ENDPOINT_DETAILS_EP4               64,  2\r
-                       #endif\r
+                       #define ENDPOINT_DETAILS_MAXEP                 16\r
 \r
                /* Inline Functions: */\r
                        static inline uint8_t Endpoint_BytesToEPSizeMask(const uint16_t Bytes) ATTR_WARN_UNUSED_RESULT ATTR_CONST\r
                        /** Endpoint data direction mask for \ref Endpoint_ConfigureEndpoint(). This indicates that the endpoint\r
                         *  should be initialized in the OUT direction - i.e. data flows from host to device.\r
                         */\r
-                       #define ENDPOINT_DIR_OUT                        (0 << EPDIR)\r
+                       #define ENDPOINT_DIR_OUT                        0 // TODO\r
 \r
                        /** Endpoint data direction mask for \ref Endpoint_ConfigureEndpoint(). This indicates that the endpoint\r
                         *  should be initialized in the IN direction - i.e. data flows from device to host.\r
                         */\r
-                       #define ENDPOINT_DIR_IN                         (1 << EPDIR)\r
+                       #define ENDPOINT_DIR_IN                         0 // TODO\r
                        //@}\r
                        \r
                        /** \name Endpoint Bank Mode Masks */\r
                         *  in slower transfers as only one USB device (the AVR or the host) can access the endpoint's\r
                         *  bank at the one time.\r
                         */\r
-                       #define ENDPOINT_BANK_SINGLE                    (0 << EPBK0)\r
+                       #define ENDPOINT_BANK_SINGLE                    0 // TODO\r
 \r
                        /** Mask for the bank mode selection for the \ref Endpoint_ConfigureEndpoint() macro. This indicates\r
                         *  that the endpoint should have two banks, which requires more USB FIFO memory but results\r
                         *  in faster transfers as one USB device (the AVR or the host) can access one bank while the other\r
                         *  accesses the second bank.\r
                         */\r
-                       #define ENDPOINT_BANK_DOUBLE                    (1 << EPBK0)\r
+                       #define ENDPOINT_BANK_DOUBLE                    0 // TODO\r
                        //@}\r
 \r
                        #if (!defined(FIXED_CONTROL_ENDPOINT_SIZE) || defined(__DOXYGEN__))\r