Button reporting
The in-box general-purpose I/O (GPIO) button driver reports to Windows, based on the interrupts that are received on the defined GPIO resources of the button array.
The in-box GPIO button driver reports the button presses and combinations listed in Table 1 GPIO Button Reporting.
Table 1 GPIO Button Reporting
Button | Requires _CRS Wakeable | Requires On-SOC GPIO | Edge Reporting (assuming ActiveLow) |
---|---|---|---|
Windows | Yes | Yes | Both |
Volume Up | Yes | Yes | Both |
Volume Down | Yes | Yes | Both |
Rotation Lock | No | Yes | Both |
Power | Yes | Yes | Both |
All non-GPIO based implementations must follow the same reporting scheme.
The order of definition is Power, Windows, Volume Up, Volume Down, and Rotation Lock. For examples of how to create HID descriptors for these functions, see HID button report descriptors.
Note Previous requirements described the use of Win + O for Rotation Lock. Although this combination is still functional, it isn't impervious to keyboard layout changes, whereas Win + F14 is layout-agnostic.
Table 2 Report Triggers for non-GPIO Buttons
Individual button reporting | Source | Usage requirements | Report trigger | Repeated |
---|---|---|---|---|
Power | System Control | 0x81 (Power) | Physical Button – Up | No |
Windows | Keyboard | 0xE3 (Win) | Physical Button – Up | No |
Volume Up | Consumer Collection | 0xE9 (Volume Up) | Physical Button – Down | Yes |
Volume Down | Consumer Collection | 0xEA (Volume Down) | Physical Button – Down | Yes |
Rotation Lock | Keyboard | 0xE3 + 0x69 (Win + F14) | Physical Button – Down | No |
The following keyboard combinations must be reported based on their completion, and shouldn't be repeated if the combination is held.
Table 3 Report Triggers for non-GPIO Button Combinations
Button combination reporting | Usage requirements | Report trigger | Repeated |
---|---|---|---|
Windows + Power | 0xE0 + 0xE2 + 0x4C (Ctrl + Alt + Del) |
Physical Power Button – Down | No |
Windows + Volume Up | 0xE3 + 0xE0 + 0x69 (Win + Ctrl + F14) |
Physical Volume Button - Down | No |
Windows + Volume Down | 0xE3 + 0x6A (Win + F15) |
Physical Volume Button - Down | No |
Note
- For full guidance and implementation for the Power button, see Power button and lid settings overview.
- For Connected Standby guidance for buttons, see Wake sources.
- For more information on ACPI implementation, see ACPI design guide.