refactor: Add kscan sideband behavior driver

* Instead of gpio key behavior trigger, add new kscan driver that
  decorates/wraps a given kscan driver and will invoke basic system
  behavior assigned to a given row + column, without the need for keymap
  mapping in the matrix transform, bypassing keymaps entirely.
This commit is contained in:
Peter Johanson
2023-12-30 16:38:52 -08:00
committed by Pete Johanson
parent e78b25a445
commit a0ad1d4c94
8 changed files with 192 additions and 209 deletions

View File

@@ -0,0 +1,29 @@
# Copyright (c) 2023, The ZMK Contributors
# SPDX-License-Identifier: MIT
description: |
kscan sideband behavior runner. Only basic system behavior should be used,
since no keymap processing occurs when using them.
compatible: "zmk,kscan-sideband-behaviors"
include: [kscan.yaml]
properties:
kscan:
type: phandle
required: true
child-binding:
description: "A sideband behavior tied to a row/column pair"
properties:
row:
type: int
required: true
column:
type: int
required: true
bindings:
type: phandle-array
required: true

View File

@@ -1,31 +0,0 @@
# Copyright (c) 2023 The ZMK Contributors
# SPDX-License-Identifier: MIT
description: |
Driver for a dedicated key for invoking a connected behavior.
compatible: "zmk,gpio-key-behavior-trigger"
include: base.yaml
properties:
key:
type: phandle
required: true
description: The GPIO key that triggers wake via interrupt
bindings:
type: phandle
required: true
description: The behavior to invoke when the GPIO key is pressed
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.