mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-07 19:30:30 +09:00
power: supply: cw2015_battery: add power supply property for Android R
Signed-off-by: Shunqing Chen <csq@rock-chips.com> Change-Id: I905e0399e61c0d51ff6b167755a6099adc2697d2
This commit is contained in:
@@ -601,6 +601,23 @@ static void cw_bat_work(struct work_struct *work)
|
||||
msecs_to_jiffies(cw_bat->monitor_sec));
|
||||
}
|
||||
|
||||
static int cw_get_capacity_leve(struct cw_battery *cw_bat)
|
||||
{
|
||||
if (cw_bat->bat_mode == MODE_VIRTUAL)
|
||||
return POWER_SUPPLY_CAPACITY_LEVEL_NORMAL;
|
||||
|
||||
if (cw_bat->capacity < 1)
|
||||
return POWER_SUPPLY_CAPACITY_LEVEL_CRITICAL;
|
||||
else if (cw_bat->capacity <= 20)
|
||||
return POWER_SUPPLY_CAPACITY_LEVEL_LOW;
|
||||
else if (cw_bat->capacity <= 70)
|
||||
return POWER_SUPPLY_CAPACITY_LEVEL_NORMAL;
|
||||
else if (cw_bat->capacity <= 90)
|
||||
return POWER_SUPPLY_CAPACITY_LEVEL_HIGH;
|
||||
else
|
||||
return POWER_SUPPLY_CAPACITY_LEVEL_FULL;
|
||||
}
|
||||
|
||||
static int cw_battery_get_property(struct power_supply *psy,
|
||||
enum power_supply_property psp,
|
||||
union power_supply_propval *val)
|
||||
@@ -615,6 +632,9 @@ static int cw_battery_get_property(struct power_supply *psy,
|
||||
if (cw_bat->bat_mode == MODE_VIRTUAL)
|
||||
val->intval = VIRTUAL_SOC;
|
||||
break;
|
||||
case POWER_SUPPLY_PROP_CAPACITY_LEVEL:
|
||||
val->intval = cw_get_capacity_leve(cw_bat);
|
||||
break;
|
||||
case POWER_SUPPLY_PROP_STATUS:
|
||||
val->intval = cw_bat->status;
|
||||
if (cw_bat->bat_mode == MODE_VIRTUAL)
|
||||
@@ -651,9 +671,14 @@ static int cw_battery_get_property(struct power_supply *psy,
|
||||
break;
|
||||
|
||||
case POWER_SUPPLY_PROP_CHARGE_FULL:
|
||||
case POWER_SUPPLY_PROP_CHARGE_FULL_DESIGN:
|
||||
val->intval = cw_bat->plat_data.design_capacity * 1000;
|
||||
break;
|
||||
|
||||
case POWER_SUPPLY_PROP_TIME_TO_FULL_NOW:
|
||||
val->intval = 3600;
|
||||
break;
|
||||
|
||||
case POWER_SUPPLY_PROP_TEMP:
|
||||
val->intval = VIRTUAL_TEMPERATURE;
|
||||
break;
|
||||
@@ -666,6 +691,7 @@ static int cw_battery_get_property(struct power_supply *psy,
|
||||
|
||||
static enum power_supply_property cw_battery_properties[] = {
|
||||
POWER_SUPPLY_PROP_CAPACITY,
|
||||
POWER_SUPPLY_PROP_CAPACITY_LEVEL,
|
||||
POWER_SUPPLY_PROP_STATUS,
|
||||
POWER_SUPPLY_PROP_HEALTH,
|
||||
POWER_SUPPLY_PROP_PRESENT,
|
||||
@@ -674,6 +700,8 @@ static enum power_supply_property cw_battery_properties[] = {
|
||||
POWER_SUPPLY_PROP_TECHNOLOGY,
|
||||
POWER_SUPPLY_PROP_CHARGE_COUNTER,
|
||||
POWER_SUPPLY_PROP_CHARGE_FULL,
|
||||
POWER_SUPPLY_PROP_CHARGE_FULL_DESIGN,
|
||||
POWER_SUPPLY_PROP_TIME_TO_FULL_NOW,
|
||||
POWER_SUPPLY_PROP_TEMP,
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user