Index: uspace/lib/usbdev/include/usb/dev/device.h
===================================================================
--- uspace/lib/usbdev/include/usb/dev/device.h	(revision 876190455543e9023b6f1b801b4152ef1cce31fd)
+++ uspace/lib/usbdev/include/usb/dev/device.h	(revision 876190455543e9023b6f1b801b4152ef1cce31fd)
@@ -0,0 +1,81 @@
+/*
+ * Copyright (c) 2011 Vojtech Horky
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * - Redistributions of source code must retain the above copyright
+ *   notice, this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in the
+ *   documentation and/or other materials provided with the distribution.
+ * - The name of the author may not be used to endorse or promote products
+ *   derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/** @addtogroup libusbdev
+ * @{
+ */
+/** @file
+ * USB device driver framework.
+ */
+
+#ifndef LIBUSBDEV_DEVICE_H_
+#define LIBUSBDEV_DEVICE_H_
+
+#include <ddf/driver.h>
+#include <usb/dev/alternate_ifaces.h>
+#include <usb/dev/pipes.h>
+
+typedef struct usb_device usb_device_t;
+
+int usb_device_create_ddf(ddf_dev_t *, const usb_endpoint_description_t **, const char **);
+void usb_device_destroy_ddf(ddf_dev_t *);
+
+const char* usb_device_get_name(usb_device_t *);
+ddf_fun_t *usb_device_ddf_fun_create(usb_device_t *, fun_type_t, const char *);
+
+async_exch_t * usb_device_bus_exchange_begin(usb_device_t *);
+void usb_device_bus_exchange_end(async_exch_t *);
+
+int usb_device_select_interface(usb_device_t *, uint8_t,
+    const usb_endpoint_description_t **);
+
+int usb_device_create_pipes(usb_device_t *usb_dev,
+    const usb_endpoint_description_t **endpoints);
+void usb_device_destroy_pipes(usb_device_t *);
+
+usb_pipe_t *usb_device_get_default_pipe(usb_device_t *);
+usb_endpoint_mapping_t * usb_device_get_mapped_ep_desc(usb_device_t *,
+    const usb_endpoint_description_t *);
+usb_endpoint_mapping_t * usb_device_get_mapped_ep(usb_device_t *,
+    usb_endpoint_t);
+
+int usb_device_get_iface_number(usb_device_t *);
+
+const usb_standard_device_descriptor_t *
+usb_device_get_device_descriptor(usb_device_t *);
+const void * usb_device_get_configuration_descriptor(usb_device_t *, size_t *);
+const usb_alternate_interfaces_t * usb_device_get_alternative_ifaces(
+    usb_device_t *);
+
+void * usb_device_data_alloc(usb_device_t *, size_t);
+void * usb_device_data_get(usb_device_t *);
+
+#endif
+/**
+ * @}
+ */
Index: uspace/lib/usbdev/include/usb/dev/driver.h
===================================================================
--- uspace/lib/usbdev/include/usb/dev/driver.h	(revision 71384bd34acbe59f2ceb599b33ce5beeda38e3b7)
+++ uspace/lib/usbdev/include/usb/dev/driver.h	(revision 876190455543e9023b6f1b801b4152ef1cce31fd)
@@ -37,11 +37,6 @@
 #define LIBUSBDEV_DRIVER_H_
 
-#include <usb/hc.h>
-#include <usb/dev/alternate_ifaces.h>
-#include <usb/dev/usb_device_connection.h>
+#include <usb/dev/device.h>
 #include <usb/dev/pipes.h>
-#include <usb_iface.h>
-
-typedef struct usb_device usb_device_t;
 
 /** USB driver ops. */
@@ -98,37 +93,4 @@
 int usb_driver_main(const usb_driver_t *);
 
-int usb_device_create_ddf(ddf_dev_t *, const usb_endpoint_description_t **, const char **);
-void usb_device_destroy_ddf(ddf_dev_t *);
-
-const char* usb_device_get_name(usb_device_t *);
-ddf_fun_t *usb_device_ddf_fun_create(usb_device_t *, fun_type_t, const char *);
-
-async_exch_t * usb_device_bus_exchange_begin(usb_device_t *);
-void usb_device_bus_exchange_end(async_exch_t *);
-
-int usb_device_select_interface(usb_device_t *, uint8_t,
-    const usb_endpoint_description_t **);
-
-int usb_device_create_pipes(usb_device_t *usb_dev,
-    const usb_endpoint_description_t **endpoints);
-void usb_device_destroy_pipes(usb_device_t *);
-
-usb_pipe_t *usb_device_get_default_pipe(usb_device_t *);
-usb_endpoint_mapping_t * usb_device_get_mapped_ep_desc(usb_device_t *,
-    const usb_endpoint_description_t *);
-usb_endpoint_mapping_t * usb_device_get_mapped_ep(usb_device_t *,
-    usb_endpoint_t);
-
-int usb_device_get_iface_number(usb_device_t *);
-
-const usb_standard_device_descriptor_t *
-usb_device_get_device_descriptor(usb_device_t *);
-const void * usb_device_get_configuration_descriptor(usb_device_t *, size_t *);
-const usb_alternate_interfaces_t * usb_device_get_alternative_ifaces(
-    usb_device_t *);
-
-void * usb_device_data_alloc(usb_device_t *, size_t);
-void * usb_device_data_get(usb_device_t *);
-
 #endif
 /**
Index: uspace/lib/usbdev/src/devdrv.c
===================================================================
--- uspace/lib/usbdev/src/devdrv.c	(revision 71384bd34acbe59f2ceb599b33ce5beeda38e3b7)
+++ uspace/lib/usbdev/src/devdrv.c	(revision 876190455543e9023b6f1b801b4152ef1cce31fd)
@@ -33,5 +33,7 @@
  * USB device driver framework.
  */
-#include <usb/dev/driver.h>
+
+#include <usb_iface.h>
+#include <usb/dev/device.h>
 #include <usb/dev/request.h>
 #include <usb/debug.h>
