- uint8_t UPCFG0XTemp[PIPE_TOTAL_PIPES];
- uint8_t UPCFG1XTemp[PIPE_TOTAL_PIPES];
- uint8_t UPCFG2XTemp[PIPE_TOTAL_PIPES];
- uint8_t UPCONXTemp[PIPE_TOTAL_PIPES];
- uint8_t UPINRQXTemp[PIPE_TOTAL_PIPES];
- uint8_t UPIENXTemp[PIPE_TOTAL_PIPES];
-
- for (uint8_t PNum = 0; PNum < PIPE_TOTAL_PIPES; PNum++)
- {
- Pipe_SelectPipe(PNum);
- UPCFG0XTemp[PNum] = UPCFG0X;
- UPCFG1XTemp[PNum] = UPCFG1X;
- UPCFG2XTemp[PNum] = UPCFG2X;
- UPCONXTemp[PNum] = UPCONX;
- UPINRQXTemp[PNum] = UPINRQX;
- UPIENXTemp[PNum] = UPIENX;
- }
-
- UPCFG0XTemp[Number] = ((Type << EPTYPE0) | Token | ((EndpointNumber & PIPE_EPNUM_MASK) << PEPNUM0));
- UPCFG1XTemp[Number] = ((1 << ALLOC) | Banks | Pipe_BytesToEPSizeMask(Size));
- UPCFG2XTemp[Number] = 0;
- UPCONXTemp[Number] = (1 << INMODE);
- UPINRQXTemp[Number] = 0;
- UPIENXTemp[Number] = 0;
-
- for (uint8_t PNum = 0; PNum < PIPE_TOTAL_PIPES; PNum++)
+#if defined(ORDERED_EP_CONFIG)
+ Pipe_SelectPipe(Number);
+ Pipe_EnablePipe();
+
+ UPCFG1X = 0;
+
+ UPCFG0X = ((Type << EPTYPE0) | Token | ((EndpointNumber & PIPE_EPNUM_MASK) << PEPNUM0));
+ UPCFG1X = ((1 << ALLOC) | Banks | Pipe_BytesToEPSizeMask(Size));
+
+ Pipe_SetInfiniteINRequests();
+
+ return Pipe_IsConfigured();
+#else
+ for (uint8_t PNum = Number; PNum < PIPE_TOTAL_PIPES; PNum++)