diff options
author | Pete Johanson <peter@peterjohanson.com> | 2020-06-27 00:16:15 -0400 |
---|---|---|
committer | Pete Johanson <peter@peterjohanson.com> | 2020-06-27 00:16:15 -0400 |
commit | 5ffd95694fafa4fb424c9f0122d6f07a486cd81f (patch) | |
tree | 5d408f352d8fe8267c9d917e254d331b23b4e236 /app/include/zmk/matrix.h | |
parent | f84a41de3e72c022edebc1a3e90df0aa140451e6 (diff) |
Kyria left/right overlays, matrix transform fixes
* Refactor Kyria into separate left/right "revisions"
of the Kyria shield, and include central
kyria.dtsi file with common definition.
* Fixes for keymaps to work fully with matrix
transforms that override effective rows/columns.
* Add ability for matrix transform to do row/col
offsets, which is needed for split keyboards.
Diffstat (limited to 'app/include/zmk/matrix.h')
-rw-r--r-- | app/include/zmk/matrix.h | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/app/include/zmk/matrix.h b/app/include/zmk/matrix.h index 9fe1a85..3088263 100644 --- a/app/include/zmk/matrix.h +++ b/app/include/zmk/matrix.h @@ -4,6 +4,16 @@ #define ZMK_MATRIX_NODE_ID DT_CHOSEN(zmk_kscan) +#if DT_HAS_CHOSEN(zmk_matrix_transform) + +#define ZMK_KEYMAP_TRANSFORM_NODE DT_CHOSEN(zmk_matrix_transform) +#define ZMK_KEYMAP_LEN DT_PROP_LEN(ZMK_KEYMAP_TRANSFORM_NODE, map) + +#define ZMK_MATRIX_ROWS DT_PROP(ZMK_KEYMAP_TRANSFORM_NODE,rows) +#define ZMK_MATRIX_COLS DT_PROP(ZMK_KEYMAP_TRANSFORM_NODE,columns) + +#else /* DT_HAS_CHOSEN(zmk_matrix_transform) */ + #if DT_NODE_HAS_PROP(ZMK_MATRIX_NODE_ID,row_gpios) #define ZMK_MATRIX_ROWS DT_PROP_LEN(ZMK_MATRIX_NODE_ID,row_gpios) #define ZMK_MATRIX_COLS DT_PROP_LEN(ZMK_MATRIX_NODE_ID,col_gpios) @@ -15,3 +25,6 @@ #define ZMK_MATRIX_COLS DT_PROP(ZMK_MATRIX_NODE_ID,columns) #endif +#define ZMK_KEYMAP_LEN (ZMK_MATRIX_COLS * ZMK_MATRIX_ROWS) + +#endif /* !DT_HAS_CHOSEN(zmk_matrix_transform) */
\ No newline at end of file |