summaryrefslogtreecommitdiff
path: root/arch/arm/mach-tegra/odm_kit/adaptations/pmu/max8907b/max8907b_reg.h
blob: 513e2f6a18126ce033fa29dbd3c49151a6883112 (plain)
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