Added kconfig flag
This commit is contained in:
parent
f92dce43e9
commit
dd6d610df0
3 changed files with 28 additions and 3 deletions
|
@ -163,8 +163,7 @@ config ZMK_BLE_EXPERIMENTAL_CONN
|
|||
bool "Experimental BLE connection changes"
|
||||
help
|
||||
Enables a combination of settings that are planned to be default in future versions of ZMK
|
||||
to improve connection stability. This includes changes to timing on BLE pairing initiation,
|
||||
restores use of the updated/new LLCP implementation, and disables 2M PHY support.
|
||||
to improve connection stability.
|
||||
|
||||
config ZMK_BLE_EXPERIMENTAL_SEC
|
||||
bool "Experimental BLE security changes"
|
||||
|
@ -430,6 +429,10 @@ config ZMK_EXT_POWER
|
|||
bool "Enable support to control external power output"
|
||||
default y
|
||||
|
||||
config ZMK_EXT_POWER_IDLE_OFF
|
||||
bool "Turn off external power while idle"
|
||||
depends on ZMK_EXT_POWER
|
||||
|
||||
config ZMK_PM
|
||||
bool
|
||||
|
||||
|
|
|
@ -19,6 +19,7 @@ LOG_MODULE_DECLARE(zmk, CONFIG_ZMK_LOG_LEVEL);
|
|||
#include <zmk/events/sensor_event.h>
|
||||
|
||||
#include <zmk/pm.h>
|
||||
#include <drivers/ext_power.h>
|
||||
|
||||
#include <zmk/activity.h>
|
||||
|
||||
|
@ -60,8 +61,19 @@ int set_state(enum zmk_activity_state state) {
|
|||
enum zmk_activity_state zmk_activity_get_state(void) { return activity_state; }
|
||||
|
||||
int activity_event_listener(const zmk_event_t *eh) {
|
||||
#if IS_ENABLED(CONFIG_ZMK_EXT_POWER_IDLE_OFF)
|
||||
activity_last_uptime = k_uptime_get();
|
||||
|
||||
if (activity_state == ZMK_ACTIVITY_IDLE) {
|
||||
const struct device *ext_power = device_get_binding("EXT_POWER");
|
||||
if (ext_power == NULL) {
|
||||
LOG_ERR("Unable to retrieve ext_power device on idle wake.");
|
||||
} else {
|
||||
ext_power_enable(ext_power);
|
||||
}
|
||||
}
|
||||
#else
|
||||
activity_last_uptime = k_uptime_get();
|
||||
#endif /* IS_ENABLED(CONFIG_ZMK_EXT_POWER_IDLE_OFF) */
|
||||
return set_state(ZMK_ACTIVITY_ACTIVE);
|
||||
}
|
||||
|
||||
|
@ -83,6 +95,15 @@ void activity_work_handler(struct k_work *work) {
|
|||
} else
|
||||
#endif /* IS_ENABLED(CONFIG_ZMK_SLEEP) */
|
||||
if (inactive_time > MAX_IDLE_MS) {
|
||||
#if IS_ENABLED(CONFIG_ZMK_EXT_POWER_IDLE_OFF)
|
||||
const struct device *ext_power = device_get_binding("EXT_POWER");
|
||||
if (ext_power == NULL) {
|
||||
LOG_ERR("Unable to retrieve ext_power device on entering idle.");
|
||||
return;
|
||||
}
|
||||
|
||||
ext_power_disable(ext_power);
|
||||
#endif /* IS_ENABLED(CONFIG_ZMK_EXT_POWER_IDLE_OFF) */
|
||||
set_state(ZMK_ACTIVITY_IDLE);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -21,6 +21,7 @@ Definition file: [zmk/app/Kconfig](https://github.com/zmkfirmware/zmk/blob/main/
|
|||
| Config | Type | Description | Default |
|
||||
| ------------------------------- | ---- | ----------------------------------------------------- | ------- |
|
||||
| `CONFIG_ZMK_IDLE_TIMEOUT` | int | Milliseconds of inactivity before entering idle state | 30000 |
|
||||
| `CONFIG_ZMK_EXT_POWER_IDLE_OFF` | bool | Turn off external power while idle | n |
|
||||
| `CONFIG_ZMK_SLEEP` | bool | Enable deep sleep support | n |
|
||||
| `CONFIG_ZMK_IDLE_SLEEP_TIMEOUT` | int | Milliseconds of inactivity before entering deep sleep | 900000 |
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue