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
 | 
					#endif
 | 
				
			||||||
        suspend_power_down(); // on AVR this deep sleeps for 15ms
 | 
					        suspend_power_down(); // on AVR this deep sleeps for 15ms
 | 
				
			||||||
        /* Remote wakeup */
 | 
					        /* Remote wakeup */
 | 
				
			||||||
        if((USB_DRIVER.status & 2) && suspend_wakeup_condition()) {
 | 
					        if(suspend_wakeup_condition()) {
 | 
				
			||||||
          send_remote_wakeup(&USB_DRIVER);
 | 
					          usbWakeupHost(&USB_DRIVER);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
      /* Woken up */
 | 
					      /* Woken up */
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1036,27 +1036,6 @@ void init_usb_driver(USBDriver *usbp) {
 | 
				
			|||||||
#endif
 | 
					#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
 | 
					 *                  Keyboard functions
 | 
				
			||||||
 * ---------------------------------------------------------
 | 
					 * ---------------------------------------------------------
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -36,9 +36,6 @@
 | 
				
			|||||||
/* Initialize the USB driver and bus */
 | 
					/* Initialize the USB driver and bus */
 | 
				
			||||||
void init_usb_driver(USBDriver *usbp);
 | 
					void init_usb_driver(USBDriver *usbp);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Send remote wakeup packet */
 | 
					 | 
				
			||||||
void send_remote_wakeup(USBDriver *usbp);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/* ---------------
 | 
					/* ---------------
 | 
				
			||||||
 * Keyboard header
 | 
					 * Keyboard header
 | 
				
			||||||
 * ---------------
 | 
					 * ---------------
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user