Hi Chen, On Fri, Aug 25, 2017 at 02:32:32PM +0800, Chen Zhong wrote: > +static int mtk_pmic_key_setup(struct mtk_pmic_keys *keys, > + struct pmic_keys_info *info) > +{ > + int ret; > + > + info->keys = keys; > + > + ret = regmap_update_bits(keys->regmap, info->regs->intsel_reg, > + info->regs->intsel_mask, > + info->regs->intsel_mask); > + if (ret < 0) > + return ret; > + > + ret = devm_request_threaded_irq(keys->dev, info->irq, NULL, > + mtk_pmic_keys_irq_handler_thread, > + IRQF_ONESHOT | IRQF_TRIGGER_HIGH, > + "mtk-pmic-keys", info); > + if (ret) { > + dev_err(keys->dev, "Failed to request IRQ: %d: %d\n", > + info->irq, ret); > + return ret; > + } > + > + if (info->wakeup) > + irq_set_irq_wake(info->irq, 1); Normally we do this in suspend() (and undo in resume()), and I believe the drover API is enable_irq_wake() and disable_irq_wake(). Thanks. -- Dmitry -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html