I know that some have been playing around with interfacing to ML via external controllers. I myself have played around with this https://www.magiclantern.fm/forum/index.php?topic=23006.msg208852;topicseen#msg208852
I just saw this https://www.elgato.com/en/gaming/stream-deck and I wondered if could act as a programmable interface for ML, eg plug this into your camera, via a USB adapter I'm sure, and have ML sense the stream deck and take appropriate actions.
But then again I guess it's a stupid idea with no technical basis ;-)
USB: One master (host), one or more slaves. Canon DSLR can only work as slave, you need a "master/host" on the other side and proper device support, too.
I thought I was being stupid ;-)