Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions include/zephyr/input/input_keymap.h
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,17 @@
*/
#define MATRIX_COL(keymap_entry) (((keymap_entry) >> 16) & 0xff)

/**
* @brief Extract the key code from a keymap entry.
*
* This macro extracts the key code from a 32-bit keymap entry. The key code
* s stored in bits 0-15 of the keymap entry.
*
* @param keymap_entry The 32-bit keymap entry value.
* @return The key code (0-0xffff) extracted from the keymap entry.
*/
#define MATRIX_CODE(keymap_entry) (keymap_entry & 0xffff)

/** @} */

#endif /* ZEPHYR_INCLUDE_INPUT_INPUT_KEYMAP_H_ */
4 changes: 1 addition & 3 deletions subsys/input/input_keymap.c
Original file line number Diff line number Diff line change
Expand Up @@ -86,8 +86,6 @@ static int keymap_init(const struct device *dev)
#define KEYMAP_ENTRY_OFFSET(keymap_entry, col_size) \
(MATRIX_ROW(keymap_entry) * col_size + MATRIX_COL(keymap_entry))

#define KEYMAP_ENTRY_CODE(keymap_entry) (keymap_entry & 0xffff)

#define KEYMAP_ENTRY_VALIDATE(node_id, prop, idx) \
BUILD_ASSERT(MATRIX_ROW(DT_PROP_BY_IDX(node_id, prop, idx)) < \
DT_PROP(node_id, row_size), "invalid row"); \
Expand All @@ -96,7 +94,7 @@ static int keymap_init(const struct device *dev)

#define CODES_INIT(node_id, prop, idx) \
[KEYMAP_ENTRY_OFFSET(DT_PROP_BY_IDX(node_id, prop, idx), DT_PROP(node_id, col_size))] = \
KEYMAP_ENTRY_CODE(DT_PROP_BY_IDX(node_id, prop, idx)),
MATRIX_CODE(DT_PROP_BY_IDX(node_id, prop, idx)),

#define INPUT_KEYMAP_DEFINE(inst) \
INPUT_CALLBACK_DEFINE_NAMED(DEVICE_DT_GET(DT_INST_PARENT(inst)), keymap_cb, \
Expand Down