feat(kscan): Add charlieplex keyscan driver

* Supports matrixes with and without additional interrupt pin use.

Co-authored-by: Peter Johanson <peter@peterjohanson.com>
This commit is contained in:
Hooky
2023-12-10 06:10:05 +08:00
committed by GitHub
parent b35a5e83c0
commit 2c50cff891
5 changed files with 563 additions and 7 deletions

View File

@@ -0,0 +1,31 @@
# Copyright (c) 2023 The ZMK Contributors
# SPDX-License-Identifier: MIT
description: GPIO keyboard charlieplex matrix controller
compatible: "zmk,kscan-gpio-charlieplex"
include: kscan.yaml
properties:
gpios:
type: phandle-array
required: true
interrupt-gpios:
type: phandle-array
debounce-press-ms:
type: int
default: 5
description: Debounce time for key press in milliseconds. Use 0 for eager debouncing.
debounce-release-ms:
type: int
default: 5
description: Debounce time for key release in milliseconds.
debounce-scan-period-ms:
type: int
default: 1
description: Time between reads in milliseconds when any key is pressed.
poll-period-ms:
type: int
default: 1
description: Time between reads in milliseconds