summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Omap35xxPkg/Include/Omap3530/Omap3530Usb.h1
-rw-r--r--Omap35xxPkg/PciEmulation/PciEmulation.c6
2 files changed, 7 insertions, 0 deletions
diff --git a/Omap35xxPkg/Include/Omap3530/Omap3530Usb.h b/Omap35xxPkg/Include/Omap3530/Omap3530Usb.h
index 5ffaa9d8e4..73f7f7640f 100644
--- a/Omap35xxPkg/Include/Omap3530/Omap3530Usb.h
+++ b/Omap35xxPkg/Include/Omap3530/Omap3530Usb.h
@@ -26,6 +26,7 @@
#define UHH_SYSCONFIG_CLOCKACTIVITY_ON (1UL << 8)
#define UHH_SYSCONFIG_SIDLEMODE_NO_STANDBY (1UL << 3)
#define UHH_SYSCONFIG_ENAWAKEUP_ENABLE (1UL << 2)
+#define UHH_SYSCONFIG_SOFTRESET (1UL << 1)
#define UHH_SYSCONFIG_AUTOIDLE_ALWAYS_RUN (0UL << 0)
#define UHH_HOSTCONFIG_P3_CONNECT_STATUS_DISCONNECT (0UL << 10)
diff --git a/Omap35xxPkg/PciEmulation/PciEmulation.c b/Omap35xxPkg/PciEmulation/PciEmulation.c
index bdba40353f..3e49f8a1bc 100644
--- a/Omap35xxPkg/PciEmulation/PciEmulation.c
+++ b/Omap35xxPkg/PciEmulation/PciEmulation.c
@@ -62,6 +62,12 @@ ConfigureUSBHost (
EFI_STATUS Status;
UINT8 Data = 0;
+ // Do a softreset
+ MmioOr32 (UHH_SYSCONFIG, UHH_SYSCONFIG_SOFTRESET);
+ // When the bit clears reset is complete
+ while ((MmioRead32 (UHH_SYSCONFIG) & UHH_SYSCONFIG_SOFTRESET) == UHH_SYSCONFIG_SOFTRESET);
+
+
// Take USB host out of force-standby mode
MmioWrite32 (UHH_SYSCONFIG, UHH_SYSCONFIG_MIDLEMODE_NO_STANDBY
| UHH_SYSCONFIG_CLOCKACTIVITY_ON