diff --git a/samples/subsys/usb/hid-keyboard/prj.conf b/samples/subsys/usb/hid-keyboard/prj.conf index 04ce14ad588e1..a854a502f0683 100644 --- a/samples/subsys/usb/hid-keyboard/prj.conf +++ b/samples/subsys/usb/hid-keyboard/prj.conf @@ -6,6 +6,7 @@ CONFIG_USBD_LOG_LEVEL_WRN=y CONFIG_USBD_HID_LOG_LEVEL_WRN=y CONFIG_UDC_DRIVER_LOG_LEVEL_WRN=y CONFIG_SAMPLE_USBD_PID=0x0007 +CONFIG_SAMPLE_USBD_REMOTE_WAKEUP=y CONFIG_GPIO=y CONFIG_INPUT=y diff --git a/samples/subsys/usb/hid-keyboard/src/main.c b/samples/subsys/usb/hid-keyboard/src/main.c index 14f360beb3a8d..c02072d3f5df9 100644 --- a/samples/subsys/usb/hid-keyboard/src/main.c +++ b/samples/subsys/usb/hid-keyboard/src/main.c @@ -279,6 +279,17 @@ int main(void) continue; } + if (usbd_is_suspended(sample_usbd)) { + /* on a press of any button, send wakeup request */ + if (kb_evt.value) { + ret = usbd_wakeup_request(sample_usbd); + if (ret) { + LOG_ERR("Remote wakeup error, %d", ret); + } + } + continue; + } + ret = hid_device_submit_report(hid_dev, KB_REPORT_COUNT, report); if (ret) { LOG_ERR("HID submit report error, %d", ret);