[PATCH 0/4] AB8500 Battery Management Driver

From: Arun Murthy
Date: Wed Feb 29 2012 - 11:25:33 EST


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

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/