summaryrefslogtreecommitdiff
path: root/tmk_core/protocol/arm_atsam/usb/usb_protocol_hid.h
diff options
context:
space:
mode:
Diffstat (limited to 'tmk_core/protocol/arm_atsam/usb/usb_protocol_hid.h')
-rw-r--r--tmk_core/protocol/arm_atsam/usb/usb_protocol_hid.h383
1 files changed, 190 insertions, 193 deletions
diff --git a/tmk_core/protocol/arm_atsam/usb/usb_protocol_hid.h b/tmk_core/protocol/arm_atsam/usb/usb_protocol_hid.h
index c482e9c069..2f8a39bdd8 100644
--- a/tmk_core/protocol/arm_atsam/usb/usb_protocol_hid.h
+++ b/tmk_core/protocol/arm_atsam/usb/usb_protocol_hid.h
@@ -58,64 +58,62 @@
//! \name Possible Class value
//@{
-#define HID_CLASS 0x03
+#define HID_CLASS 0x03
//@}
//! \name Possible SubClass value
//@{
//! Interface subclass NO support BOOT protocol
-#define HID_SUB_CLASS_NOBOOT 0x00
+#define HID_SUB_CLASS_NOBOOT 0x00
//! Interface subclass support BOOT protocol
-#define HID_SUB_CLASS_BOOT 0x01
+#define HID_SUB_CLASS_BOOT 0x01
//@}
//! \name Possible protocol value
//@{
//! Protocol generic standard
-#define HID_PROTOCOL_GENERIC 0x00
+#define HID_PROTOCOL_GENERIC 0x00
//! Protocol keyboard standard
-#define HID_PROTOCOL_KEYBOARD 0x01
+#define HID_PROTOCOL_KEYBOARD 0x01
//! Protocol mouse standard
-#define HID_PROTOCOL_MOUSE 0x02
+#define HID_PROTOCOL_MOUSE 0x02
//@}
-
//! \brief Hid USB requests (bRequest)
enum usb_reqid_hid {
- USB_REQ_HID_GET_REPORT = 0x01,
- USB_REQ_HID_GET_IDLE = 0x02,
+ USB_REQ_HID_GET_REPORT = 0x01,
+ USB_REQ_HID_GET_IDLE = 0x02,
USB_REQ_HID_GET_PROTOCOL = 0x03,
- USB_REQ_HID_SET_REPORT = 0x09,
- USB_REQ_HID_SET_IDLE = 0x0A,
+ USB_REQ_HID_SET_REPORT = 0x09,
+ USB_REQ_HID_SET_IDLE = 0x0A,
USB_REQ_HID_SET_PROTOCOL = 0x0B,
};
//! \brief HID USB descriptor types
enum usb_descriptor_type_hid {
- USB_DT_HID = 0x21,
- USB_DT_HID_REPORT = 0x22,
+ USB_DT_HID = 0x21,
+ USB_DT_HID_REPORT = 0x22,
USB_DT_HID_PHYSICAL = 0x23,
};
//! \brief HID Type for report descriptor
enum usb_hid_item_report_type {
- USB_HID_ITEM_REPORT_TYPE_MAIN = 0,
+ USB_HID_ITEM_REPORT_TYPE_MAIN = 0,
USB_HID_ITEM_REPORT_TYPE_GLOBAL = 1,
- USB_HID_ITEM_REPORT_TYPE_LOCAL = 2,
- USB_HID_ITEM_REPORT_TYPE_LONG = 3,
+ USB_HID_ITEM_REPORT_TYPE_LOCAL = 2,
+ USB_HID_ITEM_REPORT_TYPE_LONG = 3,
};
//! \brief HID report type
enum usb_hid_report_type {
- USB_HID_REPORT_TYPE_INPUT = 1,
- USB_HID_REPORT_TYPE_OUTPUT = 2,
+ USB_HID_REPORT_TYPE_INPUT = 1,
+ USB_HID_REPORT_TYPE_OUTPUT = 2,
USB_HID_REPORT_TYPE_FEATURE = 3,
};
-
//! \brief HID protocol
enum usb_hid_protocol {
- USB_HID_PROCOTOL_BOOT = 0,
+ USB_HID_PROCOTOL_BOOT = 0,
USB_HID_PROCOTOL_REPORT = 1,
};
@@ -123,197 +121,196 @@ COMPILER_PACK_SET(1)
//! \brief HID Descriptor
typedef struct {
- uint8_t bLength; //!< Size of this descriptor in bytes
- uint8_t bDescriptorType; //!< HID descriptor type
- le16_t bcdHID; //!< Binary Coded Decimal Spec. release
- uint8_t bCountryCode; //!< Hardware target country
- uint8_t bNumDescriptors; //!< Number of HID class descriptors to follow
- uint8_t bRDescriptorType; //!< Report descriptor type
- le16_t wDescriptorLength; //!< Total length of Report descriptor
+ uint8_t bLength; //!< Size of this descriptor in bytes
+ uint8_t bDescriptorType; //!< HID descriptor type
+ le16_t bcdHID; //!< Binary Coded Decimal Spec. release
+ uint8_t bCountryCode; //!< Hardware target country
+ uint8_t bNumDescriptors; //!< Number of HID class descriptors to follow
+ uint8_t bRDescriptorType; //!< Report descriptor type
+ le16_t wDescriptorLength; //!< Total length of Report descriptor
} usb_hid_descriptor_t;
COMPILER_PACK_RESET()
- //! \name HID Report type
- //! Used by SETUP_HID_GET_REPORT & SETUP_HID_SET_REPORT
- //! @{
-#define REPORT_TYPE_INPUT 0x01
-#define REPORT_TYPE_OUTPUT 0x02
-#define REPORT_TYPE_FEATURE 0x03
- //! @}
+//! \name HID Report type
+//! Used by SETUP_HID_GET_REPORT & SETUP_HID_SET_REPORT
+//! @{
+#define REPORT_TYPE_INPUT 0x01
+#define REPORT_TYPE_OUTPUT 0x02
+#define REPORT_TYPE_FEATURE 0x03
+//! @}
- //! \name Constants of field DESCRIPTOR_HID
- //! @{
+//! \name Constants of field DESCRIPTOR_HID
+//! @{
//! Numeric expression identifying the HID Class
//! Specification release (here V1.11)
-#define USB_HID_BDC_V1_11 0x0111
+#define USB_HID_BDC_V1_11 0x0111
//! Numeric expression specifying the number of class descriptors
//! Note: Always at least one i.e. Report descriptor.
-#define USB_HID_NUM_DESC 0x01
+#define USB_HID_NUM_DESC 0x01
- //! \name Country code
- //! @{
-#define USB_HID_NO_COUNTRY_CODE 0 // Not Supported
-#define USB_HID_COUNTRY_ARABIC 1 // Arabic
-#define USB_HID_COUNTRY_BELGIAN 2 // Belgian
-#define USB_HID_COUNTRY_CANADIAN_BILINGUAL 3 // Canadian-Bilingual
-#define USB_HID_COUNTRY_CANADIAN_FRENCH 4 // Canadian-French
-#define USB_HID_COUNTRY_CZECH_REPUBLIC 5 // Czech Republic
-#define USB_HID_COUNTRY_DANISH 6 // Danish
-#define USB_HID_COUNTRY_FINNISH 7 // Finnish
-#define USB_HID_COUNTRY_FRENCH 8 // French
-#define USB_HID_COUNTRY_GERMAN 9 // German
-#define USB_HID_COUNTRY_GREEK 10 // Greek
-#define USB_HID_COUNTRY_HEBREW 11 // Hebrew
-#define USB_HID_COUNTRY_HUNGARY 12 // Hungary
-#define USB_HID_COUNTRY_INTERNATIONAL_ISO 13 // International (ISO)
-#define USB_HID_COUNTRY_ITALIAN 14 // Italian
-#define USB_HID_COUNTRY_JAPAN_KATAKANA 15 // Japan (Katakana)
-#define USB_HID_COUNTRY_KOREAN 16 // Korean
-#define USB_HID_COUNTRY_LATIN_AMERICAN 17 // Latin American
-#define USB_HID_COUNTRY_NETHERLANDS_DUTCH 18 // Netherlands/Dutch
-#define USB_HID_COUNTRY_NORWEGIAN 19 // Norwegian
-#define USB_HID_COUNTRY_PERSIAN_FARSI 20 // Persian (Farsi)
-#define USB_HID_COUNTRY_POLAND 21 // Poland
-#define USB_HID_COUNTRY_PORTUGUESE 22 // Portuguese
-#define USB_HID_COUNTRY_RUSSIA 23 // Russia
-#define USB_HID_COUNTRY_SLOVAKIA 24 // Slovakia
-#define USB_HID_COUNTRY_SPANISH 25 // Spanish
-#define USB_HID_COUNTRY_SWEDISH 26 // Swedish
-#define USB_HID_COUNTRY_SWISS_FRENCH 27 // Swiss/French
-#define USB_HID_COUNTRY_SWISS_GERMAN 28 // Swiss/German
-#define USB_HID_COUNTRY_SWITZERLAND 29 // Switzerland
-#define USB_HID_COUNTRY_TAIWAN 30 // Taiwan
-#define USB_HID_COUNTRY_TURKISH_Q 31 // Turkish-Q
-#define USB_HID_COUNTRY_UK 32 // UK
-#define USB_HID_COUNTRY_US 33 // US
-#define USB_HID_COUNTRY_YUGOSLAVIA 34 // Yugoslavia
-#define USB_HID_COUNTRY_TURKISH_F 35 // Turkish-F
- //! @}
- //! @}
+//! \name Country code
+//! @{
+#define USB_HID_NO_COUNTRY_CODE 0 // Not Supported
+#define USB_HID_COUNTRY_ARABIC 1 // Arabic
+#define USB_HID_COUNTRY_BELGIAN 2 // Belgian
+#define USB_HID_COUNTRY_CANADIAN_BILINGUAL 3 // Canadian-Bilingual
+#define USB_HID_COUNTRY_CANADIAN_FRENCH 4 // Canadian-French
+#define USB_HID_COUNTRY_CZECH_REPUBLIC 5 // Czech Republic
+#define USB_HID_COUNTRY_DANISH 6 // Danish
+#define USB_HID_COUNTRY_FINNISH 7 // Finnish
+#define USB_HID_COUNTRY_FRENCH 8 // French
+#define USB_HID_COUNTRY_GERMAN 9 // German
+#define USB_HID_COUNTRY_GREEK 10 // Greek
+#define USB_HID_COUNTRY_HEBREW 11 // Hebrew
+#define USB_HID_COUNTRY_HUNGARY 12 // Hungary
+#define USB_HID_COUNTRY_INTERNATIONAL_ISO 13 // International (ISO)
+#define USB_HID_COUNTRY_ITALIAN 14 // Italian
+#define USB_HID_COUNTRY_JAPAN_KATAKANA 15 // Japan (Katakana)
+#define USB_HID_COUNTRY_KOREAN 16 // Korean
+#define USB_HID_COUNTRY_LATIN_AMERICAN 17 // Latin American
+#define USB_HID_COUNTRY_NETHERLANDS_DUTCH 18 // Netherlands/Dutch
+#define USB_HID_COUNTRY_NORWEGIAN 19 // Norwegian
+#define USB_HID_COUNTRY_PERSIAN_FARSI 20 // Persian (Farsi)
+#define USB_HID_COUNTRY_POLAND 21 // Poland
+#define USB_HID_COUNTRY_PORTUGUESE 22 // Portuguese
+#define USB_HID_COUNTRY_RUSSIA 23 // Russia
+#define USB_HID_COUNTRY_SLOVAKIA 24 // Slovakia
+#define USB_HID_COUNTRY_SPANISH 25 // Spanish
+#define USB_HID_COUNTRY_SWEDISH 26 // Swedish
+#define USB_HID_COUNTRY_SWISS_FRENCH 27 // Swiss/French
+#define USB_HID_COUNTRY_SWISS_GERMAN 28 // Swiss/German
+#define USB_HID_COUNTRY_SWITZERLAND 29 // Switzerland
+#define USB_HID_COUNTRY_TAIWAN 30 // Taiwan
+#define USB_HID_COUNTRY_TURKISH_Q 31 // Turkish-Q
+#define USB_HID_COUNTRY_UK 32 // UK
+#define USB_HID_COUNTRY_US 33 // US
+#define USB_HID_COUNTRY_YUGOSLAVIA 34 // Yugoslavia
+#define USB_HID_COUNTRY_TURKISH_F 35 // Turkish-F
+ //! @}
+ //! @}
//! @}
-
//! \name HID KEYS values
//! @{
-#define HID_A 0x04
-#define HID_B 0x05
-#define HID_C 0x06
-#define HID_D 0x07
-#define HID_E 0x08
-#define HID_F 0x09
-#define HID_G 0x0A
-#define HID_H 0x0B
-#define HID_I 0x0C
-#define HID_J 0x0D
-#define HID_K 0x0E
-#define HID_L 0x0F
-#define HID_M 0x10
-#define HID_N 0x11
-#define HID_O 0x12
-#define HID_P 0x13
-#define HID_Q 0x14
-#define HID_R 0x15
-#define HID_S 0x16
-#define HID_T 0x17
-#define HID_U 0x18
-#define HID_V 0x19
-#define HID_W 0x1A
-#define HID_X 0x1B
-#define HID_Y 0x1C
-#define HID_Z 0x1D
-#define HID_1 30
-#define HID_2 31
-#define HID_3 32
-#define HID_4 33
-#define HID_5 34
-#define HID_6 35
-#define HID_7 36
-#define HID_8 37
-#define HID_9 38
-#define HID_0 39
-#define HID_ENTER 40
-#define HID_ESCAPE 41
-#define HID_BACKSPACE 42
-#define HID_TAB 43
-#define HID_SPACEBAR 44
-#define HID_UNDERSCORE 45
-#define HID_PLUS 46
-#define HID_OPEN_BRACKET 47 // {
-#define HID_CLOSE_BRACKET 48 // }
-#define HID_BACKSLASH 49
-#define HID_ASH 50 // # ~
-#define HID_COLON 51 // ; :
-#define HID_QUOTE 52 // ' "
-#define HID_TILDE 53
-#define HID_COMMA 54
-#define HID_DOT 55
-#define HID_SLASH 56
-#define HID_CAPS_LOCK 57
-#define HID_F1 58
-#define HID_F2 59
-#define HID_F3 60
-#define HID_F4 61
-#define HID_F5 62
-#define HID_F6 63
-#define HID_F7 64
-#define HID_F8 65
-#define HID_F9 66
-#define HID_F10 67
-#define HID_F11 68
-#define HID_F12 69
-#define HID_PRINTSCREEN 70
-#define HID_SCROLL_LOCK 71
-#define HID_PAUSE 72
-#define HID_INSERT 73
-#define HID_HOME 74
-#define HID_PAGEUP 75
-#define HID_DELETE 76
-#define HID_END 77
-#define HID_PAGEDOWN 78
-#define HID_RIGHT 79
-#define HID_LEFT 80
-#define HID_DOWN 81
-#define HID_UP 82
-#define HID_KEYPAD_NUM_LOCK 83
-#define HID_KEYPAD_DIVIDE 84
-#define HID_KEYPAD_AT 85
-#define HID_KEYPAD_MULTIPLY 85
-#define HID_KEYPAD_MINUS 86
-#define HID_KEYPAD_PLUS 87
-#define HID_KEYPAD_ENTER 88
-#define HID_KEYPAD_1 89
-#define HID_KEYPAD_2 90
-#define HID_KEYPAD_3 91
-#define HID_KEYPAD_4 92
-#define HID_KEYPAD_5 93
-#define HID_KEYPAD_6 94
-#define HID_KEYPAD_7 95
-#define HID_KEYPAD_8 96
-#define HID_KEYPAD_9 97
-#define HID_KEYPAD_0 98
+#define HID_A 0x04
+#define HID_B 0x05
+#define HID_C 0x06
+#define HID_D 0x07
+#define HID_E 0x08
+#define HID_F 0x09
+#define HID_G 0x0A
+#define HID_H 0x0B
+#define HID_I 0x0C
+#define HID_J 0x0D
+#define HID_K 0x0E
+#define HID_L 0x0F
+#define HID_M 0x10
+#define HID_N 0x11
+#define HID_O 0x12
+#define HID_P 0x13
+#define HID_Q 0x14
+#define HID_R 0x15
+#define HID_S 0x16
+#define HID_T 0x17
+#define HID_U 0x18
+#define HID_V 0x19
+#define HID_W 0x1A
+#define HID_X 0x1B
+#define HID_Y 0x1C
+#define HID_Z 0x1D
+#define HID_1 30
+#define HID_2 31
+#define HID_3 32
+#define HID_4 33
+#define HID_5 34
+#define HID_6 35
+#define HID_7 36
+#define HID_8 37
+#define HID_9 38
+#define HID_0 39
+#define HID_ENTER 40
+#define HID_ESCAPE 41
+#define HID_BACKSPACE 42
+#define HID_TAB 43
+#define HID_SPACEBAR 44
+#define HID_UNDERSCORE 45
+#define HID_PLUS 46
+#define HID_OPEN_BRACKET 47 // {
+#define HID_CLOSE_BRACKET 48 // }
+#define HID_BACKSLASH 49
+#define HID_ASH 50 // # ~
+#define HID_COLON 51 // ; :
+#define HID_QUOTE 52 // ' "
+#define HID_TILDE 53
+#define HID_COMMA 54
+#define HID_DOT 55
+#define HID_SLASH 56
+#define HID_CAPS_LOCK 57
+#define HID_F1 58
+#define HID_F2 59
+#define HID_F3 60
+#define HID_F4 61
+#define HID_F5 62
+#define HID_F6 63
+#define HID_F7 64
+#define HID_F8 65
+#define HID_F9 66
+#define HID_F10 67
+#define HID_F11 68
+#define HID_F12 69
+#define HID_PRINTSCREEN 70
+#define HID_SCROLL_LOCK 71
+#define HID_PAUSE 72
+#define HID_INSERT 73
+#define HID_HOME 74
+#define HID_PAGEUP 75
+#define HID_DELETE 76
+#define HID_END 77
+#define HID_PAGEDOWN 78
+#define HID_RIGHT 79
+#define HID_LEFT 80
+#define HID_DOWN 81
+#define HID_UP 82
+#define HID_KEYPAD_NUM_LOCK 83
+#define HID_KEYPAD_DIVIDE 84
+#define HID_KEYPAD_AT 85
+#define HID_KEYPAD_MULTIPLY 85
+#define HID_KEYPAD_MINUS 86
+#define HID_KEYPAD_PLUS 87
+#define HID_KEYPAD_ENTER 88
+#define HID_KEYPAD_1 89
+#define HID_KEYPAD_2 90
+#define HID_KEYPAD_3 91
+#define HID_KEYPAD_4 92
+#define HID_KEYPAD_5 93
+#define HID_KEYPAD_6 94
+#define HID_KEYPAD_7 95
+#define HID_KEYPAD_8 96
+#define HID_KEYPAD_9 97
+#define HID_KEYPAD_0 98
- //! \name HID modifier values
- //! @{
-#define HID_MODIFIER_NONE 0x00
-#define HID_MODIFIER_LEFT_CTRL 0x01
-#define HID_MODIFIER_LEFT_SHIFT 0x02
-#define HID_MODIFIER_LEFT_ALT 0x04
-#define HID_MODIFIER_LEFT_UI 0x08
-#define HID_MODIFIER_RIGHT_CTRL 0x10
-#define HID_MODIFIER_RIGHT_SHIFT 0x20
-#define HID_MODIFIER_RIGHT_ALT 0x40
-#define HID_MODIFIER_RIGHT_UI 0x80
- //! @}
+//! \name HID modifier values
+//! @{
+#define HID_MODIFIER_NONE 0x00
+#define HID_MODIFIER_LEFT_CTRL 0x01
+#define HID_MODIFIER_LEFT_SHIFT 0x02
+#define HID_MODIFIER_LEFT_ALT 0x04
+#define HID_MODIFIER_LEFT_UI 0x08
+#define HID_MODIFIER_RIGHT_CTRL 0x10
+#define HID_MODIFIER_RIGHT_SHIFT 0x20
+#define HID_MODIFIER_RIGHT_ALT 0x40
+#define HID_MODIFIER_RIGHT_UI 0x80
+//! @}
//! @}
//! \name HID KEYS values
//! @{
-#define HID_LED_NUM_LOCK (1<<0)
-#define HID_LED_CAPS_LOCK (1<<1)
-#define HID_LED_SCROLL_LOCK (1<<2)
-#define HID_LED_COMPOSE (1<<3)
-#define HID_LED_KANA (1<<4)
+#define HID_LED_NUM_LOCK (1 << 0)
+#define HID_LED_CAPS_LOCK (1 << 1)
+#define HID_LED_SCROLL_LOCK (1 << 2)
+#define HID_LED_COMPOSE (1 << 3)
+#define HID_LED_KANA (1 << 4)
//! @}
-#endif // _USB_PROTOCOL_HID_H_
+#endif // _USB_PROTOCOL_HID_H_