1 --- kernel-power/drivers/power/bq27x00_battery.c.orig 2012-07-10 08:45:20.296054973 +0200
2 +++ kernel-power/drivers/power/bq27x00_battery.c 2012-07-10 10:21:21.043990227 +0200
3 @@ -718,6 +718,70 @@ static void bq27x00_battery_reg_exit(str
7 +/* code for register device access via sysfs */
9 +static ssize_t bq27x00_battery_sysfs_print_reg(struct bq27x00_device_info *di,
10 + u8 reg, bool single, char *buf)
12 + int ret = bq27x00_read(di, reg, single);
14 + return sprintf(buf, "%#.2x=error %d\n", reg, ret);
16 + return sprintf(buf, "%#.2x=%#.2x\n", reg, ret);
19 +static ssize_t bq27x00_battery_sysfs_show_registers(struct device *dev,
20 + struct device_attribute *attr, char *buf)
22 + struct power_supply *psy = dev_get_drvdata(dev);
23 + struct bq27x00_device_info *di = container_of(psy,
24 + struct bq27x00_device_info,
29 + for (reg=0x00; reg<=0x01; reg+=1)
30 + ret += bq27x00_battery_sysfs_print_reg(di, reg, true, buf+ret);
32 + for (reg=0x02; reg<=0x08; reg+=2)
33 + ret += bq27x00_battery_sysfs_print_reg(di, reg, false, buf+ret);
35 + for (reg=0x0A; reg<=0x0B; reg+=1)
36 + ret += bq27x00_battery_sysfs_print_reg(di, reg, true, buf+ret);
38 + for (reg=0x0C; reg<=0x2A; reg+=2)
39 + ret += bq27x00_battery_sysfs_print_reg(di, reg, false, buf+ret);
41 + for (reg=0x2C; reg<=0x7F; reg+=1)
42 + ret += bq27x00_battery_sysfs_print_reg(di, reg, true, buf+ret);
47 +static DEVICE_ATTR(registers, S_IRUGO,
48 + bq27x00_battery_sysfs_show_registers, NULL);
50 +static struct attribute *bq27x00_battery_sysfs_attributes[] = {
51 + &dev_attr_registers.attr,
55 +static const struct attribute_group bq27x00_battery_sysfs_attr_group = {
56 + .attrs = bq27x00_battery_sysfs_attributes,
59 +static int bq27x00_battery_sysfs_init(struct bq27x00_device_info *di)
61 + return sysfs_create_group(&di->bat.dev->kobj,
62 + &bq27x00_battery_sysfs_attr_group);
65 +static void bq27x00_battery_sysfs_exit(struct bq27x00_device_info *di)
67 + sysfs_remove_group(&di->bat.dev->kobj,
68 + &bq27x00_battery_sysfs_attr_group);
71 static int bq27x00_powersupply_init(struct bq27x00_device_info *di)
74 @@ -741,6 +805,7 @@ static int bq27x00_powersupply_init(stru
77 bq27x00_battery_reg_init(di);
78 + bq27x00_battery_sysfs_init(di);
82 @@ -754,6 +819,7 @@ static void bq27x00_powersupply_unregist
83 cancel_delayed_work_sync(&di->work);
85 bq27x00_battery_reg_exit(di);
86 + bq27x00_battery_sysfs_exit(di);
88 power_supply_unregister(&di->bat);