aboutsummaryrefslogtreecommitdiffstats
path: root/LUFA/Drivers/USB
diff options
context:
space:
mode:
authorDean Camera <dean@fourwalledcubicle.com>2011-03-13 21:53:19 +0000
committerDean Camera <dean@fourwalledcubicle.com>2011-03-13 21:53:19 +0000
commit944e0d2009832f152006031f1aeb99f3ed014bc5 (patch)
treeb3b091beaf6b8da29840f4c614761537f28c9b07 /LUFA/Drivers/USB
parent6005a42150bf4d713fd962498bde8b540fef4035 (diff)
downloadlufa-944e0d2009832f152006031f1aeb99f3ed014bc5.tar.gz
lufa-944e0d2009832f152006031f1aeb99f3ed014bc5.tar.bz2
lufa-944e0d2009832f152006031f1aeb99f3ed014bc5.zip
Rename UC3B driver files to UC3, as they are generic to all AVR32 UC3 models.
Diffstat (limited to 'LUFA/Drivers/USB')
-rw-r--r--LUFA/Drivers/USB/Core/Device.h4
-rw-r--r--LUFA/Drivers/USB/Core/Endpoint.h4
-rw-r--r--LUFA/Drivers/USB/Core/Host.h4
-rw-r--r--LUFA/Drivers/USB/Core/Pipe.h4
-rw-r--r--LUFA/Drivers/USB/Core/UC3/Device_UC3.c (renamed from LUFA/Drivers/USB/Core/UC3B/Device_UC3B.c)0
-rw-r--r--LUFA/Drivers/USB/Core/UC3/Device_UC3.h (renamed from LUFA/Drivers/USB/Core/UC3B/Device_UC3B.h)14
-rw-r--r--LUFA/Drivers/USB/Core/UC3/Endpoint_UC3.c (renamed from LUFA/Drivers/USB/Core/UC3B/Endpoint_UC3B.c)0
-rw-r--r--LUFA/Drivers/USB/Core/UC3/Endpoint_UC3.h (renamed from LUFA/Drivers/USB/Core/UC3B/Endpoint_UC3B.h)76
-rw-r--r--LUFA/Drivers/USB/Core/UC3/Pipe_UC3.c (renamed from LUFA/Drivers/USB/Core/UC3B/Pipe_UC3B.c)0
-rw-r--r--LUFA/Drivers/USB/Core/UC3/Pipe_UC3.h (renamed from LUFA/Drivers/USB/Core/UC3B/Pipe_UC3B.h)86
-rw-r--r--LUFA/Drivers/USB/Core/UC3/USBController_UC3.c (renamed from LUFA/Drivers/USB/Core/UC3B/USBController_UC3B.c)0
-rw-r--r--LUFA/Drivers/USB/Core/UC3/USBController_UC3.h (renamed from LUFA/Drivers/USB/Core/UC3B/USBController_UC3B.h)12
-rw-r--r--LUFA/Drivers/USB/Core/UC3/USBInterrupt_UC3.c (renamed from LUFA/Drivers/USB/Core/UC3B/USBInterrupt_UC3B.c)0
-rw-r--r--LUFA/Drivers/USB/Core/UC3/USBInterrupt_UC3.h (renamed from LUFA/Drivers/USB/Core/UC3B/USBInterrupt_UC3B.h)6
-rw-r--r--LUFA/Drivers/USB/Core/UC3B/Host_UC3B.c355
-rw-r--r--LUFA/Drivers/USB/Core/UC3B/Host_UC3B.h422
-rw-r--r--LUFA/Drivers/USB/Core/USBController.h4
-rw-r--r--LUFA/Drivers/USB/Core/USBInterrupt.h4
18 files changed, 109 insertions, 886 deletions
diff --git a/LUFA/Drivers/USB/Core/Device.h b/LUFA/Drivers/USB/Core/Device.h
index 45c0393e4..414beacf3 100644
--- a/LUFA/Drivers/USB/Core/Device.h
+++ b/LUFA/Drivers/USB/Core/Device.h
@@ -128,8 +128,8 @@
/* Architecture Includes: */
#if (ARCH == ARCH_AVR8)
#include "AVR8/Device_AVR8.h"
- #elif (ARCH == ARCH_UC3B)
- #include "UC3B/Device_UC3B.h"
+ #elif (ARCH == ARCH_UC3)
+ #include "UC3/Device_UC3.h"
#endif
#endif
diff --git a/LUFA/Drivers/USB/Core/Endpoint.h b/LUFA/Drivers/USB/Core/Endpoint.h
index d7a8bb7f2..10b2b9c93 100644
--- a/LUFA/Drivers/USB/Core/Endpoint.h
+++ b/LUFA/Drivers/USB/Core/Endpoint.h
@@ -101,8 +101,8 @@
/* Architecture Includes: */
#if (ARCH == ARCH_AVR8)
#include "AVR8/Endpoint_AVR8.h"
- #elif (ARCH == ARCH_UC3B)
- #include "UC3B/Endpoint_UC3B.h"
+ #elif (ARCH == ARCH_UC3)
+ #include "UC3/Endpoint_UC3.h"
#endif
#endif
diff --git a/LUFA/Drivers/USB/Core/Host.h b/LUFA/Drivers/USB/Core/Host.h
index b864a9608..da8194fe8 100644
--- a/LUFA/Drivers/USB/Core/Host.h
+++ b/LUFA/Drivers/USB/Core/Host.h
@@ -165,8 +165,8 @@
/* Architecture Includes: */
#if (ARCH == ARCH_AVR8)
#include "AVR8/Host_AVR8.h"
- #elif (ARCH == ARCH_UC3B)
- #include "UC3B/Host_UC3B.h"
+ #elif (ARCH == ARCH_UC3)
+ #include "UC3/Host_UC3.h"
#endif
#endif
diff --git a/LUFA/Drivers/USB/Core/Pipe.h b/LUFA/Drivers/USB/Core/Pipe.h
index fb1c9d655..5354095a1 100644
--- a/LUFA/Drivers/USB/Core/Pipe.h
+++ b/LUFA/Drivers/USB/Core/Pipe.h
@@ -116,8 +116,8 @@
/* Architecture Includes: */
#if (ARCH == ARCH_AVR8)
#include "AVR8/Pipe_AVR8.h"
- #elif (ARCH == ARCH_UC3B)
- #include "UC3B/Pipe_UC3B.h"
+ #elif (ARCH == ARCH_UC3)
+ #include "UC3/Pipe_UC3.h"
#endif
#endif
diff --git a/LUFA/Drivers/USB/Core/UC3B/Device_UC3B.c b/LUFA/Drivers/USB/Core/UC3/Device_UC3.c
index c6b41a81c..c6b41a81c 100644
--- a/LUFA/Drivers/USB/Core/UC3B/Device_UC3B.c
+++ b/LUFA/Drivers/USB/Core/UC3/Device_UC3.c
diff --git a/LUFA/Drivers/USB/Core/UC3B/Device_UC3B.h b/LUFA/Drivers/USB/Core/UC3/Device_UC3.h
index e74f361ee..653044f38 100644
--- a/LUFA/Drivers/USB/Core/UC3B/Device_UC3B.h
+++ b/LUFA/Drivers/USB/Core/UC3/Device_UC3.h
@@ -29,24 +29,24 @@
*/
/** \file
- * \brief USB Device definitions for the AVR32 UC3B microcontrollers.
- * \copydetails Group_Device_UC3B
+ * \brief USB Device definitions for the AVR32 UC3 microcontrollers.
+ * \copydetails Group_Device_UC3
*
* \note This file should not be included directly. It is automatically included as needed by the USB driver
* dispatch header located in LUFA/Drivers/USB/USB.h.
*/
/** \ingroup Group_Device
- * \defgroup Group_Device_UC3B Device Management (UC3B)
- * \brief USB Device definitions for the AVR32 UC3B microcontrollers.
+ * \defgroup Group_Device_UC3 Device Management (UC3)
+ * \brief USB Device definitions for the AVR32 UC3 microcontrollers.
*
- * Architecture specific USB Device definitions for the Atmel 32-bit UC3B AVR microcontrollers.
+ * Architecture specific USB Device definitions for the Atmel 32-bit UC3 AVR microcontrollers.
*
* @{
*/
-#ifndef __USBDEVICE_UC3B_H__
-#define __USBDEVICE_UC3B_H__
+#ifndef __USBDEVICE_UC3_H__
+#define __USBDEVICE_UC3_H__
/* Includes: */
#include "../../../../Common/Common.h"
diff --git a/LUFA/Drivers/USB/Core/UC3B/Endpoint_UC3B.c b/LUFA/Drivers/USB/Core/UC3/Endpoint_UC3.c
index 14f66d922..14f66d922 100644
--- a/LUFA/Drivers/USB/Core/UC3B/Endpoint_UC3B.c
+++ b/LUFA/Drivers/USB/Core/UC3/Endpoint_UC3.c
diff --git a/LUFA/Drivers/USB/Core/UC3B/Endpoint_UC3B.h b/LUFA/Drivers/USB/Core/UC3/Endpoint_UC3.h
index 5de8225d0..38f68834e 100644
--- a/LUFA/Drivers/USB/Core/UC3B/Endpoint_UC3B.h
+++ b/LUFA/Drivers/USB/Core/UC3/Endpoint_UC3.h
@@ -29,38 +29,38 @@
*/
/** \file
- * \brief USB Endpoint definitions for the AVR32 UC3B microcontrollers.
- * \copydetails Group_EndpointManagement_UC3B
+ * \brief USB Endpoint definitions for the AVR32 UC3 microcontrollers.
+ * \copydetails Group_EndpointManagement_UC3
*
* \note This file should not be included directly. It is automatically included as needed by the USB driver
* dispatch header located in LUFA/Drivers/USB/USB.h.
*/
/** \ingroup Group_EndpointRW
- * \defgroup Group_EndpointRW_UC3B Endpoint Data Reading and Writing (UC3B)
- * \brief Endpoint data read/write definitions for the Atmel AVR32 UC3B architecture.
+ * \defgroup Group_EndpointRW_UC3 Endpoint Data Reading and Writing (UC3)
+ * \brief Endpoint data read/write definitions for the Atmel AVR32 UC3 architecture.
*
* Functions, macros, variables, enums and types related to data reading and writing from and to endpoints.
*/
/** \ingroup Group_EndpointPrimitiveRW
- * \defgroup Group_EndpointPrimitiveRW_UC3B Read/Write of Primitive Data Types (UC3B)
- * \brief Endpoint primative read/write definitions for the Atmel AVR32 UC3B architecture.
+ * \defgroup Group_EndpointPrimitiveRW_UC3 Read/Write of Primitive Data Types (UC3)
+ * \brief Endpoint primative read/write definitions for the Atmel AVR32 UC3 architecture.
*
* Functions, macros, variables, enums and types related to data reading and writing of primitive data types
* from and to endpoints.
*/
/** \ingroup Group_EndpointPacketManagement
- * \defgroup Group_EndpointPacketManagement_UC3B Endpoint Packet Management (UC3B)
- * \brief Endpoint packet management definitions for the Atmel AVR32 UC3B architecture.
+ * \defgroup Group_EndpointPacketManagement_UC3 Endpoint Packet Management (UC3)
+ * \brief Endpoint packet management definitions for the Atmel AVR32 UC3 architecture.
*
* Functions, macros, variables, enums and types related to packet management of endpoints.
*/
/** \ingroup Group_EndpointManagement
- * \defgroup Group_EndpointManagement_UC3B Endpoint Management (UC3B)
- * \brief Endpoint management definitions for the Atmel AVR32 UC3B architecture.
+ * \defgroup Group_EndpointManagement_UC3 Endpoint Management (UC3)
+ * \brief Endpoint management definitions for the Atmel AVR32 UC3 architecture.
*
* Functions, macros and enums related to endpoint management when in USB Device mode. This
* module contains the endpoint management macros, as well as endpoint interrupt and data
@@ -69,8 +69,8 @@
* @{
*/
-#ifndef __ENDPOINT_UC3B_H__
-#define __ENDPOINT_UC3B_H__
+#ifndef __ENDPOINT_UC3_H__
+#define __ENDPOINT_UC3_H__
/* Includes: */
#include "../../../../Common/Common.h"
@@ -205,7 +205,7 @@
/* Enums: */
/** Enum for the possible error return codes of the \ref Endpoint_WaitUntilReady() function.
*
- * \ingroup Group_EndpointRW_UC3B
+ * \ingroup Group_EndpointRW_UC3
*/
enum Endpoint_WaitUntilReady_ErrorCodes_t
{
@@ -290,7 +290,7 @@
* \note The return width of this function may differ, depending on the maximum endpoint bank size
* of the selected AVR model.
*
- * \ingroup Group_EndpointRW_UC3B
+ * \ingroup Group_EndpointRW_UC3
*
* \return Total number of bytes in the currently selected Endpoint's FIFO buffer.
*/
@@ -374,7 +374,7 @@
* transmission via the \ref Endpoint_ClearIN() command, or are awaiting acknowledgement via the
* \ref Endpoint_ClearOUT() command.
*
- * \ingroup Group_EndpointPacketManagement_UC3B
+ * \ingroup Group_EndpointPacketManagement_UC3
*
* \return Total number of busy banks in the selected endpoint.
*/
@@ -388,7 +388,7 @@
* will terminate all queued transactions, resetting the endpoint banks ready for a new
* packet.
*
- * \ingroup Group_EndpointPacketManagement_UC3B
+ * \ingroup Group_EndpointPacketManagement_UC3
*/
static inline void Endpoint_AbortPendingIN(void)
{
@@ -405,7 +405,7 @@
* is an OUT direction and no packet (or an empty packet) has been received, or if the endpoint is an IN
* direction and the endpoint bank is full.
*
- * \ingroup Group_EndpointPacketManagement_UC3B
+ * \ingroup Group_EndpointPacketManagement_UC3
*
* \return Boolean \c true if the currently selected endpoint may be read from or written to, depending
* on its direction.
@@ -456,7 +456,7 @@
/** Determines if the selected IN endpoint is ready for a new packet to be sent to the host.
*
- * \ingroup Group_EndpointPacketManagement_UC3B
+ * \ingroup Group_EndpointPacketManagement_UC3
*
* \return Boolean \c true if the current endpoint is ready for an IN packet, \c false otherwise.
*/
@@ -468,7 +468,7 @@
/** Determines if the selected OUT endpoint has received new packet from the host.
*
- * \ingroup Group_EndpointPacketManagement_UC3B
+ * \ingroup Group_EndpointPacketManagement_UC3
*
* \return Boolean \c true if current endpoint is has received an OUT packet, \c false otherwise.
*/
@@ -480,7 +480,7 @@
/** Determines if the current CONTROL type endpoint has received a SETUP packet.
*
- * \ingroup Group_EndpointPacketManagement_UC3B
+ * \ingroup Group_EndpointPacketManagement_UC3
*
* \return Boolean \c true if the selected endpoint has received a SETUP packet, \c false otherwise.
*/
@@ -493,7 +493,7 @@
/** Clears a received SETUP packet on the currently selected CONTROL type endpoint, freeing up the
* endpoint for the next packet.
*
- * \ingroup Group_EndpointPacketManagement_UC3B
+ * \ingroup Group_EndpointPacketManagement_UC3
*
* \note This is not applicable for non CONTROL type endpoints.
*/
@@ -507,7 +507,7 @@
/** Sends an IN packet to the host on the currently selected endpoint, freeing up the endpoint for the
* next packet and switching to the alternative endpoint bank if double banked.
*
- * \ingroup Group_EndpointPacketManagement_UC3B
+ * \ingroup Group_EndpointPacketManagement_UC3
*/
static inline void Endpoint_ClearIN(void) ATTR_ALWAYS_INLINE;
static inline void Endpoint_ClearIN(void)
@@ -520,7 +520,7 @@
/** Acknowledges an OUT packet to the host on the currently selected endpoint, freeing up the endpoint
* for the next packet and switching to the alternative endpoint bank if double banked.
*
- * \ingroup Group_EndpointPacketManagement_UC3B
+ * \ingroup Group_EndpointPacketManagement_UC3
*/
static inline void Endpoint_ClearOUT(void) ATTR_ALWAYS_INLINE;
static inline void Endpoint_ClearOUT(void)
@@ -539,7 +539,7 @@
* is called, or the host issues a CLEAR FEATURE request to the device for the currently selected
* endpoint.
*
- * \ingroup Group_EndpointPacketManagement_UC3B
+ * \ingroup Group_EndpointPacketManagement_UC3
*/
static inline void Endpoint_StallTransaction(void) ATTR_ALWAYS_INLINE;
static inline void Endpoint_StallTransaction(void)
@@ -549,7 +549,7 @@
/** Clears the STALL condition on the currently selected endpoint.
*
- * \ingroup Group_EndpointPacketManagement_UC3B
+ * \ingroup Group_EndpointPacketManagement_UC3
*/
static inline void Endpoint_ClearStall(void) ATTR_ALWAYS_INLINE;
static inline void Endpoint_ClearStall(void)
@@ -559,7 +559,7 @@
/** Determines if the currently selected endpoint is stalled, false otherwise.
*
- * \ingroup Group_EndpointPacketManagement_UC3B
+ * \ingroup Group_EndpointPacketManagement_UC3
*
* \return Boolean \c true if the currently selected endpoint is stalled, \c false otherwise.
*/
@@ -622,7 +622,7 @@
/** Discards one byte from the currently selected endpoint's bank, for OUT direction endpoints.
*
- * \ingroup Group_EndpointPrimitiveRW_UC3B
+ * \ingroup Group_EndpointPrimitiveRW_UC3
*/
static inline void Endpoint_Discard_Byte(void) ATTR_ALWAYS_INLINE;
static inline void Endpoint_Discard_Byte(void)
@@ -635,7 +635,7 @@
/** Reads two bytes from the currently selected endpoint's bank in little endian format, for OUT
* direction endpoints.
*
- * \ingroup Group_EndpointPrimitiveRW_UC3B
+ * \ingroup Group_EndpointPrimitiveRW_UC3
*
* \return Next word in the currently selected endpoint's FIFO buffer.
*/
@@ -651,7 +651,7 @@
/** Reads two bytes from the currently selected endpoint's bank in big endian format, for OUT
* direction endpoints.
*
- * \ingroup Group_EndpointPrimitiveRW_UC3B
+ * \ingroup Group_EndpointPrimitiveRW_UC3
*
* \return Next word in the currently selected endpoint's FIFO buffer.
*/
@@ -667,7 +667,7 @@
/** Writes two bytes to the currently selected endpoint's bank in little endian format, for IN
* direction endpoints.
*
- * \ingroup Group_EndpointPrimitiveRW_UC3B
+ * \ingroup Group_EndpointPrimitiveRW_UC3
*
* \param[in] Word Next word to write to the currently selected endpoint's FIFO buffer.
*/
@@ -681,7 +681,7 @@
/** Writes two bytes to the currently selected endpoint's bank in big endian format, for IN
* direction endpoints.
*
- * \ingroup Group_EndpointPrimitiveRW_UC3B
+ * \ingroup Group_EndpointPrimitiveRW_UC3
*
* \param[in] Word Next word to write to the currently selected endpoint's FIFO buffer.
*/
@@ -694,7 +694,7 @@
/** Discards two bytes from the currently selected endpoint's bank, for OUT direction endpoints.
*
- * \ingroup Group_EndpointPrimitiveRW_UC3B
+ * \ingroup Group_EndpointPrimitiveRW_UC3
*/
static inline void Endpoint_Discard_Word(void) ATTR_ALWAYS_INLINE;
static inline void Endpoint_Discard_Word(void)
@@ -708,7 +708,7 @@
/** Reads four bytes from the currently selected endpoint's bank in little endian format, for OUT
* direction endpoints.
*
- * \ingroup Group_EndpointPrimitiveRW_UC3B
+ * \ingroup Group_EndpointPrimitiveRW_UC3
*
* \return Next double word in the currently selected endpoint's FIFO buffer.
*/
@@ -726,7 +726,7 @@
/** Reads four bytes from the currently selected endpoint's bank in big endian format, for OUT
* direction endpoints.
*
- * \ingroup Group_EndpointPrimitiveRW_UC3B
+ * \ingroup Group_EndpointPrimitiveRW_UC3
*
* \return Next double word in the currently selected endpoint's FIFO buffer.
*/
@@ -744,7 +744,7 @@
/** Writes four bytes to the currently selected endpoint's bank in little endian format, for IN
* direction endpoints.
*
- * \ingroup Group_EndpointPrimitiveRW_UC3B
+ * \ingroup Group_EndpointPrimitiveRW_UC3
*
* \param[in] DWord Next double word to write to the currently selected endpoint's FIFO buffer.
*/
@@ -760,7 +760,7 @@
/** Writes four bytes to the currently selected endpoint's bank in big endian format, for IN
* direction endpoints.
*
- * \ingroup Group_EndpointPrimitiveRW_UC3B
+ * \ingroup Group_EndpointPrimitiveRW_UC3
*
* \param[in] DWord Next double word to write to the currently selected endpoint's FIFO buffer.
*/
@@ -775,7 +775,7 @@
/** Discards four bytes from the currently selected endpoint's bank, for OUT direction endpoints.
*
- * \ingroup Group_EndpointPrimitiveRW_UC3B
+ * \ingroup Group_EndpointPrimitiveRW_UC3
*/
static inline void Endpoint_Discard_DWord(void) ATTR_ALWAYS_INLINE;
static inline void Endpoint_Discard_DWord(void)
@@ -822,7 +822,7 @@
*
* \note This routine should not be called on CONTROL type endpoints.
*
- * \ingroup Group_EndpointRW_UC3B
+ * \ingroup Group_EndpointRW_UC3
*
* \return A value from the \ref Endpoint_WaitUntilReady_ErrorCodes_t enum.
*/
diff --git a/LUFA/Drivers/USB/Core/UC3B/Pipe_UC3B.c b/LUFA/Drivers/USB/Core/UC3/Pipe_UC3.c
index 870828ec1..870828ec1 100644
--- a/LUFA/Drivers/USB/Core/UC3B/Pipe_UC3B.c
+++ b/LUFA/Drivers/USB/Core/UC3/Pipe_UC3.c
diff --git a/LUFA/Drivers/USB/Core/UC3B/Pipe_UC3B.h b/LUFA/Drivers/USB/Core/UC3/Pipe_UC3.h
index a13513832..204169f00 100644
--- a/LUFA/Drivers/USB/Core/UC3B/Pipe_UC3B.h
+++ b/LUFA/Drivers/USB/Core/UC3/Pipe_UC3.h
@@ -29,38 +29,38 @@
*/
/** \file
- * \brief USB Pipe definitions for the AVR32 UC3B microcontrollers.
- * \copydetails Group_PipeManagement_UC3B
+ * \brief USB Pipe definitions for the AVR32 UC3 microcontrollers.
+ * \copydetails Group_PipeManagement_UC3
*
* \note This file should not be included directly. It is automatically included as needed by the USB driver
* dispatch header located in LUFA/Drivers/USB/USB.h.
*/
/** \ingroup Group_PipeRW
- * \defgroup Group_PipeRW_UC3B Pipe Data Reading and Writing (UC3B)
- * \brief Pipe data read/write definitions for the Atmel AVR32 UC3B architecture.
+ * \defgroup Group_PipeRW_UC3 Pipe Data Reading and Writing (UC3)
+ * \brief Pipe data read/write definitions for the Atmel AVR32 UC3 architecture.
*
* Functions, macros, variables, enums and types related to data reading and writing from and to pipes.
*/
/** \ingroup Group_PipePrimitiveRW
- * \defgroup Group_PipePrimitiveRW_UC3B Read/Write of Primitive Data Types (UC3B)
- * \brief Pipe primative data read/write definitions for the Atmel AVR32 UC3B architecture.
+ * \defgroup Group_PipePrimitiveRW_UC3 Read/Write of Primitive Data Types (UC3)
+ * \brief Pipe primative data read/write definitions for the Atmel AVR32 UC3 architecture.
*
* Functions, macros, variables, enums and types related to data reading and writing of primitive data types
* from and to pipes.
*/
/** \ingroup Group_PipePacketManagement
- * \defgroup Group_PipePacketManagement_UC3B Pipe Packet Management (UC3B)
- * \brief Pipe packet management definitions for the Atmel AVR32 UC3B architecture.
+ * \defgroup Group_PipePacketManagement_UC3 Pipe Packet Management (UC3)
+ * \brief Pipe packet management definitions for the Atmel AVR32 UC3 architecture.
*
* Functions, macros, variables, enums and types related to packet management of pipes.
*/
/** \ingroup Group_PipeControlReq
- * \defgroup Group_PipeControlReq_UC3B Pipe Control Request Management (UC3B)
- * \brief Pipe control request management definitions for the Atmel AVR32 UC3B architecture.
+ * \defgroup Group_PipeControlReq_UC3 Pipe Control Request Management (UC3)
+ * \brief Pipe control request management definitions for the Atmel AVR32 UC3 architecture.
*
* Module for host mode request processing. This module allows for the transmission of standard, class and
* vendor control requests to the default control endpoint of an attached device while in host mode.
@@ -69,8 +69,8 @@
*/
/** \ingroup Group_PipeManagement
- * \defgroup Group_PipeManagement_UC3B Pipe Management (UC3B)
- * \brief Pipe management definitions for the Atmel AVR32 UC3B architecture.
+ * \defgroup Group_PipeManagement_UC3 Pipe Management (UC3)
+ * \brief Pipe management definitions for the Atmel AVR32 UC3 architecture.
*
* This module contains functions, macros and enums related to pipe management when in USB Host mode. This
* module contains the pipe management macros, as well as pipe interrupt and data send/receive functions
@@ -79,8 +79,8 @@
* @{
*/
-#ifndef __PIPE_UC3B_H__
-#define __PIPE_UC3B_H__
+#ifndef __PIPE_UC3_H__
+#define __PIPE_UC3_H__
/* Includes: */
#include "../../../../Common/Common.h"
@@ -180,14 +180,14 @@
/** Size in bytes of the largest pipe bank size possible in the device. Not all banks on each AVR
* model supports the largest bank size possible on the device; different pipe numbers support
* different maximum bank sizes. This value reflects the largest possible bank of any pipe on the
- * currently selected UC3B AVR model.
+ * currently selected UC3 AVR model.
*/
#define PIPE_MAX_SIZE 256
/* Enums: */
/** Enum for the possible error return codes of the \ref Pipe_WaitUntilReady() function.
*
- * \ingroup Group_PipeRW_UC3B
+ * \ingroup Group_PipeRW_UC3
*/
enum Pipe_WaitUntilReady_ErrorCodes_t
{
@@ -206,7 +206,7 @@
* \note The return width of this function may differ, depending on the maximum pipe bank size
* of the selected AVR model.
*
- * \ingroup Group_PipeRW_UC3B
+ * \ingroup Group_PipeRW_UC3
*
* \return Total number of bytes in the currently selected pipe's FIFO buffer.
*/
@@ -447,7 +447,7 @@
* transmission via the \ref Pipe_ClearOUT() command, or are awaiting acknowledgement via the
* \ref Pipe_ClearIN() command.
*
- * \ingroup Group_PipePacketManagement_UC3B
+ * \ingroup Group_PipePacketManagement_UC3
*
* \return Total number of busy banks in the selected pipe.
*/
@@ -464,7 +464,7 @@
*
* \note This function is not valid on CONTROL type pipes.
*
- * \ingroup Group_PipePacketManagement_UC3B
+ * \ingroup Group_PipePacketManagement_UC3
*
* \return Boolean \c true if the currently selected pipe may be read from or written to, depending
* on its direction.
@@ -477,7 +477,7 @@
/** Determines if a packet has been received on the currently selected IN pipe from the attached device.
*
- * \ingroup Group_PipePacketManagement_UC3B
+ * \ingroup Group_PipePacketManagement_UC3
*
* \return Boolean \c true if the current pipe has received an IN packet, \c false otherwise.
*/
@@ -489,7 +489,7 @@
/** Determines if the currently selected OUT pipe is ready to send an OUT packet to the attached device.
*
- * \ingroup Group_PipePacketManagement_UC3B
+ * \ingroup Group_PipePacketManagement_UC3
*
* \return Boolean \c true if the current pipe is ready for an OUT packet, \c false otherwise.
*/
@@ -502,7 +502,7 @@
/** Determines if no SETUP request is currently being sent to the attached device on the selected
* CONTROL type pipe.
*
- * \ingroup Group_PipePacketManagement_UC3B
+ * \ingroup Group_PipePacketManagement_UC3
*
* \return Boolean \c true if the current pipe is ready for a SETUP packet, \c false otherwise.
*/
@@ -514,7 +514,7 @@
/** Sends the currently selected CONTROL type pipe's contents to the device as a SETUP packet.
*
- * \ingroup Group_PipePacketManagement_UC3B
+ * \ingroup Group_PipePacketManagement_UC3
*/
static inline void Pipe_ClearSETUP(void) ATTR_ALWAYS_INLINE;
static inline void Pipe_ClearSETUP(void)
@@ -526,7 +526,7 @@
/** Acknowledges the reception of a setup IN request from the attached device on the currently selected
* pipe, freeing the bank ready for the next packet.
*
- * \ingroup Group_PipePacketManagement_UC3B
+ * \ingroup Group_PipePacketManagement_UC3
*/
static inline void Pipe_ClearIN(void) ATTR_ALWAYS_INLINE;
static inline void Pipe_ClearIN(void)
@@ -539,7 +539,7 @@
/** Sends the currently selected pipe's contents to the device as an OUT packet on the selected pipe, freeing
* the bank ready for the next packet.
*
- * \ingroup Group_PipePacketManagement_UC3B
+ * \ingroup Group_PipePacketManagement_UC3
*/
static inline void Pipe_ClearOUT(void) ATTR_ALWAYS_INLINE;
static inline void Pipe_ClearOUT(void)
@@ -555,7 +555,7 @@
* received, it must be cleared using \ref Pipe_ClearNAKReceived() before the previous (or any other) packet
* can be re-sent.
*
- * \ingroup Group_PipePacketManagement_UC3B
+ * \ingroup Group_PipePacketManagement_UC3
*
* \return Boolean \c true if an NAK has been received on the current pipe, \c false otherwise.
*/
@@ -567,7 +567,7 @@
/** Clears the NAK condition on the currently selected pipe.
*
- * \ingroup Group_PipePacketManagement_UC3B
+ * \ingroup Group_PipePacketManagement_UC3
*
* \see \ref Pipe_IsNAKReceived() for more details.
*/
@@ -579,7 +579,7 @@
/** Determines if the currently selected pipe has had the STALL condition set by the attached device.
*
- * \ingroup Group_PipePacketManagement_UC3B
+ * \ingroup Group_PipePacketManagement_UC3
*
* \return Boolean \c true if the current pipe has been stalled by the attached device, \c false otherwise.
*/
@@ -592,7 +592,7 @@
/** Clears the STALL condition detection flag on the currently selected pipe, but does not clear the
* STALL condition itself (this must be done via a ClearFeature control request to the device).
*
- * \ingroup Group_PipePacketManagement_UC3B
+ * \ingroup Group_PipePacketManagement_UC3
*/
static inline void Pipe_ClearStall(void) ATTR_ALWAYS_INLINE;
static inline void Pipe_ClearStall(void)
@@ -603,7 +603,7 @@
/** Reads one byte from the currently selected pipe's bank, for OUT direction pipes.
*
- * \ingroup Group_PipePrimitiveRW_UC3B
+ * \ingroup Group_PipePrimitiveRW_UC3
*
* \return Next byte in the currently selected pipe's FIFO buffer.
*/
@@ -615,7 +615,7 @@
/** Writes one byte from the currently selected pipe's bank, for IN direction pipes.
*
- * \ingroup Group_PipePrimitiveRW_UC3B
+ * \ingroup Group_PipePrimitiveRW_UC3
*
* \param[in] Byte Next byte to write into the the currently selected pipe's FIFO buffer.
*/
@@ -627,7 +627,7 @@
/** Discards one byte from the currently selected pipe's bank, for OUT direction pipes.
*
- * \ingroup Group_PipePrimitiveRW_UC3B
+ * \ingroup Group_PipePrimitiveRW_UC3
*/
static inline void Pipe_Discard_Byte(void) ATTR_ALWAYS_INLINE;
static inline void Pipe_Discard_Byte(void)
@@ -640,7 +640,7 @@
/** Reads two bytes from the currently selected pipe's bank in little endian format, for OUT
* direction pipes.
*
- * \ingroup Group_PipePrimitiveRW_UC3B
+ * \ingroup Group_PipePrimitiveRW_UC3
*
* \return Next word in the currently selected pipe's FIFO buffer.
*/
@@ -656,7 +656,7 @@
/** Reads two bytes from the currently selected pipe's bank in big endian format, for OUT
* direction pipes.
*
- * \ingroup Group_PipePrimitiveRW_UC3B
+ * \ingroup Group_PipePrimitiveRW_UC3
*
* \return Next word in the currently selected pipe's FIFO buffer.
*/
@@ -672,7 +672,7 @@
/** Writes two bytes to the currently selected pipe's bank in little endian format, for IN
* direction pipes.
*
- * \ingroup Group_PipePrimitiveRW_UC3B
+ * \ingroup Group_PipePrimitiveRW_UC3
*
* \param[in] Word Next word to write to the currently selected pipe's FIFO buffer.
*/
@@ -686,7 +686,7 @@
/** Writes two bytes to the currently selected pipe's bank in big endian format, for IN
* direction pipes.
*
- * \ingroup Group_PipePrimitiveRW_UC3B
+ * \ingroup Group_PipePrimitiveRW_UC3
*
* \param[in] Word Next word to write to the currently selected pipe's FIFO buffer.
*/
@@ -699,7 +699,7 @@
/** Discards two bytes from the currently selected pipe's bank, for OUT direction pipes.
*
- * \ingroup Group_PipePrimitiveRW_UC3B
+ * \ingroup Group_PipePrimitiveRW_UC3
*/
static inline void Pipe_Discard_Word(void) ATTR_ALWAYS_INLINE;
static inline void Pipe_Discard_Word(void)
@@ -713,7 +713,7 @@
/** Reads four bytes from the currently selected pipe's bank in little endian format, for OUT
* direction pipes.
*
- * \ingroup Group_PipePrimitiveRW_UC3B
+ * \ingroup Group_PipePrimitiveRW_UC3
*
* \return Next double word in the currently selected pipe's FIFO buffer.
*/
@@ -731,7 +731,7 @@
/** Reads four bytes from the currently selected pipe's bank in big endian format, for OUT
* direction pipes.
*
- * \ingroup Group_PipePrimitiveRW_UC3B
+ * \ingroup Group_PipePrimitiveRW_UC3
*
* \return Next double word in the currently selected pipe's FIFO buffer.
*/
@@ -749,7 +749,7 @@
/** Writes four bytes to the currently selected pipe's bank in little endian format, for IN
* direction pipes.
*
- * \ingroup Group_PipePrimitiveRW_UC3B
+ * \ingroup Group_PipePrimitiveRW_UC3
*
* \param[in] DWord Next double word to write to the currently selected pipe's FIFO buffer.
*/
@@ -765,7 +765,7 @@
/** Writes four bytes to the currently selected pipe's bank in big endian format, for IN
* direction pipes.
*
- * \ingroup Group_PipePrimitiveRW_UC3B
+ * \ingroup Group_PipePrimitiveRW_UC3
*
* \param[in] DWord Next double word to write to the currently selected pipe's FIFO buffer.
*/
@@ -780,7 +780,7 @@
/** Discards four bytes from the currently selected pipe's bank, for OUT direction pipes.
*
- * \ingroup Group_PipePrimitiveRW_UC3B
+ * \ingroup Group_PipePrimitiveRW_UC3
*/
static inline void Pipe_Discard_DWord(void) ATTR_ALWAYS_INLINE;
static inline void Pipe_Discard_DWord(void)
@@ -861,7 +861,7 @@
/** Spin-loops until the currently selected non-control pipe is ready for the next packed of data to be read
* or written to it, aborting in the case of an error condition (such as a timeout or device disconnect).
*
- * \ingroup Group_PipeRW_UC3B
+ * \ingroup Group_PipeRW_UC3
*
* \return A value from the \ref Pipe_WaitUntilReady_ErrorCodes_t enum.
*/
diff --git a/LUFA/Drivers/USB/Core/UC3B/USBController_UC3B.c b/LUFA/Drivers/USB/Core/UC3/USBController_UC3.c
index 40ac381f6..40ac381f6 100644
--- a/LUFA/Drivers/USB/Core/UC3B/USBController_UC3B.c
+++ b/LUFA/Drivers/USB/Core/UC3/USBController_UC3.c
diff --git a/LUFA/Drivers/USB/Core/UC3B/USBController_UC3B.h b/LUFA/Drivers/USB/Core/UC3/USBController_UC3.h
index dde6f2313..c975bb3e9 100644
--- a/LUFA/Drivers/USB/Core/UC3B/USBController_UC3B.h
+++ b/LUFA/Drivers/USB/Core/UC3/USBController_UC3.h
@@ -29,24 +29,24 @@
*/
/** \file
- * \brief USB Controller definitions for the AVR32 UC3B microcontrollers.
- * \copydetails Group_USBManagement_UC3B
+ * \brief USB Controller definitions for the AVR32 UC3 microcontrollers.
+ * \copydetails Group_USBManagement_UC3
*
* \note This file should not be included directly. It is automatically included as needed by the USB driver
* dispatch header located in LUFA/Drivers/USB/USB.h.
*/
/** \ingroup Group_USBManagement
- * \defgroup Group_USBManagement_UC3B USB Interface Management (UC3B)
- * \brief USB Controller definitions for the AVR32 UC3B microcontrollers.
+ * \defgroup Group_USBManagement_UC3 USB Interface Management (UC3)
+ * \brief USB Controller definitions for the AVR32 UC3 microcontrollers.
*
* Functions, macros, variables, enums and types related to the setup and management of the USB interface.
*
* @{
*/
-#ifndef __USBCONTROLLER_UC3B_H__
-#define __USBCONTROLLER_UC3B_H__
+#ifndef __USBCONTROLLER_UC3_H__
+#define __USBCONTROLLER_UC3_H__
/* Includes: */
#include "../../../../Common/Common.h"
diff --git a/LUFA/Drivers/USB/Core/UC3B/USBInterrupt_UC3B.c b/LUFA/Drivers/USB/Core/UC3/USBInterrupt_UC3.c
index aee8940e3..aee8940e3 100644
--- a/LUFA/Drivers/USB/Core/UC3B/USBInterrupt_UC3B.c
+++ b/LUFA/Drivers/USB/Core/UC3/USBInterrupt_UC3.c
diff --git a/LUFA/Drivers/USB/Core/UC3B/USBInterrupt_UC3B.h b/LUFA/Drivers/USB/Core/UC3/USBInterrupt_UC3.h
index 6bc836b77..119243360 100644
--- a/LUFA/Drivers/USB/Core/UC3B/USBInterrupt_UC3B.h
+++ b/LUFA/Drivers/USB/Core/UC3/USBInterrupt_UC3.h
@@ -29,7 +29,7 @@
*/
/** \file
- * \brief USB Controller Interrupt definitions for the AVR32 UC3B microcontrollers.
+ * \brief USB Controller Interrupt definitions for the AVR32 UC3 microcontrollers.
*
* This file contains definitions required for the correct handling of low level USB service routine interrupts
* from the USB controller.
@@ -38,8 +38,8 @@
* dispatch header located in LUFA/Drivers/USB/USB.h.
*/
-#ifndef __USBINTERRUPT_UC3B_H__
-#define __USBINTERRUPT_UC3B_H__
+#ifndef __USBINTERRUPT_UC3_H__
+#define __USBINTERRUPT_UC3_H__
/* Includes: */
#include "../../../../Common/Common.h"
diff --git a/LUFA/Drivers/USB/Core/UC3B/Host_UC3B.c b/LUFA/Drivers/USB/Core/UC3B/Host_UC3B.c
deleted file mode 100644
index 6d49abbb2..000000000
--- a/LUFA/Drivers/USB/Core/UC3B/Host_UC3B.c
+++ /dev/null
@@ -1,355 +0,0 @@
-/*
- LUFA Library
- Copyright (C) Dean Camera, 2011.
-
- dean [at] fourwalledcubicle [dot] com
- www.lufa-lib.org
-*/
-
-/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
-
- Permission to use, copy, modify, distribute, and sell this
- software and its documentation for any purpose is hereby granted
- without fee, provided that the above copyright notice appear in
- all copies and that both that the copyright notice and this
- permission notice and warranty disclaimer appear in supporting
- documentation, and that the name of the author not be used in
- advertising or publicity pertaining to distribution of the
- software without specific, written prior permission.
-
- The author disclaim all warranties with regard to this
- software, including all implied warranties of merchantability
- and fitness. In no event shall the author be liable for any
- special, indirect or consequential damages or any damages
- whatsoever resulting from loss of use, data or profits, whether
- in an action of contract, negligence or other tortious action,
- arising out of or in connection with the use or performance of
- this software.
-*/
-
-#define __INCLUDE_FROM_USB_DRIVER
-#include "../USBMode.h"
-
-#if defined(USB_CAN_BE_HOST)
-
-#define __INCLUDE_FROM_HOST_C
-#include "../Host.h"
-
-void USB_Host_ProcessNextHostState(void)
-{
- uint8_t ErrorCode = HOST_ENUMERROR_NoError;
- uint8_t SubErrorCode = HOST_ENUMERROR_NoError;
-
- static uint16_t WaitMSRemaining;
- static uint8_t PostWaitState;
-
- switch (USB_HostState)
- {
- case HOST_STATE_WaitForDevice:
- if (WaitMSRemaining)
- {
- if ((SubErrorCode = USB_Host_WaitMS(1)) != HOST_WAITERROR_Successful)
- {
- USB_HostState = PostWaitState;
- ErrorCode = HOST_ENUMERROR_WaitStage;
- break;
- }
-
- if (!(--WaitMSRemaining))
- USB_HostState = PostWaitState;
- }
-
- break;
- case HOST_STATE_Powered:
- WaitMSRemaining = HOST_DEVICE_SETTLE_DELAY_MS;
-
- USB_HostState = HOST_STATE_Powered_WaitForDeviceSettle;
- break;
- case HOST_STATE_Powered_WaitForDeviceSettle:
- if (WaitMSRemaining--)
- {
- _delay_ms(1);
- break;
- }
- else
- {
- USB_Host_VBUS_Manual_Off();
-
- USB_OTGPAD_On();
- USB_Host_VBUS_Auto_Enable();
- USB_Host_VBUS_Auto_On();
-
- USB_HostState = HOST_STATE_Powered_WaitForConnect;
- }
-
- break;
- case HOST_STATE_Powered_WaitForConnect:
- if (USB_INT_HasOccurred(USB_INT_DCONNI))
- {
- USB_INT_Clear(USB_INT_DCONNI);
- USB_INT_Clear(USB_INT_DDISCI);
-
- USB_INT_Clear(USB_INT_VBERRI);
- USB_INT_Enable(USB_INT_VBERRI);
-
- USB_Host_ResumeBus();
- Pipe_ClearPipes();
-
- HOST_TASK_NONBLOCK_WAIT(100, HOST_STATE_Powered_DoReset);
- }
-
- break;
- case HOST_STATE_Powered_DoReset:
- USB_Host_ResetDevice();
-
- HOST_TASK_NONBLOCK_WAIT(200, HOST_STATE_Powered_ConfigPipe);
- break;
- case HOST_STATE_Powered_ConfigPipe:
- Pipe_ConfigurePipe(PIPE_CONTROLPIPE, EP_TYPE_CONTROL,
- PIPE_TOKEN_SETUP, ENDPOINT_CONTROLEP,
- PIPE_CONTROLPIPE_DEFAULT_SIZE, PIPE_BANK_SINGLE);
-
- if (!(Pipe_IsConfigured()))
- {
- ErrorCode = HOST_ENUMERROR_PipeConfigError;
- SubErrorCode = 0;
- break;
- }
-
- USB_HostState = HOST_STATE_Default;
- break;
- case HOST_STATE_Default:
- USB_ControlRequest = (USB_Request_Header_t)
- {
- .bmRequestType = (REQDIR_DEVICETOHOST | REQTYPE_STANDARD | REQREC_DEVICE),
- .bRequest = REQ_GetDescriptor,
- .wValue = (DTYPE_Device << 8),
- .wIndex = 0,
- .wLength = 8,
- };
-
- uint8_t DataBuffer[8];
-
- if ((SubErrorCode = USB_Host_SendControlRequest(DataBuffer)) != HOST_SENDCONTROL_Successful)
- {
- ErrorCode = HOST_ENUMERROR_ControlError;
- break;
- }
-
- USB_ControlPipeSize = DataBuffer[offsetof(USB_Descriptor_Device_t, Endpoint0Size)];
-
- USB_Host_ResetDevice();
-
- HOST_TASK_NONBLOCK_WAIT(200, HOST_STATE_Default_PostReset);
- break;
- case HOST_STATE_Default_PostReset:
- Pipe_ConfigurePipe(PIPE_CONTROLPIPE, EP_TYPE_CONTROL,
- PIPE_TOKEN_SETUP, ENDPOINT_CONTROLEP,
- USB_ControlPipeSize, PIPE_BANK_SINGLE);
-
- if (!(Pipe_IsConfigured()))
- {
- ErrorCode = HOST_ENUMERROR_PipeConfigError;
- SubErrorCode = 0;
- break;
- }
-
- USB_ControlRequest = (USB_Request_Header_t)
- {
- .bmRequestType = (REQDIR_HOSTTODEVICE | REQTYPE_STANDARD | REQREC_DEVICE),
- .bRequest = REQ_SetAddress,
- .wValue = USB_HOST_DEVICEADDRESS,
- .wIndex = 0,
- .wLength = 0,
- };
-
- if ((SubErrorCode = USB_Host_SendControlRequest(NULL)) != HOST_SENDCONTROL_Successful)
- {
- ErrorCode = HOST_ENUMERROR_ControlError;
- break;
- }
-
- HOST_TASK_NONBLOCK_WAIT(100, HOST_STATE_Default_PostAddressSet);
- break;
- case HOST_STATE_Default_PostAddressSet:
- USB_Host_SetDeviceAddress(USB_HOST_DEVICEADDRESS);
-
- EVENT_USB_Host_DeviceEnumerationComplete();
- USB_HostState = HOST_STATE_Addressed;
- break;
- }
-
- if ((ErrorCode != HOST_ENUMERROR_NoError) && (USB_HostState != HOST_STATE_Unattached))
- {
- EVENT_USB_Host_DeviceEnumerationFailed(ErrorCode, SubErrorCode);
-
- USB_Host_VBUS_Auto_Off();
-
- EVENT_USB_Host_DeviceUnattached();
-
- USB_ResetInterface();
- }
-}
-
-uint8_t USB_Host_WaitMS(uint8_t MS)
-{
- bool BusSuspended = USB_Host_IsBusSuspended();
- uint8_t ErrorCode = HOST_WAITERROR_Successful;
- bool HSOFIEnabled = USB_INT_IsEnabled(USB_INT_HSOFI);
-
- USB_INT_Disable(USB_INT_HSOFI);
- USB_INT_Clear(USB_INT_HSOFI);
-
- USB_Host_ResumeBus();
-
- while (MS)
- {
- if (USB_INT_HasOccurred(USB_INT_HSOFI))
- {
- USB_INT_Clear(USB_INT_HSOFI);
- MS--;
- }
-
- if ((USB_HostState == HOST_STATE_Unattached) || (USB_CurrentMode != USB_MODE_Host))
- {
- ErrorCode = HOST_WAITERROR_DeviceDisconnect;
-
- break;
- }
-
- if (Pipe_IsError() == true)
- {
- Pipe_ClearError();
- ErrorCode = HOST_WAITERROR_PipeError;
-
- break;
- }
-
- if (Pipe_IsStalled() == true)
- {
- Pipe_ClearStall();
- ErrorCode = HOST_WAITERROR_SetupStalled;
-
- break;
- }
- }
-
- if (BusSuspended)
- USB_Host_SuspendBus();
-
- if (HSOFIEnabled)
- USB_INT_Enable(USB_INT_HSOFI);
-
- return ErrorCode;
-}
-
-static void USB_Host_ResetDevice(void)
-{
- bool BusSuspended = USB_Host_IsBusSuspended();
-
- USB_INT_Disable(USB_INT_DDISCI);
-
- USB_Host_ResetBus();
- while (!(USB_Host_IsBusResetComplete()));
- USB_Host_ResumeBus();
-
- bool HSOFIEnabled = USB_INT_IsEnabled(USB_INT_HSOFI);
-
- USB_INT_Disable(USB_INT_HSOFI);
- USB_INT_Clear(USB_INT_HSOFI);
-
- for (uint8_t MSRem = 10; MSRem != 0; MSRem--)
- {
- /* Workaround for powerless-pull-up devices. After a USB bus reset,
- all disconnection interrupts are suppressed while a USB frame is
- looked for - if it is found within 10ms, the device is still
- present. */
-
- if (USB_INT_HasOccurred(USB_INT_HSOFI))
- {
- USB_INT_Clear(USB_INT_HSOFI);
- USB_INT_Clear(USB_INT_DDISCI);
- break;
- }
-
- _delay_ms(1);
- }
-
- if (HSOFIEnabled)
- USB_INT_Enable(USB_INT_HSOFI);
-
- if (BusSuspended)
- USB_Host_SuspendBus();
-
- USB_INT_Enable(USB_INT_DDISCI);
-}
-
-uint8_t USB_Host_SetDeviceConfiguration(const uint8_t ConfigNumber)
-{
- USB_ControlRequest = (USB_Request_Header_t)
- {
- .bmRequestType = (REQDIR_HOSTTODEVICE | REQTYPE_STANDARD | REQREC_DEVICE),
- .bRequest = REQ_SetConfiguration,
- .wValue = ConfigNumber,
- .wIndex = 0,
- .wLength = 0,
- };
-
- Pipe_SelectPipe(PIPE_CONTROLPIPE);
-
- return USB_Host_SendControlRequest(NULL);
-}
-
-uint8_t USB_Host_GetDeviceDescriptor(void* const DeviceDescriptorPtr)
-{
- USB_ControlRequest = (USB_Request_Header_t)
- {
- .bmRequestType = (REQDIR_DEVICETOHOST | REQTYPE_STANDARD | REQREC_DEVICE),
- .bRequest = REQ_GetDescriptor,
- .wValue = (DTYPE_Device << 8),
- .wIndex = 0,
- .wLength = sizeof(USB_Descriptor_Device_t),
- };
-
- Pipe_SelectPipe(PIPE_CONTROLPIPE);
-
- return USB_Host_SendControlRequest(DeviceDescriptorPtr);
-}
-
-uint8_t USB_Host_GetDeviceStringDescriptor(const uint8_t Index,
- void* const Buffer,
- const uint8_t BufferLength)
-{
- USB_ControlRequest = (USB_Request_Header_t)
- {
- .bmRequestType = (REQDIR_DEVICETOHOST | REQTYPE_STANDARD | REQREC_DEVICE),
- .bRequest = REQ_GetDescriptor,
- .wValue = (DTYPE_String << 8) | Index,
- .wIndex = 0,
- .wLength = BufferLength,
- };
-
- Pipe_SelectPipe(PIPE_CONTROLPIPE);
-
- return USB_Host_SendControlRequest(Buffer);
-}
-
-uint8_t USB_Host_ClearPipeStall(const uint8_t EndpointNum)
-{
- USB_ControlRequest = (USB_Request_Header_t)
- {
- .bmRequestType = (REQDIR_HOSTTODEVICE | REQTYPE_STANDARD | REQREC_ENDPOINT),
- .bRequest = REQ_ClearFeature,
- .wValue = FEATURE_SEL_EndpointHalt,
- .wIndex = EndpointNum,
- .wLength = 0,
- };
-
- Pipe_SelectPipe(PIPE_CONTROLPIPE);
-
- return USB_Host_SendControlRequest(NULL);
-}
-
-#endif
-
diff --git a/LUFA/Drivers/USB/Core/UC3B/Host_UC3B.h b/LUFA/Drivers/USB/Core/UC3B/Host_UC3B.h
deleted file mode 100644
index 4d08a4c98..000000000
--- a/LUFA/Drivers/USB/Core/UC3B/Host_UC3B.h
+++ /dev/null
@@ -1,422 +0,0 @@
-/*
- LUFA Library
- Copyright (C) Dean Camera, 2011.
-
- dean [at] fourwalledcubicle [dot] com
- www.lufa-lib.org
-*/
-
-/*
- Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com)
-
- Permission to use, copy, modify, distribute, and sell this
- software and its documentation for any purpose is hereby granted
- without fee, provided that the above copyright notice appear in
- all copies and that both that the copyright notice and this
- permission notice and warranty disclaimer appear in supporting
- documentation, and that the name of the author not be used in
- advertising or publicity pertaining to distribution of the
- software without specific, written prior permission.
-
- The author disclaim all warranties with regard to this
- software, including all implied warranties of merchantability
- and fitness. In no event shall the author be liable for any
- special, indirect or consequential damages or any damages
- whatsoever resulting from loss of use, data or profits, whether
- in an action of contract, negligence or other tortious action,
- arising out of or in connection with the use or performance of
- this software.
-*/
-
-/** \file
- * \brief USB Host definitions for the AVR32 UC3B microcontrollers.
- * \copydetails Group_Host_UC3B
- *
- * \note This file should not be included directly. It is automatically included as needed by the USB driver
- * dispatch header located in LUFA/Drivers/USB/USB.h.
- */
-
-/** \ingroup Group_Host
- * \defgroup Group_Host_UC3B Host Management (UC3B)
- * \brief USB Host definitions for the AVR32 UC3B microcontrollers.
- *
- * Architecture specific USB Host definitions for the Atmel 32-bit AVR UC3B microcontrollers.
- *
- * @{
- */
-
-#ifndef __USBHOST_UC3B_H__
-#define __USBHOST_UC3B_H__
-
- /* Includes: */
- #include "../../../../Common/Common.h"
- #include "../StdDescriptors.h"
- #include "../Pipe.h"
- #include "../USBInterrupt.h"
-
- /* Enable C linkage for C++ Compilers: */
- #if defined(__cplusplus)
- extern "C" {
- #endif
-
- /* Preprocessor Checks: */
- #if !defined(__INCLUDE_FROM_USB_DRIVER)
- #error Do not include this file directly. Include LUFA/Drivers/USB/USB.h instead.
- #endif
-
- /* Public Interface - May be used in end-application: */
- /* Macros: */
- /** Indicates the fixed USB device address which any attached device is enumerated to when in
- * host mode. As only one USB device may be attached to the AVR in host mode at any one time
- * and that the address used is not important (other than the fact that it is non-zero), a
- * fixed value is specified by the library.
- */
- #define USB_HOST_DEVICEADDRESS 1
-
- #if !defined(USB_HOST_TIMEOUT_MS) || defined(__DOXYGEN__)
- /** Constant for the maximum software timeout period of sent USB control transactions to an attached
- * device. If a device fails to respond to a sent control request within this period, the
- * library will return a timeout error code.
- *
- * This value may be overridden in the user project makefile as the value of the
- * \ref USB_HOST_TIMEOUT_MS token, and passed to the compiler using the -D switch.
- */
- #define USB_HOST_TIMEOUT_MS 1000
- #endif
-
- #if !defined(HOST_DEVICE_SETTLE_DELAY_MS) || defined(__DOXYGEN__)
- /** Constant for the delay in milliseconds after a device is connected before the library
- * will start the enumeration process. Some devices require a delay of up to 5 seconds
- * after connection before the enumeration process can start or incorrect operation will
- * occur.
- *
- * The default delay value may be overridden in the user project makefile by defining the
- * \c HOST_DEVICE_SETTLE_DELAY_MS token to the required delay in milliseconds, and passed to the
- * compiler using the -D switch.
- */
- #define HOST_DEVICE_SETTLE_DELAY_MS 1000
- #endif
-
- /* Enums: */
- /** Enum for the error codes for the \ref EVENT_USB_Host_HostError() event.
- *
- * \see \ref Group_Events for more information on this event.
- */
- enum USB_Host_ErrorCodes_t
- {
- HOST_ERROR_VBusVoltageDip = 0, /**< VBUS voltage dipped to an unacceptable level. This
- * error may be the result of an attached device drawing
- * too much current from the VBUS line, or due to the
- * AVR's power source being unable to supply sufficient
- * current.
- */
- };
-
- /** Enum for the error codes for the \ref EVENT_USB_Host_DeviceEnumerationFailed() event.
- *
- * \see \ref Group_Events for more information on this event.
- */
- enum USB_Host_EnumerationErrorCodes_t
- {
- HOST_ENUMERROR_NoError = 0, /**< No error occurred. Used internally, this is not a valid
- * ErrorCode parameter value for the \ref EVENT_USB_Host_DeviceEnumerationFailed()
- * event.
- */
- HOST_ENUMERROR_WaitStage = 1, /**< One of the delays between enumeration steps failed
- * to complete successfully, due to a timeout or other
- * error.
- */
- HOST_ENUMERROR_NoDeviceDetected = 2, /**< No device was detected, despite the USB data lines
- * indicating the attachment of a device.
- */
- HOST_ENUMERROR_ControlError = 3, /**< One of the enumeration control requests failed to
- * complete successfully.
- */
- HOST_ENUMERROR_PipeConfigError = 4, /**< The default control pipe (address 0) failed to
- * configure correctly.
- */
- };
-
- /* Inline Functions: */
- /** Returns the current USB frame number, when in host mode. Every millisecond the USB bus is active (i.e. not suspended)
- * the frame number is incremented by one.
- */
- static inline uint16_t USB_Host_GetFrameNumber(void)
- {
- return AVR32_USBB_UHFNUM;
- }
-
- #if !defined(NO_SOF_EVENTS)
- /** Enables the host mode Start Of Frame events. When enabled, this causes the
- * \ref EVENT_USB_Host_StartOfFrame() event to fire once per millisecond, synchronized to the USB bus,
- * at the start of each USB frame when a device is enumerated while in host mode.
- *
- * \note Not available when the \c NO_SOF_EVENTS compile time token is defined.
- */
- static inline void USB_Host_EnableSOFEvents(void) ATTR_ALWAYS_INLINE;
- static inline void USB_Host_EnableSOFEvents(void)
- {
- USB_INT_Enable(USB_INT_HSOFI);
- }
-
- /** Disables the host mode Start Of Frame events. When disabled, this stops the firing of the
- * \ref EVENT_USB_Host_StartOfFrame() event when enumerated in host mode.
- *
- * \note Not available when the NO_SOF_EVENTS compile time token is defined.
- */
- static inline void USB_Host_DisableSOFEvents(void) ATTR_ALWAYS_INLINE;
- static inline void USB_Host_DisableSOFEvents(void)
- {
- USB_INT_Disable(USB_INT_HSOFI);
- }
- #endif
-
- /** Resets the USB bus, including the endpoints in any attached device and pipes on the AVR host.
- * USB bus resets leave the default control pipe configured (if already configured).
- *
- * If the USB bus has been suspended prior to issuing a bus reset, the attached device will be
- * woken up automatically and the bus resumed after the reset has been correctly issued.
- */
- static inline void USB_Host_ResetBus(void) ATTR_ALWAYS_INLINE;
- static inline void USB_Host_ResetBus(void)
- {
- AVR32_USBB.UHCON.reset = true;
- }
-
- /** Determines if a previously issued bus reset (via the \ref USB_Host_ResetBus() macro) has
- * completed.
- *
- * \return Boolean \c true if no bus reset is currently being sent, \c false otherwise.
- */
- static inline bool USB_Host_IsBusResetComplete(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
- static inline bool USB_Host_IsBusResetComplete(void)
- {
- return AVR32_USBB.UHCON.reset;
- }
-
- /** Resumes USB communications with an attached and enumerated device, by resuming the transmission
- * of the 1MS Start Of Frame messages to the device. When resumed, USB communications between the
- * host and attached device may occur.
- */
- static inline void USB_Host_ResumeBus(void) ATTR_ALWAYS_INLINE;
- static inline void USB_Host_ResumeBus(void)
- {
- AVR32_USBB.UHCON.sofe = true;
- }
-
- /** Suspends the USB bus, preventing any communications from occurring between the host and attached
- * device until the bus has been resumed. This stops the transmission of the 1MS Start Of Frame
- * messages to the device.
- */
- static inline void USB_Host_SuspendBus(void) ATTR_ALWAYS_INLINE;
- static inline void USB_Host_SuspendBus(void)
- {
- AVR32_USBB.UHCON.sofe = false;
- }
-
- /** Determines if the USB bus has been suspended via the use of the \ref USB_Host_SuspendBus() macro,
- * false otherwise. While suspended, no USB communications can occur until the bus is resumed,
- * except for the Remote Wakeup event from the device if supported.
- *
- * \return Boolean \c true if the bus is currently suspended, \c false otherwise.
- */
- static inline bool USB_Host_IsBusSuspended(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
- static inline bool USB_Host_IsBusSuspended(void)
- {
- return AVR32_USBB.UHCON.sofe;
- }
-
- /** Determines if the attached device is currently enumerated in Full Speed mode (12Mb/s), or
- * false if the attached device is enumerated in Low Speed mode (1.5Mb/s).
- *
- * \return Boolean \c true if the attached device is enumerated in Full Speed mode, \c false otherwise.
- */
- static inline bool USB_Host_IsDeviceFullSpeed(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
- static inline bool USB_Host_IsDeviceFullSpeed(void)
- {
- return (AVR32_USBB.USBSTA.speed == AVR32_USBB_SPEED_FULL);
- }
-
- /** Determines if the attached device is currently issuing a Remote Wakeup request, requesting
- * that the host resume the USB bus and wake up the device, false otherwise.
- *
- * \return Boolean \c true if the attached device has sent a Remote Wakeup request, \c false otherwise.
- */
- static inline bool USB_Host_IsRemoteWakeupSent(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
- static inline bool USB_Host_IsRemoteWakeupSent(void)
- {
- return AVR32_USBB.UHINT.rxrsmi;
- }
-
- /** Clears the flag indicating that a Remote Wakeup request has been issued by an attached device. */
- static inline void USB_Host_ClearRemoteWakeupSent(void) ATTR_ALWAYS_INLINE;
- static inline void USB_Host_ClearRemoteWakeupSent(void)
- {
- AVR32_USBB.UHINTCLR.rxrsmic = true;
- }
-
- /** Accepts a Remote Wakeup request from an attached device. This must be issued in response to
- * a device's Remote Wakeup request within 2ms for the request to be accepted and the bus to
- * be resumed.
- */
- static inline void USB_Host_ResumeFromWakeupRequest(void) ATTR_ALWAYS_INLINE;
- static inline void USB_Host_ResumeFromWakeupRequest(void)
- {
- AVR32_USBB.UHCON.resume = true;
- }
-
- /** Determines if a resume from Remote Wakeup request is currently being sent to an attached
- * device.
- *
- * \return Boolean \c true if no resume request is currently being sent, \c false otherwise.
- */
- static inline bool USB_Host_IsResumeFromWakeupRequestSent(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
- static inline bool USB_Host_IsResumeFromWakeupRequestSent(void)
- {
- return AVR32_USBB.UHCON.resume;
- }
-
- /* Function Prototypes: */
- /** Convenience function. This routine sends a SET CONFIGURATION standard request to the attached
- * device, with the given configuration index. This can be used to easily set the device
- * configuration without creating and sending the request manually.
- *
- * \note After this routine returns, the control pipe will be selected.
- *
- * \param[in] ConfigNumber Configuration index to send to the device.
- *
- * \return A value from the \ref USB_Host_SendControlErrorCodes_t enum to indicate the result.
- */
- uint8_t USB_Host_SetDeviceConfiguration(const uint8_t ConfigNumber);
-
- /** Convenience function. This routine sends a GET DESCRIPTOR standard request to the attached
- * device, requesting the device descriptor. This can be used to easily retrieve information
- * about the device such as its VID, PID and power requirements.
- *
- * \note After this routine returns, the control pipe will be selected.
- *
- * \param[out] DeviceDescriptorPtr Pointer to the destination device descriptor structure where
- * the read data is to be stored.
- *
- * \return A value from the \ref USB_Host_SendControlErrorCodes_t enum to indicate the result.
- */
- uint8_t USB_Host_GetDeviceDescriptor(void* const DeviceDescriptorPtr);
-
- /** Convenience function. This routine sends a GET DESCRIPTOR standard request to the attached
- * device, requesting the string descriptor of the specified index. This can be used to easily
- * retrieve string descriptors from the device by index, after the index is obtained from the
- * Device or Configuration descriptors.
- *
- * \note After this routine returns, the control pipe will be selected.
- *
- * \param[in] Index Index of the string index to retrieve.
- * \param[out] Buffer Pointer to the destination buffer where the retrieved string descriptor is
- * to be stored.
- * \param[in] BufferLength Maximum size of the string descriptor which can be stored into the buffer.
- *
- * \return A value from the \ref USB_Host_SendControlErrorCodes_t enum to indicate the result.
- */
- uint8_t USB_Host_GetDeviceStringDescriptor(const uint8_t Index,
- void* const Buffer,
- const uint8_t BufferLength);
-
- /** Clears a stall condition on the given pipe, via a CLEAR FEATURE standard request to the attached device.
- *
- * \note After this routine returns, the control pipe will be selected.
- *
- * \param[in] EndpointIndex Index of the endpoint to clear, including the endpoint's direction.
- *
- * \return A value from the \ref USB_Host_SendControlErrorCodes_t enum to indicate the result.
- */
- uint8_t USB_Host_ClearPipeStall(const uint8_t EndpointIndex);
-
- /* Private Interface - For use in library only: */
- #if !defined(__DOXYGEN__)
- /* Macros: */
- static inline void USB_Host_HostMode_On(void) ATTR_ALWAYS_INLINE;
- static inline void USB_Host_HostMode_On(void)
- {
- // Not required for UC3B
- }
-
- static inline void USB_Host_HostMode_Off(void) ATTR_ALWAYS_INLINE;
- static inline void USB_Host_HostMode_Off(void)
- {
- // Not required for UC3B
- }
-
- static inline void USB_Host_VBUS_Auto_Enable(void) ATTR_ALWAYS_INLINE;
- static inline void USB_Host_VBUS_Auto_Enable(void)
- {
- AVR32_USBB.USBCON.vbushwc = false;
- }
-
- static inline void USB_Host_VBUS_Manual_Enable(void) ATTR_ALWAYS_INLINE;
- static inline void USB_Host_VBUS_Manual_Enable(void)
- {
- AVR32_USBB.USBCON.vbushwc = true;
- }
-
- static inline void USB_Host_VBUS_Auto_On(void) ATTR_ALWAYS_INLINE;
- static inline void USB_Host_VBUS_Auto_On(void)
- {
- AVR32_USBB.USBSTASET.vbusrqs = true;
- }
-
- static inline void USB_Host_VBUS_Manual_On(void) ATTR_ALWAYS_INLINE;
- static inline void USB_Host_VBUS_Manual_On(void)
- {
- AVR32_USBB.USBSTASET.vbusrqs = true;
- }
-
- static inline void USB_Host_VBUS_Auto_Off(void) ATTR_ALWAYS_INLINE;
- static inline void USB_Host_VBUS_Auto_Off(void)
- {
- AVR32_USBB.USBSTACLR.vbusrqc = true;
- }
-
- static inline void USB_Host_VBUS_Manual_Off(void) ATTR_ALWAYS_INLINE;
- static inline void USB_Host_VBUS_Manual_Off(void)
- {
- AVR32_USBB.USBSTACLR.vbusrqc = true;
- }
-
- static inline void USB_Host_SetDeviceAddress(const uint8_t Address) ATTR_ALWAYS_INLINE;
- static inline void USB_Host_SetDeviceAddress(const uint8_t Address)
- {
- AVR32_USBB.UHADDR1.uhaddr_p0 = Address;
- AVR32_USBB.UHADDR1.uhaddr_p1 = Address;
- AVR32_USBB.UHADDR1.uhaddr_p2 = Address;
- AVR32_USBB.UHADDR1.uhaddr_p3 = Address;
- AVR32_USBB.UHADDR2.uhaddr_p4 = Address;
- AVR32_USBB.UHADDR2.uhaddr_p5 = Address;
- AVR32_USBB.UHADDR2.uhaddr_p6 = Address;
- }
-
- /* Enums: */
- enum USB_Host_WaitMSErrorCodes_t
- {
- HOST_WAITERROR_Successful = 0,
- HOST_WAITERROR_DeviceDisconnect = 1,
- HOST_WAITERROR_PipeError = 2,
- HOST_WAITERROR_SetupStalled = 3,
- };
-
- /* Function Prototypes: */
- void USB_Host_ProcessNextHostState(void);
- uint8_t USB_Host_WaitMS(uint8_t MS);
-
- #if defined(__INCLUDE_FROM_HOST_C)
- static void USB_Host_ResetDevice(void);
- #endif
- #endif
-
- /* Disable C linkage for C++ Compilers: */
- #if defined(__cplusplus)
- }
- #endif
-
-#endif
-
-/** @} */
-
diff --git a/LUFA/Drivers/USB/Core/USBController.h b/LUFA/Drivers/USB/Core/USBController.h
index fc18029b6..0568deef6 100644
--- a/LUFA/Drivers/USB/Core/USBController.h
+++ b/LUFA/Drivers/USB/Core/USBController.h
@@ -60,8 +60,8 @@
/* Architecture Includes: */
#if (ARCH == ARCH_AVR8)
#include "AVR8/USBController_AVR8.h"
- #elif (ARCH == ARCH_UC3B)
- #include "UC3B/USBController_UC3B.h"
+ #elif (ARCH == ARCH_UC3)
+ #include "UC3/USBController_UC3.h"
#endif
#endif
diff --git a/LUFA/Drivers/USB/Core/USBInterrupt.h b/LUFA/Drivers/USB/Core/USBInterrupt.h
index 735d0e164..3217bda89 100644
--- a/LUFA/Drivers/USB/Core/USBInterrupt.h
+++ b/LUFA/Drivers/USB/Core/USBInterrupt.h
@@ -53,8 +53,8 @@
/* Architecture Includes: */
#if (ARCH == ARCH_AVR8)
#include "AVR8/USBInterrupt_AVR8.h"
- #elif (ARCH == ARCH_UC3B)
- #include "UC3B/USBInterrupt_UC3B.h"
+ #elif (ARCH == ARCH_UC3)
+ #include "UC3/USBInterrupt_UC3.h"
#endif
#endif