beagleboard as USB HID device

Good day,

I understand there are options to set up a beagleboard as a USB
widget, normally as a CDC device. What I would like to do is have it
appear as a HID device. This way I do not need special drivers on
Windows side.

So can this be done? If so, how? And then once that is set up, how to
write the code on the embedded linux side to add functionality via
this HID interface?

Thank you,
Tyler