build: cleanup src/jtag/drivers directory
[fw/openocd] / src / jtag / drivers / OpenULINK / include / usb.h
index 811d6bf19074ec8b0141c5121e0dca0fd51c1019..3685f7d7354b08d1f304a94ff5981d409e8ef3d7 100644 (file)
 #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 **********/
 
 #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_tusb_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);