Message ID | 20200329161552.215075-3-david@ixit.cz (mailing list archive) |
---|---|
State | Not Applicable, archived |
Headers | show |
Series | Summit SMB3xx driver & device-tree | expand |
Hi, On Sun, Mar 29, 2020 at 06:15:45PM +0200, David Heidelberg wrote: > This delay-fix is picked up from downstream driver, > we measured that 25 - 35 ms delay ensure that we get required data. > > Tested on SMB347 on Nexus 7 2012. Otherwise IRQSTAT_E fails to provide > correct information. > > Signed-off-by: Dmitry Osipenko <digetx@gmail.com> > Signed-off-by: David Heidelberg <david@ixit.cz> > --- Thanks, queued. -- Sebastian > drivers/power/supply/smb347-charger.c | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/drivers/power/supply/smb347-charger.c b/drivers/power/supply/smb347-charger.c > index d102921b3ab2..f99026d81f2a 100644 > --- a/drivers/power/supply/smb347-charger.c > +++ b/drivers/power/supply/smb347-charger.c > @@ -8,6 +8,7 @@ > * Mika Westerberg <mika.westerberg@linux.intel.com> > */ > > +#include <linux/delay.h> > #include <linux/err.h> > #include <linux/gpio.h> > #include <linux/kernel.h> > @@ -708,6 +709,9 @@ static irqreturn_t smb347_interrupt(int irq, void *data) > bool handled = false; > int ret; > > + /* SMB347 it needs at least 20ms for setting IRQSTAT_E_*IN_UV_IRQ */ > + usleep_range(25000, 35000); > + > ret = regmap_read(smb->regmap, STAT_C, &stat_c); > if (ret < 0) { > dev_warn(smb->dev, "reading STAT_C failed\n"); > -- > 2.25.0 >
diff --git a/drivers/power/supply/smb347-charger.c b/drivers/power/supply/smb347-charger.c index d102921b3ab2..f99026d81f2a 100644 --- a/drivers/power/supply/smb347-charger.c +++ b/drivers/power/supply/smb347-charger.c @@ -8,6 +8,7 @@ * Mika Westerberg <mika.westerberg@linux.intel.com> */ +#include <linux/delay.h> #include <linux/err.h> #include <linux/gpio.h> #include <linux/kernel.h> @@ -708,6 +709,9 @@ static irqreturn_t smb347_interrupt(int irq, void *data) bool handled = false; int ret; + /* SMB347 it needs at least 20ms for setting IRQSTAT_E_*IN_UV_IRQ */ + usleep_range(25000, 35000); + ret = regmap_read(smb->regmap, STAT_C, &stat_c); if (ret < 0) { dev_warn(smb->dev, "reading STAT_C failed\n");