mirror of
https://github.com/followmsi/android_kernel_google_msm.git
synced 2024-11-06 23:17:41 +00:00
040354b953
On flo/deb hardware platform, the power key button is able to reset whole system forcely via predefined timer at PMIC side. Add notifying call chains to let registered drivers have a chance to prepare data backup before power is cut off by PMIC firmware. Change-Id: I25fe00020950f0d4208caffda172f46396082a4d Signed-off-by: paris_yeh <paris_yeh@asus.com>
41 lines
1.4 KiB
C
41 lines
1.4 KiB
C
#ifndef _GPIO_KEYS_H
|
|
#define _GPIO_KEYS_H
|
|
|
|
struct device;
|
|
|
|
struct gpio_keys_button {
|
|
/* Configuration parameters */
|
|
unsigned int code; /* input event code (KEY_*, SW_*) */
|
|
int gpio; /* -1 if this key does not support gpio */
|
|
int active_low;
|
|
const char *desc;
|
|
unsigned int type; /* input event type (EV_KEY, EV_SW, EV_ABS) */
|
|
int wakeup; /* configure the button as a wake-up source */
|
|
int debounce_interval; /* debounce ticks interval in msecs */
|
|
bool can_disable;
|
|
int value; /* axis value for EV_ABS */
|
|
unsigned int irq; /* Irq number in case of interrupt keys */
|
|
bool can_reset; /* key is able to reset system */
|
|
int reset_interval; /* reset key interval in msec */
|
|
};
|
|
|
|
struct gpio_keys_platform_data {
|
|
struct gpio_keys_button *buttons;
|
|
int nbuttons;
|
|
unsigned int poll_interval; /* polling interval in msecs -
|
|
for polling driver only */
|
|
unsigned int rep:1; /* enable input subsystem auto repeat */
|
|
int (*enable)(struct device *dev);
|
|
void (*disable)(struct device *dev);
|
|
const char *name; /* input device name */
|
|
};
|
|
|
|
|
|
#define RESETKEY_PRESS 0x0001 /* power key is pressed */
|
|
#define RESETKEY_RELEASE 0x0002 /* power key is released */
|
|
#define RESETKEY_PREPARE_HWREST 0x0003 /* Going to reset whole system by pmic*/
|
|
|
|
extern int register_resetkey_notifier(struct notifier_block *nb);
|
|
extern int unregister_resetkey_notifier(struct notifier_block *nb);
|
|
|
|
#endif
|