Add usb support, squashed commits from 3.0-usb branch