summaryrefslogtreecommitdiff
path: root/app/include
diff options
context:
space:
mode:
authorPete Johanson <peter@peterjohanson.com>2020-06-27 00:16:15 -0400
committerPete Johanson <peter@peterjohanson.com>2020-06-27 00:16:15 -0400
commit5ffd95694fafa4fb424c9f0122d6f07a486cd81f (patch)
tree5d408f352d8fe8267c9d917e254d331b23b4e236 /app/include
parentf84a41de3e72c022edebc1a3e90df0aa140451e6 (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')
-rw-r--r--app/include/zmk/matrix.h13
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