diff options
| author | Harry Yang <harryy@codeaurora.org> | 2017-03-23 17:34:46 -0700 |
|---|---|---|
| committer | Harry Yang <harryy@codeaurora.org> | 2017-03-29 14:52:01 -0700 |
| commit | b65cce973443a1cb2945259cdf0e2f6028a68288 (patch) | |
| tree | 93c3574bfc20de29ffbc3670bd955070ce92a6a0 /drivers/power | |
| parent | 606d9c3405bfd70f48a8552fa629bedb9e5988a4 (diff) | |
qcom: smb138x-charger: support two usb input properties
POWER_SUPPLY_PROP_INPUT_CURRENT_LIMITED - indicate if the switcher
is acting in input limited state.
POWER_SUPPLY_PROP_CURRENT_MAX - set/get usb input current limit in
parallel charger.
Change-Id: I3827735a3900680e3e79104e388c2712f12cbbfb
Signed-off-by: Harry Yang <harryy@codeaurora.org>
Diffstat (limited to 'drivers/power')
| -rw-r--r-- | drivers/power/supply/qcom/smb138x-charger.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/drivers/power/supply/qcom/smb138x-charger.c b/drivers/power/supply/qcom/smb138x-charger.c index c13f5103b02e..4916c87aced8 100644 --- a/drivers/power/supply/qcom/smb138x-charger.c +++ b/drivers/power/supply/qcom/smb138x-charger.c @@ -535,6 +535,8 @@ static enum power_supply_property smb138x_parallel_props[] = { POWER_SUPPLY_PROP_CHARGING_ENABLED, POWER_SUPPLY_PROP_PIN_ENABLED, POWER_SUPPLY_PROP_INPUT_SUSPEND, + POWER_SUPPLY_PROP_INPUT_CURRENT_LIMITED, + POWER_SUPPLY_PROP_CURRENT_MAX, POWER_SUPPLY_PROP_VOLTAGE_MAX, POWER_SUPPLY_PROP_CONSTANT_CHARGE_CURRENT_MAX, POWER_SUPPLY_PROP_CURRENT_NOW, @@ -574,6 +576,19 @@ static int smb138x_parallel_get_prop(struct power_supply *psy, case POWER_SUPPLY_PROP_INPUT_SUSPEND: rc = smblib_get_usb_suspend(chg, &val->intval); break; + case POWER_SUPPLY_PROP_INPUT_CURRENT_LIMITED: + if (chip->dt.pl_mode == POWER_SUPPLY_PL_USBIN_USBIN) + rc = smblib_get_prop_input_current_limited(chg, val); + else + val->intval = 0; + break; + case POWER_SUPPLY_PROP_CURRENT_MAX: + if (chip->dt.pl_mode == POWER_SUPPLY_PL_USBIN_USBIN) + rc = smblib_get_charge_param(chg, &chg->param.usb_icl, + &val->intval); + else + val->intval = 0; + break; case POWER_SUPPLY_PROP_VOLTAGE_MAX: rc = smblib_get_charge_param(chg, &chg->param.fv, &val->intval); break; @@ -653,6 +668,11 @@ static int smb138x_parallel_set_prop(struct power_supply *psy, case POWER_SUPPLY_PROP_INPUT_SUSPEND: rc = smb138x_set_parallel_suspend(chip, (bool)val->intval); break; + case POWER_SUPPLY_PROP_CURRENT_MAX: + if (chip->dt.pl_mode == POWER_SUPPLY_PL_USBIN_USBIN) + rc = smblib_set_charge_param(chg, &chg->param.usb_icl, + val->intval); + break; case POWER_SUPPLY_PROP_VOLTAGE_MAX: rc = smblib_set_charge_param(chg, &chg->param.fv, val->intval); break; |
