Index: uspace/lib/usbhost/src/bus.c
===================================================================
--- uspace/lib/usbhost/src/bus.c	(revision 1ed3eb446a3e26cd5f83359306aa7e05b1fc14ad)
+++ uspace/lib/usbhost/src/bus.c	(revision 8a98e4a4c0ae9810ab0be22de0721b0664c489c1)
@@ -97,4 +97,28 @@
 
 /**
+ * Setup devices Transaction Translation.
+ *
+ * This applies for Low/Full speed devices under High speed hub only. Other
+ * devices just inherit TT from the hub.
+ *
+ * Roothub must be handled specially.
+ */
+static void device_setup_tt(device_t *dev)
+{
+	if (!dev->hub)
+		return;
+
+	if (dev->hub->speed == USB_SPEED_HIGH && usb_speed_is_11(dev->speed)) {
+		/* For LS devices under HS hub */
+		dev->tt.dev = dev->hub;
+		dev->tt.port = dev->port;
+	}
+	else {
+		/* Inherit hub's TT */
+		dev->tt = dev->hub->tt;
+	}
+}
+
+/**
  * Invoke the device_enumerate bus operation.
  *
@@ -111,4 +135,6 @@
 	if (dev->online)
 		return EINVAL;
+
+	device_setup_tt(dev);
 
 	const int r = ops->device_enumerate(dev);
Index: uspace/lib/usbhost/src/hcd.c
===================================================================
--- uspace/lib/usbhost/src/hcd.c	(revision 1ed3eb446a3e26cd5f83359306aa7e05b1fc14ad)
+++ uspace/lib/usbhost/src/hcd.c	(revision 8a98e4a4c0ae9810ab0be22de0721b0664c489c1)
@@ -426,28 +426,4 @@
 	}
 	return EOK;
-}
-
-/**
- * Setup devices Transaction Translation.
- *
- * This applies for Low/Full speed devices under High speed hub only. Other
- * devices just inherit TT from the hub.
- *
- * Roothub must be handled specially.
- */
-void hcd_setup_device_tt(device_t *dev)
-{
-	if (!dev->hub)
-		return;
-
-	if (dev->hub->speed == USB_SPEED_HIGH && usb_speed_is_11(dev->speed)) {
-		/* For LS devices under HS hub */
-		dev->tt.address = dev->hub->address;
-		dev->tt.port = dev->port;
-	}
-	else {
-		/* Inherit hub's TT */
-		dev->tt = dev->hub->tt;
-	}
 }
 
Index: uspace/lib/usbhost/src/usb2_bus.c
===================================================================
--- uspace/lib/usbhost/src/usb2_bus.c	(revision 1ed3eb446a3e26cd5f83359306aa7e05b1fc14ad)
+++ uspace/lib/usbhost/src/usb2_bus.c	(revision 8a98e4a4c0ae9810ab0be22de0721b0664c489c1)
@@ -196,14 +196,4 @@
 	usb_log_debug("Found new %s speed USB device.", usb_str_speed(dev->speed));
 
-	if (!dev->hub) {
-		/* The device is the roothub */
-		dev->tt = (usb_tt_address_t) {
-			.address = -1,
-			.port = 0,
-		};
-	} else {
-		hcd_setup_device_tt(dev);
-	}
-
 	/* Assign an address to the device */
 	if ((err = address_device(dev))) {
