nRF Connect SDK API 3.3.99
Loading...
Searching...
No Matches
hid_keymap_def.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2019 Nordic Semiconductor ASA
3 *
4 * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
5 */
6
7#include <caf/key_id.h>
8
9#include "hid_keymap.h"
10#include "fn_key_id.h"
11
12/* This configuration file is included only once from hid_state module and holds
13 * information about mapping between buttons and generated reports.
14 */
15
16/* This structure enforces the header file is included only once in the build.
17 * Violating this requirement triggers a multiple definition error at link time.
18 */
20
21/*
22 * HID keymap. The Consumer Control keys are defined in section 15 of
23 * the HID Usage Tables document under the following URL:
24 * https://www.usb.org/sites/default/files/hut1_12.pdf
25 */
26static const struct hid_keymap hid_keymap[] = {
27 { KEY_ID(0x00, 0x01), 0x0014, REPORT_ID_KEYBOARD_KEYS }, /* Q */
28 { KEY_ID(0x00, 0x02), 0x001A, REPORT_ID_KEYBOARD_KEYS }, /* W */
29 { KEY_ID(0x00, 0x03), 0x0008, REPORT_ID_KEYBOARD_KEYS }, /* E */
30 { KEY_ID(0x00, 0x04), 0x0015, REPORT_ID_KEYBOARD_KEYS }, /* R */
31 { KEY_ID(0x00, 0x05), 0x0018, REPORT_ID_KEYBOARD_KEYS }, /* U */
32 { KEY_ID(0x00, 0x06), 0x000C, REPORT_ID_KEYBOARD_KEYS }, /* I */
33 { KEY_ID(0x00, 0x07), 0x0012, REPORT_ID_KEYBOARD_KEYS }, /* O */
34 { KEY_ID(0x00, 0x08), 0x0013, REPORT_ID_KEYBOARD_KEYS }, /* P */
35 { KEY_ID(0x00, 0x09), 0x002C, REPORT_ID_KEYBOARD_KEYS }, /* space */
36 { KEY_ID(0x00, 0x0B), 0x005F, REPORT_ID_KEYBOARD_KEYS }, /* keypad 7 */
37 { KEY_ID(0x00, 0x0C), 0x0060, REPORT_ID_KEYBOARD_KEYS }, /* keypad 8 */
38 { KEY_ID(0x00, 0x0D), 0x0061, REPORT_ID_KEYBOARD_KEYS }, /* keypad 9 */
39 { KEY_ID(0x00, 0x0E), 0x0057, REPORT_ID_KEYBOARD_KEYS }, /* keypad + */
40 { KEY_ID(0x01, 0x01), 0x002B, REPORT_ID_KEYBOARD_KEYS }, /* tab */
41 { KEY_ID(0x01, 0x02), 0x0039, REPORT_ID_KEYBOARD_KEYS }, /* capslock */
42 { KEY_ID(0x01, 0x03), 0x003C, REPORT_ID_KEYBOARD_KEYS }, /* f3 */
43 { KEY_ID(0x01, 0x04), 0x0017, REPORT_ID_KEYBOARD_KEYS }, /* T */
44 { KEY_ID(0x01, 0x05), 0x001C, REPORT_ID_KEYBOARD_KEYS }, /* Y */
45 { KEY_ID(0x01, 0x06), 0x0030, REPORT_ID_KEYBOARD_KEYS }, /* ] */
46 { KEY_ID(0x01, 0x07), 0x0040, REPORT_ID_KEYBOARD_KEYS }, /* f7 */
47 { KEY_ID(0x01, 0x08), 0x002F, REPORT_ID_KEYBOARD_KEYS }, /* [ */
48 { KEY_ID(0x01, 0x0A), 0x002A, REPORT_ID_KEYBOARD_KEYS }, /* backspace */
49 { KEY_ID(0x01, 0x0B), 0x005C, REPORT_ID_KEYBOARD_KEYS }, /* keypad 4 */
50 { KEY_ID(0x01, 0x0C), 0x005D, REPORT_ID_KEYBOARD_KEYS }, /* keypad 5 */
51 { KEY_ID(0x01, 0x0D), 0x005E, REPORT_ID_KEYBOARD_KEYS }, /* keypad 6 */
52 { KEY_ID(0x01, 0x0F), 0x00E1, REPORT_ID_KEYBOARD_KEYS }, /* left shift */
53 { KEY_ID(0x01, 0x10), 0x00E3, REPORT_ID_KEYBOARD_KEYS }, /* left gui */
54 { KEY_ID(0x02, 0x01), 0x0004, REPORT_ID_KEYBOARD_KEYS }, /* A */
55 { KEY_ID(0x02, 0x02), 0x0016, REPORT_ID_KEYBOARD_KEYS }, /* S */
56 { KEY_ID(0x02, 0x03), 0x0007, REPORT_ID_KEYBOARD_KEYS }, /* D */
57 { KEY_ID(0x02, 0x04), 0x0009, REPORT_ID_KEYBOARD_KEYS }, /* F */
58 { KEY_ID(0x02, 0x05), 0x000D, REPORT_ID_KEYBOARD_KEYS }, /* J */
59 { KEY_ID(0x02, 0x06), 0x000E, REPORT_ID_KEYBOARD_KEYS }, /* K */
60 { KEY_ID(0x02, 0x07), 0x000F, REPORT_ID_KEYBOARD_KEYS }, /* L */
61 { KEY_ID(0x02, 0x08), 0x0033, REPORT_ID_KEYBOARD_KEYS }, /* ; */
62 { KEY_ID(0x02, 0x0A), 0x0031, REPORT_ID_KEYBOARD_KEYS }, /* \ */
63 { KEY_ID(0x02, 0x0B), 0x0059, REPORT_ID_KEYBOARD_KEYS }, /* keypad 1 */
64 { KEY_ID(0x02, 0x0C), 0x005A, REPORT_ID_KEYBOARD_KEYS }, /* keypad 2 */
65 { KEY_ID(0x02, 0x0D), 0x005B, REPORT_ID_KEYBOARD_KEYS }, /* keypad 3 */
66 { KEY_ID(0x02, 0x0E), 0x0058, REPORT_ID_KEYBOARD_KEYS }, /* keypad enter */
67 { KEY_ID(0x02, 0x0F), 0x00E5, REPORT_ID_KEYBOARD_KEYS }, /* right shift */
68 { KEY_ID(0x03, 0x01), 0x0029, REPORT_ID_KEYBOARD_KEYS }, /* esc */
69 { KEY_ID(0x03, 0x03), 0x003D, REPORT_ID_KEYBOARD_KEYS }, /* f4 */
70 { KEY_ID(0x03, 0x04), 0x000A, REPORT_ID_KEYBOARD_KEYS }, /* G */
71 { KEY_ID(0x03, 0x05), 0x000B, REPORT_ID_KEYBOARD_KEYS }, /* H */
72 { KEY_ID(0x03, 0x06), 0x003F, REPORT_ID_KEYBOARD_KEYS }, /* f6 */
73 { KEY_ID(0x03, 0x08), 0x0034, REPORT_ID_KEYBOARD_KEYS }, /* ' */
74 { KEY_ID(0x03, 0x09), 0x00E2, REPORT_ID_KEYBOARD_KEYS }, /* left alt */
75 { KEY_ID(0x03, 0x0A), 0x0044, REPORT_ID_KEYBOARD_KEYS }, /* f11 */
76 { KEY_ID(0x03, 0x0C), 0x0062, REPORT_ID_KEYBOARD_KEYS }, /* keypad 0 */
77 { KEY_ID(0x03, 0x0D), 0x0063, REPORT_ID_KEYBOARD_KEYS }, /* keypad . */
78 { KEY_ID(0x03, 0x0E), 0x0050, REPORT_ID_KEYBOARD_KEYS }, /* arrow left */
79 { KEY_ID(0x03, 0x11), 0x00EA, REPORT_ID_CONSUMER_CTRL }, /* volume down */
80 { KEY_ID(0x04, 0x00), 0x00E4, REPORT_ID_KEYBOARD_KEYS }, /* right ctrl */
81 { KEY_ID(0x04, 0x01), 0x001D, REPORT_ID_KEYBOARD_KEYS }, /* Z */
82 { KEY_ID(0x04, 0x02), 0x001B, REPORT_ID_KEYBOARD_KEYS }, /* X */
83 { KEY_ID(0x04, 0x03), 0x0006, REPORT_ID_KEYBOARD_KEYS }, /* C */
84 { KEY_ID(0x04, 0x04), 0x0019, REPORT_ID_KEYBOARD_KEYS }, /* V */
85 { KEY_ID(0x04, 0x05), 0x0010, REPORT_ID_KEYBOARD_KEYS }, /* M */
86 { KEY_ID(0x04, 0x06), 0x0036, REPORT_ID_KEYBOARD_KEYS }, /* , */
87 { KEY_ID(0x04, 0x07), 0x0037, REPORT_ID_KEYBOARD_KEYS }, /* . */
88 { KEY_ID(0x04, 0x0A), 0x0028, REPORT_ID_KEYBOARD_KEYS }, /* enter */
89 { KEY_ID(0x04, 0x0B), 0x0053, REPORT_ID_KEYBOARD_KEYS }, /* num lock */
90 { KEY_ID(0x04, 0x0C), 0x0054, REPORT_ID_KEYBOARD_KEYS }, /* keypad / */
91 { KEY_ID(0x04, 0x0D), 0x0055, REPORT_ID_KEYBOARD_KEYS }, /* keypad * */
92 { KEY_ID(0x05, 0x04), 0x0005, REPORT_ID_KEYBOARD_KEYS }, /* B */
93 { KEY_ID(0x05, 0x05), 0x0011, REPORT_ID_KEYBOARD_KEYS }, /* N */
94 { KEY_ID(0x05, 0x07), 0x0065, REPORT_ID_KEYBOARD_KEYS }, /* Keyboard Application */
95 { KEY_ID(0x05, 0x08), 0x0038, REPORT_ID_KEYBOARD_KEYS }, /* / */
96 { KEY_ID(0x05, 0x09), 0x00E6, REPORT_ID_KEYBOARD_KEYS }, /* right alt */
97 { KEY_ID(0x05, 0x0A), 0x0045, REPORT_ID_KEYBOARD_KEYS }, /* f12 */
98 { KEY_ID(0x05, 0x0B), 0x0051, REPORT_ID_KEYBOARD_KEYS }, /* arrow down */
99 { KEY_ID(0x05, 0x0C), 0x004F, REPORT_ID_KEYBOARD_KEYS }, /* arrow right */
100 { KEY_ID(0x05, 0x0D), 0x0056, REPORT_ID_KEYBOARD_KEYS }, /* keypad - */
101 { KEY_ID(0x05, 0x0E), 0x0052, REPORT_ID_KEYBOARD_KEYS }, /* arrow up */
102 { KEY_ID(0x05, 0x11), 0x00E9, REPORT_ID_CONSUMER_CTRL }, /* volume up */
103 { KEY_ID(0x06, 0x00), 0x00E0, REPORT_ID_KEYBOARD_KEYS }, /* left ctrl */
104 { KEY_ID(0x06, 0x01), 0x0035, REPORT_ID_KEYBOARD_KEYS }, /* ~ */
105 { KEY_ID(0x06, 0x02), 0x003A, REPORT_ID_KEYBOARD_KEYS }, /* f1 */
106 { KEY_ID(0x06, 0x03), 0x003B, REPORT_ID_KEYBOARD_KEYS }, /* f2 */
107 { KEY_ID(0x06, 0x04), 0x0022, REPORT_ID_KEYBOARD_KEYS }, /* 5 */
108 { KEY_ID(0x06, 0x05), 0x0023, REPORT_ID_KEYBOARD_KEYS }, /* 6 */
109 { KEY_ID(0x06, 0x06), 0x002E, REPORT_ID_KEYBOARD_KEYS }, /* = */
110 { KEY_ID(0x06, 0x07), 0x0041, REPORT_ID_KEYBOARD_KEYS }, /* f8 */
111 { KEY_ID(0x06, 0x08), 0x002D, REPORT_ID_KEYBOARD_KEYS }, /* - */
112 { KEY_ID(0x06, 0x0A), 0x0042, REPORT_ID_KEYBOARD_KEYS }, /* f9 */
113 { KEY_ID(0x06, 0x0B), 0x004C, REPORT_ID_KEYBOARD_KEYS }, /* delete */
114 { KEY_ID(0x06, 0x0C), 0x0049, REPORT_ID_KEYBOARD_KEYS }, /* insert */
115 { KEY_ID(0x06, 0x0D), 0x004B, REPORT_ID_KEYBOARD_KEYS }, /* page up */
116 { KEY_ID(0x06, 0x0E), 0x004A, REPORT_ID_KEYBOARD_KEYS }, /* home */
117 { KEY_ID(0x06, 0x11), 0x00E2, REPORT_ID_CONSUMER_CTRL }, /* mute */
118 { KEY_ID(0x07, 0x00), 0x003E, REPORT_ID_KEYBOARD_KEYS }, /* f5 */
119 { KEY_ID(0x07, 0x01), 0x001E, REPORT_ID_KEYBOARD_KEYS }, /* 1 */
120 { KEY_ID(0x07, 0x02), 0x001F, REPORT_ID_KEYBOARD_KEYS }, /* 2 */
121 { KEY_ID(0x07, 0x03), 0x0020, REPORT_ID_KEYBOARD_KEYS }, /* 3 */
122 { KEY_ID(0x07, 0x04), 0x0021, REPORT_ID_KEYBOARD_KEYS }, /* 4 */
123 { KEY_ID(0x07, 0x05), 0x0024, REPORT_ID_KEYBOARD_KEYS }, /* 7 */
124 { KEY_ID(0x07, 0x06), 0x0025, REPORT_ID_KEYBOARD_KEYS }, /* 8 */
125 { KEY_ID(0x07, 0x07), 0x0026, REPORT_ID_KEYBOARD_KEYS }, /* 9 */
126 { KEY_ID(0x07, 0x08), 0x0027, REPORT_ID_KEYBOARD_KEYS }, /* 0 */
127 { KEY_ID(0x07, 0x0A), 0x0043, REPORT_ID_KEYBOARD_KEYS }, /* f10 */
128 { KEY_ID(0x07, 0x0D), 0x004E, REPORT_ID_KEYBOARD_KEYS }, /* page down */
129 { KEY_ID(0x07, 0x0E), 0x004D, REPORT_ID_KEYBOARD_KEYS }, /* end */
130
131 { FN_KEY_ID(0x01, 0x03), 0x018A, REPORT_ID_CONSUMER_CTRL }, /* e-mail */
132 { FN_KEY_ID(0x03, 0x03), 0x0192, REPORT_ID_CONSUMER_CTRL }, /* calculator */
133 { FN_KEY_ID(0x03, 0x0A), 0x00CD, REPORT_ID_CONSUMER_CTRL }, /* play/pause */
134 { FN_KEY_ID(0x05, 0x0A), 0x00B5, REPORT_ID_CONSUMER_CTRL }, /* next track */
135 { FN_KEY_ID(0x06, 0x02), 0x0082, REPORT_ID_SYSTEM_CTRL }, /* sleep */
136 { FN_KEY_ID(0x06, 0x03), 0x0196, REPORT_ID_CONSUMER_CTRL }, /* internet */
137 { FN_KEY_ID(0x06, 0x0A), 0x021F, REPORT_ID_CONSUMER_CTRL }, /* find */
138 { FN_KEY_ID(0x06, 0x0C), 0x0046, REPORT_ID_KEYBOARD_KEYS }, /* prt scr */
139 { FN_KEY_ID(0x06, 0x0D), 0x0047, REPORT_ID_KEYBOARD_KEYS }, /* scroll lock */
140 { FN_KEY_ID(0x06, 0x0E), 0x0048, REPORT_ID_KEYBOARD_KEYS }, /* pause break */
141 { FN_KEY_ID(0x07, 0x0A), 0x00B6, REPORT_ID_CONSUMER_CTRL }, /* previous track */
142};
#define FN_KEY_ID(_col, _row)
Definition fn_key_id.h:20
@ REPORT_ID_CONSUMER_CTRL
Definition hid_report_desc.h:48
@ REPORT_ID_KEYBOARD_KEYS
Definition hid_report_desc.h:44
@ REPORT_ID_SYSTEM_CTRL
Definition hid_report_desc.h:46
HID keymap header.
#define KEY_ID(_col, _row)
Definition key_id.h:26
const struct @36 hid_keymap_def_include_once
HID keymap entry.
Definition hid_keymap.h:29