]> git.karo-electronics.de Git - linux-beck.git/commitdiff
power: bq24735-charger: add 'ti,external-control' option
authorJonathan Tinkham <sctincman@gmail.com>
Wed, 3 Feb 2016 06:03:45 +0000 (23:03 -0700)
committerSebastian Reichel <sre@kernel.org>
Mon, 15 Feb 2016 05:36:10 +0000 (06:36 +0100)
Implement an 'ti,external-control' option for when the charger
shouldn't be configured by the host.

Signed-off-by: Jonathan Tinkham <sctincman@gmail.com>
Signed-off-by: Sebastian Reichel <sre@kernel.org>
drivers/power/bq24735-charger.c
include/linux/power/bq24735-charger.h

index 022a09ceab73b7b319fa05dec590ca770d60f594..fa454c19ce1747ff27f090766b4acf40c0481a3a 100644 (file)
@@ -106,6 +106,9 @@ static int bq24735_update_word(struct i2c_client *client, u8 reg,
 
 static inline int bq24735_enable_charging(struct bq24735 *charger)
 {
+       if (charger->pdata->ext_control)
+               return 0;
+
        return bq24735_update_word(charger->client, BQ24735_CHG_OPT,
                                   BQ24735_CHG_OPT_CHARGE_DISABLE,
                                   ~BQ24735_CHG_OPT_CHARGE_DISABLE);
@@ -113,6 +116,9 @@ static inline int bq24735_enable_charging(struct bq24735 *charger)
 
 static inline int bq24735_disable_charging(struct bq24735 *charger)
 {
+       if (charger->pdata->ext_control)
+               return 0;
+
        return bq24735_update_word(charger->client, BQ24735_CHG_OPT,
                                   BQ24735_CHG_OPT_CHARGE_DISABLE,
                                   BQ24735_CHG_OPT_CHARGE_DISABLE);
@@ -124,6 +130,9 @@ static int bq24735_config_charger(struct bq24735 *charger)
        int ret;
        u16 value;
 
+       if (pdata->ext_control)
+               return 0;
+
        if (pdata->charge_current) {
                value = pdata->charge_current & BQ24735_CHARGE_CURRENT_MASK;
 
@@ -322,6 +331,8 @@ static struct bq24735_platform *bq24735_parse_dt_data(struct i2c_client *client)
        if (!ret)
                pdata->input_current = val;
 
+       pdata->ext_control = of_property_read_bool(np, "ti,external-control");
+
        return pdata;
 }
 
index f536164a60699c035e8b09ad3508e85c488dca6a..6b750c1a45fab6e5c4d094612a30d1064a275404 100644 (file)
@@ -32,6 +32,8 @@ struct bq24735_platform {
        int status_gpio_active_low;
        bool status_gpio_valid;
 
+       bool ext_control;
+
        char **supplied_to;
        size_t num_supplicants;
 };