From: Tony Lindgren <tony@atomide.com>
To: Sebastian Reichel <sre@kernel.org>
Cc: linux-pm@vger.kernel.org, linux-omap@vger.kernel.org,
Merlijn Wajer <merlijn@wizzup.org>, Pavel Machek <pavel@ucw.cz>
Subject: [PATCH 1/5] power: supply: cpcap-battery: Move coulomb counter units per lsb to ddata
Date: Wed, 9 Oct 2019 14:06:17 -0700 [thread overview]
Message-ID: <20191009210621.10522-2-tony@atomide.com> (raw)
In-Reply-To: <20191009210621.10522-1-tony@atomide.com>
We can simplify cpcap_battery_cc_raw_div() a bit by moving the units per
lsb to ddata.
Cc: Merlijn Wajer <merlijn@wizzup.org>
Cc: Pavel Machek <pavel@ucw.cz>
Signed-off-by: Tony Lindgren <tony@atomide.com>
---
drivers/power/supply/cpcap-battery.c | 28 ++++++++++++++--------------
1 file changed, 14 insertions(+), 14 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
@@ -111,6 +111,7 @@ struct cpcap_battery_ddata {
struct power_supply *psy;
struct cpcap_battery_config config;
struct cpcap_battery_state_data state[CPCAP_BATTERY_STATE_NR];
+ u32 cc_lsb; /* μAms per LSB */
atomic_t active;
int status;
u16 vendor;
@@ -220,32 +221,19 @@ static int cpcap_battery_cc_raw_div(struct cpcap_battery_ddata *ddata,
s64 acc;
u64 tmp;
int avg_current;
- u32 cc_lsb;
if (!divider)
return 0;
- switch (ddata->vendor) {
- case CPCAP_VENDOR_ST:
- cc_lsb = 95374; /* μAms per LSB */
- break;
- case CPCAP_VENDOR_TI:
- cc_lsb = 91501; /* μAms per LSB */
- break;
- default:
- return -EINVAL;
- }
-
acc = accumulator;
acc = acc - ((s64)sample * offset);
- cc_lsb = (cc_lsb * ddata->config.cd_factor) / 1000;
if (acc >= 0)
tmp = acc;
else
tmp = acc * -1;
- tmp = tmp * cc_lsb;
+ tmp = tmp * ddata->cc_lsb;
do_div(tmp, divider);
avg_current = tmp;
@@ -814,6 +802,18 @@ static int cpcap_battery_probe(struct platform_device *pdev)
if (error)
return error;
+ switch (ddata->vendor) {
+ case CPCAP_VENDOR_ST:
+ ddata->cc_lsb = 95374; /* μAms per LSB */
+ break;
+ case CPCAP_VENDOR_TI:
+ ddata->cc_lsb = 91501; /* μAms per LSB */
+ break;
+ default:
+ return -EINVAL;
+ }
+ ddata->cc_lsb = (ddata->cc_lsb * ddata->config.cd_factor) / 1000;
+
platform_set_drvdata(pdev, ddata);
error = regmap_update_bits(ddata->reg, CPCAP_REG_CCM,
--
2.23.0
next prev parent reply other threads:[~2019-10-09 21:06 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-10-09 21:06 [PATCH 0/5] cpcap battery simplification and calibrate support Tony Lindgren
2019-10-09 21:06 ` Tony Lindgren [this message]
2019-10-13 10:55 ` [PATCH 1/5] power: supply: cpcap-battery: Move coulomb counter units per lsb to ddata Pavel Machek
2019-10-16 22:01 ` Tony Lindgren
2019-10-13 11:35 ` Pavel Machek
2019-10-09 21:06 ` [PATCH 2/5] power: supply: cpcap-battery: Simplify coulomb counter calculation with div_s64 Tony Lindgren
2019-10-13 11:01 ` Pavel Machek
2019-10-13 11:36 ` Pavel Machek
2019-10-09 21:06 ` [PATCH 3/5] power: supply: cpcap-battery: Simplify short term power average calculation Tony Lindgren
2019-10-13 11:42 ` Pavel Machek
2019-10-13 11:42 ` Pavel Machek
2019-10-09 21:06 ` [PATCH 4/5] power: supply: cpcap-battery: Read and save integrator register CCI Tony Lindgren
2019-10-09 21:06 ` [PATCH 5/5] power: supply: cpcap-battery: Add basic coulomb counter calibrate support Tony Lindgren
2019-10-13 11:26 ` Pavel Machek
2019-10-16 22:45 ` [PATCH 0/5] cpcap battery simplification and " Tony Lindgren
2019-10-20 20:36 ` Sebastian Reichel
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=20191009210621.10522-2-tony@atomide.com \
--to=tony@atomide.com \
--cc=linux-omap@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=merlijn@wizzup.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.