summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRong Dian <b38775@freescale.com>2012-06-21 18:28:30 +0800
committerRong Dian <b38775@freescale.com>2012-06-21 18:55:41 +0800
commitb6f144313f38ce536d1b1df5fed6c03b3b923e58 (patch)
tree5884a402b56c2b5addcc5db67eb3134adfebaeeb
parentd6fd84b508786e89e843ee97ad0f9eb2f23ed4d3 (diff)
ENGR00214578: battery:divide one offset sysfs interface into two interfaces
one sysfs interface for offset_discharger ,one sysfs interface for offset_charger. Signed-off-by: Rong Dian <b38775@freescale.com>
-rwxr-xr-xdrivers/power/sabresd_battery.c55
1 files changed, 37 insertions, 18 deletions
diff --git a/drivers/power/sabresd_battery.c b/drivers/power/sabresd_battery.c
index 88fe30791dfb..df9f62cdeb5d 100755
--- a/drivers/power/sabresd_battery.c
+++ b/drivers/power/sabresd_battery.c
@@ -274,7 +274,6 @@ static int max8903_battery_get_property(struct power_supply *bat,
{
struct max8903_data *di = container_of(bat,
struct max8903_data, bat);
- static unsigned long last;
switch (psp) {
case POWER_SUPPLY_PROP_STATUS:
val->intval = POWER_SUPPLY_STATUS_UNKNOWN;
@@ -470,37 +469,54 @@ static void max8903_battery_work(struct work_struct *work)
schedule_delayed_work(&data->work, data->interval);
}
-static ssize_t max8903_voltage_offset_show(struct device *dev,
+static ssize_t max8903_voltage_offset_discharger_show(struct device *dev,
struct device_attribute *attr, char *buf)
{
- return sprintf(buf, "read offset_discharger:%04d,offset_charger:%04d\n",
- offset_discharger, offset_charger);
+ return sprintf(buf, "read offset_discharger:%04d\n",
+ offset_discharger);
}
-static ssize_t max8903_voltage_offset_store(struct device *dev,
+static ssize_t max8903_voltage_offset_discharger_store(struct device *dev,
struct device_attribute *attr, const char *buf,
size_t count)
{
- char *p;
-
offset_discharger = simple_strtoul(buf, NULL, 10);
- p = NULL;
- p = memchr(buf, ' ', count);
- p += 1;
- offset_charger = simple_strtoul(p, NULL, 10);
+ pr_info("read offset_discharger:%04d\n", offset_discharger);
+ return count;
+}
- pr_info("read offset_discharger:%04d,offset_charger:%04d\n",
- offset_discharger, offset_charger);
+static ssize_t max8903_voltage_offset_charger_show(struct device *dev,
+ struct device_attribute *attr, char *buf)
+{
+ return sprintf(buf, "read offset_charger:%04d\n",
+ offset_charger);
+}
+
+static ssize_t max8903_voltage_offset_charger_store(struct device *dev,
+ struct device_attribute *attr, const char *buf,
+ size_t count)
+{
+ offset_charger = simple_strtoul(buf, NULL, 10);
+ pr_info("read offset_charger:%04d\n", offset_charger);
return count;
}
-static struct device_attribute max8903_dev_attr = {
+static struct device_attribute max8903_discharger_dev_attr = {
+ .attr = {
+ .name = "max8903_ctl_offset_discharger",
+ .mode = S_IRUSR | S_IWUSR,
+ },
+ .show = max8903_voltage_offset_discharger_show,
+ .store = max8903_voltage_offset_discharger_store,
+};
+
+static struct device_attribute max8903_charger_dev_attr = {
.attr = {
- .name = "max8903_ctl",
+ .name = "max8903_ctl_offset_charger",
.mode = S_IRUSR | S_IWUSR,
},
- .show = max8903_voltage_offset_show,
- .store = max8903_voltage_offset_store,
+ .show = max8903_voltage_offset_charger_show,
+ .store = max8903_voltage_offset_charger_store,
};
static __devinit int max8903_probe(struct platform_device *pdev)
@@ -699,7 +715,10 @@ static __devinit int max8903_probe(struct platform_device *pdev)
}
}
- ret = device_create_file(&pdev->dev, &max8903_dev_attr);
+ ret = device_create_file(&pdev->dev, &max8903_discharger_dev_attr);
+ if (ret)
+ dev_err(&pdev->dev, "create device file failed!\n");
+ ret = device_create_file(&pdev->dev, &max8903_charger_dev_attr);
if (ret)
dev_err(&pdev->dev, "create device file failed!\n");
if (cpu_type_flag == 1) {