-       for (uint8_t PipeNum = 1; PipeNum < PIPE_TOTAL_PIPES; PipeNum++)\r
-       {\r
-               uint16_t Size;\r
-               uint8_t  Type;\r
-               uint8_t  Token;\r
-               uint8_t  EndpointAddress;\r
-               bool     DoubleBanked;\r
-\r
-               if (PipeNum == AOAInterfaceInfo->Config.DataINPipeNumber)\r
-               {\r
-                       Size            = le16_to_cpu(DataINEndpoint->EndpointSize);\r
-                       EndpointAddress = DataINEndpoint->EndpointAddress;\r
-                       Token           = PIPE_TOKEN_IN;\r
-                       Type            = EP_TYPE_BULK;\r
-                       DoubleBanked    = AOAInterfaceInfo->Config.DataINPipeDoubleBank;\r
-\r
-                       AOAInterfaceInfo->State.DataINPipeSize = DataINEndpoint->EndpointSize;\r
-               }\r
-               else if (PipeNum == AOAInterfaceInfo->Config.DataOUTPipeNumber)\r
-               {\r
-                       Size            = le16_to_cpu(DataOUTEndpoint->EndpointSize);\r
-                       EndpointAddress = DataOUTEndpoint->EndpointAddress;\r
-                       Token           = PIPE_TOKEN_OUT;\r
-                       Type            = EP_TYPE_BULK;\r
-                       DoubleBanked    = AOAInterfaceInfo->Config.DataOUTPipeDoubleBank;\r
-\r
-                       AOAInterfaceInfo->State.DataOUTPipeSize = DataOUTEndpoint->EndpointSize;\r
-               }\r
-               else\r
-               {\r
-                       continue;\r
-               }\r
-               \r
-               if (!(Pipe_ConfigurePipe(PipeNum, Type, Token, EndpointAddress, Size,\r
-                                        DoubleBanked ? PIPE_BANK_DOUBLE : PIPE_BANK_SINGLE)))\r
-               {\r
-                       return AOA_ENUMERROR_PipeConfigurationFailed;\r
-               }\r
-       }\r
+       AOAInterfaceInfo->Config.DataINPipe.Size  = le16_to_cpu(DataINEndpoint->EndpointSize);\r
+       AOAInterfaceInfo->Config.DataINPipe.EndpointAddress = DataINEndpoint->EndpointAddress;\r
+       AOAInterfaceInfo->Config.DataINPipe.Type  = EP_TYPE_BULK;\r
+       \r
+       AOAInterfaceInfo->Config.DataOUTPipe.Size = le16_to_cpu(DataOUTEndpoint->EndpointSize);\r
+       AOAInterfaceInfo->Config.DataOUTPipe.EndpointAddress = DataOUTEndpoint->EndpointAddress;\r
+       AOAInterfaceInfo->Config.DataOUTPipe.Type = EP_TYPE_BULK;\r
+       \r
+       if (!(Pipe_ConfigurePipeTable(&AOAInterfaceInfo->Config.DataINPipe, 1)))\r
+         return false;\r
+       \r
+       if (!(Pipe_ConfigurePipeTable(&AOAInterfaceInfo->Config.DataOUTPipe, 1)))\r
+         return false;\r