From faa80d9028390535c9c0e75c5dc4f33c34bed9ea Mon Sep 17 00:00:00 2001 From: George Beckstein Date: Sun, 11 Nov 2018 20:00:19 -0500 Subject: [PATCH] Changed power handler to enable/start & disable/stop USBD driver in background --- .../TARGET_NORDIC/TARGET_MCU_NRF52840/USBPhy_Nordic.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/usb/device/targets/TARGET_NORDIC/TARGET_MCU_NRF52840/USBPhy_Nordic.cpp b/usb/device/targets/TARGET_NORDIC/TARGET_MCU_NRF52840/USBPhy_Nordic.cpp index 6636e2a635..dcf1c0d6c4 100644 --- a/usb/device/targets/TARGET_NORDIC/TARGET_MCU_NRF52840/USBPhy_Nordic.cpp +++ b/usb/device/targets/TARGET_NORDIC/TARGET_MCU_NRF52840/USBPhy_Nordic.cpp @@ -308,12 +308,20 @@ void USBPhyHw::process() { // Process USB power-related events switch (usb_power_event) { case NRF_DRV_POWER_USB_EVT_DETECTED: + if(!nrf_drv_usbd_is_enabled()) + nrf_drv_usbd_enable(); events->power(true); break; case NRF_DRV_POWER_USB_EVT_REMOVED: events->power(false); + if(nrf_drv_usbd_is_started()) + nrf_drv_usbd_stop(); + if(nrf_drv_usbd_is_enabled()) + nrf_drv_usbd_disable(); break; case NRF_DRV_POWER_USB_EVT_READY: + if(!nrf_drv_usbd_is_started() && connect_enabled) + nrf_drv_usbd_start(true); break; default: ASSERT(false)