/*
LUFA Library
- Copyright (C) Dean Camera, 2012.
+ Copyright (C) Dean Camera, 2017.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 2017 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
#include <LUFA/Drivers/USB/USB.h>
#include <LUFA/Drivers/Board/LEDs.h>
-
- #include "Config/AppConfig.h"
- /* Preprocessor Checks: */
- #if defined(LIBUSB_DRIVER_COMPAT) && defined(RESET_TOGGLES_LIBUSB_COMPAT)
- #error LIBUSB_DRIVER_COMPAT and RESET_TOGGLES_LIBUSB_COMPAT are mutually exclusive.
- #endif
+ #include "Config/AppConfig.h"
/* Macros: */
/** Endpoint address of the AVRISP data OUT endpoint. */
#define AVRISP_DATA_OUT_EPADDR (ENDPOINT_DIR_OUT | 2)
- /** Endpoint address of the AVRISP data IN endpoint, when in Jungo driver compatibility mode. */
- #define AVRISP_DATA_IN_EPADDR_JUNGO (ENDPOINT_DIR_IN | 2)
-
- /** Endpoint address of the AVRISP data IN endpoint, when in LibUSB driver compatibility mode. */
- #define AVRISP_DATA_IN_EPADDR_LIBUSB (ENDPOINT_DIR_IN | 3)
-
- #if defined(RESET_TOGGLES_LIBUSB_COMPAT)
- #define AVRISP_DATA_IN_EPADDR AVRISP_CurrDataINEndpointAddress
- #elif defined(LIBUSB_DRIVER_COMPAT)
- #define AVRISP_DATA_IN_EPADDR AVRISP_DATA_IN_EPADDR_LIBUSB
- #else
- /** Endpoint address of the AVRISP data IN endpoint. */
- #define AVRISP_DATA_IN_EPADDR AVRISP_DATA_IN_EPADDR_JUNGO
- #endif
-
+ /** Endpoint address of the AVRISP data IN endpoint. */
+ #define AVRISP_DATA_IN_EPADDR (ENDPOINT_DIR_IN | 2)
+
/** Size in bytes of the AVRISP data endpoint. */
#define AVRISP_DATA_EPSIZE 64
USB_Descriptor_Endpoint_t AVRISP_DataOutEndpoint;
} AVRISP_USB_Descriptor_Configuration_t;
- /* External Variables: */
- #if defined(RESET_TOGGLES_LIBUSB_COMPAT)
- extern uint8_t AVRISP_CurrDataINEndpointAddress;
- #endif
-
+ /** Enum for the device interface descriptor IDs within the device. Each interface descriptor
+ * should have a unique ID index associated with it, which can be used to refer to the
+ * interface from other descriptors.
+ */
+ enum InterfaceDescriptors_t
+ {
+ INTERFACE_ID_AVRISP = 0, /**< AVRISP interface descriptor ID */
+ };
+
+ /** Enum for the device string descriptor IDs within the device. Each string descriptor should
+ * have a unique ID index associated with it, which can be used to refer to the string from
+ * other descriptors.
+ */
+ enum AVRISP_StringDescriptors_t
+ {
+ AVRISP_STRING_ID_Language = 0, /**< Supported Languages string descriptor ID (must be zero) */
+ AVRISP_STRING_ID_Manufacturer = 1, /**< Manufacturer string ID */
+ AVRISP_STRING_ID_Product = 2, /**< Product string ID */
+ AVRISP_STRING_ID_Serial = 3, /**< Serial number string ID */
+ };
+
/* Function Prototypes: */
uint16_t AVRISP_GetDescriptor(const uint16_t wValue,
- const uint8_t wIndex,
- const void** const DescriptorAddress,
- uint8_t* const DescriptorMemorySpace)
- ATTR_WARN_UNUSED_RESULT ATTR_NON_NULL_PTR_ARG(3) ATTR_NON_NULL_PTR_ARG(4);
-
- #if defined(RESET_TOGGLES_LIBUSB_COMPAT)
- void CheckExternalReset(void) ATTR_NAKED ATTR_INIT_SECTION(3);
- void UpdateCurrentCompatibilityMode(void);
- #endif
+ const uint16_t wIndex,
+ const void** const DescriptorAddress)
+ ATTR_WARN_UNUSED_RESULT ATTR_NON_NULL_PTR_ARG(3);
#endif