summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXin Xie <xxie@nvidia.com>2013-06-07 17:23:44 -0700
committerRiham Haidar <rhaidar@nvidia.com>2013-06-12 18:54:02 -0700
commitf35ad0bb4b8248c5eefc75db23d19d7177deb75b (patch)
tree02566fe5f30dcfa2b2392a17715efff026bb9707
parentc0df5921513d54581b52d4a674079176e0ecde41 (diff)
power: max77665-charger: config OC current from board file
Currently we hard wired the OC current to 3.25A on MAX77665. But different board could use different setting, or do not use MAX77665 to generate OC alert. This patch use the board file to config OC current. bug 1298931 Change-Id: I87872b6c7bc052efec680683dee6cde571359d84 Signed-off-by: Xin Xie <xxie@nvidia.com> Reviewed-on: http://git-master/r/237769 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Laxman Dewangan <ldewangan@nvidia.com>
-rw-r--r--drivers/power/max77665-charger.c4
-rw-r--r--include/linux/max77665-charger.h13
2 files changed, 15 insertions, 2 deletions
diff --git a/drivers/power/max77665-charger.c b/drivers/power/max77665-charger.c
index afcd19d4561f..98712a97da25 100644
--- a/drivers/power/max77665-charger.c
+++ b/drivers/power/max77665-charger.c
@@ -835,10 +835,10 @@ static __devinit int max77665_battery_probe(struct platform_device *pdev)
goto free_irq;
}
- /* Set OC threshold to 3250mA */
+ /* Set OC threshold */
ret = max77665_update_bits(charger->dev->parent,
MAX77665_I2C_SLAVE_PMIC, MAX77665_CHG_CNFG_12,
- BAT_TO_SYS_OVERCURRENT_MASK, BAT_TO_SYS_OVERCURRENT_3A25);
+ BAT_TO_SYS_OVERCURRENT_MASK, charger->plat_data->oc_alert);
if (ret < 0) {
dev_err(charger->dev, "CHG_CNFG_12 update failed: %d\n", ret);
goto remove_sysfs;
diff --git a/include/linux/max77665-charger.h b/include/linux/max77665-charger.h
index c77dbe6d274a..dece43e40441 100644
--- a/include/linux/max77665-charger.h
+++ b/include/linux/max77665-charger.h
@@ -103,6 +103,7 @@
#define MAX77665_CHG_CNFG_12 0xc3
#define BAT_TO_SYS_OVERCURRENT_MASK 0x7
+#define BAT_TO_SYS_OVERCURRENT_DISABLED (0x0 << 0)
#define BAT_TO_SYS_OVERCURRENT_3A00 (0x1 << 0)
#define BAT_TO_SYS_OVERCURRENT_3A25 (0x2 << 0)
#define BAT_TO_SYS_OVERCURRENT_3A50 (0x3 << 0)
@@ -135,6 +136,17 @@ enum max77665_mode {
OTG,
};
+enum max77665_oc_alert_setting {
+ OC_DISABLED = BAT_TO_SYS_OVERCURRENT_DISABLED,
+ OC_3A00 = BAT_TO_SYS_OVERCURRENT_3A00,
+ OC_3A25 = BAT_TO_SYS_OVERCURRENT_3A25,
+ OC_3A50 = BAT_TO_SYS_OVERCURRENT_3A50,
+ OC_3A75 = BAT_TO_SYS_OVERCURRENT_3A75,
+ OC_4A00 = BAT_TO_SYS_OVERCURRENT_4A00,
+ OC_4A25 = BAT_TO_SYS_OVERCURRENT_4A25,
+ OC_4A75 = BAT_TO_SYS_OVERCURRENT_4A75
+};
+
struct max77665_muic_platform_data {
const char *ext_conn_name;
};
@@ -160,6 +172,7 @@ struct max77665_charger_plat_data {
int num_consumer_supplies;
void (*update_status)(int);
bool is_battery_present;
+ enum max77665_oc_alert_setting oc_alert;
};
static inline bool charging_is_on(int val)