diff --git a/drivers/battery/common/sec_battery.c b/drivers/battery/common/sec_battery.c index f85bfd4b7..9657fe86c 100755 --- a/drivers/battery/common/sec_battery.c +++ b/drivers/battery/common/sec_battery.c @@ -94,6 +94,8 @@ static enum power_supply_property sec_battery_props[] = { static enum power_supply_property sec_power_props[] = { POWER_SUPPLY_PROP_ONLINE, + POWER_SUPPLY_PROP_VOLTAGE_MAX, + POWER_SUPPLY_PROP_CURRENT_MAX, }; static enum power_supply_property sec_wireless_props[] = { @@ -104,6 +106,8 @@ static enum power_supply_property sec_wireless_props[] = { static enum power_supply_property sec_ac_props[] = { POWER_SUPPLY_PROP_ONLINE, POWER_SUPPLY_PROP_TEMP, + POWER_SUPPLY_PROP_VOLTAGE_MAX, + POWER_SUPPLY_PROP_CURRENT_MAX, }; static enum power_supply_property sec_otg_props[] = { @@ -6825,6 +6829,7 @@ static int sec_usb_get_property(struct power_supply *psy, default: return -EINVAL; } + if ((battery->health == POWER_SUPPLY_HEALTH_OVERVOLTAGE) || (battery->health == POWER_SUPPLY_EXT_HEALTH_UNDERVOLTAGE)) { val->intval = 0; @@ -6927,6 +6932,14 @@ static int sec_ac_get_property(struct power_supply *psy, return -EINVAL; } break; + case POWER_SUPPLY_PROP_VOLTAGE_MAX: + /* V -> uV */ + val->intval = battery->input_voltage * 1000000; + return 0; + case POWER_SUPPLY_PROP_CURRENT_MAX: + /* mA -> uA */ + val->intval = battery->pdata->charging_current[battery->cable_type].input_current_limit * 1000; + return 0; default: return -EINVAL; }