From aa4e880b4abb5e2576d31d1d7dcad30af6a7047d Mon Sep 17 00:00:00 2001
From: ccli8 <ccli8@nuvoton.com>
Date: Thu, 11 Aug 2016 11:24:55 +0800
Subject: [PATCH] Fix USB re-plugin not detected in NUMAKER_PFM_NUC472

---
 libraries/USBHost/USBHost/USBHALHost_NUC472.cpp | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/libraries/USBHost/USBHost/USBHALHost_NUC472.cpp b/libraries/USBHost/USBHost/USBHALHost_NUC472.cpp
index e0fdca2c17..4aa25fe16d 100644
--- a/libraries/USBHost/USBHost/USBHALHost_NUC472.cpp
+++ b/libraries/USBHost/USBHost/USBHALHost_NUC472.cpp
@@ -311,6 +311,7 @@ void USBHALHost::UsbIrqhandler()
         uint32_t ints_roothub = USBH->HcRhStatus;
         uint32_t ints_port1 = USBH->HcRhPortStatus[0];
         
+        // Port1: ConnectStatusChange
         if (ints_port1 & OR_RH_PORT_CSC) {
             if (ints_roothub & OR_RH_STATUS_DRWE) {
                 // When DRWE is on, Connect Status Change means a remote wakeup event.
@@ -343,11 +344,14 @@ void USBHALHost::UsbIrqhandler()
             }
             USBH->HcRhPortStatus[0] = OR_RH_PORT_CSC;
         }
-        
-        // Reset completed
+        // Port1: Reset completed
         if (ints_port1 & OR_RH_PORT_PRSC) {
             USBH->HcRhPortStatus[0] = OR_RH_PORT_PRSC;
         }
+        // Port1: PortEnableStatusChange
+        if (ints_port1 & OR_RH_PORT_PESC) {
+            USBH->HcRhPortStatus[0] = OR_RH_PORT_PESC;
+        }
         
         USBH->HcInterruptStatus = OR_INTR_STATUS_RHSC;
     }