All of lore.kernel.org
 help / color / mirror / Atom feed
From: Tony Lindgren <tony@atomide.com>
To: Sebastian Reichel <sre@kernel.org>
Cc: linux-pm@vger.kernel.org, linux-omap@vger.kernel.org,
	Pavel Machek <pavel@ucw.cz>
Subject: [PATCH 4/7] power: supply: cpcap-battery: Fix coulomb counter calibration register use
Date: Sun,  7 Apr 2019 11:12:51 -0700	[thread overview]
Message-ID: <20190407181254.64537-5-tony@atomide.com> (raw)
In-Reply-To: <20190407181254.64537-1-tony@atomide.com>

The coulomb counter calibration is not CCO, it's CCM. And the CCM is
nine bits wide signed register, so let's use sign_extend32() for it.

Cc: Pavel Machek <pavel@ucw.cz>
Signed-off-by: Tony Lindgren <tony@atomide.com>
---
 drivers/power/supply/cpcap-battery.c | 16 +++++++---------
 1 file changed, 7 insertions(+), 9 deletions(-)

diff --git a/drivers/power/supply/cpcap-battery.c b/drivers/power/supply/cpcap-battery.c
--- a/drivers/power/supply/cpcap-battery.c
+++ b/drivers/power/supply/cpcap-battery.c
@@ -84,7 +84,7 @@ struct cpcap_battery_config {
 struct cpcap_coulomb_counter_data {
 	s32 sample;		/* 24 or 32 bits */
 	s32 accumulator;
-	s16 offset;		/* 10-bits */
+	s16 offset;		/* 9 bits */
 };
 
 enum cpcap_battery_state {
@@ -224,8 +224,6 @@ static int cpcap_battery_cc_raw_div(struct cpcap_battery_ddata *ddata,
 	if (!divider)
 		return 0;
 
-	offset &= 0x7ff;		/* 10-bits, signed */
-
 	switch (ddata->vendor) {
 	case CPCAP_VENDOR_ST:
 		cc_lsb = 95374;		/* μAms per LSB */
@@ -318,12 +316,12 @@ cpcap_battery_read_accumulated(struct cpcap_battery_ddata *ddata,
 	ccd->accumulator = ((s16)buf[3]) << 16;
 	ccd->accumulator |= buf[2];
 
-	/* Offset value CPCAP_REG_CCO */
-	ccd->offset = buf[5];
-
-	/* Adjust offset based on mode value CPCAP_REG_CCM? */
-	if (buf[4] >= 0x200)
-		ccd->offset |= 0xfc00;
+	/*
+	 * Coulomb counter calibration offset is CPCAP_REG_CCM,
+	 * REG_CCO seems unused
+	 */
+	ccd->offset = buf[4];
+	ccd->offset = sign_extend32(ccd->offset, 9);
 
 	return cpcap_battery_cc_to_uah(ddata,
 				       ccd->sample,
-- 
2.21.0

  parent reply	other threads:[~2019-04-07 18:13 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-04-07 18:12 [PATCH 0/7] Some fixes and improvments for cpcap battery and charger Tony Lindgren
2019-04-07 18:12 ` [PATCH 1/7] power: supply: cpcap-battery: Fix division by zero Tony Lindgren
2019-04-08 12:01   ` Pavel Machek
2019-04-07 18:12 ` [PATCH 2/7] power: supply: cpcap-battery: Fix low battery check Tony Lindgren
2019-05-05 19:14   ` Pavel Machek
2019-04-07 18:12 ` [PATCH 3/7] power: supply: cpcap-battery: Fix signed counter sample register Tony Lindgren
2019-04-08 12:03   ` Pavel Machek
2019-04-07 18:12 ` Tony Lindgren [this message]
2019-04-08 12:03   ` [PATCH 4/7] power: supply: cpcap-battery: Fix coulomb counter calibration register use Pavel Machek
2019-04-07 18:12 ` [PATCH 5/7] power: supply: cpcap-battery: Use accumulator for current and power average Tony Lindgren
2019-04-07 18:12 ` [PATCH 6/7] power: supply: cpcap-battery: Fix pointless EPROBE_DEFER warnings Tony Lindgren
2019-04-08 12:04   ` Pavel Machek
2019-04-07 18:12 ` [PATCH 7/7] power: supply: cpcap-charger: " Tony Lindgren
2019-04-15 21:31 ` [PATCH 0/7] Some fixes and improvments for cpcap battery and charger Sebastian Reichel
2019-05-18 18:33 ` Tony Lindgren

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190407181254.64537-5-tony@atomide.com \
    --to=tony@atomide.com \
    --cc=linux-omap@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=pavel@ucw.cz \
    --cc=sre@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.