1*f0aa4fa4SThomas Gleixner /* SPDX-License-Identifier: GPL-2.0-only */ 27726942fSRalf Baechle /* -*- linux-c -*- 37726942fSRalf Baechle * 47726942fSRalf Baechle * (C) 2003 [email protected] 57726942fSRalf Baechle * 67726942fSRalf Baechle * based on arch/arm/kernel/apm.c 77726942fSRalf Baechle * factor out the information needed by architectures to provide 87726942fSRalf Baechle * apm status 97726942fSRalf Baechle */ 107726942fSRalf Baechle #ifndef __LINUX_APM_EMULATION_H 117726942fSRalf Baechle #define __LINUX_APM_EMULATION_H 127726942fSRalf Baechle 137726942fSRalf Baechle #include <linux/apm_bios.h> 147726942fSRalf Baechle 157726942fSRalf Baechle /* 167726942fSRalf Baechle * This structure gets filled in by the machine specific 'get_power_status' 177726942fSRalf Baechle * implementation. Any fields which are not set default to a safe value. 187726942fSRalf Baechle */ 197726942fSRalf Baechle struct apm_power_info { 207726942fSRalf Baechle unsigned char ac_line_status; 217726942fSRalf Baechle #define APM_AC_OFFLINE 0 227726942fSRalf Baechle #define APM_AC_ONLINE 1 237726942fSRalf Baechle #define APM_AC_BACKUP 2 247726942fSRalf Baechle #define APM_AC_UNKNOWN 0xff 257726942fSRalf Baechle 267726942fSRalf Baechle unsigned char battery_status; 277726942fSRalf Baechle #define APM_BATTERY_STATUS_HIGH 0 287726942fSRalf Baechle #define APM_BATTERY_STATUS_LOW 1 297726942fSRalf Baechle #define APM_BATTERY_STATUS_CRITICAL 2 307726942fSRalf Baechle #define APM_BATTERY_STATUS_CHARGING 3 317726942fSRalf Baechle #define APM_BATTERY_STATUS_NOT_PRESENT 4 327726942fSRalf Baechle #define APM_BATTERY_STATUS_UNKNOWN 0xff 337726942fSRalf Baechle 347726942fSRalf Baechle unsigned char battery_flag; 357726942fSRalf Baechle #define APM_BATTERY_FLAG_HIGH (1 << 0) 367726942fSRalf Baechle #define APM_BATTERY_FLAG_LOW (1 << 1) 377726942fSRalf Baechle #define APM_BATTERY_FLAG_CRITICAL (1 << 2) 387726942fSRalf Baechle #define APM_BATTERY_FLAG_CHARGING (1 << 3) 397726942fSRalf Baechle #define APM_BATTERY_FLAG_NOT_PRESENT (1 << 7) 407726942fSRalf Baechle #define APM_BATTERY_FLAG_UNKNOWN 0xff 417726942fSRalf Baechle 427726942fSRalf Baechle int battery_life; 437726942fSRalf Baechle int time; 447726942fSRalf Baechle int units; 457726942fSRalf Baechle #define APM_UNITS_MINS 0 467726942fSRalf Baechle #define APM_UNITS_SECS 1 477726942fSRalf Baechle #define APM_UNITS_UNKNOWN -1 487726942fSRalf Baechle 497726942fSRalf Baechle }; 507726942fSRalf Baechle 517726942fSRalf Baechle /* 527726942fSRalf Baechle * This allows machines to provide their own "apm get power status" function. 537726942fSRalf Baechle */ 547726942fSRalf Baechle extern void (*apm_get_power_status)(struct apm_power_info *); 557726942fSRalf Baechle 567726942fSRalf Baechle /* 577726942fSRalf Baechle * Queue an event (APM_SYS_SUSPEND or APM_CRITICAL_SUSPEND) 587726942fSRalf Baechle */ 597726942fSRalf Baechle void apm_queue_event(apm_event_t event); 607726942fSRalf Baechle 617726942fSRalf Baechle #endif /* __LINUX_APM_EMULATION_H */ 62