ソースを参照

Send usb wakeup through ChibiOS

Fred Sundvik 7 年 前
コミット
30b90de7c9

+ 2 - 2
tmk_core/protocol/chibios/main.c

@@ -165,8 +165,8 @@ int main(void) {
 #endif
         suspend_power_down(); // on AVR this deep sleeps for 15ms
         /* Remote wakeup */
-        if((USB_DRIVER.status & 2) && suspend_wakeup_condition()) {
-          send_remote_wakeup(&USB_DRIVER);
+        if(suspend_wakeup_condition()) {
+          usbWakeupHost(&USB_DRIVER);
         }
       }
       /* Woken up */

+ 0 - 21
tmk_core/protocol/chibios/usb_main.c

@@ -1036,27 +1036,6 @@ void init_usb_driver(USBDriver *usbp) {
 #endif
 }
 
-/*
- * Send remote wakeup packet
- * Note: should not be called from ISR
- */
-void send_remote_wakeup(USBDriver *usbp) {
-  (void)usbp;
-#if defined(K20x) || defined(KL2x)
-#if KINETIS_USB_USE_USB0
-  USB0->CTL |= USBx_CTL_RESUME;
-  wait_ms(15);
-  USB0->CTL &= ~USBx_CTL_RESUME;
-#endif /* KINETIS_USB_USE_USB0 */
-#elif defined(STM32F0XX) || defined(STM32F1XX) || defined(STM32F3XX) /* End K20x || KL2x */
-  STM32_USB->CNTR |= CNTR_RESUME;
-  wait_ms(15);
-  STM32_USB->CNTR &= ~CNTR_RESUME;
-#else /* End STM32F0XX || STM32F1XX || STM32F3XX */
-#warning Sending remote wakeup packet not implemented for your platform.
-#endif
-}
-
 /* ---------------------------------------------------------
  *                  Keyboard functions
  * ---------------------------------------------------------

+ 0 - 3
tmk_core/protocol/chibios/usb_main.h

@@ -36,9 +36,6 @@
 /* Initialize the USB driver and bus */
 void init_usb_driver(USBDriver *usbp);
 
-/* Send remote wakeup packet */
-void send_remote_wakeup(USBDriver *usbp);
-
 /* ---------------
  * Keyboard header
  * ---------------