I'm Trying to port Pololu's mini maestro USB Servo Controller driver into a Linux Kernel Module (This is my first try of writing a kenel module). Pololu's Linux Driver actually uses mono runtime environment, lots of what I think are compatibilization layers and It's written in C# (Unknown for me), so porting it to C for compiling this into a kernel module it's important because I want other programs to use pipes to communicate with the USB Module.
So, here's the deal, I used lsusb -vvv to list the Device Characteristics
But the last interface states:
Interface Descriptor:
bInterfaceNumber 4
bNumEndpoints 0
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 4
bInterfaceProtocol 1
iInterface 2 Pololu Mini Maestro 18-Channel USB Servo Controller
What I can't figure out is:
- Is there a Non-listed Control endpoint that can be used for configuring Device mode?
- Can I handle it and how I can do it?
From the Composite device itself:
- A kernel driver instance is ran for each Interface?
- How can I catch an interface and identify how to manage it?
- How can I treat Interface Associations?
Best Regards!