Index: uspace/drv/usbhid/subdrivers.h
===================================================================
--- uspace/drv/usbhid/subdrivers.h	(revision 0a7627bdd4ecac2e377bc051c9d03bfa45c06258)
+++ uspace/drv/usbhid/subdrivers.h	(revision 083adbcf45e7e4bc4233cdfd9ba33fb0d8dd78f9)
@@ -49,13 +49,33 @@
 /*----------------------------------------------------------------------------*/
 
-/* TODO: This mapping must contain some other information to get the proper
- *       interface.
+/** Structure representing the mapping between device requirements and the 
+ *  subdriver supposed to handle this device.
+ *
+ * By filling in this structure and adding it to the usb_hid_subdrivers array,
+ * a new subdriver mapping will be created and used by the HID driver when it
+ * searches for appropriate subdrivers for a device.
  */
 typedef struct usb_hid_subdriver_mapping {
+	/** Usage path that the device's Input reports must contain. 
+	 *
+	 * It is an array of pairs <usage_page, usage>, terminated by a <0, 0>
+	 * pair. If you do not wish to specify the device in this way, set this
+	 * to NULL.
+	 */
 	const usb_hid_subdriver_usage_t *usage_path;
+	
+	/** Report ID for which the path should apply. */
 	int report_id;
+	
+	/** Compare type for the Usage path. */
 	int compare;
+	
+	/** Vendor ID (set to -1 if not specified). */
 	int vendor_id;
+	
+	/** Product ID (set to -1 if not specified). */
 	int product_id;
+	
+	/** Subdriver for controlling this device. */
 	usb_hid_subdriver_t subdriver;
 } usb_hid_subdriver_mapping_t;
