I don’t see any development on the web for MCP251xFD support for the Beagle-Bone.
I do see development for the Raspberry PI (https://www.waveshare.com/wiki/2-CH_CAN_FD_HAT#Support)
That link looks promising, in that I believe it can be ported over to the Beagle-bone rather easily.
There are just a few issues I am unsure of.
First, I believe I can just build and install the mcp251x driver module on the Beagle-bone without any issues.
Second, I think, with a little bit of modification, I can tailor the dts to work with the Beagle-Bone.
Third, I am a bit confused by the interrupt pins. I am not sure which pins to use, or why they are even needed, or how the driver communicates with them.
Fourth, I am not sure how the driver defaults to using can0. The Beagle-Bone reserves can0 and can1 for the internal can controller. I don’t know If I would have to remove the can driver and just use the mcp251xfd driver, or is there a way I can use both internal and external CAN, somehow use spi_can at can2?
This stack up works just fine.
Python UDS App → Socket CAN → CAN Module → Kernel → dtb → CAN Controller → Pins → Volt-Converter → Destination
This is what I am trying to attempt.
Python UDS App → Socket CAN → SPI CAN Module → Kernel → dtb → SPI Controller → Pins → FD CAN Controller → Destination
The Python CAN Interface would be SocketCAN, but for the Channel, I don’t think I can use SPI.
I think that is the reason I need to use the mcp251xfd driver.
Channel=SPI ← I don’t think this will work.
Channel=can2 ← Ideal