From ccb65fcf6a6e3724f88e94df167665c3231dc3df Mon Sep 17 00:00:00 2001 From: Peter Lawrence <12226419+majbthrd@users.noreply.github.com> Date: Tue, 7 Apr 2020 10:51:55 -0500 Subject: [PATCH] nuvoton: add dcd_disconnect() dcd_connect() --- src/portable/nuvoton/nuc120/dcd_nuc120.c | 12 ++++++++++++ src/portable/nuvoton/nuc121/dcd_nuc121.c | 12 ++++++++++++ src/portable/nuvoton/nuc505/dcd_nuc505.c | 17 +++++++++++++++++ 3 files changed, 41 insertions(+) diff --git a/src/portable/nuvoton/nuc120/dcd_nuc120.c b/src/portable/nuvoton/nuc120/dcd_nuc120.c index 4e1db24a..ba593ba0 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 25d723d9..e7cb3dcd 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 8457e686..de842eeb 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