]> git.donarmstrong.com Git - tmk_firmware.git/blobdiff - protocol/lufa/lufa.c
USB initialize when plug-in during battery powered
[tmk_firmware.git] / protocol / lufa / lufa.c
index 16a602df13f76d7bd4485ac273af01fbc90dd50a..6802f3b6319c7cd0a0a4509cbf429e263b49eb07 100644 (file)
@@ -148,10 +148,23 @@ static void Console_Task(void)
 */
 void EVENT_USB_Device_Connect(void)
 {
+    /* For battery powered device */
+    if (!USB_IsInitialized) {
+        USB_Init();
+        USB_Device_EnableSOFEvents();
+    }
 }
 
 void EVENT_USB_Device_Disconnect(void)
 {
+    /* For battery powered device */
+/* TODO: This doesn't work. After several plug in/outs can not be enumerated. 
+    if (USB_IsInitialized) {
+        USB_Disable();  // Disable all interrupts
+       USB_Controller_Enable();
+        USB_INT_Enable(USB_INT_VBUSTI);
+    }
+*/
 }
 
 void EVENT_USB_Device_Reset(void)
@@ -574,7 +587,7 @@ int main(void)
     print("Keyboard start.\n");
     while (1) {
         while (USB_DeviceState == DEVICE_STATE_Suspended) {
-            suspend_power_down();
+            suspend_power_down(WDTO_120MS);
             if (USB_Device_RemoteWakeupEnabled && suspend_wakeup_condition()) {
                     USB_Device_SendRemoteWakeup();
             }