Пример #1
0
static irqreturn_t pwrkey_release_irq(int irq, void *_pwrkey)
{
	struct pmic8xxx_pwrkey *pwrkey = _pwrkey;

	input_report_key(pwrkey->pwr, KEY_POWER, 0);
	input_sync(pwrkey->pwr);
#ifdef CONFIG_PANTECH_ERR_CRASH_LOGGING
	pantech_force_dump_key(KEY_POWER, 0);
#endif
	return IRQ_HANDLED;
}
Пример #2
0
static void gpio_keys_gpio_report_event(struct gpio_button_data *bdata)
{
	const struct gpio_keys_button *button = bdata->button;
	struct input_dev *input = bdata->input;
	unsigned int type = button->type ?: EV_KEY;
	int state = (gpio_get_value_cansleep(button->gpio) ? 1 : 0) ^ button->active_low;

	if (type == EV_ABS) {
		if (state)
			input_event(input, type, button->code, button->value);
	} else {
		input_event(input, type, button->code, !!state);
#ifdef CONFIG_PANTECH_ERR_CRASH_LOGGING
		pantech_force_dump_key(button->code,state);
#endif
	}
	input_sync(input);
}
Пример #3
0
static irqreturn_t pwrkey_press_irq(int irq, void *_pwrkey)
{
	struct pmic8xxx_pwrkey *pwrkey = _pwrkey;

	if (pwrkey->press == true) {
		pwrkey->press = false;
		return IRQ_HANDLED;
	} else {
		pwrkey->press = true;
	}

	input_report_key(pwrkey->pwr, KEY_POWER, 1);
	input_sync(pwrkey->pwr);

#ifdef CONFIG_PANTECH_ERR_CRASH_LOGGING
	pantech_force_dump_key(KEY_POWER, 1);
#endif

	return IRQ_HANDLED;
}