add zmk_is_externally_powered
This commit is contained in:
parent
4bdbd29b01
commit
54fae8a18a
3 changed files with 9 additions and 9 deletions
|
@ -8,3 +8,4 @@
|
||||||
|
|
||||||
uint8_t zmk_battery_state_of_charge(void);
|
uint8_t zmk_battery_state_of_charge(void);
|
||||||
bool zmk_battery_is_charging(void);
|
bool zmk_battery_is_charging(void);
|
||||||
|
bool zmk_is_externally_powered(void);
|
||||||
|
|
|
@ -84,14 +84,6 @@ static void zmk_pm_resume_devices(void) {
|
||||||
#endif /* !CONFIG_PM_DEVICE_RUNTIME_EXCLUSIVE */
|
#endif /* !CONFIG_PM_DEVICE_RUNTIME_EXCLUSIVE */
|
||||||
#endif /* CONFIG_PM_DEVICE */
|
#endif /* CONFIG_PM_DEVICE */
|
||||||
|
|
||||||
bool is_usb_power_present(void) {
|
|
||||||
#if IS_ENABLED(CONFIG_USB_DEVICE_STACK)
|
|
||||||
return zmk_usb_is_powered();
|
|
||||||
#else
|
|
||||||
return false;
|
|
||||||
#endif /* IS_ENABLED(CONFIG_USB_DEVICE_STACK) */
|
|
||||||
}
|
|
||||||
|
|
||||||
static enum zmk_activity_state activity_state;
|
static enum zmk_activity_state activity_state;
|
||||||
|
|
||||||
static uint32_t activity_last_uptime;
|
static uint32_t activity_last_uptime;
|
||||||
|
@ -127,7 +119,7 @@ void activity_work_handler(struct k_work *work) {
|
||||||
int32_t current = k_uptime_get();
|
int32_t current = k_uptime_get();
|
||||||
int32_t inactive_time = current - activity_last_uptime;
|
int32_t inactive_time = current - activity_last_uptime;
|
||||||
#if IS_ENABLED(CONFIG_ZMK_SLEEP)
|
#if IS_ENABLED(CONFIG_ZMK_SLEEP)
|
||||||
if (inactive_time > MAX_SLEEP_MS && !(is_usb_power_present() || zmk_battery_is_charging())) {
|
if (inactive_time > MAX_SLEEP_MS && !zmk_is_externally_powered()) {
|
||||||
// Put devices in suspend power mode before sleeping
|
// Put devices in suspend power mode before sleeping
|
||||||
set_state(ZMK_ACTIVITY_SLEEP);
|
set_state(ZMK_ACTIVITY_SLEEP);
|
||||||
|
|
||||||
|
|
|
@ -29,6 +29,13 @@ static bool last_battery_is_charging = false;
|
||||||
|
|
||||||
uint8_t zmk_battery_state_of_charge(void) { return last_state_of_charge; }
|
uint8_t zmk_battery_state_of_charge(void) { return last_state_of_charge; }
|
||||||
bool zmk_battery_is_charging(void) { return last_battery_is_charging; }
|
bool zmk_battery_is_charging(void) { return last_battery_is_charging; }
|
||||||
|
bool zmk_is_externally_powered(void) {
|
||||||
|
bool ret = zmk_battery_is_charging();
|
||||||
|
#if IS_ENABLED(CONFIG_USB_DEVICE_STACK)
|
||||||
|
ret |= zmk_usb_is_powered();
|
||||||
|
#endif
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
#if DT_HAS_CHOSEN(zmk_battery)
|
#if DT_HAS_CHOSEN(zmk_battery)
|
||||||
static const struct device *const battery = DEVICE_DT_GET(DT_CHOSEN(zmk_battery));
|
static const struct device *const battery = DEVICE_DT_GET(DT_CHOSEN(zmk_battery));
|
||||||
|
|
Loading…
Add table
Reference in a new issue