1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
|
/*
* Copyright (c) 2009-2010 NVIDIA Corporation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
*
* Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
* Neither the name of the NVIDIA Corporation nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
*/
#ifndef INCLUDED_MAX8907B_REG_HEADER
#define INCLUDED_MAX8907B_REG_HEADER
#if defined(__cplusplus)
extern "C"
{
#endif
// -- MAX8907B Addresses (See Table 71 of data sheet) --
/* MAX8907B Slave Addresses */
#define MAX8907B_PMU_SLAVE_ADDR 0x78
#define MAX8907B_RTC_SLAVE_ADDR 0xD0
#define MAX8907B_ADC_SLAVE_ADDR 0x8E
/* MAX8907B Register Addresses */
// Main-Battery Charger
#define MAX8907B_CHG_CNTL1 0x7C
#define MAX8907B_CHG_CNTL2 0x7D
#define MAX8907B_CHG_IRQ1 0x7E
#define MAX8907B_CHG_IRQ2 0x7F
#define MAX8907B_CHG_IRQ1_MASK 0x80
#define MAX8907B_CHG_IRQ2_MASK 0x81
#define MAX8907B_CHG_STAT 0x82
// Backup-Battery Charger
#define MAX8907B_BBATT_CNFG 0x78
#define MAX8907B_SDBYSEQCNT 0x13
// V1 Step Down Regulator
#define MAX8907B_SDCTL1 0x04
#define MAX8907B_SDSEQCNT1 0x05
#define MAX8907B_SDV1 0x06
// V2 Step Down Regulator
#define MAX8907B_SDCTL2 0x07
#define MAX8907B_SDSEQCNT2 0x08
#define MAX8907B_SDV2 0x09
// V3 Step Down Regulator
#define MAX8907B_SDCTL3 0x0A
#define MAX8907B_SDSEQCNT3 0x0B
#define MAX8907B_SDV3 0x0C
// LDO1 Regulator
#define MAX8907B_LDOCTL1 0x18
#define MAX8907B_LDOSEQCNT1 0x19
#define MAX8907B_LDO1VOUT 0x1A
// LDO2 Regulator
#define MAX8907B_LDOCTL2 0x1C
#define MAX8907B_LDOSEQCNT2 0x1D
#define MAX8907B_LDO2VOUT 0x1E
// LDO3 Regulator
#define MAX8907B_LDOCTL3 0x20
#define MAX8907B_LDOSEQCNT3 0x21
#define MAX8907B_LDO3VOUT 0x22
// LDO4 Regulator
#define MAX8907B_LDOCTL4 0x24
#define MAX8907B_LDOSEQCNT4 0x25
#define MAX8907B_LDO4VOUT 0x26
// LDO5 Regulator
#define MAX8907B_LDOCTL5 0x28
#define MAX8907B_LDOSEQCNT5 0x29
#define MAX8907B_LDO5VOUT 0x2A
// LDO6 Regulator
#define MAX8907B_LDOCTL6 0x2C
#define MAX8907B_LDOSEQCNT6 0x2D
#define MAX8907B_LDO6VOUT 0x2E
// LDO7 Regulator
#define MAX8907B_LDOCTL7 0x30
#define MAX8907B_LDOSEQCNT7 0x31
#define MAX8907B_LDO7VOUT 0x32
// LDO8 Regulator
#define MAX8907B_LDOCTL8 0x34
#define MAX8907B_LDOSEQCNT8 0X35
#define MAX8907B_LDO8VOUT 0x36
// LDO9 Regulator
#define MAX8907B_LDOCTL9 0x38
#define MAX8907B_LDOSEQCNT9 0x39
#define MAX8907B_LDO9VOUT 0x3A
// LDO10 Regulator
#define MAX8907B_LDOCTL10 0x3C
#define MAX8907B_LDOSEQCNT10 0x3D
#define MAX8907B_LDO10VOUT 0x3E
// LDO11 Regulator
#define MAX8907B_LDOCTL11 0x40
#define MAX8907B_LDOSEQCNT11 0x41
#define MAX8907B_LDO11VOUT 0x42
// LDO12 Regulator
#define MAX8907B_LDOCTL12 0x44
#define MAX8907B_LDOSEQCNT12 0x45
#define MAX8907B_LDO12VOUT 0x46
// LDO13 Regulator
#define MAX8907B_LDOCTL13 0x48
#define MAX8907B_LDOSEQCNT13 0x49
#define MAX8907B_LDO13VOUT 0x4A
// LDO14 Regulator
#define MAX8907B_LDOCTL14 0x4C
#define MAX8907B_LDOSEQCNT14 0x4D
#define MAX8907B_LDO14VOUT 0x4E
// LDO15 Regulator
#define MAX8907B_LDOCTL15 0x50
#define MAX8907B_LDOSEQCNT15 0x51
#define MAX8907B_LDO15VOUT 0x52
// LDO16 Regulator
#define MAX8907B_LDOCTL16 0x10
#define MAX8907B_LDOSEQCNT16 0x11
#define MAX8907B_LDO16VOUT 0x12
// LDO17 Regulator
#define MAX8907B_LDOCTL17 0x14
#define MAX8907B_LDOSEQCNT17 0x15
#define MAX8907B_LDO17VOUT 0x16
// LDO18 Regulator
#define MAX8907B_LDOCTL18 0x72
#define MAX8907B_LDOSEQCNT18 0x73
#define MAX8907B_LDO18VOUT 0x74
// LDO19 Regulator
#define MAX8907B_LDOCTL19 0x5C
#define MAX8907B_LDOSEQCNT19 0x5D
#define MAX8907B_LDO19VOUT 0x5E
// LDO20 Regulator
#define MAX8907B_LDOCTL20 0x9C
#define MAX8907B_LDOSEQCNT20 0x9D
#define MAX8907B_LDO20VOUT 0x9E
// OUT5V Regulator
#define MAX8907B_OUT5VEN 0x54
#define MAX8907B_OUT5VSEQ 0x55
// OUT3.3V Regulator
#define MAX8907B_OUT_3_3VEN 0x58
#define MAX8907B_OUT_3_3VSEQ 0x59
// Main Bias Register
#define MAX8907B_LBCNFG 0x60
// ON/OFF Controller
#define MAX8907B_SYSENSEL 0x00
#define MAX8907B_ON_OFF_IRQ1 0x01
#define MAX8907B_ON_OFF_IRQ1_MASK 0x02
#define MAX8907B_ON_OFF_STAT 0x03
#define MAX8907B_ON_OFF_IRQ2 0x0D
#define MAX8907B_ON_OFF_IRQ2_MASK 0x0E
#define MAX8907B_RESET_CNFG 0x0F
// Flexible Power Sequencer
#define MAX8907B_SEQ1CNFG 0x64
#define MAX8907B_SEQ2CNFG 0x65
#define MAX8907B_SEQ3CNFG 0x66
#define MAX8907B_SEQ4CNFG 0x67
#define MAX8907B_SEQ5CNFG 0x68
#define MAX8907B_SEQ6CNFG 0x69
#define MAX8907B_SEQ7CNFG 0x6A
// RTC Registers
#define MAX8907B_RTC_SEC 0x00
#define MAX8907B_RTC_MIN 0x01
#define MAX8907B_RTC_HOURS 0x02
#define MAX8907B_RTC_WEEKDAY 0x03
#define MAX8907B_RTC_DATE 0x04
#define MAX8907B_RTC_MONTH 0x05
#define MAX8907B_RTC_YEAR1 0x06
#define MAX8907B_RTC_YEAR2 0x07
#define MAX8907B_ALARM0_SEC 0x08
#define MAX8907B_ALARM0_MIN 0x09
#define MAX8907B_ALARM0_HOURS 0x0A
#define MAX8907B_ALARM0_WEEKDAY 0x0B
#define MAX8907B_ALARM0_DATE 0x0C
#define MAX8907B_ALARM0_MONTH 0x0D
#define MAX8907B_ALARM0_YEAR1 0x0E
#define MAX8907B_ALARM0_YEAR2 0x0F
#define MAX8907B_ALARM1_SEC 0x10
#define MAX8907B_ALARM1_MIN 0x11
#define MAX8907B_ALARM1_HOURS 0x12
#define MAX8907B_ALARM1_WEEKDAY 0x13
#define MAX8907B_ALARM1_DATE 0x14
#define MAX8907B_ALARM1_MONTH 0x15
#define MAX8907B_ALARM1_YEAR1 0x16
#define MAX8907B_ALARM1_YEAR2 0x17
#define MAX8907B_ALARM0_CNTL 0x18
#define MAX8907B_ALARM1_CNTL 0x19
#define MAX8907B_RTC_STATUS 0x1A
#define MAX8907B_RTC_CNTL 0x1B
#define MAX8907B_RTC_IRQ 0x1C
#define MAX8907B_RTC_IRQ_MASK 0x1D
#define MAX8907B_MPL_CNTL 0x1E
// ADC and Touch Screen Controller
#define MAX8907B_TSC_STA_INT 0x00
#define MAX8907B_TSC_INT_MASK 0x01
#define MAX8907B_TSC_CNFG1 0x02
#define MAX8907B_TSC_CNFG2 0x03
#define MAX8907B_TSC_CNFG3 0x04
#define MAX8907B_ADC_RES_CNFG1 0x06
#define MAX8907B_ADC_AVG_CNFG1 0x07
#define MAX8907B_ADC_ACQ_CNFG1 0x08
#define MAX8907B_ADC_ACQ_CNFG2 0x09
#define MAX8907B_ADC_SCHED 0x10
#define MAX8907B_X_MSB 0x50
#define MAX8907B_X_LSB 0x51
#define MAX8907B_Y_MSB 0x52
#define MAX8907B_Y_LSB 0x53
#define MAX8907B_Z1_MSB 0x54
#define MAX8907B_Z1_LSB 0x55
#define MAX8907B_Z2_MSB 0x56
#define MAX8907B_Z2_LSB 0x57
#define MAX8907B_AUX1_MSB 0x60
#define MAX8907B_AUX1_LSB 0x61
#define MAX8907B_AUX2_MSB 0x62
#define MAX8907B_AUX2_LSB 0x63
#define MAX8907B_VCHG_MSB 0x64
#define MAX8907B_VCHG_LSB 0x65
#define MAX8907B_VBBATT_MSB 0x66
#define MAX8907B_VBBATT_LSB 0x67
#define MAX8907B_VMBATT_MSB 0x68
#define MAX8907B_VMBATT_LSB 0x69
#define MAX8907B_ISNS_MSB 0x6A
#define MAX8907B_ISNS_LSB 0x6B
#define MAX8907B_THM_MSB 0x6C
#define MAX8907B_THM_LSB 0x6D
#define MAX8907B_TDIE_MSB 0x6E
#define MAX8907B_TDIE_LSB 0x6F
// WLED Driver
#define MAX8907B_WLED_MODE_CNTL 0x84
#define MAX8907B_ILED_CNTL 0x85
// Chip Identification
#define MAX8907B_II1RR 0x8E
#define MAX8907B_II2RR 0x8F
#define MAX8907B_REG_INVALID 0xFF
/* field defines for register bit ops */
#define MAX8907B_OUT_VOLTAGE_MASK 0x3F
#define MAX8907B_OUT_VOLTAGE_ENABLE_BIT 0x01
#define MAX8907B_OUT_VOLTAGE_DISABLE_MASK 0x3E
#define MAX8907B_CTL_SEQ_SHIFT 0x02
#define MAX8907B_CTL_SEQ_MASK 0x07
// CHG_CNTL_1
#define MAX8907B_CHG_CNTL1_NOT_CHGEN_SHIFT 0x7
#define MAX8907B_CHG_CNTL1_NOT_CHGEN_MASK 0x1
#define MAX8907B_CHG_CNTL1_CHG_TOPOFF_SHIFT 0x5
#define MAX8907B_CHG_CNTL1_CHG_TOPOFF_MASK 0x3
#define MAX8907B_CHG_CNTL1_CHG_RST_HYS_SHIFT 0x3
#define MAX8907B_CHG_CNTL1_CHG_RST_HYS_MASK 0x3
#define MAX8907B_CHG_CNTL1_FCHG_SHIFT 0x0
#define MAX8907B_CHG_CNTL1_FCHG_MASK 0x7
#define MAX8907B_CHG_CNTL1_FCHG_85MA 0
#define MAX8907B_CHG_CNTL1_FCHG_300MA 1
#define MAX8907B_CHG_CNTL1_FCHG_460MA 2
#define MAX8907B_CHG_CNTL1_FCHG_600MA 3
#define MAX8907B_CHG_CNTL1_FCHG_700MA 4
#define MAX8907B_CHG_CNTL1_FCHG_800MA 5
#define MAX8907B_CHG_CNTL1_FCHG_900MA 6
#define MAX8907B_CHG_CNTL1_FCHG_1000MA 7
// CHG_CNTL_1
#define MAX8907B_CHG_CNTL2_FCHG_TMR_SHIFT 0x4
#define MAX8907B_CHG_CNTL2_FCHG_TMR_MASK 0x3
#define MAX8907B_CHG_CNTL2_MBAT_REG_TH_SHIFT 0x3
#define MAX8907B_CHG_CNTL2_MBAT_REG_TH_MASK 0x1
#define MAX8907B_CHG_CNTL2_TDIE_THERM_REG_SHIFT 0x0
#define MAX8907B_CHG_CNTL2_TDIE_THERM_REG_MASK 0x3
// Interrupts
#define MAX8907B_CHG_STAT_VCHG_OK_SHIFT 0x7
#define MAX8907B_CHG_STAT_VCHG_OK_MASK 0x1
#define MAX8907B_CHG_STAT_CHG_TMR_FLT_SHIFT 0x5
#define MAX8907B_CHG_STAT_CHG_TMR_FLT_MASK 0x1
#define MAX8907B_CHG_STAT_CHG_EN_STAT_SHIFT 0x4
#define MAX8907B_CHG_STAT_CHG_EN_STAT_MASK 0x1
#define MAX8907B_CHG_STAT_CHG_MODE_SHIFT 0x2
#define MAX8907B_CHG_STAT_CHG_MODE_MASK 0x3
#define MAX8907B_CHG_STAT_MBDET_SHIFT 0x1
#define MAX8907B_CHG_STAT_MBDET_MASK 0x1
#define MAX8907B_CHG_STAT_MBATTLOW_SHIFT 0x0
#define MAX8907B_CHG_STAT_MBATTLOW_MASK 0x1
#define MAX8907B_CHG_IRQ1_VCHG_R_SHIFT 0x2
#define MAX8907B_CHG_IRQ1_VCHG_R_MASK 0x1
#define MAX8907B_CHG_IRQ1_VCHG_F_SHIFT 0x1
#define MAX8907B_CHG_IRQ1_VCHG_F_MASK 0x1
#define MAX8907B_CHG_IRQ1_VCHG_OVP_SHIFT 0x0
#define MAX8907B_CHG_IRQ1_VCHG_OVP_MASK 0x1
#define MAX8907B_CHG_IRQ2_CHG_TMR_FAULT_SHIFT 0x7
#define MAX8907B_CHG_IRQ2_CHG_TMR_FAULT_MASK 0x1
#define MAX8907B_CHG_IRQ2_CHG_TOPOFF_SHIFT 0x6
#define MAX8907B_CHG_IRQ2_CHG_TOPOFF_MASK 0x1
#define MAX8907B_CHG_IRQ2_CHG_DONE_SHIFT 0x5
#define MAX8907B_CHG_IRQ2_CHG_DONE_MASK 0x1
#define MAX8907B_CHG_IRQ2_CHG_RST_SHIFT 0x4
#define MAX8907B_CHG_IRQ2_CHG_RST_MASK 0x1
#define MAX8907B_CHG_IRQ2_MBATTLOW_R_SHIFT 0x3
#define MAX8907B_CHG_IRQ2_MBATTLOW_R_MASK 0x1
#define MAX8907B_CHG_IRQ2_MBATTLOW_F_SHIFT 0x2
#define MAX8907B_CHG_IRQ2_MBATTLOW_F_MASK 0x1
#define MAX8907B_CHG_IRQ2_THM_OK_F_SHIFT 0x1
#define MAX8907B_CHG_IRQ2_THM_OK_F_MASK 0x1
#define MAX8907B_CHG_IRQ2_THM_OK_R_SHIFT 0x0
#define MAX8907B_CHG_IRQ2_THM_OK_R_MASK 0x1
#define MAX8907B_ON_OFF_IRQ1_SW_R_SHIFT 0x7
#define MAX8907B_ON_OFF_IRQ1_SW_R_MASK 0x1
#define MAX8907B_ON_OFF_IRQ1_SW_F_SHIFT 0x6
#define MAX8907B_ON_OFF_IRQ1_SW_F_MASK 0x1
#define MAX8907B_ON_OFF_IRQ1_SW_1SEC_SHIFT 0x5
#define MAX8907B_ON_OFF_IRQ1_SW_1SEC_MASK 0x1
#define MAX8907B_ON_OFF_IRQ1_EXTON_R_SHIFT 0x4
#define MAX8907B_ON_OFF_IRQ1_EXTON_R_MASK 0x1
#define MAX8907B_ON_OFF_IRQ1_EXTON_F_SHIFT 0x3
#define MAX8907B_ON_OFF_IRQ1_EXTON_F_MASK 0x1
#define MAX8907B_ON_OFF_IRQ1_SW_3SEC_SHIFT 0x2
#define MAX8907B_ON_OFF_IRQ1_SW_3SEC_MASK 0x1
#define MAX8907B_ON_OFF_IRQ1_MPL_EVENT_SHIFT 0x1
#define MAX8907B_ON_OFF_IRQ1_MPL_EVENT_MASK 0x1
#define MAX8907B_ON_OFF_IRQ1_RSTIN_F_SHIFT 0x0
#define MAX8907B_ON_OFF_IRQ1_RSTIN_F_MASK 0x1
#define MAX8907B_ON_OFF_IRQ2_SYSCKEN_R_SHIFT 0x1
#define MAX8907B_ON_OFF_IRQ2_SYSCKEN_R_MASK 0x1
#define MAX8907B_ON_OFF_IRQ2_SYSCKEN_F_SHIFT 0x0
#define MAX8907B_ON_OFF_IRQ2_SYSCKEN_F_MASK 0x1
#define MAX8907B_RTC_IRQ_ALARM0_R_SHIFT 0x3
#define MAX8907B_RTC_IRQ_ALARM0_R_MASK 0x1
#define MAX8907B_RTC_IRQ_ALARM1_R_SHIFT 0x2
#define MAX8907B_RTC_IRQ_ALARM1_R_MASK 0x1
// ON/OFF controller
#define MAX8907B_SYSENSEL_HRDSTEN_SHIFT 0x7
#define MAX8907B_SYSENSEL_HRDSTEN_MASK 0x1
#define MAX8907B_RESET_CNFG_PWREN_EN_SHIFT 0x7
#define MAX8907B_RESET_CNFG_PWREN_EN_MASK 0x1
#if defined(__cplusplus)
}
#endif
#endif //INCLUDED_MAX8907B_REG_HEADER
|