I'm working on a linux device driver for an Arm based USB device. I've got an ARC-OTG USB controller and an ISP1504 compatable transciever. I'm trying to find out how to switch from full speed to high speed when the host starts negotiation. I've looked through the USB controller data sheet, and I dont see anything that allows me to change speed, besides test mode. Is the controller responsible for doing the speed negotiation? Or does the driver code handle this itself? I've looked through other driver code for the ARC-OTG block with no luck. Any suggestions would be greatly appreciated. Thanks.