summaryrefslogtreecommitdiff
path: root/drivers/power
diff options
context:
space:
mode:
authorSivaram Nair <sivaramn@nvidia.com>2013-04-17 14:32:16 +0300
committerRiham Haidar <rhaidar@nvidia.com>2013-04-18 12:51:50 -0700
commitb0e02ec66549d0dffdf88868002c25b7c2c4d0d7 (patch)
tree8a78dc835bf096a7bca0e52ceb3c8a1c0ce6eb5e /drivers/power
parent0f06b19226be7f138404cdaa13c0414f84855418 (diff)
power: max77665: add sysfs to display OC count
A new read-only sysfs entry is added to display the OC interrupt count. Change-Id: I967d34c4c7c55d3fc6490fccecae7c60904c76ad Signed-off-by: Sivaram Nair <sivaramn@nvidia.com> Reviewed-on: http://git-master/r/220166 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Juha Tukkinen <jtukkinen@nvidia.com> Reviewed-by: Laxman Dewangan <ldewangan@nvidia.com>
Diffstat (limited to 'drivers/power')
-rw-r--r--drivers/power/max77665-charger.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/drivers/power/max77665-charger.c b/drivers/power/max77665-charger.c
index a4569293302c..2f3317123772 100644
--- a/drivers/power/max77665-charger.c
+++ b/drivers/power/max77665-charger.c
@@ -83,6 +83,7 @@ struct max77665_charger {
struct alarm wdt_alarm;
struct delayed_work wdt_ack_work;
struct wake_lock wdt_wake_lock;
+ unsigned int oc_count;
};
static enum power_supply_property max77665_ac_props[] = {
@@ -462,6 +463,9 @@ static int max77665_update_charger_status(struct max77665_charger *charger)
}
dev_dbg(charger->dev, "CHG_INT = 0x%02x\n", read_val);
+ if (read_val & BAT_I)
+ charger->oc_count++;
+
if (read_val & CHG_I) {
ret = max77665_read_reg(charger, MAX77665_CHG_INT_OK,
&read_val);
@@ -584,9 +588,19 @@ static ssize_t max77665_show_battery_oc_state(struct device *dev,
static DEVICE_ATTR(oc_state, 0644,
max77665_show_battery_oc_state, max77665_set_battery_oc_state);
+static ssize_t max77665_show_battery_oc_count(struct device *dev,
+ struct device_attribute *attr, char *buf)
+{
+ struct max77665_charger *charger = dev_get_drvdata(dev);
+ return sprintf(buf, "%u\n", charger->oc_count);
+}
+
+static DEVICE_ATTR(oc_count, 0444, max77665_show_battery_oc_count, NULL);
+
static struct attribute *max77665_chg_attributes[] = {
&dev_attr_oc_threshold.attr,
&dev_attr_oc_state.attr,
+ &dev_attr_oc_count.attr,
NULL,
};