\r
uint8_t USB_SelectedEndpoint = ENDPOINT_CONTROLEP;\r
\r
+\r
bool Endpoint_ConfigureEndpoint_Prv(const uint8_t Number,\r
const uint32_t UECFGXData)\r
{\r
-#if defined(CONTROL_ONLY_DEVICE) || defined(ORDERED_EP_CONFIG)\r
Endpoint_SelectEndpoint(Number);\r
Endpoint_EnableEndpoint();\r
\r
*((uint32_t*)AVR32_USBB_UECFG0)[USB_SelectedEndpoint] = UECFGXData;\r
\r
return Endpoint_IsConfigured();\r
-#else \r
- for (uint8_t EPNum = Number; EPNum < ENDPOINT_TOTAL_ENDPOINTS; EPNum++)\r
- {\r
- uint32_t UECFGXTemp;\r
- uint32_t UEIENXTemp;\r
-\r
- Endpoint_SelectEndpoint(EPNum);\r
- \r
- if (EPNum == Number)\r
- {\r
- UECFGXTemp = UECFGXData;\r
- UEIENXTemp = 0;\r
- }\r
- else\r
- {\r
- UECFGXTemp = *((uint32_t*)AVR32_USBB_UECFG0)[EPNum];\r
- UEIENXTemp = *((uint32_t*)AVR32_USBB_UEINT0)[EPNum];\r
- }\r
-\r
- if (!(UECFGXTemp & AVR32_USBB_ALLOC))\r
- continue;\r
-\r
- Endpoint_DisableEndpoint();\r
- *((uint32_t*)AVR32_USBB_UECFG0)[USB_SelectedEndpoint] &= ~AVR32_USBB_ALLOC;\r
-\r
- Endpoint_EnableEndpoint();\r
- *((uint32_t*)AVR32_USBB_UECFG0)[EPNum] = UECFGXTemp;\r
- *((uint32_t*)AVR32_USBB_UEINT0)[EPNum] = UEINTXTemp;\r
- \r
- if (!(Endpoint_IsConfigured()))\r
- return false; \r
- }\r
- \r
- Endpoint_SelectEndpoint(Number);\r
- return true;\r
-#endif\r
}\r
\r
void Endpoint_ClearEndpoints(void)\r
for (uint8_t EPNum = 0; EPNum < ENDPOINT_TOTAL_ENDPOINTS; EPNum++)\r
{\r
Endpoint_SelectEndpoint(EPNum);\r
- UEIENX = 0;\r
- UEINTX = 0;\r
- UECFG1X = 0;\r
+ *((uint32_t*)AVR32_USBB_UECFG0)[USB_SelectedEndpoint] = 0;\r
Endpoint_DisableEndpoint();\r
}\r
}\r