summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/zmk/kscan-mock.h8
-rw-r--r--include/zmk/matrix.h6
2 files changed, 14 insertions, 0 deletions
diff --git a/include/zmk/kscan-mock.h b/include/zmk/kscan-mock.h
new file mode 100644
index 0000000..b19cafb
--- /dev/null
+++ b/include/zmk/kscan-mock.h
@@ -0,0 +1,8 @@
+#pragma once
+
+#define ZMK_MOCK_IS_PRESS(v) (v & (0x01 << 31))
+#define ZMK_MOCK_PRESS(row, col, msec) (row + (col << 8) + (msec << 16) + (0x01 << 31))
+#define ZMK_MOCK_RELEASE(row, col, msec) (row + (col << 8) + (msec << 16))
+#define ZMK_MOCK_ROW(v) (v & 0xFF)
+#define ZMK_MOCK_COL(v) ((v >> 8) & 0xFF)
+#define ZMK_MOCK_MSEC(v) ((v & ~(0x01 << 31)) >> 16)
diff --git a/include/zmk/matrix.h b/include/zmk/matrix.h
index 83a8e2d..783c98e 100644
--- a/include/zmk/matrix.h
+++ b/include/zmk/matrix.h
@@ -1,6 +1,12 @@
#pragma once
#define ZMK_MATRIX_NODE_ID DT_CHOSEN(zmk_kscan)
+
+#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)
+#else
+#define ZMK_MATRIX_ROWS DT_PROP(ZMK_MATRIX_NODE_ID,rows)
+#define ZMK_MATRIX_COLS DT_PROP(ZMK_MATRIX_NODE_ID,columns)
+#endif