using a version of usblib_c674x_c6748 to help manage USB communication. works great until the user app crashes. then our device essentially locks up waiting for someone to read requested data. this never happens and the device does not respond to hub or bus resets.
looking to reset the USB interface after a timeout. during the timeout am calling USBDBulkTerm(void *pvInstance). this in turn calls USBDCDTerm(unsigned int ulIndex). there interrupts are disabled, device is disconnected, endpoint is reset, and Phy clock is turned off.
the last line calls USBModuleClkDisable(). this eventually trickles down to a call to PSCModuleControl(SOC_PSC_1_REGS,1, 0, PSC_MDCTL_NEXT_DISABLE).
here we set [MDCTL] = 0x00000002, i.e. NEXT=Disable
then we set [PTCMD] = 0x00000001, i.e. GO[0] = 1
but [PTSTAT] == 0x00000001 forever, i.e.the PSC transition never completes
what am I missing? how do we get this power transition to complete?