From 5ffd95694fafa4fb424c9f0122d6f07a486cd81f Mon Sep 17 00:00:00 2001 From: Pete Johanson Date: Sat, 27 Jun 2020 00:16:15 -0400 Subject: 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. --- app/include/zmk/matrix.h | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'app/include') 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 -- cgit v1.2.3