root/include/linux/power/bq27xxx_battery.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   1 /* SPDX-License-Identifier: GPL-2.0 */
   2 #ifndef __LINUX_BQ27X00_BATTERY_H__
   3 #define __LINUX_BQ27X00_BATTERY_H__
   4 
   5 enum bq27xxx_chip {
   6         BQ27000 = 1, /* bq27000, bq27200 */
   7         BQ27010, /* bq27010, bq27210 */
   8         BQ2750X, /* bq27500 deprecated alias */
   9         BQ2751X, /* bq27510, bq27520 deprecated alias */
  10         BQ2752X,
  11         BQ27500, /* bq27500/1 */
  12         BQ27510G1, /* bq27510G1 */
  13         BQ27510G2, /* bq27510G2 */
  14         BQ27510G3, /* bq27510G3 */
  15         BQ27520G1, /* bq27520G1 */
  16         BQ27520G2, /* bq27520G2 */
  17         BQ27520G3, /* bq27520G3 */
  18         BQ27520G4, /* bq27520G4 */
  19         BQ27521, /* bq27521 */
  20         BQ27530, /* bq27530, bq27531 */
  21         BQ27531,
  22         BQ27541, /* bq27541, bq27542, bq27546, bq27742 */
  23         BQ27542,
  24         BQ27546,
  25         BQ27742,
  26         BQ27545, /* bq27545 */
  27         BQ27411,
  28         BQ27421, /* bq27421, bq27441, bq27621 */
  29         BQ27425,
  30         BQ27426,
  31         BQ27441,
  32         BQ27621,
  33 };
  34 
  35 struct bq27xxx_device_info;
  36 struct bq27xxx_access_methods {
  37         int (*read)(struct bq27xxx_device_info *di, u8 reg, bool single);
  38         int (*write)(struct bq27xxx_device_info *di, u8 reg, int value, bool single);
  39         int (*read_bulk)(struct bq27xxx_device_info *di, u8 reg, u8 *data, int len);
  40         int (*write_bulk)(struct bq27xxx_device_info *di, u8 reg, u8 *data, int len);
  41 };
  42 
  43 struct bq27xxx_reg_cache {
  44         int temperature;
  45         int time_to_empty;
  46         int time_to_empty_avg;
  47         int time_to_full;
  48         int charge_full;
  49         int cycle_count;
  50         int capacity;
  51         int energy;
  52         int flags;
  53         int power_avg;
  54         int health;
  55 };
  56 
  57 struct bq27xxx_device_info {
  58         struct device *dev;
  59         int id;
  60         enum bq27xxx_chip chip;
  61         u32 opts;
  62         const char *name;
  63         struct bq27xxx_dm_reg *dm_regs;
  64         u32 unseal_key;
  65         struct bq27xxx_access_methods bus;
  66         struct bq27xxx_reg_cache cache;
  67         int charge_design_full;
  68         unsigned long last_update;
  69         struct delayed_work work;
  70         struct power_supply *bat;
  71         struct list_head list;
  72         struct mutex lock;
  73         u8 *regs;
  74 };
  75 
  76 void bq27xxx_battery_update(struct bq27xxx_device_info *di);
  77 int bq27xxx_battery_setup(struct bq27xxx_device_info *di);
  78 void bq27xxx_battery_teardown(struct bq27xxx_device_info *di);
  79 
  80 #endif

/* [<][>][^][v][top][bottom][index][help] */