Index: uspace/lib/usb/include/usb/pipes.h
===================================================================
--- uspace/lib/usb/include/usb/pipes.h	(revision 3e9074f18e0a66fa0c60d9a3d0eb16769a2a3f3e)
+++ uspace/lib/usb/include/usb/pipes.h	(revision 52fb76e4130a05750ee5159b61953704d7736ccb)
@@ -82,4 +82,6 @@
 int usb_device_connection_initialize_from_device(usb_device_connection_t *,
     device_t *);
+int usb_device_connection_initialize(usb_device_connection_t *,
+    devman_handle_t, usb_address_t);
 
 int usb_endpoint_pipe_initialize(usb_endpoint_pipe_t *,
Index: uspace/lib/usb/src/pipes.c
===================================================================
--- uspace/lib/usb/src/pipes.c	(revision 3e9074f18e0a66fa0c60d9a3d0eb16769a2a3f3e)
+++ uspace/lib/usb/src/pipes.c	(revision 52fb76e4130a05750ee5159b61953704d7736ccb)
@@ -85,9 +85,32 @@
 	}
 
-	connection->hc_handle = hc_handle;
-	connection->address = my_address;
+	rc = usb_device_connection_initialize(connection,
+	    hc_handle, my_address);
+
+	return rc;
+}
+
+/** Initialize connection to USB device.
+ *
+ * @param connection Connection structure to be initialized.
+ * @param host_controller_handle Devman handle of host controller device is
+ * 	connected to.
+ * @param device_address Device USB address.
+ * @return Error code.
+ */
+int usb_device_connection_initialize(usb_device_connection_t *connection,
+    devman_handle_t host_controller_handle, usb_address_t device_address)
+{
+	assert(connection);
+
+	if ((device_address < 0) || (device_address >= USB11_ADDRESS_MAX)) {
+		return EINVAL;
+	}
+
+	connection->hc_handle = host_controller_handle;
+	connection->address = device_address;
+
 	return EOK;
 }
-
 
 /** Initialize USB endpoint pipe.
