USB HID devices and their components can be given a Usage code. The Usage code is an optional suggestion to the application on what the control is to be used for.
A usage code is broken up into two parts: the Usage Page and the Usage. Both are 16-bit numbers (0-65535). Any values can be used, but there are a set of defined values.
The Usage Page is used to group usages. A set of Usage Pages has been defined by the USB group. These are listed below...
| GENERIC_DESKTOP_CONTROLS | 0x01 |
| SIMULATION_CONTROLS | 0x02 |
| VR_CONTROLS | 0x03 |
| SPORT_CONTROLS | 0x04 |
| GAME_CONTROLS | 0x05 |
| GENERIC_DEVICE_CONTROLS | 0x06 |
| KEYBOARD_KEYPAD | 0x07 |
| LEDS | 0x08 |
| BUTTON | 0x09 |
| ORDINAL | 0x0A |
| TELEPHONY | 0x0B |
| CONSUMER | 0x0C |
| DIGITIZER | 0x0D |
| PID_PAGE | 0x0F |
| UNICODE | 0x10 |
| ALPHANUMERIC_DISPLAY | 0x14 |
| MEDICAL_INSTRUMENTS | 0x40 |
| MONITOR_PAGES | 0x83 |
| POWER_PAGES | 0x87 |
| BAR_CODE_SCANNER_PAGE | 0x8C |
| SCALE_PAGE | 0x8D |
| MAGNETIC_STRIPE_READING_DEVICES | 0x8E |
| CAMERA_CONTROL_PAGE | 0x90 |
| ARCADE_PAGE | 0x91 |
| VENDOR_DEFINED | 0xFF00 |
Each Usage Page has a collection of Usages. For example, these are Usages for the Usage Page GENERIC_DESKTOP_CONTROLS.
| POINTER | 0x01 |
| MOUSE | 0x02 |
| JOYSTICK | 0x04 |
| GAME PAD | 0x05 |
| KEYBOARD | 0x06 |
| KEYPAD | 0x07 |
| X | 0x30 |
| Y | 0x31 |
| Z | 0x32 |
| RX | 0x33 |
| RY | 0x34 |
| RZ | 0x35 |
| SLIDER | 0x36 |
| DIAL | 0x37 |
| WHEEL | 0x38 |
| HATSWITCH | 0x39 |
| START | 0x3D |
| SELECT | 0x3E |
| DPAD_UP | 0x90 |
| DPAD_DOWN | 0x91 |
| DPAD_RIGHT | 0x92 |
| DPAD_LEFT | 0x93 |
Generally, it is not important what the Usage Page and Usage are, however there are some exceptions...
The property field for the Usage is displayed as the Usage Page and the Usage. These are two drop down lists that contain the standard Usage Pages and Usages as shown below.

It is not necessary to use one of the predefined values. A user defined
number may be entered. This is required on some usage pages like LED.