summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/portable/nuvoton/nuc120/dcd_nuc120.c12
-rw-r--r--src/portable/nuvoton/nuc121/dcd_nuc121.c12
-rw-r--r--src/portable/nuvoton/nuc505/dcd_nuc505.c17
3 files changed, 41 insertions, 0 deletions
diff --git a/src/portable/nuvoton/nuc120/dcd_nuc120.c b/src/portable/nuvoton/nuc120/dcd_nuc120.c
index 4e1db24a4..ba593ba06 100644
--- a/src/portable/nuvoton/nuc120/dcd_nuc120.c
+++ b/src/portable/nuvoton/nuc120/dcd_nuc120.c
@@ -430,4 +430,16 @@ void dcd_isr(uint8_t rhport)
USBD_IRQHandler();
}
+void dcd_disconnect(uint8_t rhport)
+{
+ (void) rhport;
+ usb_detach();
+}
+
+void dcd_connect(uint8_t rhport)
+{
+ (void) rhport;
+ usb_attach();
+}
+
#endif
diff --git a/src/portable/nuvoton/nuc121/dcd_nuc121.c b/src/portable/nuvoton/nuc121/dcd_nuc121.c
index 25d723d96..e7cb3dcd9 100644
--- a/src/portable/nuvoton/nuc121/dcd_nuc121.c
+++ b/src/portable/nuvoton/nuc121/dcd_nuc121.c
@@ -446,4 +446,16 @@ void dcd_isr(uint8_t rhport)
USBD_IRQHandler();
}
+void dcd_disconnect(uint8_t rhport)
+{
+ (void) rhport;
+ usb_detach();
+}
+
+void dcd_connect(uint8_t rhport)
+{
+ (void) rhport;
+ usb_attach();
+}
+
#endif
diff --git a/src/portable/nuvoton/nuc505/dcd_nuc505.c b/src/portable/nuvoton/nuc505/dcd_nuc505.c
index 8457e686b..de842eeb2 100644
--- a/src/portable/nuvoton/nuc505/dcd_nuc505.c
+++ b/src/portable/nuvoton/nuc505/dcd_nuc505.c
@@ -126,6 +126,11 @@ static void usb_attach(void)
USBD->PHYCTL |= USBD_PHYCTL_DPPUEN_Msk;
}
+static void usb_detach(void)
+{
+ USBD->PHYCTL &= ~USBD_PHYCTL_DPPUEN_Msk;
+}
+
static void usb_control_send_zlp(void)
{
USBD->CEPINTSTS = USBD_CEPINTSTS_STSDONEIF_Msk;
@@ -647,4 +652,16 @@ void dcd_isr(uint8_t rhport)
USBD_IRQHandler();
}
+void dcd_disconnect(uint8_t rhport)
+{
+ (void) rhport;
+ usb_detach();
+}
+
+void dcd_connect(uint8_t rhport)
+{
+ (void) rhport;
+ usb_attach();
+}
+
#endif