LPC31 EHCI: Seems to work after re-ordering some initialization logic

This commit is contained in:
Gregory Nutt 2013-11-27 13:14:23 -06:00
parent a0a17933fd
commit 4f714d2be4

View File

@ -4307,7 +4307,7 @@ FAR struct usbhost_connection_s *lpc31_ehci_initialize(int controller)
* SLOM Not used in host mode.
* SDIS = 1, Stream disable mode. Eliminates overruns/underruns at
* the expense of some performance.
* VBPS = 1, off chip power source
* VBPS = 1, off-chip power source
*/
putreg32(USBHOST_USBMODE_CMHOST | USBHOST_USBMODE_SDIS | USBHOST_USBMODE_VBPS,
@ -4323,6 +4323,14 @@ FAR struct usbhost_connection_s *lpc31_ehci_initialize(int controller)
return NULL;
}
/* Re-program the USB host controller. As implemented, lpc31_reset()
* requires the host mode setup in order to work. However, we lose the
* host configuration in the reset.
*/
putreg32(USBHOST_USBMODE_CMHOST | USBHOST_USBMODE_SDIS | USBHOST_USBMODE_VBPS,
LPC31_USBDEV_USBMODE);
/* "In order to initialize the host controller, software should perform the
* following steps:
*