summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortmk <nobody@nowhere>2013-02-11 22:56:30 +0900
committertmk <nobody@nowhere>2013-02-11 22:56:30 +0900
commite9e4c0edc52dbf4afe11251b8b50df130ef57423 (patch)
tree748d6dda8848e5049610b9154d65acf01b6181d2
parentb60f9c6ac6fa9f63cba7ffb6872095a8f0788e42 (diff)
Add support for LUFA-120730
-rw-r--r--README.md2
-rw-r--r--protocol/lufa.mk14
-rw-r--r--protocol/lufa/lufa.c29
3 files changed, 30 insertions, 15 deletions
diff --git a/README.md b/README.md
index cf09a9407e..072de0a386 100644
--- a/README.md
+++ b/README.md
@@ -659,4 +659,4 @@ Files & Directories
License
-------
Under `GPL` 2 or later. Some protocol files are under `Modified BSD License`.
-PJRC stack has its own license.
+LUFA and PJRC stack have their own license respectively.
diff --git a/protocol/lufa.mk b/protocol/lufa.mk
index bf6fc97b8e..443b85344b 100644
--- a/protocol/lufa.mk
+++ b/protocol/lufa.mk
@@ -1,10 +1,16 @@
LUFA_DIR = protocol/lufa
# Path to the LUFA library
-LUFA_PATH = protocol/lufa/LUFA-120219
-
-# Create the LUFA source path variables by including the LUFA root makefile
-include $(TOP_DIR)/$(LUFA_PATH)/LUFA/makefile
+LUFA_PATH ?= protocol/lufa/LUFA-120730
+
+# Create the LUFA source path variables by including the LUFA makefile
+ifneq (, $(wildcard $(TOP_DIR)/$(LUFA_PATH)/LUFA/Build/lufa_sources.mk))
+ # New build system from 20120730
+ LUFA_ROOT_PATH = $(LUFA_PATH)/LUFA
+ include $(TOP_DIR)/$(LUFA_PATH)/LUFA/Build/lufa_sources.mk
+else
+ include $(TOP_DIR)/$(LUFA_PATH)/LUFA/makefile
+endif
LUFA_SRC = $(LUFA_DIR)/lufa.c \
$(LUFA_DIR)/descriptor.c \
diff --git a/protocol/lufa/lufa.c b/protocol/lufa/lufa.c
index 68f30dd162..98c3a68ffb 100644
--- a/protocol/lufa/lufa.c
+++ b/protocol/lufa/lufa.c
@@ -151,32 +151,41 @@ void EVENT_USB_Device_StartOfFrame(void)
/** Event handler for the USB_ConfigurationChanged event.
* This is fired when the host sets the current configuration of the USB device after enumeration.
*/
+#if LUFA_VERSION_INTEGER < 0x120730
+ /* old API 120219 */
+ #define ENDPOINT_CONFIG(epnum, eptype, epdir, epsize, epbank) Endpoint_ConfigureEndpoint(epnum, eptype, epdir, epsize, epbank)
+#else
+ /* new API >= 120730 */
+ #define ENDPOINT_BANK_SINGLE 1
+ #define ENDPOINT_BANK_DOUBLE 2
+ #define ENDPOINT_CONFIG(epnum, eptype, epdir, epsize, epbank) Endpoint_ConfigureEndpoint((epdir) | (epnum) , eptype, epsize, epbank)
+#endif
void EVENT_USB_Device_ConfigurationChanged(void)
{
bool ConfigSuccess = true;
/* Setup Keyboard HID Report Endpoints */
- ConfigSuccess &= Endpoint_ConfigureEndpoint(KEYBOARD_IN_EPNUM, EP_TYPE_INTERRUPT, ENDPOINT_DIR_IN,
- KEYBOARD_EPSIZE, ENDPOINT_BANK_SINGLE);
+ ConfigSuccess &= ENDPOINT_CONFIG(KEYBOARD_IN_EPNUM, EP_TYPE_INTERRUPT, ENDPOINT_DIR_IN,
+ KEYBOARD_EPSIZE, ENDPOINT_BANK_SINGLE);
#ifdef MOUSE_ENABLE
/* Setup Mouse HID Report Endpoint */
- ConfigSuccess &= Endpoint_ConfigureEndpoint(MOUSE_IN_EPNUM, EP_TYPE_INTERRUPT, ENDPOINT_DIR_IN,
- MOUSE_EPSIZE, ENDPOINT_BANK_SINGLE);
+ ConfigSuccess &= ENDPOINT_CONFIG(MOUSE_IN_EPNUM, EP_TYPE_INTERRUPT, ENDPOINT_DIR_IN,
+ MOUSE_EPSIZE, ENDPOINT_BANK_SINGLE);
#endif
#ifdef EXTRAKEY_ENABLE
/* Setup Extra HID Report Endpoint */
- ConfigSuccess &= Endpoint_ConfigureEndpoint(EXTRAKEY_IN_EPNUM, EP_TYPE_INTERRUPT, ENDPOINT_DIR_IN,
- EXTRAKEY_EPSIZE, ENDPOINT_BANK_SINGLE);
+ ConfigSuccess &= ENDPOINT_CONFIG(EXTRAKEY_IN_EPNUM, EP_TYPE_INTERRUPT, ENDPOINT_DIR_IN,
+ EXTRAKEY_EPSIZE, ENDPOINT_BANK_SINGLE);
#endif
#ifdef CONSOLE_ENABLE
/* Setup Console HID Report Endpoints */
- ConfigSuccess &= Endpoint_ConfigureEndpoint(CONSOLE_IN_EPNUM, EP_TYPE_INTERRUPT, ENDPOINT_DIR_IN,
- CONSOLE_EPSIZE, ENDPOINT_BANK_DOUBLE);
- ConfigSuccess &= Endpoint_ConfigureEndpoint(CONSOLE_OUT_EPNUM, EP_TYPE_INTERRUPT, ENDPOINT_DIR_OUT,
- CONSOLE_EPSIZE, ENDPOINT_BANK_SINGLE);
+ ConfigSuccess &= ENDPOINT_CONFIG(CONSOLE_IN_EPNUM, EP_TYPE_INTERRUPT, ENDPOINT_DIR_IN,
+ CONSOLE_EPSIZE, ENDPOINT_BANK_DOUBLE);
+ ConfigSuccess &= ENDPOINT_CONFIG(CONSOLE_OUT_EPNUM, EP_TYPE_INTERRUPT, ENDPOINT_DIR_OUT,
+ CONSOLE_EPSIZE, ENDPOINT_BANK_SINGLE);
#endif
}