aboutsummaryrefslogtreecommitdiffstats
path: root/LUFA/Drivers/USB
diff options
context:
space:
mode:
authorDean Camera <dean@fourwalledcubicle.com>2011-07-14 05:38:32 +0000
committerDean Camera <dean@fourwalledcubicle.com>2011-07-14 05:38:32 +0000
commitbc41cbd26d26c9e8e4656948377d157fa3585ee9 (patch)
tree812874ba8c38e7d2619608095f75587ccfbfeae7 /LUFA/Drivers/USB
parent7c3290607e655d568be88fba222d9adedbfa1fd8 (diff)
downloadlufa-bc41cbd26d26c9e8e4656948377d157fa3585ee9.tar.gz
lufa-bc41cbd26d26c9e8e4656948377d157fa3585ee9.tar.bz2
lufa-bc41cbd26d26c9e8e4656948377d157fa3585ee9.zip
Add support for triple endpoint/pipe bank AVR32 UC3 devices.
Diffstat (limited to 'LUFA/Drivers/USB')
-rw-r--r--LUFA/Drivers/USB/Core/UC3/Endpoint_UC3.h13
-rw-r--r--LUFA/Drivers/USB/Core/UC3/Pipe_UC3.h11
-rw-r--r--LUFA/Drivers/USB/Core/UC3/USBController_UC3.h2
3 files changed, 24 insertions, 2 deletions
diff --git a/LUFA/Drivers/USB/Core/UC3/Endpoint_UC3.h b/LUFA/Drivers/USB/Core/UC3/Endpoint_UC3.h
index a5870f8cf..84566624f 100644
--- a/LUFA/Drivers/USB/Core/UC3/Endpoint_UC3.h
+++ b/LUFA/Drivers/USB/Core/UC3/Endpoint_UC3.h
@@ -117,7 +117,7 @@
#define ENDPOINT_DETAILS_EP3 512, 2
#define ENDPOINT_DETAILS_EP4 512, 2
#define ENDPOINT_DETAILS_EP5 512, 2
- #define ENDPOINT_DETAILS_EP6 512, 2
+ #define ENDPOINT_DETAILS_EP6 512, 2
#define ENDPOINT_DETAILS_EP7 512, 2
#elif defined(USB_SERIES_UC3B0_AVR32) || defined(USB_SERIES_UC3B1_AVR32)
#define ENDPOINT_DETAILS_MAXEP 7
@@ -190,6 +190,17 @@
* accesses the second bank.
*/
#define ENDPOINT_BANK_DOUBLE AVR32_USBB_UECFG0_EPBK_DOUBLE
+
+ #if defined(USB_SERIES_UC3A3_AVR32) || defined(USB_SERIES_UC3A4_AVR32) || defined(__DOXYGEN__)
+ /** Mask for the bank mode selection for the \ref Endpoint_ConfigureEndpoint() macro. This indicates
+ * that the endpoint should have three banks, which requires more USB FIFO memory but results
+ * in faster transfers as one USB device (the AVR or the host) can access one bank while the other
+ * accesses the remaining banks.
+ *
+ * \note Not available on all AVR models.
+ */
+ #define ENDPOINT_BANK_TRIPLE AVR32_USBB_UECFG0_EPBK_TRIPLE
+ #endif
//@}
#if (!defined(FIXED_CONTROL_ENDPOINT_SIZE) || defined(__DOXYGEN__))
diff --git a/LUFA/Drivers/USB/Core/UC3/Pipe_UC3.h b/LUFA/Drivers/USB/Core/UC3/Pipe_UC3.h
index ae8f0363c..25a4586d8 100644
--- a/LUFA/Drivers/USB/Core/UC3/Pipe_UC3.h
+++ b/LUFA/Drivers/USB/Core/UC3/Pipe_UC3.h
@@ -161,6 +161,17 @@
* bank.
*/
#define PIPE_BANK_DOUBLE AVR32_USBB_UPCFG0_PBK_DOUBLE
+
+ #if defined(USB_SERIES_UC3A3_AVR32) || defined(USB_SERIES_UC3A4_AVR32) || defined(__DOXYGEN__)
+ /** Mask for the bank mode selection for the \ref Pipe_ConfigurePipe() macro. This indicates that the
+ * pipe should have three banks, which requires more USB FIFO memory but results in faster transfers
+ * as one USB device (the AVR or the attached device) can access one bank while the other accesses the
+ * remaining banks.
+ *
+ * \note Not available on all AVR models.
+ */
+ #define PIPE_BANK_TRIPLE AVR32_USBB_UPCFG0_PBK_TRIPLE
+ #endif
//@}
/** Default size of the default control pipe's bank, until altered by the Endpoint0Size value
diff --git a/LUFA/Drivers/USB/Core/UC3/USBController_UC3.h b/LUFA/Drivers/USB/Core/UC3/USBController_UC3.h
index 0bad549ca..c2f85b8af 100644
--- a/LUFA/Drivers/USB/Core/UC3/USBController_UC3.h
+++ b/LUFA/Drivers/USB/Core/UC3/USBController_UC3.h
@@ -298,7 +298,7 @@
/* Private Interface - For use in library only: */
#if !defined(__DOXYGEN__)
/* Macros: */
- #if (defined(USB_SERIES_UC3A3_AVR32) || defined(USB_SERIES_UC3A4_AVR32))
+ #if defined(USB_SERIES_UC3A3_AVR32) || defined(USB_SERIES_UC3A4_AVR32)
#define USB_CLOCK_REQUIRED_FREQ 12000000UL
#else
#define USB_CLOCK_REQUIRED_FREQ 48000000UL