|
44 | 44 | * https://www.ti.com/product/bq27441-g1
|
45 | 45 | * https://www.ti.com/product/bq27621-g1
|
46 | 46 | * https://www.ti.com/product/bq27z561
|
| 47 | + * https://www.ti.com/product/bq28z610 |
47 | 48 | */
|
48 | 49 |
|
49 | 50 | #include <linux/device.h>
|
@@ -462,6 +463,26 @@ static u8
|
462 | 463 | [BQ27XXX_REG_DCAP] = 0x3c,
|
463 | 464 | [BQ27XXX_REG_AP] = 0x22,
|
464 | 465 | BQ27XXX_DM_REG_ROWS,
|
| 466 | + }, |
| 467 | + bq28z610_regs[BQ27XXX_REG_MAX] = { |
| 468 | + [BQ27XXX_REG_CTRL] = 0x00, |
| 469 | + [BQ27XXX_REG_TEMP] = 0x06, |
| 470 | + [BQ27XXX_REG_INT_TEMP] = INVALID_REG_ADDR, |
| 471 | + [BQ27XXX_REG_VOLT] = 0x08, |
| 472 | + [BQ27XXX_REG_AI] = 0x14, |
| 473 | + [BQ27XXX_REG_FLAGS] = 0x0a, |
| 474 | + [BQ27XXX_REG_TTE] = 0x16, |
| 475 | + [BQ27XXX_REG_TTF] = 0x18, |
| 476 | + [BQ27XXX_REG_TTES] = INVALID_REG_ADDR, |
| 477 | + [BQ27XXX_REG_TTECP] = INVALID_REG_ADDR, |
| 478 | + [BQ27XXX_REG_NAC] = INVALID_REG_ADDR, |
| 479 | + [BQ27XXX_REG_FCC] = 0x12, |
| 480 | + [BQ27XXX_REG_CYCT] = 0x2a, |
| 481 | + [BQ27XXX_REG_AE] = 0x22, |
| 482 | + [BQ27XXX_REG_SOC] = 0x2c, |
| 483 | + [BQ27XXX_REG_DCAP] = 0x3c, |
| 484 | + [BQ27XXX_REG_AP] = 0x22, |
| 485 | + BQ27XXX_DM_REG_ROWS, |
465 | 486 | };
|
466 | 487 |
|
467 | 488 | static enum power_supply_property bq27000_props[] = {
|
@@ -717,6 +738,25 @@ static enum power_supply_property bq27z561_props[] = {
|
717 | 738 | POWER_SUPPLY_PROP_MANUFACTURER,
|
718 | 739 | };
|
719 | 740 |
|
| 741 | +static enum power_supply_property bq28z610_props[] = { |
| 742 | + POWER_SUPPLY_PROP_STATUS, |
| 743 | + POWER_SUPPLY_PROP_PRESENT, |
| 744 | + POWER_SUPPLY_PROP_VOLTAGE_NOW, |
| 745 | + POWER_SUPPLY_PROP_CURRENT_NOW, |
| 746 | + POWER_SUPPLY_PROP_CAPACITY, |
| 747 | + POWER_SUPPLY_PROP_CAPACITY_LEVEL, |
| 748 | + POWER_SUPPLY_PROP_TEMP, |
| 749 | + POWER_SUPPLY_PROP_TIME_TO_EMPTY_NOW, |
| 750 | + POWER_SUPPLY_PROP_TIME_TO_FULL_NOW, |
| 751 | + POWER_SUPPLY_PROP_TECHNOLOGY, |
| 752 | + POWER_SUPPLY_PROP_CHARGE_FULL, |
| 753 | + POWER_SUPPLY_PROP_CHARGE_FULL_DESIGN, |
| 754 | + POWER_SUPPLY_PROP_CYCLE_COUNT, |
| 755 | + POWER_SUPPLY_PROP_POWER_AVG, |
| 756 | + POWER_SUPPLY_PROP_HEALTH, |
| 757 | + POWER_SUPPLY_PROP_MANUFACTURER, |
| 758 | +}; |
| 759 | + |
720 | 760 | struct bq27xxx_dm_reg {
|
721 | 761 | u8 subclass_id;
|
722 | 762 | u8 offset;
|
@@ -813,6 +853,7 @@ static struct bq27xxx_dm_reg bq27621_dm_regs[] = {
|
813 | 853 | #endif
|
814 | 854 |
|
815 | 855 | #define bq27z561_dm_regs 0
|
| 856 | +#define bq28z610_dm_regs 0 |
816 | 857 |
|
817 | 858 | #define BQ27XXX_O_ZERO 0x00000001
|
818 | 859 | #define BQ27XXX_O_OTDC 0x00000002 /* has OTC/OTD overtemperature flags */
|
@@ -865,6 +906,7 @@ static struct {
|
865 | 906 | [BQ27441] = BQ27XXX_DATA(bq27441, 0x80008000, BQ27XXX_O_UTOT | BQ27XXX_O_CFGUP | BQ27XXX_O_RAM),
|
866 | 907 | [BQ27621] = BQ27XXX_DATA(bq27621, 0x80008000, BQ27XXX_O_UTOT | BQ27XXX_O_CFGUP | BQ27XXX_O_RAM),
|
867 | 908 | [BQ27Z561] = BQ27XXX_DATA(bq27z561, 0 , BQ27Z561_O_BITS),
|
| 909 | + [BQ28Z610] = BQ27XXX_DATA(bq28z610, 0 , BQ27Z561_O_BITS), |
868 | 910 | };
|
869 | 911 |
|
870 | 912 | static DEFINE_MUTEX(bq27xxx_list_lock);
|
|
0 commit comments