Data USB port can be used for OTG and “power”. As of time of this writing Serial and Ethernet were tested, but others should work with proper amount of efforts (keyboard, disk, camera, etc.) Composite devices should work as well. See more info at
The work is expected to be merged into rpy-4.4 version of kernel for OTG functionality to be available OOTB for simpler hacking.
Majority of heavylifting was conducted in Github raspberrypi/linux Issue #1212.
P.S. This is copy/paste from my other answer on the topic at https://raspberrypi.stackexchange.com/a/40623/39346