-LUFA_OPTS = -DUSB_DEVICE_ONLY
-LUFA_OPTS += -DUSE_FLASH_DESCRIPTORS
-LUFA_OPTS += -DUSE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
-#LUFA_OPTS += -DINTERRUPT_CONTROL_ENDPOINT
-LUFA_OPTS += -DFIXED_CONTROL_ENDPOINT_SIZE=8
-LUFA_OPTS += -DFIXED_NUM_CONFIGURATIONS=1
+TMK_LUFA_OPTS = -DUSB_DEVICE_ONLY
+TMK_LUFA_OPTS += -DUSE_FLASH_DESCRIPTORS
+TMK_LUFA_OPTS += -DUSE_STATIC_OPTIONS="(USB_DEVICE_OPT_FULLSPEED | USB_OPT_REG_ENABLED | USB_OPT_AUTO_PLL)"
+# Do not enable INTERRUPT_CONTROL_ENDPOINT for converters which requires ISR in particular,
+# it can block other ISRs long like 500-1000us for HID keyboard LED report.
+#TMK_LUFA_OPTS += -DINTERRUPT_CONTROL_ENDPOINT
+TMK_LUFA_OPTS += -DFIXED_CONTROL_ENDPOINT_SIZE=8
+TMK_LUFA_OPTS += -DFIXED_NUM_CONFIGURATIONS=1
+# Remote wakeup fix for ATmega32U2 https://github.com/tmk/tmk_keyboard/issues/361
+ifeq ($(MCU),atmega32u2)
+ TMK_LUFA_OPTS += -DNO_LIMITED_CONTROLLER_CONNECT
+endif
+
+ifeq (yes,$(strip $(TMK_LUFA_DEBUG)))
+ TMK_LUFA_OPTS += -DTMK_LUFA_DEBUG
+endif
+
+ifeq (yes,$(strip $(TMK_LUFA_DEBUG_SUART)))
+ SRC += common/avr/suart.S
+ TMK_LUFA_OPTS += -DTMK_LUFA_DEBUG_SUART
+ # Keep print/debug lines when disabling HID console. See common.mk.
+ DEBUG_PRINT_AVAILABLE = yes
+endif
+
+ifeq (yes,$(strip $(TMK_LUFA_DEBUG_UART)))
+ SRC += common/avr/uart.c
+ TMK_LUFA_OPTS += -DTMK_LUFA_DEBUG_UART
+ # Keep print/debug lines when disabling HID console. See common.mk.
+ DEBUG_PRINT_AVAILABLE = yes
+endif
+