Index: uspace/lib/drv/include/ddf/interrupt.h
===================================================================
--- uspace/lib/drv/include/ddf/interrupt.h	(revision 41df71f99dd4001594df602dcc612186bdf02430)
+++ uspace/lib/drv/include/ddf/interrupt.h	(revision f9d0a86c86defda4d9f30fbb4f7217a75048bf8b)
@@ -36,5 +36,4 @@
 #define DDF_INTERRUPT_H_
 
-#include <libarch/common.h>
 #include <types/common.h>
 #include <abi/ddi/irq.h>
Index: uspace/lib/drv/include/usb_iface.h
===================================================================
--- uspace/lib/drv/include/usb_iface.h	(revision 41df71f99dd4001594df602dcc612186bdf02430)
+++ uspace/lib/drv/include/usb_iface.h	(revision f9d0a86c86defda4d9f30fbb4f7217a75048bf8b)
@@ -40,7 +40,93 @@
 #include "ddf/driver.h"
 #include <async.h>
-#include <usb/usb.h>
 
 typedef async_sess_t usb_dev_session_t;
+
+/** USB speeds. */
+typedef enum {
+	/** USB 1.1 low speed (1.5Mbits/s). */
+	USB_SPEED_LOW,
+	/** USB 1.1 full speed (12Mbits/s). */
+	USB_SPEED_FULL,
+	/** USB 2.0 high speed (480Mbits/s). */
+	USB_SPEED_HIGH,
+	/** USB 3.0 super speed (5Gbits/s). */
+	USB_SPEED_SUPER,
+	/** Psuedo-speed serving as a boundary. */
+	USB_SPEED_MAX
+} usb_speed_t;
+
+/** USB endpoint number type.
+ * Negative values could be used to indicate error.
+ */
+typedef int16_t usb_endpoint_t;
+
+/** USB address type.
+ * Negative values could be used to indicate error.
+ */
+typedef int16_t usb_address_t;
+
+/** USB address for the purposes of Transaction Translation.
+ */
+typedef struct {
+	usb_address_t address;
+	unsigned port;
+} usb_tt_address_t;
+
+/** USB transfer type. */
+typedef enum {
+	USB_TRANSFER_CONTROL = 0,
+	USB_TRANSFER_ISOCHRONOUS = 1,
+	USB_TRANSFER_BULK = 2,
+	USB_TRANSFER_INTERRUPT = 3
+} usb_transfer_type_t;
+
+/** USB data transfer direction. */
+typedef enum {
+	USB_DIRECTION_IN,
+	USB_DIRECTION_OUT,
+	USB_DIRECTION_BOTH
+} usb_direction_t;
+
+/** USB complete address type.
+ * Pair address + endpoint is identification of transaction recipient.
+ */
+typedef union {
+	struct {
+		usb_address_t address;
+		usb_endpoint_t endpoint;
+	} __attribute__((packed));
+	uint32_t packed;
+} usb_target_t;
+
+/** Description of usb endpoint.
+ */
+typedef struct {
+	/** Endpoint number. */
+	usb_endpoint_t endpoint_no;
+
+	/** Endpoint transfer type. */
+	usb_transfer_type_t transfer_type;
+
+	/** Endpoint direction. */
+	usb_direction_t direction;
+
+	/** Maximum packet size for the endpoint. */
+	size_t max_packet_size;
+
+	/** Number of packets per frame/uframe.
+	 * Only valid for HS INT and ISO transfers. All others should set to 1*/
+	unsigned packets;
+
+	struct {
+		unsigned polling_interval;
+	} usb2;
+
+	struct {
+		unsigned max_burst;
+		unsigned max_streams;
+	} usb3;
+} usb_endpoint_desc_t;
+
 
 extern usb_dev_session_t *usb_dev_connect(devman_handle_t);
Index: uspace/lib/drv/include/usbhc_iface.h
===================================================================
--- uspace/lib/drv/include/usbhc_iface.h	(revision 41df71f99dd4001594df602dcc612186bdf02430)
+++ uspace/lib/drv/include/usbhc_iface.h	(revision f9d0a86c86defda4d9f30fbb4f7217a75048bf8b)
@@ -41,6 +41,6 @@
 
 #include "ddf/driver.h"
+#include "usb_iface.h"
 #include <async.h>
-#include <usb/usb.h>
 
 extern int usbhc_reserve_default_address(async_exch_t *, usb_speed_t);
@@ -57,9 +57,6 @@
     size_t);
 
-/** Defined in usb/host/usb_transfer_batch.h */
-typedef struct usb_transfer_batch usb_transfer_batch_t;
-
-/** Callback for outgoing transfer - clone of usb_transfer_batch_callback_t */
-typedef int (*usbhc_iface_transfer_callback_t)(usb_transfer_batch_t *);
+/** Callback for outgoing transfer */
+typedef int (*usbhc_iface_transfer_callback_t)(void *, int, size_t);
 
 /** USB device communication interface. */
Index: uspace/lib/drv/include/usbhid_iface.h
===================================================================
--- uspace/lib/drv/include/usbhid_iface.h	(revision 41df71f99dd4001594df602dcc612186bdf02430)
+++ uspace/lib/drv/include/usbhid_iface.h	(revision f9d0a86c86defda4d9f30fbb4f7217a75048bf8b)
@@ -38,5 +38,4 @@
 
 #include "ddf/driver.h"
-#include <usb/usb.h>
 
 extern int usbhid_dev_get_event_length(async_sess_t *, size_t *);
