#include <linux/workqueue.h>
#include <linux/leds.h>
+#include <linux/types.h>
struct device;
POWER_SUPPLY_STATUS_DISCHARGING,
POWER_SUPPLY_STATUS_NOT_CHARGING,
POWER_SUPPLY_STATUS_FULL,
+ POWER_SUPPLY_STATUS_CMD_DISCHARGING,
};
enum {
POWER_SUPPLY_PROP_TIME_TO_FULL_AVG,
POWER_SUPPLY_PROP_TYPE, /* use power_supply.type instead */
POWER_SUPPLY_PROP_SCOPE,
+ /* Local extensions */
+ POWER_SUPPLY_PROP_USB_HC,
+ POWER_SUPPLY_PROP_USB_OTG,
+ POWER_SUPPLY_PROP_CHARGE_ENABLED,
+ /* Local extensions of type int64_t */
+ POWER_SUPPLY_PROP_CHARGE_COUNTER_EXT,
+ /* 20100723 James Lo */
+ POWER_SUPPLY_PROP_batt_vol,
+ POWER_SUPPLY_PROP_batt_temp,
+ /* 20100723 Add for EM */
+ POWER_SUPPLY_PROP_TemperatureR,
+ POWER_SUPPLY_PROP_TempBattVoltage,
+ POWER_SUPPLY_PROP_InstatVolt,
+ POWER_SUPPLY_PROP_BatteryAverageCurrent,
+ POWER_SUPPLY_PROP_BatterySenseVoltage,
+ POWER_SUPPLY_PROP_ISenseVoltage,
+ POWER_SUPPLY_PROP_ChargerVoltage,
+ /* Dual battery */
+ POWER_SUPPLY_PROP_status_smb,
+ POWER_SUPPLY_PROP_capacity_smb,
+ POWER_SUPPLY_PROP_present_smb,
+ /* ADB CMD Discharging */
+ POWER_SUPPLY_PROP_adjust_power,
/* Properties of type `const char *' */
POWER_SUPPLY_PROP_MODEL_NAME,
POWER_SUPPLY_PROP_MANUFACTURER,
POWER_SUPPLY_TYPE_USB_DCP, /* Dedicated Charging Port */
POWER_SUPPLY_TYPE_USB_CDP, /* Charging Downstream Port */
POWER_SUPPLY_TYPE_USB_ACA, /* Accessory Charger Adapters */
+ POWER_SUPPLY_TYPE_WIRELESS, /* Wireless Charger */
};
union power_supply_propval {
int intval;
const char *strval;
+ int64_t int64val;
};
struct power_supply {
/* private */
struct device *dev;
struct work_struct changed_work;
+ spinlock_t changed_lock;
+ bool changed;
#ifdef CONFIG_THERMAL
struct thermal_zone_device *tzd;
struct thermal_cooling_device *tcd;