Index: uspace/lib/usbhost/include/usb/host/ddf_helpers.h
===================================================================
--- uspace/lib/usbhost/include/usb/host/ddf_helpers.h	(revision 0ef03d728764e7bd7a88146ca3db68518857ba1c)
+++ uspace/lib/usbhost/include/usb/host/ddf_helpers.h	(revision daf59d16b9e56c96d5d654133e3da6dac899623d)
@@ -40,5 +40,5 @@
 #include <usbhc_iface.h>
 
-int hcd_ddf_add_device(hcd_t *instance, ddf_dev_t *parent,
+int hcd_ddf_add_usb_device(ddf_dev_t *parent,
     usb_address_t address, usb_speed_t speed, const char *name,
     const match_id_list_t *mids);
Index: uspace/lib/usbhost/include/usb/host/hcd.h
===================================================================
--- uspace/lib/usbhost/include/usb/host/hcd.h	(revision 0ef03d728764e7bd7a88146ca3db68518857ba1c)
+++ uspace/lib/usbhost/include/usb/host/hcd.h	(revision daf59d16b9e56c96d5d654133e3da6dac899623d)
@@ -57,6 +57,4 @@
 	/** Endpoint manager. */
 	usb_endpoint_manager_t ep_manager;
-	/** Added devices */
-	list_t devices;
 
 	/** Device specific driver data. */
Index: uspace/lib/usbhost/src/ddf_helpers.c
===================================================================
--- uspace/lib/usbhost/src/ddf_helpers.c	(revision 0ef03d728764e7bd7a88146ca3db68518857ba1c)
+++ uspace/lib/usbhost/src/ddf_helpers.c	(revision daf59d16b9e56c96d5d654133e3da6dac899623d)
@@ -45,4 +45,5 @@
 typedef struct hc_dev {
 	ddf_fun_t *hc_fun;
+	list_t devices;
 } hc_dev_t;
 
@@ -118,11 +119,10 @@
 };
 
-int hcd_ddf_add_device(hcd_t *instance, ddf_dev_t *parent,
+int hcd_ddf_add_usb_device(ddf_dev_t *parent,
     usb_address_t address, usb_speed_t speed, const char *name,
     const match_id_list_t *mids)
 {
-	assert(instance);
 	assert(parent);
-	hc_dev_t *hc_dev = ddf_dev_data_get(parent);
+	hc_dev_t *hc_dev = dev_to_hc_dev(parent);
 	devman_handle_t hc_handle = ddf_fun_get_handle(hc_dev->hc_fun);
 
@@ -154,11 +154,11 @@
 	}
 
-	ret = usb_device_manager_bind_address(&instance->dev_manager,
+	ret = usb_device_manager_bind_address(&dev_to_hcd(parent)->dev_manager,
 	    address, ddf_fun_get_handle(fun));
 	if (ret != EOK)
-		usb_log_warning("Failed to bind root hub address: %s.\n",
+		usb_log_warning("Failed to bind address: %s.\n",
 		    str_error(ret));
 
-	list_append(&info->link, &instance->devices);
+	list_append(&info->link, &hc_dev->devices);
 	return EOK;
 }
@@ -210,6 +210,5 @@
 	add_match_id(&mid_list, &mid);
 
-	ret = hcd_ddf_add_device(
-	    instance, device, *address, speed, "rh", &mid_list);
+	ret = hcd_ddf_add_usb_device(device, *address, speed, "rh", &mid_list);
 	CHECK_RET_UNREG_RETURN(ret,
 	    "Failed to add hcd device: %s.\n", str_error(ret));
@@ -240,4 +239,5 @@
 		return ENOMEM;
 	}
+	list_initialize(&instance->devices);
 
 #define CHECK_RET_DEST_FREE_RETURN(ret, message...) \
Index: uspace/lib/usbhost/src/hcd.c
===================================================================
--- uspace/lib/usbhost/src/hcd.c	(revision 0ef03d728764e7bd7a88146ca3db68518857ba1c)
+++ uspace/lib/usbhost/src/hcd.c	(revision daf59d16b9e56c96d5d654133e3da6dac899623d)
@@ -55,5 +55,4 @@
 	usb_device_manager_init(&hcd->dev_manager, max_speed);
 	usb_endpoint_manager_init(&hcd->ep_manager, bandwidth, bw_count);
-	list_initialize(&hcd->devices);
 
 	hcd->private_data = NULL;
