power: supply: bq27xxx: Add support for BQ27411
authorLiu Xiang <liu.xiang6@zte.com.cn>
Sun, 22 Jul 2018 13:33:56 +0000 (21:33 +0800)
committerSebastian Reichel <sre@kernel.org>
Thu, 20 Sep 2018 09:35:40 +0000 (11:35 +0200)
According to the datasheet, bq27411 is similar to bq27421.

Signed-off-by: Liu Xiang <liu.xiang6@zte.com.cn>
Reviewed-by: Andrew F. Davis <afd@ti.com>
Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
Documentation/devicetree/bindings/power/supply/bq27xxx.txt
drivers/power/supply/bq27xxx_battery.c
drivers/power/supply/bq27xxx_battery_i2c.c
include/linux/power/bq27xxx_battery.h

index 37994fdb18cae7afec76cded46b009e11de8dfaf..4fa8e08df2b6c75deb84716c178946cc0e3ac304 100644 (file)
@@ -23,6 +23,7 @@ Required properties:
  * "ti,bq27546" - BQ27546
  * "ti,bq27742" - BQ27742
  * "ti,bq27545" - BQ27545
+ * "ti,bq27411" - BQ27411
  * "ti,bq27421" - BQ27421
  * "ti,bq27425" - BQ27425
  * "ti,bq27426" - BQ27426
index f022e1b550dfe6f736b8b226516047c1786e1cea..6dbbe95844a396b2cb7c55d3104598f5a216478e 100644 (file)
@@ -432,6 +432,7 @@ static u8
                [BQ27XXX_REG_AP] = 0x18,
                BQ27XXX_DM_REG_ROWS,
        };
+#define bq27411_regs bq27421_regs
 #define bq27425_regs bq27421_regs
 #define bq27426_regs bq27421_regs
 #define bq27441_regs bq27421_regs
@@ -665,6 +666,7 @@ static enum power_supply_property bq27421_props[] = {
        POWER_SUPPLY_PROP_CHARGE_FULL_DESIGN,
        POWER_SUPPLY_PROP_MANUFACTURER,
 };
+#define bq27411_props bq27421_props
 #define bq27425_props bq27421_props
 #define bq27426_props bq27421_props
 #define bq27441_props bq27421_props
@@ -725,6 +727,12 @@ static struct bq27xxx_dm_reg bq27545_dm_regs[] = {
 #define bq27545_dm_regs 0
 #endif
 
+static struct bq27xxx_dm_reg bq27411_dm_regs[] = {
+       [BQ27XXX_DM_DESIGN_CAPACITY]   = { 82, 10, 2,    0, 32767 },
+       [BQ27XXX_DM_DESIGN_ENERGY]     = { 82, 12, 2,    0, 32767 },
+       [BQ27XXX_DM_TERMINATE_VOLTAGE] = { 82, 16, 2, 2800,  3700 },
+};
+
 static struct bq27xxx_dm_reg bq27421_dm_regs[] = {
        [BQ27XXX_DM_DESIGN_CAPACITY]   = { 82, 10, 2,    0,  8000 },
        [BQ27XXX_DM_DESIGN_ENERGY]     = { 82, 12, 2,    0, 32767 },
@@ -802,6 +810,7 @@ static struct {
        [BQ27546]   = BQ27XXX_DATA(bq27546,   0         , BQ27XXX_O_OTDC),
        [BQ27742]   = BQ27XXX_DATA(bq27742,   0         , BQ27XXX_O_OTDC),
        [BQ27545]   = BQ27XXX_DATA(bq27545,   0x04143672, BQ27XXX_O_OTDC),
+       [BQ27411]   = BQ27XXX_DATA(bq27411,   0x80008000, BQ27XXX_O_UTOT | BQ27XXX_O_CFGUP | BQ27XXX_O_RAM),
        [BQ27421]   = BQ27XXX_DATA(bq27421,   0x80008000, BQ27XXX_O_UTOT | BQ27XXX_O_CFGUP | BQ27XXX_O_RAM),
        [BQ27425]   = BQ27XXX_DATA(bq27425,   0x04143672, BQ27XXX_O_UTOT | BQ27XXX_O_CFGUP),
        [BQ27426]   = BQ27XXX_DATA(bq27426,   0x80008000, BQ27XXX_O_UTOT | BQ27XXX_O_CFGUP | BQ27XXX_O_RAM),
index 40069128ad44f06ac19133b99101cdb378d8350a..2677c38a8a42453c970d90ed3e45572330b7a59f 100644 (file)
@@ -247,6 +247,7 @@ static const struct i2c_device_id bq27xxx_i2c_id_table[] = {
        { "bq27546", BQ27546 },
        { "bq27742", BQ27742 },
        { "bq27545", BQ27545 },
+       { "bq27411", BQ27411 },
        { "bq27421", BQ27421 },
        { "bq27425", BQ27425 },
        { "bq27426", BQ27426 },
@@ -279,6 +280,7 @@ static const struct of_device_id bq27xxx_battery_i2c_of_match_table[] = {
        { .compatible = "ti,bq27546" },
        { .compatible = "ti,bq27742" },
        { .compatible = "ti,bq27545" },
+       { .compatible = "ti,bq27411" },
        { .compatible = "ti,bq27421" },
        { .compatible = "ti,bq27425" },
        { .compatible = "ti,bq27426" },
index d6355f49fbae66c79aed66d157d00678db700617..507c5e214c42412da075442b260ad002e7fcb766 100644 (file)
@@ -24,6 +24,7 @@ enum bq27xxx_chip {
        BQ27546,
        BQ27742,
        BQ27545, /* bq27545 */
+       BQ27411,
        BQ27421, /* bq27421, bq27441, bq27621 */
        BQ27425,
        BQ27426,