diff mbox series

[2/9] power: supply: smb347-charger: Add delay before getting IRQSTAT

Message ID 20200329161552.215075-3-david@ixit.cz (mailing list archive)
State Not Applicable, archived
Headers show
Series Summit SMB3xx driver & device-tree | expand

Commit Message

David Heidelberg March 29, 2020, 4:15 p.m. UTC
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>
---
 drivers/power/supply/smb347-charger.c | 4 ++++
 1 file changed, 4 insertions(+)

Comments

Sebastian Reichel May 10, 2020, 4:28 p.m. UTC | #1
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 mbox series

Patch

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");