SERIAL_SRC = $(wildcard $(SERIAL_PATH)/protocol/*.c)
SERIAL_SRC += $(wildcard $(SERIAL_PATH)/system/*.c)
SRC += $(patsubst $(QUANTUM_PATH)/%,%,$(SERIAL_SRC))
- OPT_DEFS += -DUSE_SERIAL_LINK
+ OPT_DEFS += -DSERIAL_LINK_ENABLE
VAPTH += $(SERIAL_PATH)
endif
#ifdef RGBLIGHT_ENABLE
# include "rgblight.h"
#endif
+#ifdef SERIAL_LINK_ENABLE
+# include "serial_link/system/serial_link.h"
+#endif
#ifdef MATRIX_HAS_GHOST
static bool has_ghost_in_row(uint8_t row)
#endif
#ifdef SERIAL_MOUSE_ENABLE
- serial_mouse_task();
+ serial_mouse_task();
#endif
#ifdef ADB_MOUSE_ENABLE
- adb_mouse_task();
+ adb_mouse_task();
+#endif
+
+#ifdef SERIAL_LINK_ENABLE
+ serial_link_update();
#endif
// update LED
#ifdef SLEEP_LED_ENABLE
#include "sleep_led.h"
#endif
+#ifdef SERIAL_LINK_ENABLE
+#include "serial_link/system/serial_link.h"
+#endif
#include "suspend.h"
/* init printf */
init_printf(NULL,sendchar_pf);
- /* Wait until the USB is active */
- while(USB_DRIVER.state != USB_ACTIVE)
+#ifdef SERIAL_LINK_ENABLE
+ init_serial_link();
+#endif
+
+ host_driver_t* driver = NULL;
+
+ /* Wait until the USB or serial link is active */
+ while (true) {
+ if(USB_DRIVER.state == USB_ACTIVE) {
+ driver = &chibios_driver;
+ break;
+ }
+#ifdef SERIAL_LINK_ENABLE
+ if(is_serial_link_connected()) {
+ driver = get_serial_link_driver();
+ break;
+ }
+ serial_link_update();
+#endif
chThdSleepMilliseconds(50);
+ }
/* Do need to wait here!
* Otherwise the next print might start a transfer on console EP
/* init TMK modules */
keyboard_init();
- host_set_driver(&chibios_driver);
+ host_set_driver(driver);
#ifdef SLEEP_LED_ENABLE
sleep_led_init();
print("[s]");
while(USB_DRIVER.state == USB_SUSPENDED) {
/* Do this in the suspended state */
+#ifdef SERIAL_LINK_ENABLE
+ serial_link_update();
+#endif
suspend_power_down(); // on AVR this deep sleeps for 15ms
/* Remote wakeup */
if((USB_DRIVER.status & 2) && suspend_wakeup_condition()) {