Messages in this thread | | | From | Arun Murthy <> | Subject | [PATCH 0/4] AB8500 Battery Management Driver | Date | Wed, 29 Feb 2012 21:54:24 +0530 |
| |
Technical reference manual is available at http://www.stericsson.com/developers/CD00291561_UM1031_AB8500_user_manual-rev5_CTDS_public.pdf
AB8500 battery driver consists of Generic charging algorithm(abx500-chargalg.c) Charger driver(ab8500-charger.c) Fuel Gauge driver(ab8500-fg.c) Battery temperature driver(ab8500-btemp.c) The power supply class driver can act as a supply as well as supplicant. Any state change in one power supply class driver can be notified to its supplicants using notification mechanism provided by Power Supply Class frame work. Each Power supply class driver lists its supplicant names in "supplied_to" struct member, and each power_supply_changed() call issued by power supply class driver will notify supplicants via external_power_changed callback.
Charging Algorithm: Hardware independent driver Enables/Disables charger and kicks charger watchdog Supports both AC/Mains and USB charging. Main charger takes precedense over USB charging Supports CCCV charging End Of Charge(EOC) detection Maintenance charging Safety checks and measurements taken charging safety timer expired charger & battery temperature high/low charging watchdog expired charger & battery over voltage battery removal
Fuel Gauge: Voltage mode When current consumption is low, battery voltage is used to derive the battery capacity and also during start-up this mode is used. Fuel Gauge mode When current consumption is high or while charging fuel gauge is used to obtain accumulated charge. Using this and the known battery full charge, capacity is calculated.
Arun Murthy (4): power: abx500-chargalg: Add abx500 charging algorithm power: ab8500-charger: AB8500 charger driver power: ab8500-fg: A8500 fuel gauge driver power: ab8500-btemp: AB8500 battery temperature driver
drivers/power/Kconfig | 12 + drivers/power/Makefile | 1 + drivers/power/ab8500_btemp.c | 1123 ++++++++++++ drivers/power/ab8500_charger.c | 2789 +++++++++++++++++++++++++++++ drivers/power/ab8500_fg.c | 2636 +++++++++++++++++++++++++++ drivers/power/abx500_chargalg.c | 1921 ++++++++++++++++++++ include/linux/mfd/abx500.h | 273 +++ include/linux/mfd/abx500/ab8500-bm.h | 554 ++++++ include/linux/mfd/abx500/ux500_chargalg.h | 38 + 9 files changed, 9347 insertions(+), 0 deletions(-) create mode 100644 drivers/power/ab8500_btemp.c create mode 100644 drivers/power/ab8500_charger.c create mode 100644 drivers/power/ab8500_fg.c create mode 100644 drivers/power/abx500_chargalg.c create mode 100644 include/linux/mfd/abx500/ab8500-bm.h create mode 100644 include/linux/mfd/abx500/ux500_chargalg.h
-- 1.7.4.3
| |