Index: uspace/drv/ohci/iface.c
===================================================================
--- uspace/drv/ohci/iface.c	(revision bab7163525ed97f10f31ea301461846fc39725ec)
+++ uspace/drv/ohci/iface.c	(revision b0beee8234f973c71ea5675425ade580ec0e65a2)
@@ -67,5 +67,5 @@
   return EOK;
 }
-
+/*----------------------------------------------------------------------------*/
 /** Release default address.
  *
@@ -75,9 +75,12 @@
 static int release_default_address(ddf_fun_t *fun)
 {
-	UNSUPPORTED("release_default_address");
-
-	return ENOTSUP;
-}
-
+  assert(fun);
+  hc_t *hc = fun_to_hc(fun);
+  assert(hc);
+  usb_log_debug("Default address release.\n");
+  device_keeper_release_default(&hc->manager);
+  return EOK;
+}
+/*----------------------------------------------------------------------------*/
 /** Found free USB address.
  *
@@ -90,9 +93,17 @@
     usb_address_t *address)
 {
-	UNSUPPORTED("request_address");
-
-	return ENOTSUP;
-}
-
+  assert(fun);
+  hc_t *hc = fun_to_hc(fun);
+  assert(hc);
+  assert(address);
+
+  usb_log_debug("Address request with speed %d.\n", speed);
+  *address = device_keeper_request(&hc->manager, speed);
+  usb_log_debug("Address request with result: %d.\n", *address);
+  if (*address <= 0)
+    return *address;
+  return EOK;
+}
+/*----------------------------------------------------------------------------*/
 /** Bind USB address with device devman handle.
  *
@@ -105,9 +116,12 @@
     usb_address_t address, devman_handle_t handle)
 {
-	UNSUPPORTED("bind_address");
-
-	return ENOTSUP;
-}
-
+  assert(fun);
+  hc_t *hc = fun_to_hc(fun);
+  assert(hc);
+  usb_log_debug("Address bind %d-%d.\n", address, handle);
+  device_keeper_bind(&hc->manager, address, handle);
+  return EOK;
+}
+/*----------------------------------------------------------------------------*/
 /** Release previously requested address.
  *
@@ -118,7 +132,10 @@
 static int release_address(ddf_fun_t *fun, usb_address_t address)
 {
-	UNSUPPORTED("release_address");
-
-	return ENOTSUP;
+  assert(fun);
+  hc_t *hc = fun_to_hc(fun);
+  assert(hc);
+  usb_log_debug("Address release %d.\n", address);
+  device_keeper_release(&hc->manager, address);
+  return EOK;
 }
 
