Index: uspace/drv/uhci/root_hub/port.c
===================================================================
--- uspace/drv/uhci/root_hub/port.c	(revision 86b39f7e0677ec9415e12ffd3438650c75dfa9db)
+++ uspace/drv/uhci/root_hub/port.c	(revision 62d982737884094b99362c3a66e893f92245b86f)
@@ -1,10 +1,8 @@
 
 #include <errno.h>
-//#include <usb/devreq.h> /* for usb_device_request_setup_packet_t */
 #include <usb/usb.h>
 #include <usb/usbdrv.h>
 
 #include "debug.h"
-#include "uhci.h"
 #include "port.h"
 #include "port_status.h"
@@ -50,17 +48,20 @@
 {
 	assert(port);
-	assert(port->hc);
+	assert(port->hc_phone);
 
 	uhci_print_info("Adding new device on port %d.\n", port->number);
 
-	uhci_t *uhci_instance = (uhci_t*)(port->hc->driver_data);
 
 	/* get default address */
-	usb_address_keeping_reserve_default(&uhci_instance->address_manager);
+	int ret = usb_drv_reserve_default_address(port->hc_phone);
+	if (ret != EOK) {
+		uhci_print_error("Failed to reserve default address.\n");
+		return ret;
+	}
 
-	const usb_address_t usb_address =
-	  usb_address_keeping_request(&uhci_instance->address_manager);
+	const usb_address_t usb_address = usb_drv_request_address(port->hc_phone);
 
 	if (usb_address <= 0) {
+		uhci_print_error("Recieved invalid address(%d).\n", usb_address);
 		return usb_address;
 	}
@@ -88,5 +89,5 @@
 
 	/* assign address to device */
-	int ret = usb_drv_req_set_address(port->hc_phone, 0, usb_address);
+	ret = usb_drv_req_set_address(port->hc_phone, 0, usb_address);
 
 
@@ -94,10 +95,18 @@
 		uhci_print_error("Failed(%d) to assign address to the device.\n", ret);
 		uhci_port_set_enabled(port, false);
-		usb_address_keeping_release_default(&uhci_instance->address_manager);
-		return ENOMEM;
+		int release = usb_drv_release_default_address(port->hc_phone);
+		if (release != EOK) {
+			uhci_print_fatal("Failed to release default address.\n");
+			return release;
+		}
+		return ret;
 	}
 
 	/* release default address */
-	usb_address_keeping_release_default(&uhci_instance->address_manager);
+	ret = usb_drv_release_default_address(port->hc_phone);
+	if (ret != EOK) {
+		uhci_print_fatal("Failed to release default address.\n");
+		return ret;
+	}
 
 	/* communicate and possibly report to devman */
@@ -113,4 +122,6 @@
 	}
 
+	/* TODO: bind the address here */
+
 	return EOK;
 }
@@ -119,5 +130,5 @@
 {
 	uhci_print_error("Don't know how to remove device %#x.\n",
-		port->attached_device);
+		(unsigned int)port->attached_device);
 	uhci_port_set_enabled(port, false);
 	return EOK;
Index: uspace/drv/uhci/root_hub/root_hub.c
===================================================================
--- uspace/drv/uhci/root_hub/root_hub.c	(revision 86b39f7e0677ec9415e12ffd3438650c75dfa9db)
+++ uspace/drv/uhci/root_hub/root_hub.c	(revision 62d982737884094b99362c3a66e893f92245b86f)
@@ -12,5 +12,5 @@
 int uhci_root_hub_init( uhci_root_hub_t *hub, device_t *hc, void *addr )
 {
-	assert( hub );
+	assert(hub);
 
 	/* allow access to root hub registers */
