mfd/axp20x: add support for fuel gauge cell
PATCH 2/2 mfd/axp20x: add support for fuel gauge cell
mfd/axp20x: add support for fuel gauge cell
Register definitions and platform data structure
for fuel gauge cell devices.
Signed-off-by Todd Brandt <[email protected]>
----
include/linux/mfd/axp20x.h | 43 +++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 41 insertions(+), 2 deletions(-)
include/linux/mfd/axp20x.h +41 -2
@@ -124,10 +124,27 @@ enum {#define AXP288_PMIC_ADC_H 0x56#define AXP288_PMIC_ADC_L 0x57#define AXP288_ADC_TS_PIN_CTRL 0x84 -#define AXP288_PMIC_ADC_EN 0x84 -#define AXP288_FG_TUNE5 0xed +/* Fuel Gauge */ +#define AXP288_FG_RDC1_REG 0xba +#define AXP288_FG_RDC0_REG 0xbb +#define AXP288_FG_OCVH_REG 0xbc +#define AXP288_FG_OCVL_REG 0xbd +#define AXP288_FG_OCV_CURVE_REG 0xc0 +#define AXP288_FG_DES_CAP1_REG 0xe0 +#define AXP288_FG_DES_CAP0_REG 0xe1 +#define AXP288_FG_CC_MTR1_REG 0xe2 +#define AXP288_FG_CC_MTR0_REG 0xe3 +#define AXP288_FG_OCV_CAP_REG 0xe4 +#define AXP288_FG_CC_CAP_REG 0xe5 +#define AXP288_FG_LOW_CAP_REG 0xe6 +#define AXP288_FG_TUNE0 0xe8 +#define AXP288_FG_TUNE1 0xe9 +#define AXP288_FG_TUNE2 0xea +#define AXP288_FG_TUNE3 0xeb +#define AXP288_FG_TUNE4 0xec +#define AXP288_FG_TUNE5 0xed/* Regulators IDs */ enum {
@@ -236,4 +253,26 @@ struct axp20x_dev { const struct regmap_irq_chip *regmap_irq_chip; }; +#define BATTID_LEN 64 +#define OCV_CURVE_SIZE 32 +#define MAX_THERM_CURVE_SIZE 25 +#define PD_DEF_MIN_TEMP 0 +#define PD_DEF_MAX_TEMP 55 + +struct axp20x_fg_pdata { +char battid[BATTID_LEN +1 ]; +int design_cap; +int min_volt; +int max_volt; +int max_temp; +int min_temp; +int cap1; +int cap0; +int rdc1; +int rdc0; +int ocv_curve[OCV_CURVE_SIZE ]; +int tcsz; +int thermistor_curve[MAX_THERM_CURVE_SIZE ][2 ]; +}; +#endif /* __LINUX_MFD_AXP20X_H */