linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/2] power: bq24735-charger: Request status GPIO with initial input setup
@ 2016-08-28 17:34 Paul Kocialkowski
  2016-08-28 17:34 ` [PATCH 2/2] power: bq24735-charger: Assume not charging when charger is missing Paul Kocialkowski
  2016-08-29  0:36 ` [PATCH 1/2] power: bq24735-charger: Request status GPIO with initial input setup Sebastian Reichel
  0 siblings, 2 replies; 5+ messages in thread
From: Paul Kocialkowski @ 2016-08-28 17:34 UTC (permalink / raw)
  To: linux-kernel
  Cc: linux-tegra, Sebastian Reichel, Dmitry Eremin-Solenikov,
	David Woodhouse, linux-pm, Paul Kocialkowski

This requests the status GPIO with initial input setup. it is required
to read the GPIO status at probe time and thus correctly avoid sending
i2c messages when AC is not plugged.

When requesting the GPIO without initial input setup, it always reads 0
which causes probe to fail as it assumes the charger is connected, sends
i2c messages and fails.

Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
---
 drivers/power/bq24735-charger.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/power/bq24735-charger.c b/drivers/power/bq24735-charger.c
index fa454c1..361a047 100644
--- a/drivers/power/bq24735-charger.c
+++ b/drivers/power/bq24735-charger.c
@@ -393,9 +393,9 @@ static int bq24735_charger_probe(struct i2c_client *client,
 	i2c_set_clientdata(client, charger);
 
 	if (gpio_is_valid(charger->pdata->status_gpio)) {
-		ret = devm_gpio_request(&client->dev,
-					charger->pdata->status_gpio,
-					name);
+		ret = devm_gpio_request_one(&client->dev,
+						charger->pdata->status_gpio,
+						GPIOF_IN, name);
 		if (ret) {
 			dev_err(&client->dev,
 				"Failed GPIO request for GPIO %d: %d\n",
-- 
2.9.3

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH 2/2] power: bq24735-charger: Assume not charging when charger is missing
  2016-08-28 17:34 [PATCH 1/2] power: bq24735-charger: Request status GPIO with initial input setup Paul Kocialkowski
@ 2016-08-28 17:34 ` Paul Kocialkowski
  2016-08-29  0:40   ` Sebastian Reichel
  2016-08-29  0:36 ` [PATCH 1/2] power: bq24735-charger: Request status GPIO with initial input setup Sebastian Reichel
  1 sibling, 1 reply; 5+ messages in thread
From: Paul Kocialkowski @ 2016-08-28 17:34 UTC (permalink / raw)
  To: linux-kernel
  Cc: linux-tegra, Sebastian Reichel, Dmitry Eremin-Solenikov,
	David Woodhouse, linux-pm, Paul Kocialkowski

When the charger is missing (disconnected), it is safe to assume that
the charger chip is no charging.

This is especially relevant when a status GPIO is present and the
charger is getting disconnected. bq24735_charger_is_charging will be
triggered due to the interrupt then, it will attempt to read whether it
is charging through i2c, which will fail as the charger is disconnected.

This also fixes that specific issue.

Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
---
 drivers/power/bq24735-charger.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/drivers/power/bq24735-charger.c b/drivers/power/bq24735-charger.c
index 361a047..0b5b247 100644
--- a/drivers/power/bq24735-charger.c
+++ b/drivers/power/bq24735-charger.c
@@ -201,8 +201,12 @@ static bool bq24735_charger_is_present(struct bq24735 *charger)
 
 static int bq24735_charger_is_charging(struct bq24735 *charger)
 {
-	int ret = bq24735_read_word(charger->client, BQ24735_CHG_OPT);
+	int ret;
+
+	if (!bq24735_charger_is_present(charger))
+		return 0;
 
+	ret  = bq24735_read_word(charger->client, BQ24735_CHG_OPT);
 	if (ret < 0)
 		return ret;
 
-- 
2.9.3

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH 1/2] power: bq24735-charger: Request status GPIO with initial input setup
  2016-08-28 17:34 [PATCH 1/2] power: bq24735-charger: Request status GPIO with initial input setup Paul Kocialkowski
  2016-08-28 17:34 ` [PATCH 2/2] power: bq24735-charger: Assume not charging when charger is missing Paul Kocialkowski
@ 2016-08-29  0:36 ` Sebastian Reichel
  2016-08-29 18:13   ` Paul Kocialkowski
  1 sibling, 1 reply; 5+ messages in thread
From: Sebastian Reichel @ 2016-08-29  0:36 UTC (permalink / raw)
  To: Paul Kocialkowski
  Cc: linux-kernel, linux-tegra, Dmitry Eremin-Solenikov,
	David Woodhouse, linux-pm

[-- Attachment #1: Type: text/plain, Size: 517 bytes --]

Hi,

On Sun, Aug 28, 2016 at 07:34:45PM +0200, Paul Kocialkowski wrote:
> This requests the status GPIO with initial input setup. it is required
> to read the GPIO status at probe time and thus correctly avoid sending
> i2c messages when AC is not plugged.
> 
> When requesting the GPIO without initial input setup, it always reads 0
> which causes probe to fail as it assumes the charger is connected, sends
> i2c messages and fails.

Please convert the driver to devm_gpiod_get instead.

-- Sebastian

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH 2/2] power: bq24735-charger: Assume not charging when charger is missing
  2016-08-28 17:34 ` [PATCH 2/2] power: bq24735-charger: Assume not charging when charger is missing Paul Kocialkowski
@ 2016-08-29  0:40   ` Sebastian Reichel
  0 siblings, 0 replies; 5+ messages in thread
From: Sebastian Reichel @ 2016-08-29  0:40 UTC (permalink / raw)
  To: Paul Kocialkowski
  Cc: linux-kernel, linux-tegra, Dmitry Eremin-Solenikov,
	David Woodhouse, linux-pm

[-- Attachment #1: Type: text/plain, Size: 594 bytes --]

Hi,

On Sun, Aug 28, 2016 at 07:34:46PM +0200, Paul Kocialkowski wrote:
> When the charger is missing (disconnected), it is safe to assume that
> the charger chip is no charging.
> 
> This is especially relevant when a status GPIO is present and the
> charger is getting disconnected. bq24735_charger_is_charging will be
> triggered due to the interrupt then, it will attempt to read whether it
> is charging through i2c, which will fail as the charger is disconnected.
> 
> This also fixes that specific issue.

Thanks, I queued this one into my for-next branch.

-- Sebastian

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH 1/2] power: bq24735-charger: Request status GPIO with initial input setup
  2016-08-29  0:36 ` [PATCH 1/2] power: bq24735-charger: Request status GPIO with initial input setup Sebastian Reichel
@ 2016-08-29 18:13   ` Paul Kocialkowski
  0 siblings, 0 replies; 5+ messages in thread
From: Paul Kocialkowski @ 2016-08-29 18:13 UTC (permalink / raw)
  To: Sebastian Reichel
  Cc: linux-kernel, linux-tegra, Dmitry Eremin-Solenikov,
	David Woodhouse, linux-pm

[-- Attachment #1: Type: text/plain, Size: 857 bytes --]

Le lundi 29 août 2016 à 02:36 +0200, Sebastian Reichel a écrit :
> Hi,
> 
> On Sun, Aug 28, 2016 at 07:34:45PM +0200, Paul Kocialkowski wrote:
> > 
> > This requests the status GPIO with initial input setup. it is required
> > to read the GPIO status at probe time and thus correctly avoid sending
> > i2c messages when AC is not plugged.
> > 
> > When requesting the GPIO without initial input setup, it always reads 0
> > which causes probe to fail as it assumes the charger is connected, sends
> > i2c messages and fails.
> 
> Please convert the driver to devm_gpiod_get instead.

Sure thing, see v2.

Thanks!

-- 
Paul Kocialkowski, developer of low-level free software for embedded devices

Website: https://www.paulk.fr/
Coding blog: https://code.paulk.fr/
Git repositories: https://git.paulk.fr/ https://git.code.paulk.fr/

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 801 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2016-08-29 18:13 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-08-28 17:34 [PATCH 1/2] power: bq24735-charger: Request status GPIO with initial input setup Paul Kocialkowski
2016-08-28 17:34 ` [PATCH 2/2] power: bq24735-charger: Assume not charging when charger is missing Paul Kocialkowski
2016-08-29  0:40   ` Sebastian Reichel
2016-08-29  0:36 ` [PATCH 1/2] power: bq24735-charger: Request status GPIO with initial input setup Sebastian Reichel
2016-08-29 18:13   ` Paul Kocialkowski

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).