dRonin  adbada4
dRonin firmware
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
USB Descriptor definitions

USB Descriptor definitions for HID and CDC. More...

Files

file  pios_usb_desc_hid_cdc.c
 USB Descriptor definitions for HID and CDC.
 
file  pios_usb_desc_hid_only.c
 USB Descriptor definitions for HID only.
 
file  pios_usb_desc_hid_cdc_priv.h
 Defines the API to set up the HID + CDC USB descriptor config.
 
file  pios_usb_desc_hid_only_priv.h
 Defines the API to set up the HID-only USB descriptor config.
 
file  pios_usb_board_data.c
 Board specific USB strings.
 

Data Structures

struct  usb_config_hid_cdc
 
struct  usb_config_hid_only
 

Macros

#define U16_CHARSEQ(val)   val, 0,
 
#define U16_CHARS1(val)   U16_CHARSEQ(val)
 
#define U16_CHARS2(val,...)   U16_CHARSEQ(val) U16_CHARS1(__VA_ARGS__)
 
#define U16_CHARS3(val,...)   U16_CHARSEQ(val) U16_CHARS2(__VA_ARGS__)
 
#define U16_CHARS4(val,...)   U16_CHARSEQ(val) U16_CHARS3(__VA_ARGS__)
 
#define U16_CHARS5(val,...)   U16_CHARSEQ(val) U16_CHARS4(__VA_ARGS__)
 
#define U16_CHARS6(val,...)   U16_CHARSEQ(val) U16_CHARS5(__VA_ARGS__)
 
#define U16_CHARS7(val,...)   U16_CHARSEQ(val) U16_CHARS6(__VA_ARGS__)
 
#define U16_CHARS8(val,...)   U16_CHARSEQ(val) U16_CHARS7(__VA_ARGS__)
 
#define U16_CHARS9(val,...)   U16_CHARSEQ(val) U16_CHARS8(__VA_ARGS__)
 
#define U16_CHARS10(val,...)   U16_CHARSEQ(val) U16_CHARS9(__VA_ARGS__)
 
#define U16_CHARS11(val,...)   U16_CHARSEQ(val) U16_CHARS10(__VA_ARGS__)
 
#define U16_CHARS12(val,...)   U16_CHARSEQ(val) U16_CHARS11(__VA_ARGS__)
 
#define U16_CHARS13(val,...)   U16_CHARSEQ(val) U16_CHARS12(__VA_ARGS__)
 
#define U16_CHARS14(val,...)   U16_CHARSEQ(val) U16_CHARS13(__VA_ARGS__)
 
#define U16_CHARS15(val,...)   U16_CHARSEQ(val) U16_CHARS14(__VA_ARGS__)
 
#define U16_CHARS16(val,...)   U16_CHARSEQ(val) U16_CHARS15(__VA_ARGS__)
 
#define U16_CHARS17(val,...)   U16_CHARSEQ(val) U16_CHARS16(__VA_ARGS__)
 
#define GENERATE_USB_STRING_IMPL(name, n,...)   static const uint8_t name[n*2+2] = { n*2+2, USB_DESC_TYPE_STRING, U16_CHARS##n(__VA_ARGS__) }
 
#define GENERATE_USB_STRING(name, n, v)   GENERATE_USB_STRING_IMPL(name, n, v)
 

Functions

struct usb_config_hid_cdc __attribute__ ((packed))
 
int32_t PIOS_USB_DESC_HID_CDC_Init (void)
 
int32_t PIOS_USB_DESC_HID_ONLY_Init (void)
 
 GENERATE_USB_STRING (usb_product_id, USB_STR_PROD_LEN, USB_STR_PROD_VAL)
 
 GENERATE_USB_STRING (usb_vendor_id, USB_STR_VEND_LEN, USB_STR_VEND_VAL)
 
int32_t PIOS_USB_BOARD_DATA_Init (void)
 

Variables

static const struct usb_device_desc device_desc
 
static const uint8_t hid_report_desc []
 
struct usb_configuration_desc usb_config_hid_cdc::config
 
struct
usb_interface_association_desc 
usb_config_hid_cdc::iad
 
struct usb_interface_desc usb_config_hid_cdc::cdc_control_if
 
struct usb_cdc_header_func_desc usb_config_hid_cdc::cdc_header
 
struct usb_cdc_callmgmt_func_desc usb_config_hid_cdc::cdc_callmgmt
 
struct usb_cdc_acm_func_desc usb_config_hid_cdc::cdc_acm
 
struct usb_cdc_union_func_desc usb_config_hid_cdc::cdc_union
 
struct usb_endpoint_desc usb_config_hid_cdc::cdc_mgmt_in
 
struct usb_interface_desc usb_config_hid_cdc::cdc_data_if
 
struct usb_endpoint_desc usb_config_hid_cdc::cdc_in
 
struct usb_endpoint_desc usb_config_hid_cdc::cdc_out
 
struct usb_interface_desc usb_config_hid_cdc::hid_if
 
struct usb_hid_desc usb_config_hid_cdc::hid
 
struct usb_endpoint_desc usb_config_hid_cdc::hid_in
 
struct usb_endpoint_desc usb_config_hid_cdc::hid_out
 
struct usb_configuration_desc config
 
struct
usb_interface_association_desc 
iad
 
struct usb_interface_desc cdc_control_if
 
struct usb_cdc_header_func_desc cdc_header
 
struct usb_cdc_callmgmt_func_desc cdc_callmgmt
 
struct usb_cdc_acm_func_desc cdc_acm
 
struct usb_cdc_union_func_desc cdc_union
 
struct usb_endpoint_desc cdc_mgmt_in
 
struct usb_interface_desc cdc_data_if
 
struct usb_endpoint_desc cdc_in
 
struct usb_endpoint_desc cdc_out
 
struct usb_interface_desc hid_if
 
struct usb_hid_desc hid
 
struct usb_endpoint_desc hid_in
 
struct usb_endpoint_desc hid_out
 
static const struct
usb_config_hid_cdc 
config_hid_cdc
 
static const struct usb_device_desc device_desc
 
static const uint8_t hid_report_desc [36]
 
struct usb_configuration_desc usb_config_hid_only::config
 
struct usb_interface_desc usb_config_hid_only::hid_if
 
struct usb_hid_desc usb_config_hid_only::hid
 
struct usb_endpoint_desc usb_config_hid_only::hid_in
 
struct usb_endpoint_desc usb_config_hid_only::hid_out
 
struct usb_configuration_desc config
 
struct usb_interface_desc hid_if
 
struct usb_hid_desc hid
 
struct usb_endpoint_desc hid_in
 
struct usb_endpoint_desc hid_out
 
const struct usb_config_hid_only config_hid_only
 
static uint8_t usb_serial_number [2+PIOS_SYS_SERIAL_NUM_ASCII_LEN *2+(sizeof(PIOS_USB_BOARD_SN_SUFFIX)-1)*2]
 
static const struct
usb_string_langid 
usb_lang_id
 

Detailed Description

USB Descriptor definitions for HID and CDC.

USB Descriptor definitions for HID only.

Macro Definition Documentation

#define GENERATE_USB_STRING (   name,
  n,
 
)    GENERATE_USB_STRING_IMPL(name, n, v)

Definition at line 56 of file pios_usb_board_data.c.

#define GENERATE_USB_STRING_IMPL (   name,
  n,
  ... 
)    static const uint8_t name[n*2+2] = { n*2+2, USB_DESC_TYPE_STRING, U16_CHARS##n(__VA_ARGS__) }

Definition at line 55 of file pios_usb_board_data.c.

#define U16_CHARS1 (   val)    U16_CHARSEQ(val)

Definition at line 37 of file pios_usb_board_data.c.

#define U16_CHARS10 (   val,
  ... 
)    U16_CHARSEQ(val) U16_CHARS9(__VA_ARGS__)

Definition at line 46 of file pios_usb_board_data.c.

#define U16_CHARS11 (   val,
  ... 
)    U16_CHARSEQ(val) U16_CHARS10(__VA_ARGS__)

Definition at line 47 of file pios_usb_board_data.c.

#define U16_CHARS12 (   val,
  ... 
)    U16_CHARSEQ(val) U16_CHARS11(__VA_ARGS__)

Definition at line 48 of file pios_usb_board_data.c.

#define U16_CHARS13 (   val,
  ... 
)    U16_CHARSEQ(val) U16_CHARS12(__VA_ARGS__)

Definition at line 49 of file pios_usb_board_data.c.

#define U16_CHARS14 (   val,
  ... 
)    U16_CHARSEQ(val) U16_CHARS13(__VA_ARGS__)

Definition at line 50 of file pios_usb_board_data.c.

#define U16_CHARS15 (   val,
  ... 
)    U16_CHARSEQ(val) U16_CHARS14(__VA_ARGS__)

Definition at line 51 of file pios_usb_board_data.c.

#define U16_CHARS16 (   val,
  ... 
)    U16_CHARSEQ(val) U16_CHARS15(__VA_ARGS__)

Definition at line 52 of file pios_usb_board_data.c.

#define U16_CHARS17 (   val,
  ... 
)    U16_CHARSEQ(val) U16_CHARS16(__VA_ARGS__)

Definition at line 53 of file pios_usb_board_data.c.

#define U16_CHARS2 (   val,
  ... 
)    U16_CHARSEQ(val) U16_CHARS1(__VA_ARGS__)

Definition at line 38 of file pios_usb_board_data.c.

#define U16_CHARS3 (   val,
  ... 
)    U16_CHARSEQ(val) U16_CHARS2(__VA_ARGS__)

Definition at line 39 of file pios_usb_board_data.c.

#define U16_CHARS4 (   val,
  ... 
)    U16_CHARSEQ(val) U16_CHARS3(__VA_ARGS__)

Definition at line 40 of file pios_usb_board_data.c.

#define U16_CHARS5 (   val,
  ... 
)    U16_CHARSEQ(val) U16_CHARS4(__VA_ARGS__)

Definition at line 41 of file pios_usb_board_data.c.

#define U16_CHARS6 (   val,
  ... 
)    U16_CHARSEQ(val) U16_CHARS5(__VA_ARGS__)

Definition at line 42 of file pios_usb_board_data.c.

#define U16_CHARS7 (   val,
  ... 
)    U16_CHARSEQ(val) U16_CHARS6(__VA_ARGS__)

Definition at line 43 of file pios_usb_board_data.c.

#define U16_CHARS8 (   val,
  ... 
)    U16_CHARSEQ(val) U16_CHARS7(__VA_ARGS__)

Definition at line 44 of file pios_usb_board_data.c.

#define U16_CHARS9 (   val,
  ... 
)    U16_CHARSEQ(val) U16_CHARS8(__VA_ARGS__)

Definition at line 45 of file pios_usb_board_data.c.

#define U16_CHARSEQ (   val)    val, 0,

Definition at line 35 of file pios_usb_board_data.c.

Function Documentation

struct usb_config_hid_cdc __attribute__ ( (packed)  )

Definition at line 38 of file serial_4way.h.

GENERATE_USB_STRING ( usb_product_id  ,
USB_STR_PROD_LEN  ,
USB_STR_PROD_VAL   
)
GENERATE_USB_STRING ( usb_vendor_id  ,
USB_STR_VEND_LEN  ,
USB_STR_VEND_VAL   
)
int32_t PIOS_USB_BOARD_DATA_Init ( void  )

Definition at line 72 of file pios_usb_board_data.c.

int32_t PIOS_USB_DESC_HID_CDC_Init ( void  )

Definition at line 249 of file pios_usb_desc_hid_cdc.c.

int32_t PIOS_USB_DESC_HID_ONLY_Init ( void  )

Definition at line 154 of file pios_usb_desc_hid_only.c.

Variable Documentation

struct usb_cdc_acm_func_desc usb_config_hid_cdc::cdc_acm

Definition at line 106 of file pios_usb_desc_hid_cdc.c.

struct usb_cdc_acm_func_desc cdc_acm

Definition at line 60 of file pios_usb_desc_hid_cdc.c.

struct usb_cdc_callmgmt_func_desc usb_config_hid_cdc::cdc_callmgmt

Definition at line 105 of file pios_usb_desc_hid_cdc.c.

struct usb_cdc_callmgmt_func_desc cdc_callmgmt

Definition at line 59 of file pios_usb_desc_hid_cdc.c.

struct usb_interface_desc cdc_control_if

Definition at line 57 of file pios_usb_desc_hid_cdc.c.

struct usb_interface_desc usb_config_hid_cdc::cdc_control_if

Definition at line 103 of file pios_usb_desc_hid_cdc.c.

struct usb_interface_desc usb_config_hid_cdc::cdc_data_if

Definition at line 109 of file pios_usb_desc_hid_cdc.c.

struct usb_interface_desc cdc_data_if

Definition at line 63 of file pios_usb_desc_hid_cdc.c.

struct usb_cdc_header_func_desc cdc_header

Definition at line 58 of file pios_usb_desc_hid_cdc.c.

struct usb_cdc_header_func_desc usb_config_hid_cdc::cdc_header

Definition at line 104 of file pios_usb_desc_hid_cdc.c.

struct usb_endpoint_desc usb_config_hid_cdc::cdc_in

Definition at line 110 of file pios_usb_desc_hid_cdc.c.

struct usb_endpoint_desc cdc_in

Definition at line 64 of file pios_usb_desc_hid_cdc.c.

struct usb_endpoint_desc usb_config_hid_cdc::cdc_mgmt_in

Definition at line 108 of file pios_usb_desc_hid_cdc.c.

struct usb_endpoint_desc cdc_mgmt_in

Definition at line 62 of file pios_usb_desc_hid_cdc.c.

struct usb_endpoint_desc usb_config_hid_cdc::cdc_out

Definition at line 111 of file pios_usb_desc_hid_cdc.c.

struct usb_endpoint_desc cdc_out

Definition at line 65 of file pios_usb_desc_hid_cdc.c.

struct usb_cdc_union_func_desc usb_config_hid_cdc::cdc_union

Definition at line 107 of file pios_usb_desc_hid_cdc.c.

struct usb_cdc_union_func_desc cdc_union

Definition at line 61 of file pios_usb_desc_hid_cdc.c.

struct usb_configuration_desc usb_config_hid_only::config

Definition at line 98 of file pios_usb_desc_hid_only.c.

struct usb_configuration_desc config

Definition at line 54 of file pios_usb_desc_hid_only.c.

struct usb_configuration_desc usb_config_hid_cdc::config

Definition at line 101 of file pios_usb_desc_hid_cdc.c.

struct usb_configuration_desc config

Definition at line 55 of file pios_usb_desc_hid_cdc.c.

const struct usb_config_hid_cdc config_hid_cdc
static

Definition at line 118 of file pios_usb_desc_hid_cdc.c.

const struct usb_config_hid_only config_hid_only

Definition at line 105 of file pios_usb_desc_hid_only.c.

const struct usb_device_desc device_desc
static
Initial value:
= {
.bLength = sizeof(struct usb_device_desc),
.bcdUSB = htousbs(0x0200),
.bDeviceClass = 0xef,
.bDeviceSubClass = 0x02,
.bDeviceProtocol = 0x01,
.bMaxPacketSize0 = 64,
.iManufacturer = USB_STRING_DESC_VENDOR,
.iSerialNumber = USB_STRING_DESC_SERIAL,
.bNumConfigurations = 1,
}
#define PIOS_USB_BOARD_VENDOR_ID
uint8_t bDescriptorType
Definition: pios_usb_defs.h:42
#define PIOS_USB_BOARD_DEVICE_VER
USB_STRING_DESC_VENDOR
Definition: pios_usbhook.h:37
USB_STRING_DESC_SERIAL
Definition: pios_usbhook.h:39
#define htousbs(v)
Definition: pios_usb_defs.h:77
USB_STRING_DESC_PRODUCT
Definition: pios_usbhook.h:38
#define PIOS_USB_BOARD_PRODUCT_ID
USB_DESC_TYPE_DEVICE
Definition: pios_usb_defs.h:41

Definition at line 37 of file pios_usb_desc_hid_cdc.c.

const struct usb_device_desc device_desc
static
Initial value:
= {
.bLength = sizeof(struct usb_device_desc),
.bcdUSB = htousbs(0x0200),
.bDeviceClass = 0x00,
.bDeviceSubClass = 0x00,
.bDeviceProtocol = 0x00,
.bMaxPacketSize0 = 64,
.iManufacturer = 1,
.iProduct = 2,
.iSerialNumber = 3,
.bNumConfigurations = 1,
}
#define PIOS_USB_BOARD_VENDOR_ID
uint8_t bDescriptorType
Definition: pios_usb_defs.h:42
#define PIOS_USB_BOARD_DEVICE_VER
#define htousbs(v)
Definition: pios_usb_defs.h:77
#define PIOS_USB_BOARD_PRODUCT_ID
USB_DESC_TYPE_DEVICE
Definition: pios_usb_defs.h:41

Definition at line 36 of file pios_usb_desc_hid_only.c.

struct usb_hid_desc usb_config_hid_only::hid

Definition at line 100 of file pios_usb_desc_hid_only.c.

struct usb_hid_desc hid

Definition at line 56 of file pios_usb_desc_hid_only.c.

struct usb_hid_desc usb_config_hid_cdc::hid

Definition at line 113 of file pios_usb_desc_hid_cdc.c.

struct usb_hid_desc hid

Definition at line 67 of file pios_usb_desc_hid_cdc.c.

struct usb_interface_desc usb_config_hid_only::hid_if

Definition at line 99 of file pios_usb_desc_hid_only.c.

struct usb_interface_desc hid_if

Definition at line 55 of file pios_usb_desc_hid_only.c.

struct usb_interface_desc usb_config_hid_cdc::hid_if

Definition at line 112 of file pios_usb_desc_hid_cdc.c.

struct usb_interface_desc hid_if

Definition at line 66 of file pios_usb_desc_hid_cdc.c.

struct usb_endpoint_desc hid_in

Definition at line 57 of file pios_usb_desc_hid_only.c.

struct usb_endpoint_desc usb_config_hid_only::hid_in

Definition at line 101 of file pios_usb_desc_hid_only.c.

struct usb_endpoint_desc usb_config_hid_cdc::hid_in

Definition at line 114 of file pios_usb_desc_hid_cdc.c.

struct usb_endpoint_desc hid_in

Definition at line 68 of file pios_usb_desc_hid_cdc.c.

struct usb_endpoint_desc hid_out

Definition at line 58 of file pios_usb_desc_hid_only.c.

struct usb_endpoint_desc usb_config_hid_only::hid_out

Definition at line 102 of file pios_usb_desc_hid_only.c.

struct usb_endpoint_desc usb_config_hid_cdc::hid_out

Definition at line 115 of file pios_usb_desc_hid_cdc.c.

struct usb_endpoint_desc hid_out

Definition at line 69 of file pios_usb_desc_hid_cdc.c.

const uint8_t hid_report_desc[36]
static

Definition at line 53 of file pios_usb_desc_hid_only.c.

const uint8_t hid_report_desc[]
static

Definition at line 54 of file pios_usb_desc_hid_cdc.c.

Definition at line 56 of file pios_usb_desc_hid_cdc.c.

struct usb_interface_association_desc usb_config_hid_cdc::iad

Definition at line 102 of file pios_usb_desc_hid_cdc.c.

const struct usb_string_langid usb_lang_id
static
Initial value:
= {
.bLength = sizeof(usb_lang_id),
}
USB_DESC_TYPE_STRING
Definition: pios_usb_defs.h:43
uint8_t bDescriptorType
Definition: pios_usb_defs.h:42
uint16_t bLangID
Definition: pios_usb_defs.h:43
#define htousbs(v)
Definition: pios_usb_defs.h:77
static const struct usb_string_langid usb_lang_id
#define USB_LANGID_ENGLISH_US

Definition at line 66 of file pios_usb_board_data.c.

uint8_t usb_serial_number[2+PIOS_SYS_SERIAL_NUM_ASCII_LEN *2+(sizeof(PIOS_USB_BOARD_SN_SUFFIX)-1)*2]
static
Initial value:
= {
}
USB_DESC_TYPE_STRING
Definition: pios_usb_defs.h:43
static uint8_t usb_serial_number[2+PIOS_SYS_SERIAL_NUM_ASCII_LEN *2+(sizeof(PIOS_USB_BOARD_SN_SUFFIX)-1)*2]

Definition at line 61 of file pios_usb_board_data.c.