From: David Heidelberg Date: Sun, 29 Mar 2020 16:15:45 +0000 (+0200) Subject: power: supply: smb347-charger: Add delay before getting IRQSTAT X-Git-Tag: v5.8-rc1~70^2~38 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=fa7cc725a343e305bef78e8d65be48f37d3f7720;p=users%2Fjedix%2Flinux-maple.git power: supply: smb347-charger: Add delay before getting IRQSTAT 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 Signed-off-by: David Heidelberg Signed-off-by: Sebastian Reichel --- diff --git a/drivers/power/supply/smb347-charger.c b/drivers/power/supply/smb347-charger.c index d102921b3ab2b..f99026d81f2a5 100644 --- a/drivers/power/supply/smb347-charger.c +++ b/drivers/power/supply/smb347-charger.c @@ -8,6 +8,7 @@ * Mika Westerberg */ +#include #include #include #include @@ -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");