summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHa Thach <[email protected]>2020-04-07 23:25:03 +0700
committerGitHub <[email protected]>2020-04-07 23:25:03 +0700
commit36b33ee775a02e1263f61bc4a82e58d8e8559734 (patch)
treedad7fdf49d0a9005036912a7a10b8845b765a5cc
parentbfc43bad81c3faf77ffb14b9043a5064d52a7f30 (diff)
parentccb65fcf6a6e3724f88e94df167665c3231dc3df (diff)
Merge pull request #328 from majbthrd/nuc_connect
nuvoton: add dcd_disconnect() dcd_connect()
-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