Send usb wakeup through ChibiOS
This commit is contained in:
		
				
					committed by
					
						
						Jack Humbert
					
				
			
			
				
	
			
			
			
						parent
						
							30e413f985
						
					
				
				
					commit
					30b90de7c9
				
			@@ -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 */
 | 
			
		||||
 
 | 
			
		||||
@@ -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
 | 
			
		||||
 * ---------------------------------------------------------
 | 
			
		||||
 
 | 
			
		||||
@@ -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
 | 
			
		||||
 * ---------------
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user