aboutsummaryrefslogtreecommitdiffstats
path: root/protocol/lufa
diff options
context:
space:
mode:
authorGravatar tmk <nobody@nowhere>2014-11-20 17:06:46 +0900
committerGravatar tmk <nobody@nowhere>2014-11-20 17:24:56 +0900
commitc2d830c07c823c48a17c214b093ec1bab989fb6a (patch)
tree388b86cd7bfbf3b78528a498c8e3f39a20fc778f /protocol/lufa
parent6c06b9031fd09479d552f9750a3b1cfe259678fd (diff)
downloadqmk_firmware-c2d830c07c823c48a17c214b093ec1bab989fb6a.tar.gz
USB initialize when plug-in during battery powered
Diffstat (limited to 'protocol/lufa')
-rw-r--r--protocol/lufa/lufa.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/protocol/lufa/lufa.c b/protocol/lufa/lufa.c
index 16a602df1..6802f3b63 100644
--- a/protocol/lufa/lufa.c
+++ b/protocol/lufa/lufa.c
@@ -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();
}