Go load the Linux source-code for your distribution and look at the USB drivers that are already out there. You almost certainly will discover that the driver you are contemplating already exists. If not, you will certainly find several existing drivers that you can adapt to your purposes probably with very little modification.
USB devices are built by hardware engineers using well-known protocols and techniques, and it is inevitably going to be the case that, when they built their widget, they built drivers for it.
|