For better understanding, use specific function and name
rather than magic number

Signed-off-by: Milo(Woogyom) Kim <[email protected]>
---
 drivers/power/lp8727_charger.c |   31 ++++++++++++++++++++++++++-----
 1 file changed, 26 insertions(+), 5 deletions(-)

diff --git a/drivers/power/lp8727_charger.c b/drivers/power/lp8727_charger.c
index 0b0094a..78cec53 100644
--- a/drivers/power/lp8727_charger.c
+++ b/drivers/power/lp8727_charger.c
@@ -55,6 +55,7 @@
 
 /* STATUS2 register */
 #define TEMP_STAT      (3 << 5)
+#define TEMP_SHIFT     5
 
 #define LP8788_NUM_INTREGS             2
 #define DEFAULT_DEBOUNCE_MSEC          270
@@ -75,6 +76,13 @@ enum lp8727_chg_stat {
        EOC,
 };
 
+enum lp8727_die_temp {
+       LP8788_TEMP_75C,
+       LP8788_TEMP_95C,
+       LP8788_TEMP_115C,
+       LP8788_TEMP_135C,
+};
+
 struct lp8727_psy {
        struct power_supply ac;
        struct power_supply usb;
@@ -313,12 +321,25 @@ static int lp8727_charger_get_property(struct 
power_supply *psy,
        return 0;
 }
 
+static bool lp8727_is_high_temperature(enum lp8727_die_temp temp)
+{
+       switch (temp) {
+       case LP8788_TEMP_95C:
+       case LP8788_TEMP_115C:
+       case LP8788_TEMP_135C:
+               return true;
+       default:
+               return false;
+       }
+}
+
 static int lp8727_battery_get_property(struct power_supply *psy,
                                       enum power_supply_property psp,
                                       union power_supply_propval *val)
 {
        struct lp8727_chg *pchg = dev_get_drvdata(psy->dev->parent);
        struct lp8727_platform_data *pdata = pchg->pdata;
+       enum lp8727_die_temp temp;
        u8 read;
 
        switch (psp) {
@@ -335,11 +356,11 @@ static int lp8727_battery_get_property(struct 
power_supply *psy,
                break;
        case POWER_SUPPLY_PROP_HEALTH:
                lp8727_read_byte(pchg, STATUS2, &read);
-               read = (read & TEMP_STAT) >> 5;
-               if (read >= 0x1 && read <= 0x3)
-                       val->intval = POWER_SUPPLY_HEALTH_OVERHEAT;
-               else
-                       val->intval = POWER_SUPPLY_HEALTH_GOOD;
+               temp = (read & TEMP_STAT) >> TEMP_SHIFT;
+
+               val->intval = lp8727_is_high_temperature(temp) ?
+                       POWER_SUPPLY_HEALTH_OVERHEAT :
+                       POWER_SUPPLY_HEALTH_GOOD;
                break;
        case POWER_SUPPLY_PROP_PRESENT:
                if (!pdata)
-- 
1.7.9.5


Best Regards,
Milo


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

Reply via email to