test_power: Add VOLTAGE_NOW and BATTERY_TEMP properties
Emulate battery temperature (fixed to 26) and battery voltage (variable) properties. Signed-off-by: Dmitry Eremin-Solenikov <dmitry_eremin@mentor.com> Signed-off-by: Anton Vorontsov <cbouatmailru@gmail.com>
This commit is contained in:
parent
7384737588
commit
85a392d47c
|
@ -28,6 +28,7 @@ static int battery_health = POWER_SUPPLY_HEALTH_GOOD;
|
||||||
static int battery_present = 1; /* true */
|
static int battery_present = 1; /* true */
|
||||||
static int battery_technology = POWER_SUPPLY_TECHNOLOGY_LION;
|
static int battery_technology = POWER_SUPPLY_TECHNOLOGY_LION;
|
||||||
static int battery_capacity = 50;
|
static int battery_capacity = 50;
|
||||||
|
static int battery_voltage = 3300;
|
||||||
|
|
||||||
static int test_power_get_ac_property(struct power_supply *psy,
|
static int test_power_get_ac_property(struct power_supply *psy,
|
||||||
enum power_supply_property psp,
|
enum power_supply_property psp,
|
||||||
|
@ -101,6 +102,12 @@ static int test_power_get_battery_property(struct power_supply *psy,
|
||||||
case POWER_SUPPLY_PROP_TIME_TO_FULL_NOW:
|
case POWER_SUPPLY_PROP_TIME_TO_FULL_NOW:
|
||||||
val->intval = 3600;
|
val->intval = 3600;
|
||||||
break;
|
break;
|
||||||
|
case POWER_SUPPLY_PROP_TEMP:
|
||||||
|
val->intval = 26;
|
||||||
|
break;
|
||||||
|
case POWER_SUPPLY_PROP_VOLTAGE_NOW:
|
||||||
|
val->intval = battery_voltage;
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
pr_info("%s: some properties deliberately report errors.\n",
|
pr_info("%s: some properties deliberately report errors.\n",
|
||||||
__func__);
|
__func__);
|
||||||
|
@ -129,6 +136,8 @@ static enum power_supply_property test_power_battery_props[] = {
|
||||||
POWER_SUPPLY_PROP_MODEL_NAME,
|
POWER_SUPPLY_PROP_MODEL_NAME,
|
||||||
POWER_SUPPLY_PROP_MANUFACTURER,
|
POWER_SUPPLY_PROP_MANUFACTURER,
|
||||||
POWER_SUPPLY_PROP_SERIAL_NUMBER,
|
POWER_SUPPLY_PROP_SERIAL_NUMBER,
|
||||||
|
POWER_SUPPLY_PROP_TEMP,
|
||||||
|
POWER_SUPPLY_PROP_VOLTAGE_NOW,
|
||||||
};
|
};
|
||||||
|
|
||||||
static char *test_power_ac_supplied_to[] = {
|
static char *test_power_ac_supplied_to[] = {
|
||||||
|
@ -387,6 +396,21 @@ static int param_set_battery_capacity(const char *key,
|
||||||
|
|
||||||
#define param_get_battery_capacity param_get_int
|
#define param_get_battery_capacity param_get_int
|
||||||
|
|
||||||
|
static int param_set_battery_voltage(const char *key,
|
||||||
|
const struct kernel_param *kp)
|
||||||
|
{
|
||||||
|
int tmp;
|
||||||
|
|
||||||
|
if (1 != sscanf(key, "%d", &tmp))
|
||||||
|
return -EINVAL;
|
||||||
|
|
||||||
|
battery_voltage = tmp;
|
||||||
|
power_supply_changed(&test_power_supplies[1]);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#define param_get_battery_voltage param_get_int
|
||||||
|
|
||||||
static struct kernel_param_ops param_ops_ac_online = {
|
static struct kernel_param_ops param_ops_ac_online = {
|
||||||
.set = param_set_ac_online,
|
.set = param_set_ac_online,
|
||||||
.get = param_get_ac_online,
|
.get = param_get_ac_online,
|
||||||
|
@ -422,6 +446,10 @@ static struct kernel_param_ops param_ops_battery_capacity = {
|
||||||
.get = param_get_battery_capacity,
|
.get = param_get_battery_capacity,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static struct kernel_param_ops param_ops_battery_voltage = {
|
||||||
|
.set = param_set_battery_voltage,
|
||||||
|
.get = param_get_battery_voltage,
|
||||||
|
};
|
||||||
|
|
||||||
#define param_check_ac_online(name, p) __param_check(name, p, void);
|
#define param_check_ac_online(name, p) __param_check(name, p, void);
|
||||||
#define param_check_usb_online(name, p) __param_check(name, p, void);
|
#define param_check_usb_online(name, p) __param_check(name, p, void);
|
||||||
|
@ -430,6 +458,7 @@ static struct kernel_param_ops param_ops_battery_capacity = {
|
||||||
#define param_check_battery_technology(name, p) __param_check(name, p, void);
|
#define param_check_battery_technology(name, p) __param_check(name, p, void);
|
||||||
#define param_check_battery_health(name, p) __param_check(name, p, void);
|
#define param_check_battery_health(name, p) __param_check(name, p, void);
|
||||||
#define param_check_battery_capacity(name, p) __param_check(name, p, void);
|
#define param_check_battery_capacity(name, p) __param_check(name, p, void);
|
||||||
|
#define param_check_battery_voltage(name, p) __param_check(name, p, void);
|
||||||
|
|
||||||
|
|
||||||
module_param(ac_online, ac_online, 0644);
|
module_param(ac_online, ac_online, 0644);
|
||||||
|
@ -457,6 +486,8 @@ MODULE_PARM_DESC(battery_health,
|
||||||
module_param(battery_capacity, battery_capacity, 0644);
|
module_param(battery_capacity, battery_capacity, 0644);
|
||||||
MODULE_PARM_DESC(battery_capacity, "battery capacity (percentage)");
|
MODULE_PARM_DESC(battery_capacity, "battery capacity (percentage)");
|
||||||
|
|
||||||
|
module_param(battery_voltage, battery_voltage, 0644);
|
||||||
|
MODULE_PARM_DESC(battery_voltage, "battery voltage (millivolts)");
|
||||||
|
|
||||||
MODULE_DESCRIPTION("Power supply driver for testing");
|
MODULE_DESCRIPTION("Power supply driver for testing");
|
||||||
MODULE_AUTHOR("Anton Vorontsov <cbouatmailru@gmail.com>");
|
MODULE_AUTHOR("Anton Vorontsov <cbouatmailru@gmail.com>");
|
||||||
|
|
Loading…
Reference in New Issue