Skip to content

Commit 00966b8

Browse files
fabiobaltierijhedberg
authored andcommitted
input: keymap: add a MATRIX_CODE macro
Add a MATRIX_CODE macro to extract the key code from a key value created in DT with MATRIX_KEY. This can be handy for code other than input_keymap.c Signed-off-by: Fabio Baltieri <fabiobaltieri@google.com>
1 parent 6a340f6 commit 00966b8

File tree

2 files changed

+12
-3
lines changed

2 files changed

+12
-3
lines changed

include/zephyr/input/input_keymap.h

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,17 @@
4141
*/
4242
#define MATRIX_COL(keymap_entry) (((keymap_entry) >> 16) & 0xff)
4343

44+
/**
45+
* @brief Extract the key code from a keymap entry.
46+
*
47+
* This macro extracts the key code from a 32-bit keymap entry. The key code
48+
* s stored in bits 0-15 of the keymap entry.
49+
*
50+
* @param keymap_entry The 32-bit keymap entry value.
51+
* @return The key code (0-0xffff) extracted from the keymap entry.
52+
*/
53+
#define MATRIX_CODE(keymap_entry) (keymap_entry & 0xffff)
54+
4455
/** @} */
4556

4657
#endif /* ZEPHYR_INCLUDE_INPUT_INPUT_KEYMAP_H_ */

subsys/input/input_keymap.c

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -86,8 +86,6 @@ static int keymap_init(const struct device *dev)
8686
#define KEYMAP_ENTRY_OFFSET(keymap_entry, col_size) \
8787
(MATRIX_ROW(keymap_entry) * col_size + MATRIX_COL(keymap_entry))
8888

89-
#define KEYMAP_ENTRY_CODE(keymap_entry) (keymap_entry & 0xffff)
90-
9189
#define KEYMAP_ENTRY_VALIDATE(node_id, prop, idx) \
9290
BUILD_ASSERT(MATRIX_ROW(DT_PROP_BY_IDX(node_id, prop, idx)) < \
9391
DT_PROP(node_id, row_size), "invalid row"); \
@@ -96,7 +94,7 @@ static int keymap_init(const struct device *dev)
9694

9795
#define CODES_INIT(node_id, prop, idx) \
9896
[KEYMAP_ENTRY_OFFSET(DT_PROP_BY_IDX(node_id, prop, idx), DT_PROP(node_id, col_size))] = \
99-
KEYMAP_ENTRY_CODE(DT_PROP_BY_IDX(node_id, prop, idx)),
97+
MATRIX_CODE(DT_PROP_BY_IDX(node_id, prop, idx)),
10098

10199
#define INPUT_KEYMAP_DEFINE(inst) \
102100
INPUT_CALLBACK_DEFINE_NAMED(DEVICE_DT_GET(DT_INST_PARENT(inst)), keymap_cb, \

0 commit comments

Comments
 (0)