power: add battery type selection and check lge battery
lk should support battery check to enable this feature.
if you want to use it, set CONFIG_LGE_PM_BATTERY_ID_CHECKER=y
in defconfig
Change-Id: Ie92c612e197aeede39b8da526332add3fab15a19
diff --git a/drivers/power/pm8921-charger.c b/drivers/power/pm8921-charger.c
index c983389..a74459d 100644
--- a/drivers/power/pm8921-charger.c
+++ b/drivers/power/pm8921-charger.c
@@ -31,6 +31,10 @@
#include <mach/msm_xo.h>
#include <mach/msm_hsusb.h>
+#ifdef CONFIG_LGE_PM_BATTERY_ID_CHECKER
+#include <mach/board_lge.h>
+#endif
+
#define CHG_BUCK_CLOCK_CTRL 0x14
#define PBL_ACCESS1 0x04
@@ -989,6 +993,7 @@
}
}
+#ifndef CONFIG_LGE_PM_BATTERY_ID_CHECKER
static int64_t read_battery_id(struct pm8921_chg_chip *chip)
{
int rc;
@@ -1004,11 +1009,20 @@
result.measurement);
return result.physical;
}
+#endif
static int is_battery_valid(struct pm8921_chg_chip *chip)
{
+#ifndef CONFIG_LGE_PM_BATTERY_ID_CHECKER
int64_t rc;
+#endif
+#ifdef CONFIG_LGE_PM_BATTERY_ID_CHECKER
+ if (is_lge_battery())
+ return 1;
+ else
+ return 0;
+#else
if (chip->batt_id_min == 0 && chip->batt_id_max == 0)
return 1;
@@ -1025,6 +1039,7 @@
return 0;
}
return 1;
+#endif
}
static void check_battery_valid(struct pm8921_chg_chip *chip)
@@ -1289,6 +1304,11 @@
static int get_prop_batt_present(struct pm8921_chg_chip *chip)
{
+
+#ifdef CONFIG_LGE_PM_BATTERY_ID_CHECKER
+ if (is_lge_battery() == false)
+ return 0;
+#endif
return pm_chg_get_rt_status(chip, BATT_INSERTED_IRQ);
}
@@ -1341,6 +1361,11 @@
{
int temp;
+#ifdef CONFIG_LGE_PM_BATTERY_ID_CHECKER
+ if (is_lge_battery() == false)
+ return POWER_SUPPLY_HEALTH_UNSPEC_FAILURE;
+#endif
+
temp = pm_chg_get_rt_status(chip, BATTTEMP_HOT_IRQ);
if (temp)
return POWER_SUPPLY_HEALTH_OVERHEAT;