summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docs/config_options.md4
-rw-r--r--tmk_core/protocol/chibios/main.c7
2 files changed, 11 insertions, 0 deletions
diff --git a/docs/config_options.md b/docs/config_options.md
index e978bcce82..eaaa59872c 100644
--- a/docs/config_options.md
+++ b/docs/config_options.md
@@ -248,3 +248,7 @@ Use these to enable or disable building certain features. The more you have enab
* Enable Bluetooth with the Adafruit EZ-Key HID
* `SPLIT_KEYBOARD`
* Enables split keyboard support (dual MCU like the let's split and bakingpy's boards) and includes all necessary files located at quantum/split_common
+* `WAIT_FOR_USB`
+ * Forces the keyboard to wait for a USB connection to be established before it starts up
+* `NO_USB_STARTUP_CHECK`
+ * Disables usb suspend check after keyboard startup. Usually the keyboard waits for the host to wake it up before any tasks are performed. This is useful for split keyboards as one half will not get a wakeup call but must send commands to the master.
diff --git a/tmk_core/protocol/chibios/main.c b/tmk_core/protocol/chibios/main.c
index 568c1edb28..dcc6d9d076 100644
--- a/tmk_core/protocol/chibios/main.c
+++ b/tmk_core/protocol/chibios/main.c
@@ -142,10 +142,15 @@ int main(void) {
/* Wait until the USB or serial link is active */
while (true) {
+#if defined(WAIT_FOR_USB) || defined(SERIAL_LINK_ENABLE)
if(USB_DRIVER.state == USB_ACTIVE) {
driver = &chibios_driver;
break;
}
+#else
+ driver = &chibios_driver;
+ break;
+#endif
#ifdef SERIAL_LINK_ENABLE
if(is_serial_link_connected()) {
driver = get_serial_link_driver();
@@ -178,6 +183,7 @@ int main(void) {
/* Main loop */
while(true) {
+#if !defined(NO_USB_STARTUP_CHECK)
if(USB_DRIVER.state == USB_SUSPENDED) {
print("[s]");
#ifdef VISUALIZER_ENABLE
@@ -205,6 +211,7 @@ int main(void) {
visualizer_resume();
#endif
}
+#endif
keyboard_task();
#ifdef CONSOLE_ENABLE