Index: uspace/lib/usb/include/usb/hub.h
===================================================================
--- uspace/lib/usb/include/usb/hub.h	(revision e40b9f002b37ebf3adcba15bb001197218bf047f)
+++ uspace/lib/usb/include/usb/hub.h	(revision 6427cf67e61dac03ff95a479691282c98e8bd5f3)
@@ -52,8 +52,8 @@
 } usb_hc_attached_device_t;
 
-int usb_hc_reserve_default_address(usb_hc_connection_t *);
+int usb_hc_reserve_default_address(usb_hc_connection_t *, bool);
 int usb_hc_release_default_address(usb_hc_connection_t *);
 
-usb_address_t usb_hc_request_address(usb_hc_connection_t *);
+usb_address_t usb_hc_request_address(usb_hc_connection_t *, bool);
 int usb_hc_register_device(usb_hc_connection_t *,
     const usb_hc_attached_device_t *);
Index: uspace/lib/usb/src/hub.c
===================================================================
--- uspace/lib/usb/src/hub.c	(revision e40b9f002b37ebf3adcba15bb001197218bf047f)
+++ uspace/lib/usb/src/hub.c	(revision 6427cf67e61dac03ff95a479691282c98e8bd5f3)
@@ -55,11 +55,12 @@
  * @return Error code.
  */
-int usb_hc_reserve_default_address(usb_hc_connection_t *connection)
+int usb_hc_reserve_default_address(usb_hc_connection_t *connection,
+    bool full_speed)
 {
 	CHECK_CONNECTION(connection);
 
-	return async_req_1_0(connection->hc_phone,
+	return async_req_2_0(connection->hc_phone,
 	    DEV_IFACE_ID(USBHC_DEV_IFACE),
-	    IPC_M_USBHC_RESERVE_DEFAULT_ADDRESS);
+	    IPC_M_USBHC_RESERVE_DEFAULT_ADDRESS, full_speed);
 }
 
@@ -83,12 +84,14 @@
  * @return Assigned USB address or negative error code.
  */
-usb_address_t usb_hc_request_address(usb_hc_connection_t *connection)
+usb_address_t usb_hc_request_address(usb_hc_connection_t *connection,
+    bool full_speed)
 {
 	CHECK_CONNECTION(connection);
 
 	sysarg_t address;
-	int rc = async_req_1_1(connection->hc_phone,
+	int rc = async_req_2_1(connection->hc_phone,
 	    DEV_IFACE_ID(USBHC_DEV_IFACE),
-	    IPC_M_USBHC_REQUEST_ADDRESS, &address);
+	    IPC_M_USBHC_REQUEST_ADDRESS, full_speed,
+	    &address);
 	if (rc != EOK) {
 		return (usb_address_t) rc;
