diff options
author | Aseda Aboagye <aaboagye@google.com> | 2020-10-16 15:09:21 -0700 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2020-11-03 00:11:49 +0000 |
commit | 2436c92f829fef3bd620e624ef250b009fce452a (patch) | |
tree | 292d75c55f66fbf3cd1fb307f33d038977619415 /driver | |
parent | 8abe7e21cb7d8b943b3d0e3174e39e748b4499a5 (diff) | |
download | chrome-ec-2436c92f829fef3bd620e624ef250b009fce452a.tar.gz |
sm5803: Use average registers for ADC
In order to help reduce variance when calculating resistance, this
commit uses the average ADC registers for the SM5803.
BUG=b:170974274
BRANCH=None
TEST=Build and flash waddledee, verify that ADC values still make
sense.
Change-Id: Ic3450c538c391f82d1bc63ab3cd25e9a59c1d348
Signed-off-by: Aseda Aboagye <aaboagye@google.com>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2508852
Reviewed-by: Diana Z <dzigterman@chromium.org>
Commit-Queue: Aseda Aboagye <aaboagye@chromium.org>
Tested-by: Aseda Aboagye <aaboagye@chromium.org>
Diffstat (limited to 'driver')
-rw-r--r-- | driver/charger/sm5803.c | 8 | ||||
-rw-r--r-- | driver/charger/sm5803.h | 8 |
2 files changed, 10 insertions, 6 deletions
diff --git a/driver/charger/sm5803.c b/driver/charger/sm5803.c index 3bc57c94ec..40876e5431 100644 --- a/driver/charger/sm5803.c +++ b/driver/charger/sm5803.c @@ -1127,12 +1127,12 @@ static enum ec_error_list sm5803_get_current(int chgnum, int *current) int reg; int curr; - rv = meas_read8(chgnum, SM5803_REG_IBAT_CHG_MEAS_MSB, ®); + rv = meas_read8(chgnum, SM5803_REG_IBAT_CHG_AVG_MEAS_MSB, ®); if (rv) return rv; curr = reg << 2; - rv = meas_read8(chgnum, SM5803_REG_IBAT_CHG_MEAS_LSB, ®); + rv = meas_read8(chgnum, SM5803_REG_IBAT_CHG_AVG_MEAS_LSB, ®); if (rv) return rv; curr |= reg & SM5803_IBAT_CHG_MEAS_LSB; @@ -1164,12 +1164,12 @@ static enum ec_error_list sm5803_get_voltage(int chgnum, int *voltage) int reg; int volt_bits; - rv = meas_read8(chgnum, SM5803_REG_VSYS_MEAS_MSB, ®); + rv = meas_read8(chgnum, SM5803_REG_VSYS_AVG_MEAS_MSB, ®); if (rv) return rv; volt_bits = reg << 2; - rv = meas_read8(chgnum, SM5803_REG_VSYS_MEAS_LSB, ®); + rv = meas_read8(chgnum, SM5803_REG_VSYS_AVG_MEAS_LSB, ®); if (rv) return rv; volt_bits |= reg & 0x3; diff --git a/driver/charger/sm5803.h b/driver/charger/sm5803.h index 59074830f8..08e7494a00 100644 --- a/driver/charger/sm5803.h +++ b/driver/charger/sm5803.h @@ -150,8 +150,10 @@ enum sm5803_gpio0_modes { #define SM5803_TINT_HIGH_LEVEL 0xD1 /* IBAT levels - The IBAT levels increment in 7.32mA */ -#define SM5803_REG_IBAT_CHG_MEAS_MSB 0x44 -#define SM5803_REG_IBAT_CHG_MEAS_LSB 0x45 +#define SM5803_REG_IBAT_CHG_MEAS_MSB 0x44 +#define SM5803_REG_IBAT_CHG_MEAS_LSB 0x45 +#define SM5803_REG_IBAT_CHG_AVG_MEAS_MSB 0xC4 +#define SM5803_REG_IBAT_CHG_AVG_MEAS_LSB 0xC5 #define SM5803_IBAT_CHG_MEAS_LSB GENMASK(1, 0) /* IBUS levels - The IBUS levels increment in 7.32mA */ @@ -172,6 +174,8 @@ enum sm5803_gpio0_modes { /* VSYS levels - The VSYS levels increment in 23.4mV steps. */ #define SM5803_REG_VSYS_MEAS_MSB 0x4C #define SM5803_REG_VSYS_MEAS_LSB 0x4D +#define SM5803_REG_VSYS_AVG_MEAS_MSB 0xCC +#define SM5803_REG_VSYS_AVG_MEAS_LSB 0xCD #define SM5803_VSYS_MEAS_LSB GENMASK(1, 0) /* Charger registers (address 0x32) */ |