static irqreturn_t pwrkey_release_irq(int irq, void *_pwrkey)
{
	struct pmic8xxx_pwrkey *pwrkey = _pwrkey;

#ifdef CONFIG_PMIC8XXX_FORCECRASH
	pmic8xxx_forcecrash_timer_setup(0);
#endif
	input_report_key(pwrkey->pwr, KEY_POWER, 0);
	input_sync(pwrkey->pwr);

	return IRQ_HANDLED;
}
static irqreturn_t pwrkey_release_irq(int irq, void *_pwrkey)
{
	struct pmic8xxx_pwrkey *pwrkey = _pwrkey;
	unsigned long flags;

	spin_lock_irqsave(&pwrkey->lock, flags);
	if (pwrkey->press == false) {
		input_report_key(pwrkey->pwr, KEY_POWER, 1);
		input_sync(pwrkey->pwr);
		pwrkey->press = true;
	} else {
		pwrkey->press = false;
	}
	spin_unlock_irqrestore(&pwrkey->lock, flags);

#ifdef CONFIG_PMIC8XXX_FORCECRASH
	pmic8xxx_forcecrash_timer_setup(0);
#endif
	input_report_key(pwrkey->pwr, KEY_POWER, 0);
	input_sync(pwrkey->pwr);

	return IRQ_HANDLED;
}