Index: uspace/lib/usbhost/src/ddf_helpers.c
===================================================================
--- uspace/lib/usbhost/src/ddf_helpers.c	(revision 20eaa82bcd1e1ed452c2148cd68afde550e29457)
+++ uspace/lib/usbhost/src/ddf_helpers.c	(revision dbf32b10e7146a1f953c4eda94c63b8ac246f0ba)
@@ -86,16 +86,9 @@
 /** Register endpoint interface function.
  * @param fun DDF function.
- * @param address USB address of the device.
- * @param endpoint USB endpoint number to be registered.
- * @param transfer_type Endpoint's transfer type.
- * @param direction USB communication direction the endpoint is capable of.
- * @param max_packet_size Maximu size of packets the endpoint accepts.
- * @param interval Preferred timeout between communication.
+ * @param endpoint_desc Endpoint description.
  * @return Error code.
  */
 static int register_endpoint(
-    ddf_fun_t *fun, usb_endpoint_t endpoint,
-    usb_transfer_type_t transfer_type, usb_direction_t direction,
-    size_t max_packet_size, unsigned packets, unsigned interval)
+	ddf_fun_t *fun, usb_endpoint_desc_t *endpoint_desc)
 {
 	assert(fun);
@@ -105,23 +98,26 @@
 	assert(hcd->bus);
 	assert(dev);
-	const size_t size = max_packet_size;
+
+	const size_t size = endpoint_desc->max_packet_size;
 
 	usb_log_debug("Register endpoint %d:%d %s-%s %zuB %ums.\n",
-	    dev->address, endpoint, usb_str_transfer_type(transfer_type),
-	    usb_str_direction(direction), max_packet_size, interval);
-
-	return bus_add_ep(hcd->bus, dev, endpoint, direction, transfer_type,
-	    max_packet_size, packets, size);
-}
-
-/** Unregister endpoint interface function.
- * @param fun DDF function.
- * @param address USB address of the endpoint.
- * @param endpoint USB endpoint number.
- * @param direction Communication direction of the enpdoint to unregister.
- * @return Error code.
- */
+		dev->address, endpoint_desc->endpoint_no,
+		usb_str_transfer_type(endpoint_desc->transfer_type),
+		usb_str_direction(endpoint_desc->direction),
+		endpoint_desc->max_packet_size, endpoint_desc->usb2.polling_interval);
+
+	return bus_add_ep(hcd->bus, dev, endpoint_desc->endpoint_no,
+		endpoint_desc->direction, endpoint_desc->transfer_type,
+		endpoint_desc->max_packet_size, endpoint_desc->packets,
+		size);
+}
+
+ /** Unregister endpoint interface function.
+  * @param fun DDF function.
+  * @param endpoint_desc Endpoint description.
+  * @return Error code.
+  */
 static int unregister_endpoint(
-    ddf_fun_t *fun, usb_endpoint_t endpoint, usb_direction_t direction)
+	ddf_fun_t *fun, usb_endpoint_desc_t *endpoint_desc)
 {
 	assert(fun);
@@ -131,11 +127,14 @@
 	assert(hcd->bus);
 	assert(dev);
+
 	const usb_target_t target = {{
 		.address = dev->address,
-		.endpoint = endpoint
+		.endpoint = endpoint_desc->endpoint_no
 	}};
+
 	usb_log_debug("Unregister endpoint %d:%d %s.\n",
-	    dev->address, endpoint, usb_str_direction(direction));
-	return bus_remove_ep(hcd->bus, target, direction);
+		dev->address, endpoint_desc->endpoint_no,
+		usb_str_direction(endpoint_desc->direction));
+	return bus_remove_ep(hcd->bus, target, endpoint_desc->direction);
 }
 
