mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Felipe Balbi <me@felipebalbi.com>
To: dwmw2@infradead.org
Cc: linux-kernel@vger.kernel.org, Felipe Balbi <me@felipebalbi.com>
Subject: [rfc/patch 08/15] power: bq27200: define all register space
Date: Sun, 12 Jul 2009 21:09:30 +0300	[thread overview]
Message-ID: <1247422177-7329-8-git-send-email-me@felipebalbi.com> (raw)
In-Reply-To: <1247422177-7329-7-git-send-email-me@felipebalbi.com>

... and also add accessors for 8-bit wide registers

Signed-off-by: Felipe Balbi <me@felipebalbi.com>
---
 drivers/power/bq27200_battery.c |   52 ++++++++++++++++++++++++++++++--------
 1 files changed, 41 insertions(+), 11 deletions(-)

diff --git a/drivers/power/bq27200_battery.c b/drivers/power/bq27200_battery.c
index 385a505..f36633c 100644
--- a/drivers/power/bq27200_battery.c
+++ b/drivers/power/bq27200_battery.c
@@ -26,11 +26,31 @@
 
 #define DRIVER_VERSION			"1.0.0"
 
-#define BQ27200_REG_TEMP		0x06
-#define BQ27200_REG_VOLT		0x08
-#define BQ27200_REG_RSOC		0x0B /* Relative State-of-Charge */
-#define BQ27200_REG_AI			0x14
-#define BQ27200_REG_FLAGS		0x0A
+#define BQ27200_REG_CTRL		0x00	/* device control */
+#define BQ27200_REG_MODE		0x01	/* device mode */
+#define BQ27200_REG_AR			0x02	/* at-rate */
+#define BQ27200_REG_ARTTE		0x04	/* at-rate time-to-empty */
+#define BQ27200_REG_TEMP		0x06	/* temperature */
+#define BQ27200_REG_VOLT		0x08	/* voltage */
+#define BQ27200_REG_FLAGS		0x0a	/* status flags */
+#define BQ27200_REG_RSOC		0x0b	/* relative state-of-charge */
+#define BQ27200_REG_NAC			0x0c	/* nominal available capacity */
+#define BQ27200_REG_CACD		0x0e	/* discharge compensated NAC */
+#define BQ27200_REG_CACT		0x10	/* temperature compensated CACD */
+#define BQ27200_REG_LMD			0x12	/* last measured discharge */
+#define BQ27200_REG_AI			0x14	/* average current */
+#define BQ27200_REG_TTE			0x16	/* time-to-empty */
+#define BQ27200_REG_TTF			0x18	/* time-to-full */
+#define BQ27200_REG_SI			0x1a	/* standby current */
+#define BQ27200_REG_STTE		0x1c	/* standby time-to-empty */
+#define BQ27200_REG_MLI			0x1e	/* max load current */
+#define BQ27200_REG_MLTTE		0x20	/* max load time-to-empty */
+#define BQ27200_REG_SAE			0x22	/* available energy */
+#define BQ27200_REG_AP			0x24	/* average power */
+#define BQ27200_REG_TTECP		0x26	/* time-to-empty at constant power */
+#define BQ27200_REG_CYCL		0x28	/* cycle-count since learning cycle */
+#define BQ27200_REG_CYCT		0x2a	/* cycle-count total */
+#define BQ27200_REG_CSOC		0x2c	/* compensated state-of-charge */
 
 struct bq27200 {
 	struct power_supply	bat;
@@ -56,12 +76,22 @@ static enum power_supply_property bq27200_props[] = {
  * Common code for BQ27200 devices
  */
 
-static inline int bq27200_read(struct bq27200 *bq, u8 reg)
+static inline int bq27200_readb(struct bq27200 *bq, u8 reg)
+{
+	return i2c_smbus_read_byte_data(bq->client, reg);
+}
+
+static inline int bq27200_writeb(struct bq27200 *bq, u8 reg, u8 data)
+{
+	return i2c_smbus_write_byte_data(bq->client, reg, data);
+}
+
+static inline int bq27200_readw(struct bq27200 *bq, u8 reg)
 {
 	return i2c_smbus_read_word_data(bq->client, reg);
 }
 
-static inline int bq27200_write(struct bq27200 *bq, u8 reg, u8 data)
+static inline int bq27200_writew(struct bq27200 *bq, u8 reg, u16 data)
 {
 	return i2c_smbus_write_word_data(bq->client, reg, data);
 }
@@ -74,7 +104,7 @@ static int bq27200_temperature(struct bq27200 *bq)
 {
 	int ret;
 
-	ret = bq27200_read(bq, BQ27200_REG_TEMP);
+	ret = bq27200_readw(bq, BQ27200_REG_TEMP);
 	if (ret < 0) {
 		dev_err(&bq->client->dev, "error reading temperature\n");
 		return ret;
@@ -91,7 +121,7 @@ static int bq27200_voltage(struct bq27200 *bq)
 {
 	int ret;
 
-	ret = bq27200_read(bq, BQ27200_REG_VOLT);
+	ret = bq27200_readw(bq, BQ27200_REG_VOLT);
 	if (ret < 0)
 		dev_err(&bq->client->dev, "error reading voltage\n");
 
@@ -107,7 +137,7 @@ static int bq27200_current(struct bq27200 *bq)
 {
 	int ret;
 
-	ret = bq27200_read(bq, BQ27200_REG_AI);
+	ret = bq27200_readw(bq, BQ27200_REG_AI);
 	if (ret < 0) {
 		dev_err(&bq->client->dev, "error reading current\n");
 		return 0;
@@ -124,7 +154,7 @@ static int bq27200_rsoc(struct bq27200 *bq)
 {
 	int ret;
 
-	ret = bq27200_read(bq, BQ27200_REG_RSOC);
+	ret = bq27200_readw(bq, BQ27200_REG_RSOC);
 	if (ret < 0) {
 		dev_err(&bq->client->dev, "error reading relative State-of-Charge\n");
 		return ret;
-- 
1.6.1.3


  reply	other threads:[~2009-07-12 18:29 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-07-12 18:09 [rfc/patch 01/15] power: bq27x00: rename to bq27200.c Felipe Balbi
2009-07-12 18:09 ` [rfc/patch 02/15] power: bq27200: this is an i2c device Felipe Balbi
2009-07-12 18:09   ` [rfc/patch 03/15] power: bq27200: misc cleanup Felipe Balbi
2009-07-12 18:09     ` [rfc/patch 04/15] power: bq27200: simplify read by using smbus Felipe Balbi
2009-07-12 18:09       ` [rfc/patch 05/15] power: bq27200: remove unnecessary function Felipe Balbi
2009-07-12 18:09         ` [rfc/patch 06/15] power: bq27200: rename structure to something smaller Felipe Balbi
2009-07-12 18:09           ` [rfc/patch 07/15] power: bq27200: add missing suplicants Felipe Balbi
2009-07-12 18:09             ` Felipe Balbi [this message]
2009-07-12 18:09               ` [rfc/patch 09/15] power: bq27200: fix up current reporting Felipe Balbi
2009-07-12 18:09                 ` [rfc/patch 10/15] power: bq27200: voltage should be expressed in uV Felipe Balbi
2009-07-12 18:09                   ` [rfc/patch 11/15] power: bq27200: temperature in tenths of degrees Felipe Balbi
2009-07-12 18:09                     ` [rfc/patch 12/15] power: bq27200: add power property Felipe Balbi
2009-07-12 18:09                       ` [rfc/patch 13/15] power: bq27200: RSOC is 8-bit wide Felipe Balbi
2009-07-12 18:09                         ` [rfc/patch 14/15] power: bq27200: add time to empty/full Felipe Balbi
2009-07-12 18:09                           ` [rfc/patch 15/15] power: bq27200: add energy average Felipe Balbi
2009-07-12 20:12                           ` [rfc/patch 14/15] power: bq27200: add time to empty/full Felipe Balbi
2009-07-12 20:11                       ` [rfc/patch 12/15] power: bq27200: add power property Felipe Balbi
2009-07-12 18:47   ` [rfc/patch 02/15] power: bq27200: this is an i2c device Linus Walleij
2009-07-12 19:49     ` Felipe Balbi

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=1247422177-7329-8-git-send-email-me@felipebalbi.com \
    --to=me@felipebalbi.com \
    --cc=dwmw2@infradead.org \
    --cc=linux-kernel@vger.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®