On a related note: back in a previous, embedded incarnation, I was once tasked with writing a USB driver. Not the kind that might first come to mind - this was for the /device/, for which documentation is rather less easily found. With the aid of this resource (no, no spam), I was able to make our gadget come up as a fully compliant composite HID/microphone device.