dlkj/usbd-human-interface-device

Is anything required to support remote wakeup?

Opened this issue · 3 comments

dlkj commented

Anything more required other than setting UsbDeviceBuilder::supports_remote_wakeup(true)?

dlkj commented

Yes, will require implementing suspended and resume in rp2040-hal::usb and exposing remote wakeup in usb-device

This does the trick: rp-rs/rp-hal#406

Anything more required other than setting UsbDeviceBuilder::supports_remote_wakeup(true)?

This just tells the host that the device supports remote wakeup. Then the host will "arm" remote wakeup which you can check with UsbDevice::remote_wakeup_enabled().
And finally, as @ithinuel mentioned you'll have to check your wakeup condition, that the device is in USB suspend, remote wakeup is enabled and then call the MCU specific API to actually wake the device/bus again.