forked from kofal.net/zmk
feat: Add soft on/off support.
Initial work on a soft on/off support for ZMK. Triggering soft off puts the device into deep sleep with only a specific GPIO pin configured to wake the device, avoiding waking from other key presses in the matrix like the normal deep sleep. Co-authored-by: Cem Aksoylar <caksoylar@users.noreply.github.com>
This commit is contained in:
committed by
Pete Johanson
parent
58ccc5970d
commit
adb3a13dc5
@@ -20,3 +20,4 @@
|
||||
#include <behaviors/backlight.dtsi>
|
||||
#include <behaviors/macros.dtsi>
|
||||
#include <behaviors/mouse_key_press.dtsi>
|
||||
#include <behaviors/soft_off.dtsi>
|
||||
|
||||
15
app/dts/behaviors/soft_off.dtsi
Normal file
15
app/dts/behaviors/soft_off.dtsi
Normal file
@@ -0,0 +1,15 @@
|
||||
/*
|
||||
* Copyright (c) 2023 The ZMK Contributors
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*/
|
||||
|
||||
/ {
|
||||
behaviors {
|
||||
/omit-if-no-ref/ soft_off: behavior_soft_off {
|
||||
compatible = "zmk,behavior-soft-off";
|
||||
label = "SOFTOFF";
|
||||
#binding-cells = <0>;
|
||||
};
|
||||
};
|
||||
};
|
||||
31
app/dts/bindings/zmk,behavior-key-scanned.yaml
Normal file
31
app/dts/bindings/zmk,behavior-key-scanned.yaml
Normal file
@@ -0,0 +1,31 @@
|
||||
# Copyright (c) 2023 The ZMK Contributors
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
description: |
|
||||
Driver for a dedicated key triggered by matrix scanning for invoking a connected behavior.
|
||||
|
||||
compatible: "zmk,behavior-key-scanned"
|
||||
|
||||
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 GPIO key that triggers wake via interrupt
|
||||
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.
|
||||
31
app/dts/bindings/zmk,behavior-key.yaml
Normal file
31
app/dts/bindings/zmk,behavior-key.yaml
Normal file
@@ -0,0 +1,31 @@
|
||||
# Copyright (c) 2023 The ZMK Contributors
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
description: |
|
||||
Driver for a dedicated key for invoking a connected behavior.
|
||||
|
||||
compatible: "zmk,behavior-key"
|
||||
|
||||
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 GPIO key that triggers wake via interrupt
|
||||
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.
|
||||
14
app/dts/bindings/zmk,soft-off-wakeup-sources.yaml
Normal file
14
app/dts/bindings/zmk,soft-off-wakeup-sources.yaml
Normal file
@@ -0,0 +1,14 @@
|
||||
# Copyright (c) 2023 The ZMK Contributors
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
description: |
|
||||
Description of all possible wakeup-sources from a forces
|
||||
soft-off state.
|
||||
|
||||
compatible: "zmk,soft-off-wakeup-sources"
|
||||
|
||||
properties:
|
||||
wakeup-sources:
|
||||
type: phandles
|
||||
required: true
|
||||
description: List of wakeup-sources that should be enabled to wake the system from forces soft-off state.
|
||||
18
app/dts/bindings/zmk,wakeup-trigger-key.yaml
Normal file
18
app/dts/bindings/zmk,wakeup-trigger-key.yaml
Normal file
@@ -0,0 +1,18 @@
|
||||
# Copyright (c) 2023 The ZMK Contributors
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
description: |
|
||||
Driver for a dedicated key for waking the device from sleep
|
||||
|
||||
compatible: "zmk,wakeup-trigger-key"
|
||||
|
||||
include: base.yaml
|
||||
|
||||
properties:
|
||||
trigger:
|
||||
type: phandle
|
||||
required: true
|
||||
description: The GPIO key that triggers wake via interrupt
|
||||
extra-gpios:
|
||||
type: phandle-array
|
||||
description: Optional set of pins that should be set active before sleeping.
|
||||
Reference in New Issue
Block a user