aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/power/max17042_battery.h56
1 files changed, 56 insertions, 0 deletions
diff --git a/include/linux/power/max17042_battery.h b/include/linux/power/max17042_battery.h
index 67eeada71073..e01b167e66f0 100644
--- a/include/linux/power/max17042_battery.h
+++ b/include/linux/power/max17042_battery.h
@@ -27,6 +27,8 @@
27#define MAX17042_BATTERY_FULL (100) 27#define MAX17042_BATTERY_FULL (100)
28#define MAX17042_DEFAULT_SNS_RESISTOR (10000) 28#define MAX17042_DEFAULT_SNS_RESISTOR (10000)
29 29
30#define MAX17042_CHARACTERIZATION_DATA_SIZE 48
31
30enum max17042_register { 32enum max17042_register {
31 MAX17042_STATUS = 0x00, 33 MAX17042_STATUS = 0x00,
32 MAX17042_VALRT_Th = 0x01, 34 MAX17042_VALRT_Th = 0x01,
@@ -124,10 +126,64 @@ struct max17042_reg_data {
124 u16 data; 126 u16 data;
125}; 127};
126 128
129struct max17042_config_data {
130 /* External current sense resistor value in milli-ohms */
131 u32 cur_sense_val;
132
133 /* A/D measurement */
134 u16 tgain; /* 0x2C */
135 u16 toff; /* 0x2D */
136 u16 cgain; /* 0x2E */
137 u16 coff; /* 0x2F */
138
139 /* Alert / Status */
140 u16 valrt_thresh; /* 0x01 */
141 u16 talrt_thresh; /* 0x02 */
142 u16 soc_alrt_thresh; /* 0x03 */
143 u16 config; /* 0x01D */
144 u16 shdntimer; /* 0x03F */
145
146 /* App data */
147 u16 design_cap; /* 0x18 */
148 u16 ichgt_term; /* 0x1E */
149
150 /* MG3 config */
151 u16 at_rate; /* 0x04 */
152 u16 learn_cfg; /* 0x28 */
153 u16 filter_cfg; /* 0x29 */
154 u16 relax_cfg; /* 0x2A */
155 u16 misc_cfg; /* 0x2B */
156 u16 masksoc; /* 0x32 */
157
158 /* MG3 save and restore */
159 u16 fullcap; /* 0x10 */
160 u16 fullcapnom; /* 0x23 */
161 u16 socempty; /* 0x33 */
162 u16 lavg_empty; /* 0x36 */
163 u16 dqacc; /* 0x45 */
164 u16 dpacc; /* 0x46 */
165
166 /* Cell technology from power_supply.h */
167 u16 cell_technology;
168
169 /* Cell Data */
170 u16 vempty; /* 0x12 */
171 u16 temp_nom; /* 0x24 */
172 u16 temp_lim; /* 0x25 */
173 u16 fctc; /* 0x37 */
174 u16 rcomp0; /* 0x38 */
175 u16 tcompc0; /* 0x39 */
176 u16 empty_tempco; /* 0x3A */
177 u16 kempty0; /* 0x3B */
178 u16 cell_char_tbl[MAX17042_CHARACTERIZATION_DATA_SIZE];
179} __packed;
180
127struct max17042_platform_data { 181struct max17042_platform_data {
128 struct max17042_reg_data *init_data; 182 struct max17042_reg_data *init_data;
183 struct max17042_config_data *config_data;
129 int num_init_data; /* Number of enties in init_data array */ 184 int num_init_data; /* Number of enties in init_data array */
130 bool enable_current_sense; 185 bool enable_current_sense;
186 bool enable_por_init; /* Use POR init from Maxim appnote */
131 187
132 /* 188 /*
133 * R_sns in micro-ohms. 189 * R_sns in micro-ohms.