diff options
author | Caveh Jalali <caveh@chromium.org> | 2021-04-20 18:40:28 -0700 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2021-04-23 00:14:00 +0000 |
commit | 2d28c0f82cd3c1868caa2d492e7e95c9bdafdefa (patch) | |
tree | 2fc9f833855b45dc7f4884a723240fa07d7b5fff /driver | |
parent | a4336657562a25bf45e80296d31f0d6e86d6f97c (diff) | |
download | chrome-ec-2d28c0f82cd3c1868caa2d492e7e95c9bdafdefa.tar.gz |
bq25710: Replace some macros with functions
This replaces the IIN_DPM_REG_TO_CURRENT and IIN_HOST_CURRENT_TO_REG
macros with equivalent functions to make the implementation more robust.
BRANCH=none
BUG=b:185190976
TEST=buildall passes
Change-Id: I9fac69d38efd197a916bc18d12869b04a89adb5a
Signed-off-by: Caveh Jalali <caveh@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2842705
Reviewed-by: Boris Mittelberg <bmbm@google.com>
Diffstat (limited to 'driver')
-rw-r--r-- | driver/charger/bq25710.c | 24 |
1 files changed, 15 insertions, 9 deletions
diff --git a/driver/charger/bq25710.c b/driver/charger/bq25710.c index 5169342c9c..8221852ded 100644 --- a/driver/charger/bq25710.c +++ b/driver/charger/bq25710.c @@ -44,12 +44,6 @@ #define INPUT_RESISTOR_RATIO \ ((CONFIG_CHARGER_SENSE_RESISTOR_AC) / DEFAULT_SENSE_RESISTOR) -#define IIN_DPM_REG_TO_CURRENT(REG) (((REG) + 1) * \ - BQ25710_IIN_DPM_CURRENT_STEP_MA / \ - INPUT_RESISTOR_RATIO) -#define IIN_HOST_CURRENT_TO_REG(CUR) (((CUR) * \ - INPUT_RESISTOR_RATIO / \ - BQ25710_IIN_HOST_CURRENT_STEP_MA) - 1) #define CHARGING_RESISTOR_RATIO \ ((CONFIG_CHARGER_SENSE_RESISTOR) / DEFAULT_SENSE_RESISTOR) @@ -89,6 +83,18 @@ static const struct charger_info bq25710_charger_info = { static enum ec_error_list bq25710_get_option(int chgnum, int *option); static enum ec_error_list bq25710_set_option(int chgnum, int option); +static inline int iin_dpm_reg_to_current(int reg) +{ + return (reg + 1) * BQ25710_IIN_DPM_CURRENT_STEP_MA / + INPUT_RESISTOR_RATIO; +} + +static inline int iin_host_current_to_reg(int current) +{ + return (current * INPUT_RESISTOR_RATIO / + BQ25710_IIN_HOST_CURRENT_STEP_MA) - 1; +} + static inline enum ec_error_list raw_read16(int chgnum, int offset, int *value) { return i2c_read16(chg_chips[chgnum].i2c_port, @@ -416,7 +422,7 @@ static enum ec_error_list bq25710_discharge_on_ac(int chgnum, int enable) static enum ec_error_list bq25710_set_input_current_limit(int chgnum, int input_current) { - int num_steps = IIN_HOST_CURRENT_TO_REG(input_current); + int num_steps = iin_host_current_to_reg(input_current); return raw_write16(chgnum, BQ25710_REG_IIN_HOST, num_steps << BQ25710_IIN_HOST_CURRENT_SHIFT); @@ -436,7 +442,7 @@ static enum ec_error_list bq25710_get_input_current_limit(int chgnum, rv = raw_read16(chgnum, BQ25710_REG_IIN_DPM, ®); if (!rv) *input_current = - IIN_DPM_REG_TO_CURRENT(reg >> + iin_dpm_reg_to_current(reg >> BQ25710_IIN_DPM_CURRENT_SHIFT); return rv; @@ -622,7 +628,7 @@ static int bq25710_ramp_get_current_limit(int chgnum) return 0; } - return IIN_DPM_REG_TO_CURRENT(reg >> BQ25710_IIN_DPM_CURRENT_SHIFT); + return iin_dpm_reg_to_current(reg >> BQ25710_IIN_DPM_CURRENT_SHIFT); } #endif /* CONFIG_CHARGE_RAMP_HW */ |