Hi all, I'm looking at creating a new CAN driver for a USB device [1]. This device has a custom protocol over bulk endpoints. I was able to create a simple driver, based on usb-skeleton.c that allows to speak this protocol by opening a custom har device. I've been looking at the current implementation in [2], I think my device is a bit special, you cannot read CAN frames w/o sending a 'read' command, so i need some sort of polling. AFAIK, the Linux USB stack provides that for me, except that the device won't read anything unless you send it a command. I have the feeling that current drivers are for devices that can return data by just scheduling read transfer. Anyone would have a clue on how these drivers work, and if my device is really that special? Any hint, point out or reading pointers are much appreciated. Thanks, Chris PS: This is for marine applications, NMEA2000 which uses CAN HW and is wire-compatible with J1939 [1] https://www.simrad-yachting.com/simrad/type/accessories/cables-connectors/navico-can-to-usb-converter-st10/ [2] https://github.com/torvalds/linux/tree/master/drivers/net/can/usb