Index: uspace/lib/usb/include/usb/request.h
===================================================================
--- uspace/lib/usb/include/usb/request.h	(revision 64fea02b3a398193cf6c055c00be47f314631de1)
+++ uspace/lib/usb/include/usb/request.h	(revision 820d9bc525f17534acb8f4e1819bbbd3b60536e9)
@@ -113,14 +113,4 @@
 static_assert(sizeof(usb_device_request_setup_packet_t) == USB_SETUP_PACKET_SIZE);
 
-/** How many toggles need to be reset */
-typedef enum {
-	RESET_NONE,
-	RESET_EP,
-	RESET_ALL
-} toggle_reset_mode_t;
-
-toggle_reset_mode_t usb_request_get_toggle_reset_mode(
-    const usb_device_request_setup_packet_t *request);
-
 #define GET_DEVICE_DESC(size) \
 { \
Index: uspace/lib/usb/src/usb.c
===================================================================
--- uspace/lib/usb/src/usb.c	(revision 64fea02b3a398193cf6c055c00be47f314631de1)
+++ uspace/lib/usb/src/usb.c	(revision 820d9bc525f17534acb8f4e1819bbbd3b60536e9)
@@ -119,43 +119,4 @@
 }
 
-/** Check setup packet data for signs of toggle reset.
- *
- * @param[in] requst Setup requst data.
- *
- * @retval -1 No endpoints need reset.
- * @retval 0 All endpoints need reset.
- * @retval >0 Specified endpoint needs reset.
- *
- */
-toggle_reset_mode_t usb_request_get_toggle_reset_mode(
-    const usb_device_request_setup_packet_t *request)
-{
-	assert(request);
-	switch (request->request)
-	{
-	/* Clear Feature ENPOINT_STALL */
-	case USB_DEVREQ_CLEAR_FEATURE: /*resets only cleared ep */
-		/* 0x2 ( HOST to device | STANDART | TO ENPOINT) */
-		if ((request->request_type == 0x2) &&
-		    (request->value == USB_FEATURE_ENDPOINT_HALT))
-			return RESET_EP;
-		break;
-	case USB_DEVREQ_SET_CONFIGURATION:
-	case USB_DEVREQ_SET_INTERFACE:
-		/* Recipient must be device, this resets all endpoints,
-		 * In fact there should be no endpoints but EP 0 registered
-		 * as different interfaces use different endpoints,
-		 * unless you're changing configuration or alternative
-		 * interface of an already setup device. */
-		if (!(request->request_type & SETUP_REQUEST_TYPE_DEVICE_TO_HOST))
-			return RESET_ALL;
-		break;
-	default:
-		break;
-	}
-
-	return RESET_NONE;
-}
-
 /**
  * @}
Index: uspace/lib/usbhost/include/usb/host/hcd.h
===================================================================
--- uspace/lib/usbhost/include/usb/host/hcd.h	(revision 64fea02b3a398193cf6c055c00be47f314631de1)
+++ uspace/lib/usbhost/include/usb/host/hcd.h	(revision 820d9bc525f17534acb8f4e1819bbbd3b60536e9)
@@ -112,4 +112,11 @@
     const char *);
 
+/** How many toggles need to be reset */
+typedef enum {
+	RESET_NONE,
+	RESET_EP,
+	RESET_ALL
+} toggle_reset_mode_t;
+
 #endif
 
Index: uspace/lib/usbhost/src/hcd.c
===================================================================
--- uspace/lib/usbhost/src/hcd.c	(revision 64fea02b3a398193cf6c055c00be47f314631de1)
+++ uspace/lib/usbhost/src/hcd.c	(revision 820d9bc525f17534acb8f4e1819bbbd3b60536e9)
@@ -147,4 +147,43 @@
 }
 
+/** Check setup packet data for signs of toggle reset.
+ *
+ * @param[in] requst Setup requst data.
+ *
+ * @retval -1 No endpoints need reset.
+ * @retval 0 All endpoints need reset.
+ * @retval >0 Specified endpoint needs reset.
+ *
+ */
+static toggle_reset_mode_t hcd_get_request_toggle_reset_mode(
+    const usb_device_request_setup_packet_t *request)
+{
+	assert(request);
+	switch (request->request)
+	{
+	/* Clear Feature ENPOINT_STALL */
+	case USB_DEVREQ_CLEAR_FEATURE: /*resets only cleared ep */
+		/* 0x2 ( HOST to device | STANDART | TO ENPOINT) */
+		if ((request->request_type == 0x2) &&
+		    (request->value == USB_FEATURE_ENDPOINT_HALT))
+			return RESET_EP;
+		break;
+	case USB_DEVREQ_SET_CONFIGURATION:
+	case USB_DEVREQ_SET_INTERFACE:
+		/* Recipient must be device, this resets all endpoints,
+		 * In fact there should be no endpoints but EP 0 registered
+		 * as different interfaces use different endpoints,
+		 * unless you're changing configuration or alternative
+		 * interface of an already setup device. */
+		if (!(request->request_type & SETUP_REQUEST_TYPE_DEVICE_TO_HOST))
+			return RESET_ALL;
+		break;
+	default:
+		break;
+	}
+
+	return RESET_NONE;
+}
+
 /** Prepare generic usb_transfer_batch and schedule it.
  * @param hcd Host controller driver.
@@ -207,5 +246,5 @@
 	if (ep->transfer_type == USB_TRANSFER_CONTROL)
 		batch->toggle_reset_mode
-			= usb_request_get_toggle_reset_mode(&batch->setup.packet);
+			= hcd_get_request_toggle_reset_mode(&batch->setup.packet);
 
 	const int ret = hcd->ops.schedule(hcd, batch);
