diff options
author | Eric Yilun Lin <yllin@chromium.org> | 2020-12-01 17:06:56 +0800 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2020-12-08 06:28:52 +0000 |
commit | dd1942af2d0b308e0b2d6210bfabeadb053101da (patch) | |
tree | 17569960b331afe0e73585caaab638e930ebeedd /driver | |
parent | 7ae129c1f3cd76722902da6582825f53e4aff344 (diff) | |
download | chrome-ec-dd1942af2d0b308e0b2d6210bfabeadb053101da.tar.gz |
charger: replace charger_get_input_current uses
Replace them with charger_get_input_current_limit which is
aligned to the old usage, no funcional changes.
Keep OCPC charger_get_input_current uses as was, since it
is its intended use.
Also, implement
- isl923x_get_input_current, raa48900_get_input_current
- sm5803_get_input_current_limit
BUG=b:171853295
TEST=1. grep "\<charger_get_input_current\>"; only ocpc uses the function.
2. make buildall
3. test with CL:2569086 on waddledee(sm5803), waddledoo(raa489000),
hayato(isl923x), pompom(isl923x), and ensure the output
of `curr 0|1` equalts to the report of power meter.
BRANCH=none
Change-Id: I71aca33cbc88dda9b0238cb71b1609665a9c9a7f
Signed-off-by: Eric Yilun Lin <yllin@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2569085
Reviewed-by: Daisuke Nojiri <dnojiri@chromium.org>
Diffstat (limited to 'driver')
-rw-r--r-- | driver/charger/bd9995x.c | 6 | ||||
-rw-r--r-- | driver/charger/bq24715.c | 6 | ||||
-rw-r--r-- | driver/charger/bq24773.c | 6 | ||||
-rw-r--r-- | driver/charger/bq25710.c | 6 | ||||
-rw-r--r-- | driver/charger/isl923x.c | 50 | ||||
-rw-r--r-- | driver/charger/isl9241.c | 6 | ||||
-rw-r--r-- | driver/charger/rt946x.c | 10 | ||||
-rw-r--r-- | driver/charger/sm5803.c | 17 |
8 files changed, 76 insertions, 31 deletions
diff --git a/driver/charger/bd9995x.c b/driver/charger/bd9995x.c index b38776a574..6fd79b8d8f 100644 --- a/driver/charger/bd9995x.c +++ b/driver/charger/bd9995x.c @@ -634,8 +634,8 @@ static enum ec_error_list bd9995x_set_input_current_limit(int chgnum, BD9995X_BAT_CHG_COMMAND); } -static enum ec_error_list bd9995x_get_input_current(int chgnum, - int *input_current) +static enum ec_error_list bd9995x_get_input_current_limit(int chgnum, + int *input_current) { return ch_raw_read16(chgnum, BD9995X_CMD_CUR_ILIM_VAL, input_current, BD9995X_EXTENDED_COMMAND); @@ -1732,7 +1732,7 @@ const struct charger_drv bd9995x_drv = { .discharge_on_ac = &bd9995x_discharge_on_ac, .get_vbus_voltage = &bd9995x_get_vbus_voltage, .set_input_current_limit = &bd9995x_set_input_current_limit, - .get_input_current = &bd9995x_get_input_current, + .get_input_current_limit = &bd9995x_get_input_current_limit, .manufacturer_id = &bd9995x_manufacturer_id, .device_id = &bd9995x_device_id, .get_option = &bd9995x_get_option, diff --git a/driver/charger/bq24715.c b/driver/charger/bq24715.c index 8c83575c65..d2eb0e432a 100644 --- a/driver/charger/bq24715.c +++ b/driver/charger/bq24715.c @@ -56,8 +56,8 @@ static enum ec_error_list bq24715_set_input_current_limit(int chgnum, CURRENT_TO_REG(input_current, R_AC)); } -static enum ec_error_list bq24715_get_input_current(int chgnum, - int *input_current) +static enum ec_error_list bq24715_get_input_current_limit(int chgnum, + int *input_current) { int rv; int reg; @@ -244,7 +244,7 @@ const struct charger_drv bq24715_drv = { .set_voltage = &bq24715_set_voltage, .discharge_on_ac = &bq24715_discharge_on_ac, .set_input_current_limit = &bq24715_set_input_current_limit, - .get_input_current = &bq24715_get_input_current, + .get_input_current_limit = &bq24715_get_input_current_limit, .manufacturer_id = &bq24715_manufacturer_id, .device_id = &bq24715_device_id, .get_option = &bq24715_get_option, diff --git a/driver/charger/bq24773.c b/driver/charger/bq24773.c index b18c678b3a..d72faa3bed 100644 --- a/driver/charger/bq24773.c +++ b/driver/charger/bq24773.c @@ -103,8 +103,8 @@ static enum ec_error_list bq2477x_set_input_current_limit(int chgnum, #endif } -static enum ec_error_list bq2477x_get_input_current(int chgnum, - int *input_current) +static enum ec_error_list bq2477x_get_input_current_limit(int chgnum, + int *input_current) { int rv; int reg; @@ -309,7 +309,7 @@ const struct charger_drv bq2477x_drv = { .set_voltage = &bq2477x_set_voltage, .discharge_on_ac = &bq2477x_discharge_on_ac, .set_input_current_limit = &bq2477x_set_input_current_limit, - .get_input_current = &bq2477x_get_input_current, + .get_input_current_limit = &bq2477x_get_input_current_limit, .manufacturer_id = &bq2477x_manufacturer_id, .device_id = &bq2477x_device_id, .get_option = &bq2477x_get_option, diff --git a/driver/charger/bq25710.c b/driver/charger/bq25710.c index fdfacbaa35..77520be010 100644 --- a/driver/charger/bq25710.c +++ b/driver/charger/bq25710.c @@ -397,8 +397,8 @@ static enum ec_error_list bq25710_set_input_current_limit(int chgnum, BQ25710_CHARGE_IIN_BIT_0FFSET); } -static enum ec_error_list bq25710_get_input_current(int chgnum, - int *input_current) +static enum ec_error_list bq25710_get_input_current_limit(int chgnum, + int *input_current) { int rv, reg; @@ -670,7 +670,7 @@ const struct charger_drv bq25710_drv = { .discharge_on_ac = &bq25710_discharge_on_ac, .get_vbus_voltage = &bq25710_get_vbus_voltage, .set_input_current_limit = &bq25710_set_input_current_limit, - .get_input_current = &bq25710_get_input_current, + .get_input_current_limit = &bq25710_get_input_current_limit, .manufacturer_id = &bq25710_manufacturer_id, .device_id = &bq25710_device_id, .get_option = &bq25710_get_option, diff --git a/driver/charger/isl923x.c b/driver/charger/isl923x.c index 3d70ba6431..75bff01959 100644 --- a/driver/charger/isl923x.c +++ b/driver/charger/isl923x.c @@ -214,30 +214,55 @@ static int get_amon_bmon(int chgnum, enum isl923x_amon_bmon amon, } #endif -static enum ec_error_list isl923x_get_input_current(int chgnum, +static enum ec_error_list isl923x_get_input_current_limit(int chgnum, + int *input_current) +{ + int rv; + int regval; + + rv = raw_read16(chgnum, ISL923X_REG_ADAPTER_CURRENT_LIMIT1, ®val); + if (rv) + return rv; + + *input_current = AC_REG_TO_CURRENT(regval); + return EC_SUCCESS; +} + +#ifdef CONFIG_CHARGER_RAA489000 +static enum ec_error_list raa489000_get_input_current(int chgnum, int *input_current) { int rv; int regval; int reg; - if (IS_ENABLED(CONFIG_CHARGER_RAA489000)) - reg = RAA489000_REG_ADC_INPUT_CURRENT; - else - reg = ISL923X_REG_ADAPTER_CURRENT_LIMIT1; + reg = RAA489000_REG_ADC_INPUT_CURRENT; rv = raw_read16(chgnum, reg, ®val); if (rv) return rv; - if (IS_ENABLED(CONFIG_CHARGER_RAA489000)) { - /* LSB is 22.2mA */ - regval *= 22; - } + /* LSB is 22.2mA */ + regval *= 22; *input_current = AC_REG_TO_CURRENT(regval); return EC_SUCCESS; } +#elif defined(CONFIG_CMD_CHARGER_ADC_AMON_BMON) +static enum ec_error_list isl923x_get_input_current(int chgnum, + int *input_current) +{ + int rv, adc; + + rv = get_amon_bmon(chgnum, AMON, MON_CHARGE, &adc); + if (rv) + return rv; + + *input_current = adc / CONFIG_CHARGER_SENSE_RESISTOR_AC; + + return EC_SUCCESS; +} +#endif /* CONFIG_CHARGER_RAA489000 */ #if defined(CONFIG_CHARGER_OTG) && defined(CHARGER_ISL9238X) static enum ec_error_list isl923x_enable_otg_power(int chgnum, int enabled) @@ -913,7 +938,7 @@ static int isl923x_ramp_get_current_limit(int chgnum) */ int input_current; - if (isl923x_get_input_current(chgnum, &input_current) != EC_SUCCESS) + if (isl923x_get_input_current_limit(chgnum, &input_current)) return 0; return input_current; } @@ -1282,7 +1307,12 @@ const struct charger_drv isl923x_drv = { .discharge_on_ac = &isl923x_discharge_on_ac, .get_vbus_voltage = &isl923x_get_vbus_voltage, .set_input_current_limit = &isl923x_set_input_current_limit, + .get_input_current_limit = &isl923x_get_input_current_limit, +#ifdef CONFIG_CHARGER_RAA489000 + .get_input_current = &raa489000_get_input_current, +#elif defined(CONFIG_CMD_CHARGER_ADC_AMON_BMON) .get_input_current = &isl923x_get_input_current, +#endif .manufacturer_id = &isl923x_manufacturer_id, .device_id = &isl923x_device_id, .get_option = &isl923x_get_option, diff --git a/driver/charger/isl9241.c b/driver/charger/isl9241.c index 57b9f918e1..d0a8127b21 100644 --- a/driver/charger/isl9241.c +++ b/driver/charger/isl9241.c @@ -102,8 +102,8 @@ static enum ec_error_list isl9241_set_input_current_limit(int chgnum, return isl9241_write(chgnum, ISL9241_REG_ADAPTER_CUR_LIMIT2, reg); } -static enum ec_error_list isl9241_get_input_current(int chgnum, - int *input_current) +static enum ec_error_list isl9241_get_input_current_limit(int chgnum, + int *input_current) { int rv; @@ -539,7 +539,7 @@ const struct charger_drv isl9241_drv = { .discharge_on_ac = &isl9241_discharge_on_ac, .get_vbus_voltage = &isl9241_get_vbus_voltage, .set_input_current_limit = &isl9241_set_input_current_limit, - .get_input_current = &isl9241_get_input_current, + .get_input_current_limit = &isl9241_get_input_current_limit, .manufacturer_id = &isl9241_manufacturer_id, .device_id = &isl9241_device_id, .get_option = &isl9241_get_option, diff --git a/driver/charger/rt946x.c b/driver/charger/rt946x.c index e63a0f2338..71e38e8f75 100644 --- a/driver/charger/rt946x.c +++ b/driver/charger/rt946x.c @@ -712,8 +712,8 @@ static enum ec_error_list rt946x_set_input_current_limit(int chgnum, reg_iin << RT946X_SHIFT_AICR); } -static enum ec_error_list rt946x_get_input_current(int chgnum, - int *input_current) +static enum ec_error_list rt946x_get_input_current_limit(int chgnum, + int *input_current) { int rv; int val = 0; @@ -1061,7 +1061,7 @@ static int rt946x_ramp_get_current_limit(int chgnum) int rv; int input_current = 0; - rv = rt946x_get_input_current(chgnum, &input_current); + rv = rt946x_get_input_current_limit(chgnum, &input_current); return rv ? -1 : input_current; } @@ -1341,7 +1341,7 @@ int rt946x_get_adc(enum rt946x_adc_in_sel adc_sel, int *adc_val) goto out; if (adc_sel == MT6370_ADC_IBUS) { - rv = charger_get_input_current(CHARGER_SOLO, &aicr); + rv = charger_get_input_current_limit(CHARGER_SOLO, &aicr); if (rv) goto out; } @@ -1896,7 +1896,7 @@ const struct charger_drv rt946x_drv = { .discharge_on_ac = &rt946x_discharge_on_ac, .get_vbus_voltage = &rt946x_get_vbus_voltage, .set_input_current_limit = &rt946x_set_input_current_limit, - .get_input_current = &rt946x_get_input_current, + .get_input_current_limit = &rt946x_get_input_current_limit, .manufacturer_id = &rt946x_manufacturer_id, .device_id = &rt946x_device_id, .get_option = &rt946x_get_option, diff --git a/driver/charger/sm5803.c b/driver/charger/sm5803.c index c5415eb260..541499b256 100644 --- a/driver/charger/sm5803.c +++ b/driver/charger/sm5803.c @@ -1277,6 +1277,20 @@ static enum ec_error_list sm5803_set_input_current_limit(int chgnum, return chg_write8(chgnum, SM5803_REG_CHG_ILIM, reg); } +static enum ec_error_list sm5803_get_input_current_limit(int chgnum, + int *input_current) +{ + int rv; + int val; + + rv = chg_read8(chgnum, SM5803_REG_CHG_ILIM, &val); + if (rv) + return rv; + + *input_current = SM5803_REG_TO_CURRENT(val & SM5803_CHG_ILIM_RAW); + return rv; +} + static enum ec_error_list sm5803_get_input_current(int chgnum, int *input_current) { @@ -1533,7 +1547,7 @@ static int sm5803_ramp_get_current_limit(int chgnum) int rv; int input_current = 0; - rv = sm5803_get_input_current(chgnum, &input_current); + rv = sm5803_get_input_current_limit(chgnum, &input_current); return rv ? -1 : input_current; } @@ -1601,6 +1615,7 @@ const struct charger_drv sm5803_drv = { .discharge_on_ac = &sm5803_discharge_on_ac, .get_vbus_voltage = &sm5803_get_vbus_voltage, .set_input_current_limit = &sm5803_set_input_current_limit, + .get_input_current_limit = &sm5803_get_input_current_limit, .get_input_current = &sm5803_get_input_current, .device_id = &sm5803_get_dev_id, .get_option = &sm5803_get_option, |