clarry: USB Type C is interesting because it should deprecate OTG as a concept (replaced with Dual Role USB), but I don't know if the spec requires all controllers to support it. It might be the case that we'll have to dig through datasheets (or drivers) for each chip..
Bitbanging low-speed USB is possible with an arduino but that doesn't leave much processing power for doing anything with the data. I suppose you could use another microcontroller for the additional processing and sending it out. I'm not sure if it supports powering downstream devices out of the box so there's that...
I'm pretty sure that USB-C doesn't have to support both roles with every device.
I don't have many devices with USB-C support at the moment. Here is what I do have:
* An 8bitdo controller, which I believe only supports device side USB-C. (I don't see how USB-Host support could be useful for this type of device, except maybe for firmware updates.) It uses the USB-C to chargd.
* A Raspberry Pi 4. Apparently, the USB-C port there is configured as a device side port, but the problem is that the port is needed top power the Pi, which has no battery and needs more power than a typical USB port can provide. (For my next computer, as I mentioned in another topic, it would be nice if it had a USB-C port that could power the Pi.)
* A power supply for the Pi, a car adaptor (that also has a USB-A port that can be used to charge older USB devices with a suitable cable), and the USB-A to C cable that came with the 8bitdo.
(By the way, I actually did recently see a couple 8bitdo controllers in a brick-and-mortar store, which I found interesting. The store also had some Raspberry Pi 4 kils (2GB moded) as well.)
Edit:
Actually, according to a forum post over at
https://www.raspberrypi.org/forums/viewtopic.php?t=246348 it's possible to force the Raspberry Pi 4B's USB-C port into host mode. The usefulness of this is rather questionable, as the Pi 4 has 4 USB-A ports that work fine as host ports, and there's the problem of powering the Pi (since power would normally come through that port).
Unfortunately, the port can't do dual role, apparently.