]>
Commit | Line | Data |
---|---|---|
7fb7ba58 LPC |
1 | #ifndef __LINUX_BQ27X00_BATTERY_H__ |
2 | #define __LINUX_BQ27X00_BATTERY_H__ | |
3 | ||
703df6c0 AD |
4 | enum bq27xxx_chip { |
5 | BQ27000 = 1, /* bq27000, bq27200 */ | |
6 | BQ27010, /* bq27010, bq27210 */ | |
7 | BQ27500, /* bq27500, bq27510, bq27520 */ | |
8 | BQ27530, /* bq27530, bq27531 */ | |
9 | BQ27541, /* bq27541, bq27542, bq27546, bq27742 */ | |
10 | BQ27545, /* bq27545 */ | |
11 | BQ27421, /* bq27421, bq27425, bq27441, bq27621 */ | |
12 | }; | |
13 | ||
7fb7ba58 | 14 | /** |
081bab21 | 15 | * struct bq27xxx_plaform_data - Platform data for bq27xxx devices |
424cfde4 AD |
16 | * @name: Name of the battery. |
17 | * @chip: Chip class number of this device. | |
7fb7ba58 LPC |
18 | * @read: HDQ read callback. |
19 | * This function should provide access to the HDQ bus the battery is | |
20 | * connected to. | |
21 | * The first parameter is a pointer to the battery device, the second the | |
22 | * register to be read. The return value should either be the content of | |
23 | * the passed register or an error value. | |
24 | */ | |
081bab21 | 25 | struct bq27xxx_platform_data { |
7fb7ba58 | 26 | const char *name; |
424cfde4 | 27 | enum bq27xxx_chip chip; |
7fb7ba58 LPC |
28 | int (*read)(struct device *dev, unsigned int); |
29 | }; | |
30 | ||
703df6c0 AD |
31 | struct bq27xxx_device_info; |
32 | struct bq27xxx_access_methods { | |
33 | int (*read)(struct bq27xxx_device_info *di, u8 reg, bool single); | |
34 | }; | |
35 | ||
36 | struct bq27xxx_reg_cache { | |
37 | int temperature; | |
38 | int time_to_empty; | |
39 | int time_to_empty_avg; | |
40 | int time_to_full; | |
41 | int charge_full; | |
42 | int cycle_count; | |
43 | int capacity; | |
44 | int energy; | |
45 | int flags; | |
46 | int power_avg; | |
47 | int health; | |
48 | }; | |
49 | ||
50 | struct bq27xxx_device_info { | |
51 | struct device *dev; | |
9aafabc7 | 52 | int id; |
703df6c0 AD |
53 | enum bq27xxx_chip chip; |
54 | const char *name; | |
55 | struct bq27xxx_access_methods bus; | |
56 | struct bq27xxx_reg_cache cache; | |
57 | int charge_design_full; | |
58 | unsigned long last_update; | |
59 | struct delayed_work work; | |
60 | struct power_supply *bat; | |
61 | struct mutex lock; | |
62 | u8 *regs; | |
63 | }; | |
64 | ||
65 | void bq27xxx_battery_update(struct bq27xxx_device_info *di); | |
66 | int bq27xxx_battery_setup(struct bq27xxx_device_info *di); | |
67 | void bq27xxx_battery_teardown(struct bq27xxx_device_info *di); | |
68 | ||
7fb7ba58 | 69 | #endif |