This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

OMAP 3530 and USB OTG freeze

Other Parts Discussed in Thread: SYSCONFIG

I have a problem with trying to enable the USB OTG as a device on a Gumstix Overo Fire (i.e. Omap 3530 with TPS65950). System freezes when I try to access any of the generic USB registers. Am I missing something?

pCmRegs = OALPAtoUA(OMAP_PRCM_CORE_CM_REGS_PA);

SETREG32(&pCmRegs->CM_ICLKEN1_xxx, CM_CLKEN_HSOTGUSB);  while (INREG32(&pCmRegs->CM_IDLEST1_xxx) & CM_IDLEST_ST_HSOTGUSB_IDLE);

pUsbOtgRegs = OALPAtoUA(HSUSB_BASEADDRESS + HSUSB_OFFSET_OTG);

SETREG32(&pUsbOtgRegs->OTG_SYSCONFIG, 2);  while ((INREG32(&pUsbOtgRegs->OTG_SYSSTATUS) & 1) == 0);

pUsbGenRegs = OALPAtoUA(HSUSB_BASEADDRESS + HSUSB_OFFSET_GEN);

OUTREG8(&pUsbGenRegs->Power, POWER_HSENABLE);

OUTREG32(&pUsbOtgRegs->OTG_INTERFSEL, 1);

CLRREG32(&pUsbOtgRegs->OTG_FORCESTDBY, OTG_FORCESTDY_ENABLEFORCE);

SETREG32(&pUsbOtgRegs->OTG_SYSCONFIG, OTG_SYSCONF_ENABLEWAKEUP);

CLRREG32(&pUsbOtgRegs->OTG_SYSCONFIG, OTG_SYSCONF_M_MASK);  SETREG32(&pUsbOtgRegs->OTG_SYSCONFIG, OTG_SYSCONF_M_SMARTSTDBY);

CLRREG32(&pUsbOtgRegs->OTG_SYSCONFIG, OTG_SYSCONF_S_MASK);  SETREG32(&pUsbOtgRegs->OTG_SYSCONFIG, OTG_SYSCONF_S_SMARTIDLE);

CLRREG32(&pUsbOtgRegs->OTG_SYSCONFIG, OTG_SYSCONF_AUTOIDLE);

SETREG32(&pUsbOtgRegs->OTG_SYSCONFIG, OTG_SYSCONF_AUTOIDLE);

// freezes here:

OUTREG8(pUsbGenRegs->Index, 0);