mfd: axp20x: Add support for fuel gauge cell driver
authorTodd E Brandt <todd.e.brandt@linux.intel.com>
Wed, 7 Jan 2015 21:25:52 +0000 (13:25 -0800)
committerLee Jones <lee.jones@linaro.org>
Thu, 22 Jan 2015 15:56:05 +0000 (15:56 +0000)
mfd/axp20x: add support for fuel gauge cell

Register definitions and platform data structure
for fuel gauge cell devices.

Signed-off-by: Todd Brandt <todd.e.brandt@intel.com>
Acked-by: Jacob Pan <jacob.jun.pan@linux.intel.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
include/linux/mfd/axp20x.h

index 81589d176ae873c3dbd9cec1c27bdfcadb3679fb..dfabd6db7ddf7c1cba523a022aa5dcf008671652 100644 (file)
@@ -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 */