summaryrefslogtreecommitdiff
path: root/drivers/power
diff options
context:
space:
mode:
authorRong Dian <b38775@freescale.com>2012-06-21 18:28:30 +0800
committerJason Liu <r64343@freescale.com>2012-07-20 13:39:01 +0800
commitd4dc2a9279a2015df8f223e4dc8a4f7fee6d22d8 (patch)
treeaa875bacdb8322c55d8ccf6ca04b883210c40ae3 /drivers/power
parent91adf6e6226fc1ae6d5f7bfe32bd4a343a666c7d (diff)
downloadlinux-d4dc2a9279a2015df8f223e4dc8a4f7fee6d22d8.tar.gz
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>
Diffstat (limited to 'drivers/power')
-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) {