Index: uspace/lib/drv/Makefile
===================================================================
--- uspace/lib/drv/Makefile	(revision 37e8c4a1c218e8d69819bd4f761fa694e0884dad)
+++ uspace/lib/drv/Makefile	(revision d4da8601eeecd6ff5bc2be80760523864c341a26)
@@ -32,5 +32,4 @@
 	-Iinclude \
 	-Igeneric/private \
-	-I$(LIBUSB_PREFIX)/include \
 	-I$(LIBPCM_PREFIX)/include
 LIBRARY = libdrv
Index: uspace/lib/drv/include/usb_iface.h
===================================================================
--- uspace/lib/drv/include/usb_iface.h	(revision 37e8c4a1c218e8d69819bd4f761fa694e0884dad)
+++ uspace/lib/drv/include/usb_iface.h	(revision d4da8601eeecd6ff5bc2be80760523864c341a26)
@@ -40,7 +40,54 @@
 #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,
+	/** 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 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;
 
 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 37e8c4a1c218e8d69819bd4f761fa694e0884dad)
+++ uspace/lib/drv/include/usbhc_iface.h	(revision d4da8601eeecd6ff5bc2be80760523864c341a26)
@@ -41,5 +41,5 @@
 
 #include "ddf/driver.h"
-#include <usb/usb.h>
+#include <usb_iface.h>
 #include <stdbool.h>
 
Index: uspace/lib/drv/include/usbhid_iface.h
===================================================================
--- uspace/lib/drv/include/usbhid_iface.h	(revision 37e8c4a1c218e8d69819bd4f761fa694e0884dad)
+++ uspace/lib/drv/include/usbhid_iface.h	(revision d4da8601eeecd6ff5bc2be80760523864c341a26)
@@ -38,5 +38,4 @@
 
 #include "ddf/driver.h"
-#include <usb/usb.h>
 
 extern int usbhid_dev_get_event_length(async_sess_t *, size_t *);
Index: uspace/lib/usb/Makefile
===================================================================
--- uspace/lib/usb/Makefile	(revision 37e8c4a1c218e8d69819bd4f761fa694e0884dad)
+++ uspace/lib/usb/Makefile	(revision d4da8601eeecd6ff5bc2be80760523864c341a26)
@@ -31,5 +31,4 @@
 EXTRA_CFLAGS += \
 	-I$(LIBDRV_PREFIX)/include \
-	-I$(LIBUSBDEV_PREFIX)/include \
 	-Iinclude
 
Index: uspace/lib/usb/include/usb/usb.h
===================================================================
--- uspace/lib/usb/include/usb/usb.h	(revision 37e8c4a1c218e8d69819bd4f761fa694e0884dad)
+++ uspace/lib/usb/include/usb/usb.h	(revision d4da8601eeecd6ff5bc2be80760523864c341a26)
@@ -39,4 +39,5 @@
 #include <stdint.h>
 #include <types/common.h>
+#include <usb_iface.h>
 
 /** Convert 16bit value from native (host) endianness to USB endianness. */
@@ -52,36 +53,8 @@
 #define uint32_usb2host(n) uint32_t_le2host((n))
 
-
-/** 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;
-
 const char * usb_str_transfer_type(usb_transfer_type_t t);
 const char * usb_str_transfer_type_short(usb_transfer_type_t t);
 
-/** USB data transfer direction. */
-typedef enum {
-	USB_DIRECTION_IN,
-	USB_DIRECTION_OUT,
-	USB_DIRECTION_BOTH
-} usb_direction_t;
-
 const char *usb_str_direction(usb_direction_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,
-	/** Psuedo-speed serving as a boundary. */
-	USB_SPEED_MAX
-} usb_speed_t;
 
 static inline bool usb_speed_is_11(const usb_speed_t s)
@@ -108,9 +81,4 @@
 } usb_request_recipient_t;
 
-/** USB address type.
- * Negative values could be used to indicate error.
- */
-typedef int16_t usb_address_t;
-
 /** Default USB address. */
 #define USB_ADDRESS_DEFAULT 0
@@ -132,9 +100,4 @@
 }
 
-/** USB endpoint number type.
- * Negative values could be used to indicate error.
- */
-typedef int16_t usb_endpoint_t;
-
 /** Default control endpoint */
 #define USB_ENDPOINT_DEFAULT_CONTROL 0
@@ -155,16 +118,4 @@
 	    (ep < USB11_ENDPOINT_MAX);
 }
-
-
-/** 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;
 
 /** Check USB target for allowed values (address and endpoint).
