Merge pull request #2868 from xobs/fix-usb-sleep-nrf
Fix usb sleep for NRF
This commit is contained in:
commit
eea01c32b8
@ -1 +1 @@
|
||||
Subproject commit 76bf96bcb0c12ba241ee4ecc175afb257e550d19
|
||||
Subproject commit dc5445e2f45cb348a44fe24fc1be4bc8b5ba5bab
|
@ -40,6 +40,8 @@
|
||||
|
||||
STATIC bool sd_is_enabled(void) {
|
||||
uint8_t sd_en = 0;
|
||||
if (__get_PRIMASK())
|
||||
return false;
|
||||
(void) sd_softdevice_is_enabled(&sd_en);
|
||||
return sd_en;
|
||||
}
|
||||
|
@ -51,8 +51,11 @@
|
||||
#include "common-hal/rtc/RTC.h"
|
||||
#include "common-hal/neopixel_write/__init__.h"
|
||||
|
||||
#include "shared-bindings/microcontroller/__init__.h"
|
||||
#include "shared-bindings/rtc/__init__.h"
|
||||
|
||||
#include "lib/tinyusb/src/device/usbd.h"
|
||||
|
||||
#ifdef CIRCUITPY_AUDIOBUSIO
|
||||
#include "common-hal/audiobusio/I2SOut.h"
|
||||
#endif
|
||||
@ -264,7 +267,17 @@ void port_sleep_until_interrupt(void) {
|
||||
sd_app_evt_wait();
|
||||
} else {
|
||||
// Call wait for interrupt ourselves if the SD isn't enabled.
|
||||
__WFI();
|
||||
// Note that `wfi` should be called with interrupts disabled,
|
||||
// to ensure that the queue is properly drained. The `wfi`
|
||||
// instruction will returned as long as an interrupt is
|
||||
// available, even though the actual handler won't fire until
|
||||
// we re-enable interrupts.
|
||||
common_hal_mcu_disable_interrupts();
|
||||
if (!tud_task_event_ready()) {
|
||||
__DSB();
|
||||
__WFI();
|
||||
}
|
||||
common_hal_mcu_enable_interrupts();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -49,7 +49,9 @@
|
||||
//--------------------------------------------------------------------+
|
||||
#define CFG_TUSB_RHPORT0_MODE OPT_MODE_DEVICE
|
||||
|
||||
#ifndef CFG_TUSB_DEBUG
|
||||
#define CFG_TUSB_DEBUG 0
|
||||
#endif
|
||||
|
||||
/*------------- RTOS -------------*/
|
||||
#ifndef CFG_TUSB_OS
|
||||
|
Loading…
Reference in New Issue
Block a user