summaryrefslogtreecommitdiff
path: root/src/kscan.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/kscan.c')
-rw-r--r--src/kscan.c29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/kscan.c b/src/kscan.c
new file mode 100644
index 0000000..244bedc
--- /dev/null
+++ b/src/kscan.c
@@ -0,0 +1,29 @@
+/*
+ * Copyright (c) 2020 Peter Johanson
+ *
+ * SPDX-License-Identifier: MIT
+ */
+
+#include <zephyr.h>
+#include <device.h>
+#include <devicetree.h>
+#include <drivers/kscan.h>
+
+static void zmk_kscan_callback(struct device *dev, u32_t row, u32_t column, bool pressed) {
+ printk("Row: %d, col: %d, pressed: %s\n", row, column, (pressed ? "true" : "false"));
+ // TODO: Push this to a message box, and then trigger a work item!
+}
+
+int zmk_kscan_init(char* name) {
+ struct device *dev = device_get_binding(name);
+ if (dev == NULL) {
+ printk("NO DEVICE!\n");
+ return -EINVAL;
+ }
+
+ return 0;
+
+ kscan_config(dev, zmk_kscan_callback);
+
+ kscan_enable_callback(dev);
+}