On Mon, Jan 30, 2017 at 4:02 PM, Tony Lindgren <tony@xxxxxxxxxxx> wrote: > Some SoCs like omap3 can configure GPIO irqs to use Linux generic > dedicated wakeirq support. If the dedicated wakeirq is configured, > the SoC will use a always-on interrupt controller to produce wake-up > events. > > If bq24190 is configured for dedicated wakeirq, we need to check the > interrupt status on PM runtime resume. This is because the Linux > generic wakeirq will call pm_runtime_resume() on the device on a > wakeirq. And as the bq24190 interrupt is falling edge sensitive > and only active for 250 us, there will be no device interrupt seen > by the runtime SoC IRQ controller. > > Note that this can cause spurious interrupts on omap3 devices with > bq24190 connected to gpio banks 2 - 5 as there's a glitch on those > pins waking from off mode as listed in "Advisory 1.45". Devices > with this issue should not configure the optional wakeirq interrupt > in the dts file. > > Cc: Liam Breck <kernel@xxxxxxxxxxxxxxxxx> > Acked-by: Mark Greer <mgreer@xxxxxxxxxxxxxxx> > Signed-off-by: Tony Lindgren <tony@xxxxxxxxxxx> > --- > drivers/power/supply/bq24190_charger.c | 62 ++++++++++++++++++++++++++++------ > 1 file changed, 52 insertions(+), 10 deletions(-) > > diff --git a/drivers/power/supply/bq24190_charger.c b/drivers/power/supply/bq24190_charger.c > --- a/drivers/power/supply/bq24190_charger.c > +++ b/drivers/power/supply/bq24190_charger.c > ... > @@ -1472,7 +1510,11 @@ static int bq24190_pm_resume(struct device *dev) > } > #endif > > -static SIMPLE_DEV_PM_OPS(bq24190_pm_ops, bq24190_pm_suspend, bq24190_pm_resume); > +static const struct dev_pm_ops bq24190_pm_ops = { > + SET_RUNTIME_PM_OPS(bq24190_runtime_suspend, bq24190_runtime_resume, > + NULL) > + SET_SYSTEM_SLEEP_PM_OPS(bq24190_pm_suspend, bq24190_pm_resume) Can delete newline before NULL) here, if so inclined :-) Acked-by: Liam Breck <kernel@xxxxxxxxxxxxxxxxx> -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html