Index: uspace/drv/bus/usb/xhci/bus.c
===================================================================
--- uspace/drv/bus/usb/xhci/bus.c	(revision c10daa82dbe942a6c5d2311e2cf11aac4ce52e01)
+++ uspace/drv/bus/usb/xhci/bus.c	(revision 063dfe863508dd89880d6cd9d69eb9cb5a73e95d)
@@ -110,5 +110,5 @@
 }
 
-static int hashed_device_create(xhci_bus_t *bus, hashed_device_t **hashed_dev)
+static int hashed_device_create(xhci_bus_t *bus, hashed_device_t **hashed_dev, usb_address_t address)
 {
 	int res;
@@ -119,10 +119,8 @@
 	}
 
-	res = xhci_device_init(dev, bus);
+	res = xhci_device_init(dev, bus, address);
 	if (res != EOK) {
 		goto err_xhci_dev_init;
 	}
-
-	// TODO: Set device data.
 
 	hashed_device_t *ret_dev = (hashed_device_t *) malloc(sizeof(hashed_device_t));
@@ -166,5 +164,5 @@
 
 	if (res == ENOENT) {
-		res = hashed_device_create(bus, &hashed_dev);
+		res = hashed_device_create(bus, &hashed_dev, ep->target.address);
 
 		if (res != EOK)
Index: uspace/drv/bus/usb/xhci/endpoint.c
===================================================================
--- uspace/drv/bus/usb/xhci/endpoint.c	(revision c10daa82dbe942a6c5d2311e2cf11aac4ce52e01)
+++ uspace/drv/bus/usb/xhci/endpoint.c	(revision 063dfe863508dd89880d6cd9d69eb9cb5a73e95d)
@@ -52,5 +52,5 @@
 	xhci_ep->device = NULL;
 
-	usb_log_debug("XHCI Endpoint %d:%d initialized.", ep->target.address, ep->target.endpoint);
+	usb_log_debug("Endpoint %d:%d initialized.", ep->target.address, ep->target.endpoint);
 
 	return EOK;
@@ -65,11 +65,15 @@
 	endpoint_t *ep = &xhci_ep->base;
 
-	usb_log_debug("XHCI Endpoint %d:%d destroyed.", ep->target.address, ep->target.endpoint);
+	usb_log_debug("Endpoint %d:%d destroyed.", ep->target.address, ep->target.endpoint);
 }
 
-int xhci_device_init(xhci_device_t *dev, xhci_bus_t *bus)
+int xhci_device_init(xhci_device_t *dev, xhci_bus_t *bus, usb_address_t address)
 {
 	memset(&dev->endpoints, 0, sizeof(dev->endpoints));
 	dev->active_endpoint_count = 0;
+	dev->address = address;
+	dev->slot_id = 0;
+
+	usb_log_debug("Device %d initialized.", dev->address);
 	return EOK;
 }
@@ -78,4 +82,5 @@
 {
 	// TODO: Check that all endpoints are dead.
+	usb_log_debug("Device %d destroyed.", dev->address);
 }
 
Index: uspace/drv/bus/usb/xhci/endpoint.h
===================================================================
--- uspace/drv/bus/usb/xhci/endpoint.h	(revision c10daa82dbe942a6c5d2311e2cf11aac4ce52e01)
+++ uspace/drv/bus/usb/xhci/endpoint.h	(revision 063dfe863508dd89880d6cd9d69eb9cb5a73e95d)
@@ -79,5 +79,5 @@
 void xhci_endpoint_fini(xhci_endpoint_t *);
 
-int xhci_device_init(xhci_device_t *, xhci_bus_t *);
+int xhci_device_init(xhci_device_t *, xhci_bus_t *, usb_address_t);
 void xhci_device_fini(xhci_device_t *);
 
