aboutsummaryrefslogtreecommitdiffstats
path: root/LUFA/Drivers/USB
diff options
context:
space:
mode:
authorDean Camera <dean@fourwalledcubicle.com>2011-02-20 13:08:29 +0000
committerDean Camera <dean@fourwalledcubicle.com>2011-02-20 13:08:29 +0000
commit5e7319058268e021ae39ca4b9fcabaec0060117b (patch)
treef40fe1525f2053746540498041f1e8a819277bd7 /LUFA/Drivers/USB
parent1daa5e16f9a395fb2943906a715adb35b8106988 (diff)
downloadlufa-5e7319058268e021ae39ca4b9fcabaec0060117b.tar.gz
lufa-5e7319058268e021ae39ca4b9fcabaec0060117b.tar.bz2
lufa-5e7319058268e021ae39ca4b9fcabaec0060117b.zip
Start update of documentation to support possible multiple architectures in the future - alter \file documentation to automatically copy in the module documentation where possible.
Diffstat (limited to 'LUFA/Drivers/USB')
-rw-r--r--LUFA/Drivers/USB/Class/Common/Audio.h2
-rw-r--r--LUFA/Drivers/USB/Class/Common/CDC.h2
-rw-r--r--LUFA/Drivers/USB/Class/Common/HID.h2
-rw-r--r--LUFA/Drivers/USB/Class/Common/HIDParser.h2
-rw-r--r--LUFA/Drivers/USB/Class/Common/MIDI.h2
-rw-r--r--LUFA/Drivers/USB/Class/Common/MassStorage.h2
-rw-r--r--LUFA/Drivers/USB/Class/Common/Printer.h2
-rw-r--r--LUFA/Drivers/USB/Class/Common/RNDIS.h2
-rw-r--r--LUFA/Drivers/USB/Class/Common/StillImage.h2
-rw-r--r--LUFA/Drivers/USB/Class/Device/Audio.h2
-rw-r--r--LUFA/Drivers/USB/Class/Device/CDC.h1
-rw-r--r--LUFA/Drivers/USB/Class/Device/HID.h2
-rw-r--r--LUFA/Drivers/USB/Class/Device/MIDI.h2
-rw-r--r--LUFA/Drivers/USB/Class/Device/MassStorage.h2
-rw-r--r--LUFA/Drivers/USB/Class/Device/RNDIS.h2
-rw-r--r--LUFA/Drivers/USB/Class/Host/CDC.h1
-rw-r--r--LUFA/Drivers/USB/Class/Host/RNDIS.h3
-rw-r--r--LUFA/Drivers/USB/Core/AVR8/Device.h55
-rw-r--r--LUFA/Drivers/USB/Core/AVR8/Endpoint.h7
-rw-r--r--LUFA/Drivers/USB/Core/AVR8/Host.h9
-rw-r--r--LUFA/Drivers/USB/Core/AVR8/OTG.h11
-rw-r--r--LUFA/Drivers/USB/Core/AVR8/Pipe.h7
-rw-r--r--LUFA/Drivers/USB/Core/AVR8/USBController.h9
-rw-r--r--LUFA/Drivers/USB/Core/AVR8/USBInterrupt.h12
-rw-r--r--LUFA/Drivers/USB/Core/ConfigDescriptor.h12
-rw-r--r--LUFA/Drivers/USB/Core/Device.h42
-rw-r--r--LUFA/Drivers/USB/Core/Endpoint.h7
-rw-r--r--LUFA/Drivers/USB/Core/EndpointStream.h7
-rw-r--r--LUFA/Drivers/USB/Core/Events.h16
-rw-r--r--LUFA/Drivers/USB/Core/Host.h7
-rw-r--r--LUFA/Drivers/USB/Core/OTG.h7
-rw-r--r--LUFA/Drivers/USB/Core/Pipe.h7
-rw-r--r--LUFA/Drivers/USB/Core/PipeStream.h7
-rw-r--r--LUFA/Drivers/USB/Core/StdDescriptors.h8
-rw-r--r--LUFA/Drivers/USB/Core/StdRequestType.h4
-rw-r--r--LUFA/Drivers/USB/Core/USBController.h7
-rw-r--r--LUFA/Drivers/USB/Core/USBMode.h19
37 files changed, 117 insertions, 176 deletions
diff --git a/LUFA/Drivers/USB/Class/Common/Audio.h b/LUFA/Drivers/USB/Class/Common/Audio.h
index be899bb2f..ab6428022 100644
--- a/LUFA/Drivers/USB/Class/Common/Audio.h
+++ b/LUFA/Drivers/USB/Class/Common/Audio.h
@@ -53,8 +53,6 @@
/* Includes: */
#include "../../Core/StdDescriptors.h"
- #include <string.h>
-
/* Enable C linkage for C++ Compilers: */
#if defined(__cplusplus)
extern "C" {
diff --git a/LUFA/Drivers/USB/Class/Common/CDC.h b/LUFA/Drivers/USB/Class/Common/CDC.h
index 5a4c2c21c..cfaebb858 100644
--- a/LUFA/Drivers/USB/Class/Common/CDC.h
+++ b/LUFA/Drivers/USB/Class/Common/CDC.h
@@ -53,8 +53,6 @@
/* Includes: */
#include "../../Core/StdDescriptors.h"
- #include <string.h>
-
/* Enable C linkage for C++ Compilers: */
#if defined(__cplusplus)
extern "C" {
diff --git a/LUFA/Drivers/USB/Class/Common/HID.h b/LUFA/Drivers/USB/Class/Common/HID.h
index 7b0c34d9f..f9684ed25 100644
--- a/LUFA/Drivers/USB/Class/Common/HID.h
+++ b/LUFA/Drivers/USB/Class/Common/HID.h
@@ -54,8 +54,6 @@
#include "../../Core/StdDescriptors.h"
#include "HIDParser.h"
- #include <string.h>
-
/* Preprocessor Checks: */
#if !defined(__INCLUDE_FROM_HID_DRIVER)
#error Do not include this file directly. Include LUFA/Drivers/USB.h instead.
diff --git a/LUFA/Drivers/USB/Class/Common/HIDParser.h b/LUFA/Drivers/USB/Class/Common/HIDParser.h
index 98544a05d..7ae6bb243 100644
--- a/LUFA/Drivers/USB/Class/Common/HIDParser.h
+++ b/LUFA/Drivers/USB/Class/Common/HIDParser.h
@@ -70,8 +70,6 @@
#include "HIDReportData.h"
#include "../Common/HID.h"
-
- #include <string.h>
/* Enable C linkage for C++ Compilers: */
#if defined(__cplusplus)
diff --git a/LUFA/Drivers/USB/Class/Common/MIDI.h b/LUFA/Drivers/USB/Class/Common/MIDI.h
index c72ca5afe..d2e884a97 100644
--- a/LUFA/Drivers/USB/Class/Common/MIDI.h
+++ b/LUFA/Drivers/USB/Class/Common/MIDI.h
@@ -57,8 +57,6 @@
#include "../../Core/StdDescriptors.h"
#include "Audio.h"
- #include <string.h>
-
/* Enable C linkage for C++ Compilers: */
#if defined(__cplusplus)
extern "C" {
diff --git a/LUFA/Drivers/USB/Class/Common/MassStorage.h b/LUFA/Drivers/USB/Class/Common/MassStorage.h
index 1acd68212..ae22f5312 100644
--- a/LUFA/Drivers/USB/Class/Common/MassStorage.h
+++ b/LUFA/Drivers/USB/Class/Common/MassStorage.h
@@ -53,8 +53,6 @@
/* Includes: */
#include "../../Core/StdDescriptors.h"
- #include <string.h>
-
/* Enable C linkage for C++ Compilers: */
#if defined(__cplusplus)
extern "C" {
diff --git a/LUFA/Drivers/USB/Class/Common/Printer.h b/LUFA/Drivers/USB/Class/Common/Printer.h
index 092cd8f03..3d52be306 100644
--- a/LUFA/Drivers/USB/Class/Common/Printer.h
+++ b/LUFA/Drivers/USB/Class/Common/Printer.h
@@ -53,8 +53,6 @@
/* Includes: */
#include "../../Core/StdDescriptors.h"
- #include <string.h>
-
/* Enable C linkage for C++ Compilers: */
#if defined(__cplusplus)
extern "C" {
diff --git a/LUFA/Drivers/USB/Class/Common/RNDIS.h b/LUFA/Drivers/USB/Class/Common/RNDIS.h
index cb806ec56..64f080ae3 100644
--- a/LUFA/Drivers/USB/Class/Common/RNDIS.h
+++ b/LUFA/Drivers/USB/Class/Common/RNDIS.h
@@ -57,8 +57,6 @@
#include "../../Core/StdDescriptors.h"
#include "CDC.h"
- #include <string.h>
-
/* Enable C linkage for C++ Compilers: */
#if defined(__cplusplus)
extern "C" {
diff --git a/LUFA/Drivers/USB/Class/Common/StillImage.h b/LUFA/Drivers/USB/Class/Common/StillImage.h
index 7ef04d8cb..e440265b1 100644
--- a/LUFA/Drivers/USB/Class/Common/StillImage.h
+++ b/LUFA/Drivers/USB/Class/Common/StillImage.h
@@ -53,8 +53,6 @@
/* Includes: */
#include "../../Core/StdDescriptors.h"
- #include <string.h>
-
/* Enable C linkage for C++ Compilers: */
#if defined(__cplusplus)
extern "C" {
diff --git a/LUFA/Drivers/USB/Class/Device/Audio.h b/LUFA/Drivers/USB/Class/Device/Audio.h
index d82beabc6..cf63c65b0 100644
--- a/LUFA/Drivers/USB/Class/Device/Audio.h
+++ b/LUFA/Drivers/USB/Class/Device/Audio.h
@@ -57,8 +57,6 @@
#include "../../USB.h"
#include "../Common/Audio.h"
- #include <string.h>
-
/* Enable C linkage for C++ Compilers: */
#if defined(__cplusplus)
extern "C" {
diff --git a/LUFA/Drivers/USB/Class/Device/CDC.h b/LUFA/Drivers/USB/Class/Device/CDC.h
index bf388819f..9eb7b48fc 100644
--- a/LUFA/Drivers/USB/Class/Device/CDC.h
+++ b/LUFA/Drivers/USB/Class/Device/CDC.h
@@ -75,7 +75,6 @@
#include "../Common/CDC.h"
#include <stdio.h>
- #include <string.h>
/* Enable C linkage for C++ Compilers: */
#if defined(__cplusplus)
diff --git a/LUFA/Drivers/USB/Class/Device/HID.h b/LUFA/Drivers/USB/Class/Device/HID.h
index 545baddf3..133e4f5d8 100644
--- a/LUFA/Drivers/USB/Class/Device/HID.h
+++ b/LUFA/Drivers/USB/Class/Device/HID.h
@@ -57,8 +57,6 @@
#include "../../USB.h"
#include "../Common/HID.h"
- #include <string.h>
-
/* Enable C linkage for C++ Compilers: */
#if defined(__cplusplus)
extern "C" {
diff --git a/LUFA/Drivers/USB/Class/Device/MIDI.h b/LUFA/Drivers/USB/Class/Device/MIDI.h
index 4016d8a9a..137513676 100644
--- a/LUFA/Drivers/USB/Class/Device/MIDI.h
+++ b/LUFA/Drivers/USB/Class/Device/MIDI.h
@@ -57,8 +57,6 @@
#include "../../USB.h"
#include "../Common/MIDI.h"
- #include <string.h>
-
/* Enable C linkage for C++ Compilers: */
#if defined(__cplusplus)
extern "C" {
diff --git a/LUFA/Drivers/USB/Class/Device/MassStorage.h b/LUFA/Drivers/USB/Class/Device/MassStorage.h
index aceeb6261..3ad259d86 100644
--- a/LUFA/Drivers/USB/Class/Device/MassStorage.h
+++ b/LUFA/Drivers/USB/Class/Device/MassStorage.h
@@ -57,8 +57,6 @@
#include "../../USB.h"
#include "../Common/MassStorage.h"
- #include <string.h>
-
/* Enable C linkage for C++ Compilers: */
#if defined(__cplusplus)
extern "C" {
diff --git a/LUFA/Drivers/USB/Class/Device/RNDIS.h b/LUFA/Drivers/USB/Class/Device/RNDIS.h
index cdc6fbad0..f53a8e01f 100644
--- a/LUFA/Drivers/USB/Class/Device/RNDIS.h
+++ b/LUFA/Drivers/USB/Class/Device/RNDIS.h
@@ -57,8 +57,6 @@
#include "../../USB.h"
#include "../Common/RNDIS.h"
- #include <string.h>
-
/* Enable C linkage for C++ Compilers: */
#if defined(__cplusplus)
extern "C" {
diff --git a/LUFA/Drivers/USB/Class/Host/CDC.h b/LUFA/Drivers/USB/Class/Host/CDC.h
index bba94fe81..8e799709e 100644
--- a/LUFA/Drivers/USB/Class/Host/CDC.h
+++ b/LUFA/Drivers/USB/Class/Host/CDC.h
@@ -58,7 +58,6 @@
#include "../Common/CDC.h"
#include <stdio.h>
- #include <string.h>
/* Enable C linkage for C++ Compilers: */
#if defined(__cplusplus)
diff --git a/LUFA/Drivers/USB/Class/Host/RNDIS.h b/LUFA/Drivers/USB/Class/Host/RNDIS.h
index 68aa347ec..376cc5925 100644
--- a/LUFA/Drivers/USB/Class/Host/RNDIS.h
+++ b/LUFA/Drivers/USB/Class/Host/RNDIS.h
@@ -58,9 +58,6 @@
#include "../../USB.h"
#include "../Common/RNDIS.h"
- #include <stdio.h>
- #include <string.h>
-
/* Enable C linkage for C++ Compilers: */
#if defined(__cplusplus)
extern "C" {
diff --git a/LUFA/Drivers/USB/Core/AVR8/Device.h b/LUFA/Drivers/USB/Core/AVR8/Device.h
index 30088f1d9..d1ced57d4 100644
--- a/LUFA/Drivers/USB/Core/AVR8/Device.h
+++ b/LUFA/Drivers/USB/Core/AVR8/Device.h
@@ -29,9 +29,8 @@
*/
/** \file
- * \brief USB device mode definitions (AVR8)
- *
- * This file contains structures, function prototypes and macros related to USB device mode.
+ * \brief USB Device definitions for the AVR8 microcontrollers.
+ * \copydetails Group_Device_AVR8
*
* \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.
@@ -39,9 +38,9 @@
/** \ingroup Group_Device
* \defgroup Group_Device_AVR8 Device Management (AVR8)
+ * \brief USB Device definitions for the AVR8 microcontrollers.
*
- * USB Device mode related macros and enums. This module contains macros and enums which are used when
- * the USB controller is initialized in device mode.
+ * Architecture specific USB Device definitions for the Atmel 8-bit AVR microcontrollers.
*
* @{
*/
@@ -55,17 +54,15 @@
#include "../USBInterrupt.h"
#include "../Endpoint.h"
- #include <avr/boot.h>
-
/* Preprocessor Checks: */
- #if (defined(USE_RAM_DESCRIPTORS) && defined(USE_EEPROM_DESCRIPTORS))
- #error USE_RAM_DESCRIPTORS and USE_EEPROM_DESCRIPTORS are mutually exclusive.
- #endif
-
#if !defined(__INCLUDE_FROM_USB_DRIVER)
#error Do not include this file directly. Include LUFA/Drivers/USB/USB.h instead.
#endif
+ #if (defined(USE_RAM_DESCRIPTORS) && defined(USE_EEPROM_DESCRIPTORS))
+ #error USE_RAM_DESCRIPTORS and USE_EEPROM_DESCRIPTORS are mutually exclusive.
+ #endif
+
/* Public Interface - May be used in end-application: */
/* Macros: */
/** \name USB Device Mode Option Masks */
@@ -125,7 +122,7 @@
* the \ref USB_OPT_MANUAL_PLL option enabled, the user must ensure that the PLL is running
* before attempting to call this function.
*
- * \see \ref Group_Descriptors for more information on the RMWAKEUP feature and device descriptors.
+ * \see \ref Group_StdDescriptors for more information on the RMWAKEUP feature and device descriptors.
*/
void USB_Device_SendRemoteWakeup(void);
@@ -192,40 +189,6 @@
}
#endif
- /* Function Prototypes: */
- /** Function to retrieve a given descriptor's size and memory location from the given descriptor type value,
- * index and language ID. This function MUST be overridden in the user application (added with full, identical
- * prototype and name so that the library can call it to retrieve descriptor data.
- *
- * \param[in] wValue The type of the descriptor to retrieve in the upper byte, and the index in the
- * lower byte (when more than one descriptor of the given type exists, such as the
- * case of string descriptors). The type may be one of the standard types defined
- * in the DescriptorTypes_t enum, or may be a class-specific descriptor type value.
- * \param[in] wIndex The language ID of the string to return if the \c wValue type indicates
- * \ref DTYPE_String, otherwise zero for standard descriptors, or as defined in a
- * class-specific standards.
- * \param[out] DescriptorAddress Pointer to the descriptor in memory. This should be set by the routine to
- * the address of the descriptor.
- * \param[out] MemoryAddressSpace A value from the \ref USB_DescriptorMemorySpaces_t enum to indicate the memory
- * space in which the descriptor is stored. This parameter does not exist when one
- * of the \c USE_*_DESCRIPTORS compile time options is used.
- *
- * \note By default, the library expects all descriptors to be located in flash memory via the \c PROGMEM attribute.
- * If descriptors should be located in RAM or EEPROM instead (to speed up access in the case of RAM, or to
- * allow the descriptors to be changed dynamically at runtime) either the \c USE_RAM_DESCRIPTORS or the
- * \c USE_EEPROM_DESCRIPTORS tokens may be defined in the project makefile and passed to the compiler by the -D
- * switch.
- *
- * \return Size in bytes of the descriptor if it exists, zero or \ref NO_DESCRIPTOR otherwise.
- */
- uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
- const uint8_t wIndex,
- const void** const DescriptorAddress
- #if !defined(USE_FLASH_DESCRIPTORS) && !defined(USE_EEPROM_DESCRIPTORS) && !defined(USE_RAM_DESCRIPTORS)
- , uint8_t* MemoryAddressSpace
- #endif
- ) ATTR_WARN_UNUSED_RESULT ATTR_NON_NULL_PTR_ARG(3);
-
/* Private Interface - For use in library only: */
#if !defined(__DOXYGEN__)
/* Inline Functions: */
diff --git a/LUFA/Drivers/USB/Core/AVR8/Endpoint.h b/LUFA/Drivers/USB/Core/AVR8/Endpoint.h
index 1feadd3c8..2a0774792 100644
--- a/LUFA/Drivers/USB/Core/AVR8/Endpoint.h
+++ b/LUFA/Drivers/USB/Core/AVR8/Endpoint.h
@@ -29,10 +29,8 @@
*/
/** \file
- * \brief USB device endpoint management definitions.
- *
- * This file contains structures, function prototypes and macros related to the management of the device's
- * data endpoints when the library is initialized in USB device mode.
+ * \brief USB Endpoint definitions for the AVR8 microcontrollers.
+ * \copydetails Group_EndpointManagement_AVR8
*
* \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.
@@ -40,6 +38,7 @@
/** \ingroup Group_EndpointRW
* \defgroup Group_EndpointRW_AVR8 Endpoint Data Reading and Writing (AVR8)
+ * \brief USB Endpoint definitions for the AVR8 microcontrollers.
*
* Functions, macros, variables, enums and types related to data reading and writing from and to endpoints.
*/
diff --git a/LUFA/Drivers/USB/Core/AVR8/Host.h b/LUFA/Drivers/USB/Core/AVR8/Host.h
index def17ee70..0c50a39c3 100644
--- a/LUFA/Drivers/USB/Core/AVR8/Host.h
+++ b/LUFA/Drivers/USB/Core/AVR8/Host.h
@@ -29,9 +29,8 @@
*/
/** \file
- * \brief USB host mode definitions (AVR8)
- *
- * This file contains structures, function prototypes and macros related to USB host mode.
+ * \brief USB Host definitions for the AVR8 microcontrollers.
+ * \copydetails Group_Host_AVR8
*
* \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.
@@ -39,9 +38,9 @@
/** \ingroup Group_Host
* \defgroup Group_Host_AVR8 Host Management (AVR8)
+ * \brief USB Host definitions for the AVR8 microcontrollers.
*
- * USB Host mode related macros and enums. This module contains macros and enums which are used when
- * the USB controller is initialized in host mode.
+ * Architecture specific USB Host definitions for the Atmel 8-bit AVR microcontrollers.
*
* @{
*/
diff --git a/LUFA/Drivers/USB/Core/AVR8/OTG.h b/LUFA/Drivers/USB/Core/AVR8/OTG.h
index cc0cc3da1..a79033753 100644
--- a/LUFA/Drivers/USB/Core/AVR8/OTG.h
+++ b/LUFA/Drivers/USB/Core/AVR8/OTG.h
@@ -29,10 +29,8 @@
*/
/** \file
- * \brief USB OTG mode definitions (AVR8)
- *
- * This file contains structures, function prototypes and macros related to USB OTG mode, where two USB devices
- * may be linked directly together and exchange host/device roles as needed.
+ * \brief USB OTG definitions for the AVR8 microcontrollers.
+ * \copydetails Group_OTG_AVR8
*
* \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.
@@ -40,10 +38,9 @@
/** \ingroup Group_OTG
* \defgroup Group_OTG_AVR8 USB On The Go (OTG) Management (AVR8)
+ * \brief USB OTG definitions for the AVR8 microcontrollers.
*
- * This module contains macros for embedded USB hosts with dual role On The Go capabilities, for managing role
- * exchange. OTG is a way for two USB dual role devices to talk to one another directly without fixed device/host
- * roles.
+ * Architecture specific USB OTG definitions for the Atmel 8-bit AVR microcontrollers.
*
* @{
*/
diff --git a/LUFA/Drivers/USB/Core/AVR8/Pipe.h b/LUFA/Drivers/USB/Core/AVR8/Pipe.h
index 3f62ec5d1..ff09f43e4 100644
--- a/LUFA/Drivers/USB/Core/AVR8/Pipe.h
+++ b/LUFA/Drivers/USB/Core/AVR8/Pipe.h
@@ -29,10 +29,8 @@
*/
/** \file
- * \brief USB host pipe management definitions.
- *
- * This file contains structures, function prototypes and macros related to the management of the device's
- * data pipes when the library is initialized in USB host mode.
+ * \brief USB Pipe definitions for the AVR8 microcontrollers.
+ * \copydetails Group_PipeManagement_AVR8
*
* \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.
@@ -40,6 +38,7 @@
/** \ingroup Group_PipeRW
* \defgroup Group_PipeRW_AVR8 Pipe Data Reading and Writing (AVR8)
+ * \brief USB Pipe definitions for the AVR8 microcontrollers.
*
* Functions, macros, variables, enums and types related to data reading and writing from and to pipes.
*/
diff --git a/LUFA/Drivers/USB/Core/AVR8/USBController.h b/LUFA/Drivers/USB/Core/AVR8/USBController.h
index 292b39369..77e92cb27 100644
--- a/LUFA/Drivers/USB/Core/AVR8/USBController.h
+++ b/LUFA/Drivers/USB/Core/AVR8/USBController.h
@@ -29,10 +29,8 @@
*/
/** \file
- * \brief USB low level USB controller definitions (AVR8)
- *
- * This file contains structures, function prototypes and macros related to the low level configuration of the
- * USB controller, to start, stop and reset the USB library core.
+ * \brief USB Controller definitions for the AVR8 microcontrollers.
+ * \copydetails Group_USBManagement_AVR8
*
* \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.
@@ -40,6 +38,7 @@
/** \ingroup Group_USBManagement
* \defgroup Group_USBManagement_AVR8 USB Interface Management (AVR8)
+ * \brief USB Controller definitions for the AVR8 microcontrollers.
*
* Functions, macros, variables, enums and types related to the setup and management of the USB interface.
*
@@ -82,7 +81,7 @@
#endif
#if !defined(F_CLOCK)
- #error F_CLOCK is not defined. You must define F_CLOCK to the frequency of the unprescaled input clock in your project makefile.
+ #error F_CLOCK is not defined. You must define F_CLOCK to the frequency of the unprescaled USB controller clock in your project makefile.
#endif
#if (F_CLOCK == 8000000)
diff --git a/LUFA/Drivers/USB/Core/AVR8/USBInterrupt.h b/LUFA/Drivers/USB/Core/AVR8/USBInterrupt.h
index 3cb0b66be..c681f86fb 100644
--- a/LUFA/Drivers/USB/Core/AVR8/USBInterrupt.h
+++ b/LUFA/Drivers/USB/Core/AVR8/USBInterrupt.h
@@ -29,7 +29,7 @@
*/
/** \file
- * \brief USB controller interrupt service routine management (AVR8)
+ * \brief USB Controller Interrupt definitions for the AVR8 microcontrollers.
*
* This file contains definitions required for the correct handling of low level USB service routine interrupts
* from the USB controller.
@@ -63,11 +63,11 @@
#define USB_INT_IsEnabled(int) ((USB_INT_GET_EN_REG(int) & USB_INT_GET_EN_MASK(int)) ? true : false)
#define USB_INT_HasOccurred(int) ((USB_INT_GET_INT_REG(int) & USB_INT_GET_INT_MASK(int)) ? true : false)
- #define USB_INT_GET_EN_REG(a, b, c, d) a
- #define USB_INT_GET_EN_MASK(a, b, c, d) b
- #define USB_INT_GET_INT_REG(a, b, c, d) c
- #define USB_INT_GET_INT_MASK(a, b, c, d) d
-
+ #define USB_INT_GET_EN_REG(EnableReg, EnableMask, FlagReg, FlagMask) EnableReg
+ #define USB_INT_GET_EN_MASK(EnableReg, EnableMask, FlagReg, FlagMask) EnableMask
+ #define USB_INT_GET_INT_REG(EnableReg, EnableMask, FlagReg, FlagMask) FlagReg
+ #define USB_INT_GET_INT_MASK(EnableReg, EnableMask, FlagReg, FlagMask) FlagMask
+
#define USB_INT_VBUS USBCON, (1 << VBUSTE) , USBINT, (1 << VBUSTI)
#define USB_INT_IDTI USBCON, (1 << IDTE) , USBINT, (1 << IDTI)
#define USB_INT_WAKEUPI UDIEN , (1 << WAKEUPE), UDINT , (1 << WAKEUPI)
diff --git a/LUFA/Drivers/USB/Core/ConfigDescriptor.h b/LUFA/Drivers/USB/Core/ConfigDescriptor.h
index 2f0ac8e02..e469987b3 100644
--- a/LUFA/Drivers/USB/Core/ConfigDescriptor.h
+++ b/LUFA/Drivers/USB/Core/ConfigDescriptor.h
@@ -29,11 +29,8 @@
*/
/** \file
- * \brief Configuration descriptor parser API.
- *
- * This section of the library gives a friendly API which can be used in host applications to easily
- * parse an attached device's configuration descriptor so that endpoint, interface and other descriptor
- * data can be extracted and used as needed.
+ * \brief USB Configuration Descriptor definitions.
+ * \copydetails Group_ConfigDescriptorParser
*
* \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.
@@ -41,8 +38,11 @@
/** \ingroup Group_Descriptors
* \defgroup Group_ConfigDescriptorParser Configuration Descriptor Parser
+ * \brief USB Configuration Descriptor definitions.
*
- * Functions, macros, variables, enums and types related to the parsing of Configuration Descriptors.
+ * This section of the library gives a friendly API which can be used in host applications to easily
+ * parse an attached device's configuration descriptor so that endpoint, interface and other descriptor
+ * data can be extracted and used as needed.
*
* @{
*/
diff --git a/LUFA/Drivers/USB/Core/Device.h b/LUFA/Drivers/USB/Core/Device.h
index 8c85451ac..6fa88d3a3 100644
--- a/LUFA/Drivers/USB/Core/Device.h
+++ b/LUFA/Drivers/USB/Core/Device.h
@@ -29,10 +29,8 @@
*/
/** \file
- * \brief Common USB device mode definitions.
- *
- * This file contains common structures, function prototypes and macros related to USB device mode for all
- * architectures.
+ * \brief Common USB Device definitions for all architectures.
+ * \copydetails Group_Device
*
* \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.
@@ -40,6 +38,7 @@
/** \ingroup Group_USB
* \defgroup Group_Device Device Management
+ * \brief Common USB Device definitions for all architectures.
*
* USB Device mode related definitions common to all architectures. This module contains definitions which
* are used when the USB controller is initialized in device mode.
@@ -65,6 +64,41 @@
#error Do not include this file directly. Include LUFA/Drivers/USB/USB.h instead.
#endif
+ /* Public Interface - May be used in end-application: */
+ /* Function Prototypes: */
+ /** Function to retrieve a given descriptor's size and memory location from the given descriptor type value,
+ * index and language ID. This function MUST be overridden in the user application (added with full, identical
+ * prototype and name so that the library can call it to retrieve descriptor data.
+ *
+ * \param[in] wValue The type of the descriptor to retrieve in the upper byte, and the index in the
+ * lower byte (when more than one descriptor of the given type exists, such as the
+ * case of string descriptors). The type may be one of the standard types defined
+ * in the DescriptorTypes_t enum, or may be a class-specific descriptor type value.
+ * \param[in] wIndex The language ID of the string to return if the \c wValue type indicates
+ * \ref DTYPE_String, otherwise zero for standard descriptors, or as defined in a
+ * class-specific standards.
+ * \param[out] DescriptorAddress Pointer to the descriptor in memory. This should be set by the routine to
+ * the address of the descriptor.
+ * \param[out] MemoryAddressSpace A value from the \ref USB_DescriptorMemorySpaces_t enum to indicate the memory
+ * space in which the descriptor is stored. This parameter does not exist when one
+ * of the \c USE_*_DESCRIPTORS compile time options is used.
+ *
+ * \note By default, the library expects all descriptors to be located in flash memory via the \c PROGMEM attribute.
+ * If descriptors should be located in RAM or EEPROM instead (to speed up access in the case of RAM, or to
+ * allow the descriptors to be changed dynamically at runtime) either the \c USE_RAM_DESCRIPTORS or the
+ * \c USE_EEPROM_DESCRIPTORS tokens may be defined in the project makefile and passed to the compiler by the -D
+ * switch.
+ *
+ * \return Size in bytes of the descriptor if it exists, zero or \ref NO_DESCRIPTOR otherwise.
+ */
+ uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
+ const uint8_t wIndex,
+ const void** const DescriptorAddress
+ #if !defined(USE_FLASH_DESCRIPTORS) && !defined(USE_EEPROM_DESCRIPTORS) && !defined(USE_RAM_DESCRIPTORS)
+ , uint8_t* MemoryAddressSpace
+ #endif
+ ) ATTR_WARN_UNUSED_RESULT ATTR_NON_NULL_PTR_ARG(3);
+
#endif
/** @} */
diff --git a/LUFA/Drivers/USB/Core/Endpoint.h b/LUFA/Drivers/USB/Core/Endpoint.h
index 302c368e4..656f40cdb 100644
--- a/LUFA/Drivers/USB/Core/Endpoint.h
+++ b/LUFA/Drivers/USB/Core/Endpoint.h
@@ -29,10 +29,8 @@
*/
/** \file
- * \brief USB device endpoint management definitions.
- *
- * This file contains structures, function prototypes and macros related to the management of the device's
- * data endpoints when the library is initialized in USB device mode.
+ * \brief Common USB Endpoint definitions for all architectures.
+ * \copydetails Group_EndpointManagement
*
* \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.
@@ -40,6 +38,7 @@
/** \ingroup Group_EndpointManagement
* \defgroup Group_EndpointRW Endpoint Data Reading and Writing
+ * \brief Common USB Endpoint definitions for all architectures.
*
* Functions, macros, variables, enums and types related to data reading and writing from and to endpoints.
*/
diff --git a/LUFA/Drivers/USB/Core/EndpointStream.h b/LUFA/Drivers/USB/Core/EndpointStream.h
index 4d4f33a20..a8fd4bc93 100644
--- a/LUFA/Drivers/USB/Core/EndpointStream.h
+++ b/LUFA/Drivers/USB/Core/EndpointStream.h
@@ -29,10 +29,8 @@
*/
/** \file
- * \brief USB device endpoint stream function definitions.
- *
- * This file contains structures, function prototypes and macros related to the sending and receiving of
- * arbitrary data streams through the device's data endpoints when the library is initialized in USB device mode.
+ * \brief Endpoint data stream transmission and reception management.
+ * \copydetails Group_EndpointStreamRW
*
* \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.
@@ -40,6 +38,7 @@
/** \ingroup Group_EndpointRW
* \defgroup Group_EndpointStreamRW Read/Write of Multi-Byte Streams
+ * \brief Endpoint data stream transmission and reception management.
*
* Functions, macros, variables, enums and types related to data reading and writing of data streams from
* and to endpoints.
diff --git a/LUFA/Drivers/USB/Core/Events.h b/LUFA/Drivers/USB/Core/Events.h
index 4a3a1a160..c0a322b26 100644
--- a/LUFA/Drivers/USB/Core/Events.h
+++ b/LUFA/Drivers/USB/Core/Events.h
@@ -29,19 +29,8 @@
*/
/** \file
- * \brief USB controller events manager.
- *
- * This file contains macros and functions relating to the management of library events, which are small
- * pieces of code similar to ISRs which are run when a given condition is met. Each event can be fired from
- * multiple places in the user or library code, which may or may not be inside an ISR, thus each handler
- * should be written to be as small and fast as possible to prevent possible problems.
- *
- * Events can be hooked by the user application by declaring a handler function with the same name and parameters
- * listed here. If an event with no user-associated handler is fired within the library, it by default maps to an
- * internal empty stub function.
- *
- * Each event must only have one associated event handler, but can be raised by multiple sources by calling the
- * event handler function (with any required event parameters).
+ * \brief USB Event management definitions.
+ * \copydetails Group_Events
*
* \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.
@@ -49,6 +38,7 @@
/** \ingroup Group_USB
* \defgroup Group_Events USB Events
+ * \brief USB Event management definitions.
*
* This module contains macros and functions relating to the management of library events, which are small
* pieces of code similar to ISRs which are run when a given condition is met. Each event can be fired from
diff --git a/LUFA/Drivers/USB/Core/Host.h b/LUFA/Drivers/USB/Core/Host.h
index 8a6ac438d..6a09b4055 100644
--- a/LUFA/Drivers/USB/Core/Host.h
+++ b/LUFA/Drivers/USB/Core/Host.h
@@ -29,10 +29,8 @@
*/
/** \file
- * \brief USB host mode definitions.
- *
- * USB Host mode related macros and enums. This module contains macros and enums which are used when
- * the USB controller is initialized in host mode.
+ * \brief Common USB Host definitions for all architectures.
+ * \copydetails Group_Host
*
* \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.
@@ -40,6 +38,7 @@
/** \ingroup Group_USB
* \defgroup Group_Host Host Management
+ * \brief Common USB Host definitions for all architectures.
*
* USB Host mode related macros and enums. This module contains macros and enums which are used when
* the USB controller is initialized in host mode.
diff --git a/LUFA/Drivers/USB/Core/OTG.h b/LUFA/Drivers/USB/Core/OTG.h
index 3b41a0fe6..bb54e18bd 100644
--- a/LUFA/Drivers/USB/Core/OTG.h
+++ b/LUFA/Drivers/USB/Core/OTG.h
@@ -29,10 +29,8 @@
*/
/** \file
- * \brief USB OTG mode definitions.
- *
- * This file contains structures, function prototypes and macros related to USB OTG mode, where two USB devices
- * may be linked directly together and exchange host/device roles as needed.
+ * \brief Common USB OTG definitions for all architectures.
+ * \copydetails Group_OTG
*
* \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.
@@ -40,6 +38,7 @@
/** \ingroup Group_USB
* \defgroup Group_OTG USB On The Go (OTG) Management
+ * \brief Common USB OTG definitions for all architectures.
*
* This module contains macros for embedded USB hosts with dual role On The Go capabilities, for managing role
* exchange. OTG is a way for two USB dual role devices to talk to one another directly without fixed device/host
diff --git a/LUFA/Drivers/USB/Core/Pipe.h b/LUFA/Drivers/USB/Core/Pipe.h
index 2ab14fc6c..4edeba92e 100644
--- a/LUFA/Drivers/USB/Core/Pipe.h
+++ b/LUFA/Drivers/USB/Core/Pipe.h
@@ -29,10 +29,8 @@
*/
/** \file
- * \brief USB host pipe management definitions.
- *
- * This file contains structures, function prototypes and macros related to the management of the device's
- * data pipes when the library is initialized in USB host mode.
+ * \brief Common USB Pipe definitions for all architectures.
+ * \copydetails Group_PipeManagement
*
* \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.
@@ -40,6 +38,7 @@
/** \ingroup Group_PipeManagement
* \defgroup Group_PipeRW Pipe Data Reading and Writing
+ * \brief Common USB Pipe definitions for all architectures.
*
* Functions, macros, variables, enums and types related to data reading and writing from and to pipes.
*/
diff --git a/LUFA/Drivers/USB/Core/PipeStream.h b/LUFA/Drivers/USB/Core/PipeStream.h
index 86c544ebe..5c3ab9d45 100644
--- a/LUFA/Drivers/USB/Core/PipeStream.h
+++ b/LUFA/Drivers/USB/Core/PipeStream.h
@@ -29,10 +29,8 @@
*/
/** \file
- * \brief USB host pipe stream function definitions.
- *
- * This file contains structures, function prototypes and macros related to the sending and receiving of
- * arbitrary data streams through the device's data pipes when the library is initialized in USB host mode.
+ * \brief Pipe data stream transmission and reception management.
+ * \copydetails Group_PipeStreamRW
*
* \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.
@@ -40,6 +38,7 @@
/** \ingroup Group_PipeRW
* \defgroup Group_PipeStreamRW Read/Write of Multi-Byte Streams
+ * \brief Pipe data stream transmission and reception management.
*
* Functions, macros, variables, enums and types related to data reading and writing of data streams from
* and to pipes.
diff --git a/LUFA/Drivers/USB/Core/StdDescriptors.h b/LUFA/Drivers/USB/Core/StdDescriptors.h
index ed4ecf91e..d08d08348 100644
--- a/LUFA/Drivers/USB/Core/StdDescriptors.h
+++ b/LUFA/Drivers/USB/Core/StdDescriptors.h
@@ -29,16 +29,16 @@
*/
/** \file
- * \brief USB standard descriptor definitions.
- *
- * This file contains structures and macros for the easy creation of standard USB descriptors in USB device projects.
+ * \brief Common USB Descriptor definitions for all architectures.
+ * \copydetails Group_StdDescriptors
*
* \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_USB
- * \defgroup Group_Descriptors USB Descriptors
+ * \defgroup Group_StdDescriptors USB Descriptors
+ * \brief Common USB Descriptor definitions for all architectures.
*
* Standard USB device descriptor defines and retrieval routines, for USB devices. This module contains
* structures and macros for the easy creation of standard USB descriptors in USB device projects.
diff --git a/LUFA/Drivers/USB/Core/StdRequestType.h b/LUFA/Drivers/USB/Core/StdRequestType.h
index a8c3f0913..83bec4f2a 100644
--- a/LUFA/Drivers/USB/Core/StdRequestType.h
+++ b/LUFA/Drivers/USB/Core/StdRequestType.h
@@ -30,8 +30,7 @@
/** \file
* \brief USB control endpoint request definitions.
- *
- * This file contains structures and macros for the easy creation and parsing of standard USB control requests.
+ * \copydetails Group_StdRequest
*
* \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.
@@ -39,6 +38,7 @@
/** \ingroup Group_USB
* \defgroup Group_StdRequest Standard USB Requests
+ * \brief USB control endpoint request definitions.
*
* This module contains definitions for the various control request parameters, so that the request
* details (such as data direction, request recipient, etc.) can be extracted via masking.
diff --git a/LUFA/Drivers/USB/Core/USBController.h b/LUFA/Drivers/USB/Core/USBController.h
index 475aeb1bd..dfd2ce1d5 100644
--- a/LUFA/Drivers/USB/Core/USBController.h
+++ b/LUFA/Drivers/USB/Core/USBController.h
@@ -29,10 +29,8 @@
*/
/** \file
- * \brief USB low level USB controller definitions.
- *
- * This file contains structures, function prototypes and macros related to the low level configuration of the
- * USB controller, to start, stop and reset the USB library core.
+ * \brief Common USB Controller definitions for all architectures.
+ * \copydetails Group_USBManagement
*
* \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.
@@ -40,6 +38,7 @@
/** \ingroup Group_USB
* \defgroup Group_USBManagement USB Interface Management
+ * \brief Common USB Controller definitions for all architectures.
*
* Functions, macros, variables, enums and types related to the setup and management of the USB interface.
*
diff --git a/LUFA/Drivers/USB/Core/USBMode.h b/LUFA/Drivers/USB/Core/USBMode.h
index 58f9927dc..ff95ce3d5 100644
--- a/LUFA/Drivers/USB/Core/USBMode.h
+++ b/LUFA/Drivers/USB/Core/USBMode.h
@@ -29,11 +29,8 @@
*/
/** \file
- * \brief USB mode and capability macros.
- *
- * This file defines macros indicating the type of USB controller the library is being compiled for, and its
- * capabilities. These macros may then be referenced in the user application to selectively enable or disable
- * code sections depending on if they are defined or not.
+ * \brief USB mode and feature support definitions.
+ * \copydetails Group_USBMode
*
* \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.
@@ -41,11 +38,15 @@
/** \ingroup Group_USB
* \defgroup Group_USBMode USB Mode Tokens
+ * \brief USB mode and feature support definitions.
+ *
+ * This file defines macros indicating the type of USB controller the library is being compiled for, and its
+ * capabilities. These macros may then be referenced in the user application to selectively enable or disable
+ * code sections depending on if they are defined or not.
*
- * After the inclusion of the master USB driver header, one or more of the following
- * tokens may be defined, to allow the user code to conditionally enable or disable
- * code based on the USB controller family and allowable USB modes. These tokens may
- * be tested against to eliminate code relating to a USB mode which is not enabled for
+ * After the inclusion of the master USB driver header, one or more of the following tokens may be defined, to
+ * allow the user code to conditionally enable or disable code based on the USB controller family and allowable
+ * USB modes. These tokens may be tested against to eliminate code relating to a USB mode which is not enabled for
* the given compilation.
*
* @{