aboutsummaryrefslogtreecommitdiff
path: root/src/jtag/drivers/OpenULINK/include/usb.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/jtag/drivers/OpenULINK/include/usb.h')
-rw-r--r--src/jtag/drivers/OpenULINK/include/usb.h154
1 files changed, 77 insertions, 77 deletions
diff --git a/src/jtag/drivers/OpenULINK/include/usb.h b/src/jtag/drivers/OpenULINK/include/usb.h
index 811d6bf1..3685f7d7 100644
--- a/src/jtag/drivers/OpenULINK/include/usb.h
+++ b/src/jtag/drivers/OpenULINK/include/usb.h
@@ -26,15 +26,15 @@
#include <stdint.h>
#include <stdbool.h>
-#define NULL (void*)0;
+#define NULL (void *)0;
/* High and Low byte of a word (uint16_t) */
#define HI8(word) (uint8_t)(((uint16_t)word >> 8) & 0xff)
#define LO8(word) (uint8_t)((uint16_t)word & 0xff)
/* Convenience functions */
-#define STALL_EP0() EP0CS |= EP0STALL
-#define CLEAR_IRQ() EXIF &= ~USBINT
+#define STALL_EP0() (EP0CS |= EP0STALL)
+#define CLEAR_IRQ() (EXIF &= ~USBINT)
/*********** USB descriptors. See section 9.5 of the USB 1.1 spec **********/
@@ -45,84 +45,84 @@
#define DESCRIPTOR_TYPE_INTERFACE 0x04
#define DESCRIPTOR_TYPE_ENDPOINT 0x05
-#define STR_DESCR(len,...) { len*2+2, DESCRIPTOR_TYPE_STRING, { __VA_ARGS__ } }
+#define STR_DESCR(len, ...) { len * 2 + 2, DESCRIPTOR_TYPE_STRING, { __VA_ARGS__ } }
/** USB Device Descriptor. See USB 1.1 spec, pp. 196 - 198 */
struct usb_device_descriptor {
- uint8_t bLength; ///< Size of this descriptor in bytes.
- uint8_t bDescriptorType; ///< DEVICE Descriptor Type.
- uint16_t bcdUSB; ///< USB specification release number (BCD).
- uint8_t bDeviceClass; ///< Class code.
- uint8_t bDeviceSubClass; ///< Subclass code.
- uint8_t bDeviceProtocol; ///< Protocol code.
- uint8_t bMaxPacketSize0; ///< Maximum packet size for EP0 (8, 16, 32, 64).
- uint16_t idVendor; ///< USB Vendor ID.
- uint16_t idProduct; ///< USB Product ID.
- uint16_t bcdDevice; ///< Device Release Number (BCD).
- uint8_t iManufacturer; ///< Index of manufacturer string descriptor.
- uint8_t iProduct; ///< Index of product string descriptor.
- uint8_t iSerialNumber; ///< Index of string descriptor containing serial #.
- uint8_t bNumConfigurations; ///< Number of possible configurations.
+ uint8_t bLength; /* /< Size of this descriptor in bytes. */
+ uint8_t bDescriptorType;/* /< DEVICE Descriptor Type. */
+ uint16_t bcdUSB; /* /< USB specification release number (BCD). */
+ uint8_t bDeviceClass; /* /< Class code. */
+ uint8_t bDeviceSubClass;/* /< Subclass code. */
+ uint8_t bDeviceProtocol;/* /< Protocol code. */
+ uint8_t bMaxPacketSize0;/* /< Maximum packet size for EP0 (8, 16, 32, 64). */
+ uint16_t idVendor; /* /< USB Vendor ID. */
+ uint16_t idProduct; /* /< USB Product ID. */
+ uint16_t bcdDevice; /* /< Device Release Number (BCD). */
+ uint8_t iManufacturer; /* /< Index of manufacturer string descriptor. */
+ uint8_t iProduct; /* /< Index of product string descriptor. */
+ uint8_t iSerialNumber; /* /< Index of string descriptor containing serial #. */
+ uint8_t bNumConfigurations; /* /< Number of possible configurations. */
};
/** USB Configuration Descriptor. See USB 1.1 spec, pp. 199 - 200 */
struct usb_config_descriptor {
- uint8_t bLength; ///< Size of this descriptor in bytes.
- uint8_t bDescriptorType; ///< CONFIGURATION descriptor type.
- uint16_t wTotalLength; ///< Combined total length of all descriptors.
- uint8_t bNumInterfaces; ///< Number of interfaces in this configuration.
- uint8_t bConfigurationValue;///< Value used to select this configuration.
- uint8_t iConfiguration; ///< Index of configuration string descriptor.
- uint8_t bmAttributes; ///< Configuration characteristics.
- uint8_t MaxPower; ///< Maximum power consumption in 2 mA units.
+ uint8_t bLength; /* /< Size of this descriptor in bytes. */
+ uint8_t bDescriptorType;/* /< CONFIGURATION descriptor type. */
+ uint16_t wTotalLength; /* /< Combined total length of all descriptors. */
+ uint8_t bNumInterfaces; /* /< Number of interfaces in this configuration. */
+ uint8_t bConfigurationValue; /* /< Value used to select this configuration. */
+ uint8_t iConfiguration; /* /< Index of configuration string descriptor. */
+ uint8_t bmAttributes; /* /< Configuration characteristics. */
+ uint8_t MaxPower; /* /< Maximum power consumption in 2 mA units. */
};
/** USB Interface Descriptor. See USB 1.1 spec, pp. 201 - 203 */
struct usb_interface_descriptor {
- uint8_t bLength; ///< Size of this descriptor in bytes.
- uint8_t bDescriptorType; ///< INTERFACE descriptor type.
- uint8_t bInterfaceNumber; ///< Interface number.
- uint8_t bAlternateSetting; ///< Value used to select alternate setting.
- uint8_t bNumEndpoints; ///< Number of endpoints used by this interface.
- uint8_t bInterfaceClass; ///< Class code.
- uint8_t bInterfaceSubclass; ///< Subclass code.
- uint8_t bInterfaceProtocol; ///< Protocol code.
- uint8_t iInterface; ///< Index of interface string descriptor.
+ uint8_t bLength; /* /< Size of this descriptor in bytes. */
+ uint8_t bDescriptorType;/* /< INTERFACE descriptor type. */
+ uint8_t bInterfaceNumber; /* /< Interface number. */
+ uint8_t bAlternateSetting; /* /< Value used to select alternate setting. */
+ uint8_t bNumEndpoints; /* /< Number of endpoints used by this interface. */
+ uint8_t bInterfaceClass;/* /< Class code. */
+ uint8_t bInterfaceSubclass; /* /< Subclass code. */
+ uint8_t bInterfaceProtocol; /* /< Protocol code. */
+ uint8_t iInterface; /* /< Index of interface string descriptor. */
};
/** USB Endpoint Descriptor. See USB 1.1 spec, pp. 203 - 204 */
struct usb_endpoint_descriptor {
- uint8_t bLength; ///< Size of this descriptor in bytes.
- uint8_t bDescriptorType; ///< ENDPOINT descriptor type.
- uint8_t bEndpointAddress; ///< Endpoint Address: USB 1.1 spec, table 9-10.
- uint8_t bmAttributes; ///< Endpoint Attributes: USB 1.1 spec, table 9-10.
- uint16_t wMaxPacketSize; ///< Maximum packet size for this endpoint.
- uint8_t bInterval; ///< Polling interval (in ms) for this endpoint.
+ uint8_t bLength; /* /< Size of this descriptor in bytes. */
+ uint8_t bDescriptorType;/* /< ENDPOINT descriptor type. */
+ uint8_t bEndpointAddress; /* /< Endpoint Address: USB 1.1 spec, table 9-10. */
+ uint8_t bmAttributes; /* /< Endpoint Attributes: USB 1.1 spec, table 9-10. */
+ uint16_t wMaxPacketSize;/* /< Maximum packet size for this endpoint. */
+ uint8_t bInterval; /* /< Polling interval (in ms) for this endpoint. */
};
/** USB Language Descriptor. See USB 1.1 spec, pp. 204 - 205 */
struct usb_language_descriptor {
- uint8_t bLength; ///< Size of this descriptor in bytes.
- uint8_t bDescriptorType; ///< STRING descriptor type.
- uint16_t wLANGID[]; ///< LANGID codes.
+ uint8_t bLength; /* /< Size of this descriptor in bytes. */
+ uint8_t bDescriptorType;/* /< STRING descriptor type. */
+ uint16_t wLANGID[]; /* /< LANGID codes. */
};
/** USB String Descriptor. See USB 1.1 spec, pp. 204 - 205 */
struct usb_string_descriptor {
- uint8_t bLength; ///< Size of this descriptor in bytes.
- uint8_t bDescriptorType; ///< STRING descriptor type.
- uint16_t bString[]; ///< UNICODE encoded string.
+ uint8_t bLength; /* /< Size of this descriptor in bytes. */
+ uint8_t bDescriptorType;/* /< STRING descriptor type. */
+ uint16_t bString[]; /* /< UNICODE encoded string. */
};
/********************** USB Control Endpoint 0 related *********************/
/** USB Control Setup Data. See USB 1.1 spec, pp. 183 - 185 */
struct setup_data {
- uint8_t bmRequestType; ///< Characteristics of a request.
- uint8_t bRequest; ///< Specific request.
- uint16_t wValue; ///< Field that varies according to request.
- uint16_t wIndex; ///< Field that varies according to request.
- uint16_t wLength; ///< Number of bytes to transfer in data stage.
+ uint8_t bmRequestType; /* /< Characteristics of a request. */
+ uint8_t bRequest; /* /< Specific request. */
+ uint16_t wValue; /* /< Field that varies according to request. */
+ uint16_t wIndex; /* /< Field that varies according to request. */
+ uint16_t wLength; /* /< Number of bytes to transfer in data stage. */
};
/* External declarations for variables that need to be accessed outside of
@@ -206,9 +206,9 @@ extern volatile __xdata __at 0x7FE8 struct setup_data setup_data;
/* USB Requests (bRequest): See USB 1.1 spec, table 9-4 on page 187 */
#define GET_STATUS 0
#define CLEAR_FEATURE 1
-// Value '2' is reserved for future use
+/* Value '2' is reserved for future use */
#define SET_FEATURE 3
-// Value '4' is reserved for future use
+/* Value '4' is reserved for future use */
#define SET_ADDRESS 5
#define GET_DESCRIPTOR 6
#define SET_DESCRIPTOR 7
@@ -226,33 +226,33 @@ extern volatile __xdata __at 0x7FE8 struct setup_data setup_data;
/** USB Interrupts. See AN2131-TRM, page 9-4 for details */
enum usb_isr {
- SUDAV_ISR = 13,
- SOF_ISR,
- SUTOK_ISR,
- SUSPEND_ISR,
- USBRESET_ISR,
- IBN_ISR,
- EP0IN_ISR,
- EP0OUT_ISR,
- EP1IN_ISR,
- EP1OUT_ISR,
- EP2IN_ISR,
- EP2OUT_ISR,
- EP3IN_ISR,
- EP3OUT_ISR,
- EP4IN_ISR,
- EP4OUT_ISR,
- EP5IN_ISR,
- EP5OUT_ISR,
- EP6IN_ISR,
- EP6OUT_ISR,
- EP7IN_ISR,
- EP7OUT_ISR
+ SUDAV_ISR = 13,
+ SOF_ISR,
+ SUTOK_ISR,
+ SUSPEND_ISR,
+ USBRESET_ISR,
+ IBN_ISR,
+ EP0IN_ISR,
+ EP0OUT_ISR,
+ EP1IN_ISR,
+ EP1OUT_ISR,
+ EP2IN_ISR,
+ EP2OUT_ISR,
+ EP3IN_ISR,
+ EP3OUT_ISR,
+ EP4IN_ISR,
+ EP4OUT_ISR,
+ EP5IN_ISR,
+ EP5OUT_ISR,
+ EP6IN_ISR,
+ EP6OUT_ISR,
+ EP7IN_ISR,
+ EP7OUT_ISR
};
/*************************** Function Prototypes ***************************/
-__xdata uint8_t* usb_get_endpoint_cs_reg(uint8_t ep);
+__xdata uint8_t *usb_get_endpoint_cs_reg(uint8_t ep);
void usb_reset_data_toggle(uint8_t ep);
bool usb_handle_get_status(void);