diff options
author | Xin Xie <xxie@nvidia.com> | 2013-06-07 17:23:44 -0700 |
---|---|---|
committer | Riham Haidar <rhaidar@nvidia.com> | 2013-06-12 18:54:02 -0700 |
commit | f35ad0bb4b8248c5eefc75db23d19d7177deb75b (patch) | |
tree | 02566fe5f30dcfa2b2392a17715efff026bb9707 | |
parent | c0df5921513d54581b52d4a674079176e0ecde41 (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.c | 4 | ||||
-rw-r--r-- | include/linux/max77665-charger.h | 13 |
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) |