Index: uspace/lib/usbhost/include/usb/host/ddf_helpers.h
===================================================================
--- uspace/lib/usbhost/include/usb/host/ddf_helpers.h	(revision 5995383cc4732976f61af14d1cb01c30ecda15e0)
+++ uspace/lib/usbhost/include/usb/host/ddf_helpers.h	(revision d7869d7e00b2e62dbfbb2c4a30abf9a95caa7e73)
@@ -49,4 +49,5 @@
 typedef int (*claim_t)(hcd_t *, ddf_dev_t *);
 typedef int (*driver_start_t)(hcd_t *, bool irq);
+typedef int (*setup_root_hub_t)(ddf_dev_t *);
 
 typedef void (*driver_stop_t)(hcd_t *);
@@ -68,4 +69,5 @@
 	irq_code_gen_t irq_code_gen;       /**< Generate IRQ handling code */
 	driver_start_t start;              /**< Start the HC */
+	setup_root_hub_t setup_root_hub;   /**< Setup the root hub */
 
 	/* Destruction sequence: */
@@ -78,5 +80,6 @@
 int hcd_ddf_setup_hc(ddf_dev_t *device);
 void hcd_ddf_clean_hc(ddf_dev_t *device);
-int hcd_ddf_setup_root_hub(ddf_dev_t *device);
+
+int hcd_setup_virtual_root_hub(ddf_dev_t *);
 
 hcd_t *dev_to_hcd(ddf_dev_t *dev);
Index: uspace/lib/usbhost/src/ddf_helpers.c
===================================================================
--- uspace/lib/usbhost/src/ddf_helpers.c	(revision 5995383cc4732976f61af14d1cb01c30ecda15e0)
+++ uspace/lib/usbhost/src/ddf_helpers.c	(revision d7869d7e00b2e62dbfbb2c4a30abf9a95caa7e73)
@@ -617,5 +617,5 @@
  * @return Error code
  */
-int hcd_ddf_setup_root_hub(ddf_dev_t *device)
+int hcd_setup_virtual_root_hub(ddf_dev_t *device)
 {
 	assert(device);
@@ -919,5 +919,6 @@
 	 * needs to be ready at this time.
 	 */
-	ret = hcd_ddf_setup_root_hub(device);
+	if (driver->setup_root_hub)
+		ret = driver->setup_root_hub(device);
 	if (ret != EOK) {
 		usb_log_error("Failed to setup HC root hub: %s.\n",
