Index: uspace/lib/drv/generic/remote_usbhc.c
===================================================================
--- uspace/lib/drv/generic/remote_usbhc.c	(revision 6f04905f9ddbb7f611f70524726f8a97cf833c6f)
+++ uspace/lib/drv/generic/remote_usbhc.c	(revision b5ec3473e2a5d93339149667e5df2a491a35d7dc)
@@ -55,4 +55,5 @@
 static void remote_usbhc_release_default_address(device_t *, void *, ipc_callid_t, ipc_call_t *);
 static void remote_usbhc_request_address(device_t *, void *, ipc_callid_t, ipc_call_t *);
+static void remote_usbhc_bind_address(device_t *, void *, ipc_callid_t, ipc_call_t *);
 static void remote_usbhc_release_address(device_t *, void *, ipc_callid_t, ipc_call_t *);
 //static void remote_usbhc(device_t *, void *, ipc_callid_t, ipc_call_t *);
@@ -68,4 +69,5 @@
 
 	remote_usbhc_request_address,
+	remote_usbhc_bind_address,
 	remote_usbhc_release_address,
 
@@ -197,4 +199,22 @@
 		ipc_answer_1(callid, EOK, (ipcarg_t) address);
 	}
+}
+
+void remote_usbhc_bind_address(device_t *device, void *iface,
+    ipc_callid_t callid, ipc_call_t *call)
+{
+	usbhc_iface_t *usb_iface = (usbhc_iface_t *) iface;
+
+	if (!usb_iface->bind_address) {
+		ipc_answer_0(callid, ENOTSUP);
+		return;
+	}
+
+	usb_address_t address = (usb_address_t) IPC_GET_ARG1(*call);
+	devman_handle_t handle = (devman_handle_t) IPC_GET_ARG2(*call);
+
+	int rc = usb_iface->bind_address(device, address, handle);
+
+	ipc_answer_0(callid, rc);
 }
 
Index: uspace/lib/drv/include/usbhc_iface.h
===================================================================
--- uspace/lib/drv/include/usbhc_iface.h	(revision 6f04905f9ddbb7f611f70524726f8a97cf833c6f)
+++ uspace/lib/drv/include/usbhc_iface.h	(revision b5ec3473e2a5d93339149667e5df2a491a35d7dc)
@@ -137,4 +137,14 @@
 	IPC_M_USBHC_REQUEST_ADDRESS,
 
+	/** Bind USB address with devman handle.
+	 * Parameters:
+	 * - USB address
+	 * - devman handle
+	 * Answer:
+	 * - EOK - address binded
+	 * - ENOENT - address is not in use
+	 */
+	IPC_M_USBHC_BIND_ADDRESS,
+
 	/** Release address in use.
 	 * Arguments:
@@ -223,4 +233,5 @@
 	int (*release_default_address)(device_t *);
 	int (*request_address)(device_t *, usb_address_t *);
+	int (*bind_address)(device_t *, usb_address_t, devman_handle_t);
 	int (*release_address)(device_t *, usb_address_t);
 
