summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorGregory Hermant <gregory.hermant@calao-systems.com>2012-01-09 16:05:16 +0100
committerPhilippe Langlais <philippe.langlais@stericsson.com>2012-05-22 11:01:16 +0200
commit6a0539427c26331555fb63ac77fed4685fb4c4b7 (patch)
tree2625e0f1f792efa17108c2bc26b4f9136d930031 /drivers
parent4d065fcbb3d121c28d06e2201cf9c3fc93d848c1 (diff)
Add support for the 9100 Li-ION battery and adjust the bkup battery charger parameters
Signed-off-by: Gregory Hermant <gregory.hermant@calao-systems.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/power/Kconfig6
-rw-r--r--drivers/power/ab8500_charger.c18
2 files changed, 19 insertions, 5 deletions
diff --git a/drivers/power/Kconfig b/drivers/power/Kconfig
index 0626dfa9ff6..56dfe432b74 100644
--- a/drivers/power/Kconfig
+++ b/drivers/power/Kconfig
@@ -308,6 +308,12 @@ config AB8500_BATTERY_THERM_ON_BATCTRL
Say Y to enable battery temperature measurements using
thermistor connected on BATCTRL ADC.
+config AB8500_9100_LI_ION_BATTERY
+ bool "Enable support of the 9100 Li-ion battery charging"
+ depends on AB8500_BM
+ help
+ Say Y to enable support of the 9100 Li-ion battery charging.
+
config AB5500_BM
bool "AB5500 Battery Management Driver"
depends on AB5500_CORE && AB5500_GPADC && MACH_U5500
diff --git a/drivers/power/ab8500_charger.c b/drivers/power/ab8500_charger.c
index c355738a31a..13f2975445f 100644
--- a/drivers/power/ab8500_charger.c
+++ b/drivers/power/ab8500_charger.c
@@ -29,6 +29,7 @@
#include <linux/mfd/abx500/ab8500-gpadc.h>
#include <linux/mfd/abx500/ux500_chargalg.h>
#include <linux/usb/otg.h>
+#include <asm/mach-types.h>
/* Charger constants */
#define NO_PW_CONN 0
@@ -2354,11 +2355,18 @@ static int ab8500_charger_init_hw_registers(struct ab8500_charger *di)
}
/* Backup battery voltage and current */
- ret = abx500_set_register_interruptible(di->dev,
- AB8500_RTC,
- AB8500_RTC_BACKUP_CHG_REG,
- di->bat->bkup_bat_v |
- di->bat->bkup_bat_i);
+ if (machine_is_snowball())
+ ret = abx500_set_register_interruptible(di->dev,
+ AB8500_RTC,
+ AB8500_RTC_BACKUP_CHG_REG,
+ BUP_VCH_SEL_3P1V |
+ BUP_ICH_SEL_150UA);
+ else
+ ret = abx500_set_register_interruptible(di->dev,
+ AB8500_RTC,
+ AB8500_RTC_BACKUP_CHG_REG,
+ di->bat->bkup_bat_v |
+ di->bat->bkup_bat_i);
if (ret) {
dev_err(di->dev, "failed to setup backup battery charging\n");
goto out;