diff options
| author | hathach <[email protected]> | 2020-04-09 11:47:02 +0700 |
|---|---|---|
| committer | hathach <[email protected]> | 2020-04-09 11:47:02 +0700 |
| commit | c1f3fbbc03256d303d5ce355bd0cf87a0d3c4f4c (patch) | |
| tree | 7a1bfee978e96857314144a726e20e83bd066903 | |
| parent | 11201f1a06396d4ab8302f2bb5ce579cb4ae7a6c (diff) | |
implement dcd connect/disconnect for samd and nrf
| -rw-r--r-- | src/portable/microchip/samd/dcd_samd.c | 15 | ||||
| -rw-r--r-- | src/portable/nordic/nrf5x/dcd_nrf5x.c | 14 |
2 files changed, 28 insertions, 1 deletions
diff --git a/src/portable/microchip/samd/dcd_samd.c b/src/portable/microchip/samd/dcd_samd.c index 148995520..c3d2985d4 100644 --- a/src/portable/microchip/samd/dcd_samd.c +++ b/src/portable/microchip/samd/dcd_samd.c @@ -154,10 +154,23 @@ void dcd_set_config (uint8_t rhport, uint8_t config_num) void dcd_remote_wakeup(uint8_t rhport) { (void) rhport; - USB->DEVICE.CTRLB.bit.UPRSM = 1; } +// disconnect by disabling internal pull-up resistor on D+/D- +void dcd_disconnect(uint8_t rhport) +{ + (void) rhport; + USB->DEVICE.CTRLB.reg |= USB_DEVICE_CTRLB_DETACH; +} + +// connect by enabling internal pull-up resistor on D+/D- +void dcd_connect(uint8_t rhport) +{ + (void) rhport; + USB->DEVICE.CTRLB.reg &= ~USB_DEVICE_CTRLB_DETACH; +} + /*------------------------------------------------------------------*/ /* DCD Endpoint port *------------------------------------------------------------------*/ diff --git a/src/portable/nordic/nrf5x/dcd_nrf5x.c b/src/portable/nordic/nrf5x/dcd_nrf5x.c index 2ce288d6c..c0dddef83 100644 --- a/src/portable/nordic/nrf5x/dcd_nrf5x.c +++ b/src/portable/nordic/nrf5x/dcd_nrf5x.c @@ -237,6 +237,20 @@ void dcd_remote_wakeup(uint8_t rhport) // We may manually raise DCD_EVENT_RESUME event here } +// disconnect by disabling internal pull-up resistor on D+/D- +void dcd_disconnect(uint8_t rhport) +{ + (void) rhport; + NRF_USBD->USBPULLUP = 0; +} + +// connect by enabling internal pull-up resistor on D+/D- +void dcd_connect(uint8_t rhport) +{ + (void) rhport; + NRF_USBD->USBPULLUP = 1; +} + //--------------------------------------------------------------------+ // Endpoint API //--------------------------------------------------------------------+ |
