diff options
Diffstat (limited to 'src/kscan.c')
-rw-r--r-- | src/kscan.c | 29 |
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); +} |