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 <digetx@gmail.com> Signed-off-by: David Heidelberg <david@ixit.cz> Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
This commit is contained in:
parent
c32ea07a30
commit
fa7cc725a3
|
@ -8,6 +8,7 @@
|
||||||
* Mika Westerberg <mika.westerberg@linux.intel.com>
|
* Mika Westerberg <mika.westerberg@linux.intel.com>
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include <linux/delay.h>
|
||||||
#include <linux/err.h>
|
#include <linux/err.h>
|
||||||
#include <linux/gpio.h>
|
#include <linux/gpio.h>
|
||||||
#include <linux/kernel.h>
|
#include <linux/kernel.h>
|
||||||
|
@ -708,6 +709,9 @@ static irqreturn_t smb347_interrupt(int irq, void *data)
|
||||||
bool handled = false;
|
bool handled = false;
|
||||||
int ret;
|
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);
|
ret = regmap_read(smb->regmap, STAT_C, &stat_c);
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
dev_warn(smb->dev, "reading STAT_C failed\n");
|
dev_warn(smb->dev, "reading STAT_C failed\n");
|
||||||
|
|
Loading…
Reference in New Issue