aboutsummaryrefslogtreecommitdiff
path: root/drivers/misc/mediatek/power/mt6735/bq24296.h
blob: 56b12845f49cc1367ad49e339cd9eaa6bad77bbc (plain) (blame)
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
/*****************************************************************************
*
* Filename:
* ---------
*   bq24296.h
*
* Project:
* --------
*   Android
*
* Description:
* ------------
*   bq24296 header file
*
* Author:
* -------
*
****************************************************************************/

#ifndef _bq24296_SW_H_
#define _bq24296_SW_H_

#define bq24296_CON0      0x00
#define bq24296_CON1      0x01
#define bq24296_CON2      0x02
#define bq24296_CON3      0x03
#define bq24296_CON4      0x04
#define bq24296_CON5      0x05
#define bq24296_CON6      0x06
#define bq24296_CON7      0x07
#define bq24296_CON8      0x08
#define bq24296_CON9      0x09
#define bq24296_CON10      0x0A
#define bq24296_REG_NUM 11

/**********************************************************
  *
  *   [MASK/SHIFT] 
  *
  *********************************************************/
//CON0
#define CON0_EN_HIZ_MASK   0x01
#define CON0_EN_HIZ_SHIFT  7

#define CON0_VINDPM_MASK       0x0F
#define CON0_VINDPM_SHIFT      3

#define CON0_IINLIM_MASK   0x07
#define CON0_IINLIM_SHIFT  0

//CON1
#define CON1_REG_RST_MASK     0x01
#define CON1_REG_RST_SHIFT    7

#define CON1_WDT_RST_MASK     0x01
#define CON1_WDT_RST_SHIFT    6

#define CON1_OTG_CONFIG_MASK        0x01
#define CON1_OTG_CONFIG_SHIFT       5

#define CON1_CHG_CONFIG_MASK        0x01
#define CON1_CHG_CONFIG_SHIFT       4

#define CON1_SYS_MIN_MASK        0x07
#define CON1_SYS_MIN_SHIFT       1

#define CON1_BOOST_LIM_MASK   0x01
#define CON1_BOOST_LIM_SHIFT  0

//CON2
#define CON2_ICHG_MASK    0x3F
#define CON2_ICHG_SHIFT   2

#define CON2_BCOLD_MASK    0x1
#define CON2_BCOLD_SHIFT   1

#define CON2_FORCE_20PCT_MASK    0x1
#define CON2_FORCE_20PCT_SHIFT   0

//CON3
#define CON3_IPRECHG_MASK   0x0F
#define CON3_IPRECHG_SHIFT  4

#define CON3_ITERM_MASK           0x0F
#define CON3_ITERM_SHIFT          0

//CON4
#define CON4_VREG_MASK     0x3F
#define CON4_VREG_SHIFT    2

#define CON4_BATLOWV_MASK     0x01
#define CON4_BATLOWV_SHIFT    1

#define CON4_VRECHG_MASK    0x01
#define CON4_VRECHG_SHIFT   0

//CON5
#define CON5_EN_TERM_MASK      0x01
#define CON5_EN_TERM_SHIFT     7

#define CON5_WATCHDOG_MASK     0x03
#define CON5_WATCHDOG_SHIFT    4

#define CON5_EN_TIMER_MASK      0x01
#define CON5_EN_TIMER_SHIFT     3

#define CON5_CHG_TIMER_MASK           0x03
#define CON5_CHG_TIMER_SHIFT          1

//CON6
#define CON6_BOOSTV_MASK         0xF
#define CON6_BOOSTV_SHIFT        4
#define CON6_BHOT_MASK           0x3
#define CON6_BHOT_SHIFT          2
#define CON6_TREG_MASK     0x03
#define CON6_TREG_SHIFT    0

//CON7
#define CON7_TMR2X_EN_MASK      0x01
#define CON7_TMR2X_EN_SHIFT     6

#define CON7_BATFET_Disable_MASK      0x01
#define CON7_BATFET_Disable_SHIFT     5

#define CON7_INT_MASK_MASK     0x03
#define CON7_INT_MASK_SHIFT    0

//CON8
#define CON8_VBUS_STAT_MASK      0x03
#define CON8_VBUS_STAT_SHIFT     6

#define CON8_CHRG_STAT_MASK           0x03
#define CON8_CHRG_STAT_SHIFT          4

#define CON8_DPM_STAT_MASK           0x01
#define CON8_DPM_STAT_SHIFT          3

#define CON8_PG_STAT_MASK           0x01
#define CON8_PG_STAT_SHIFT          2

#define CON8_THERM_STAT_MASK           0x01
#define CON8_THERM_STAT_SHIFT          1

#define CON8_VSYS_STAT_MASK           0x01
#define CON8_VSYS_STAT_SHIFT          0

//CON9
#define CON9_WATCHDOG_FAULT_MASK      0x01
#define CON9_WATCHDOG_FAULT_SHIFT     7

#define CON9_OTG_FAULT_MASK           0x01
#define CON9_OTG_FAULT_SHIFT          6

#define CON9_CHRG_FAULT_MASK           0x03
#define CON9_CHRG_FAULT_SHIFT          4

#define CON9_BAT_FAULT_MASK           0x01
#define CON9_BAT_FAULT_SHIFT          3

#define CON9_NTC_FAULT_MASK           0x07
#define CON9_NTC_FAULT_SHIFT          0

//CON10
#define CON10_PN_MASK      0x07
#define CON10_PN_SHIFT     3

#define CON10_Rev_MASK           0x07
#define CON10_Rev_SHIFT          0

/**********************************************************
  *
  *   [Extern Function] 
  *
  *********************************************************/
//CON0----------------------------------------------------
extern void bq24296_set_en_hiz(kal_uint32 val);
extern void bq24296_set_vindpm(kal_uint32 val);
extern void bq24296_set_iinlim(kal_uint32 val);
//CON1----------------------------------------------------
extern void bq24296_set_reg_rst(kal_uint32 val);
extern void bq24296_set_wdt_rst(kal_uint32 val);
extern void bq24296_set_chg_config(kal_uint32 val);
extern void bq24296_set_otg_config(kal_uint32 val);
extern void bq24296_set_sys_min(kal_uint32 val);
extern void bq24296_set_boost_lim(kal_uint32 val);
//CON2----------------------------------------------------
extern void bq24296_set_ichg(kal_uint32 val);
extern void bq24296_set_bcold(kal_uint32 val);
extern void bq24296_set_force_20pct(kal_uint32 val);
//CON3----------------------------------------------------
extern void bq24296_set_iprechg(kal_uint32 val);
extern void bq24296_set_iterm(kal_uint32 val);
//CON4----------------------------------------------------
extern void bq24296_set_vreg(kal_uint32 val);
extern void bq24296_set_batlowv(kal_uint32 val);
extern void bq24296_set_vrechg(kal_uint32 val);
//CON5----------------------------------------------------
extern void bq24296_set_en_term(kal_uint32 val);
extern void bq24296_set_watchdog(kal_uint32 val);
extern void bq24296_set_en_timer(kal_uint32 val);
extern void bq24296_set_chg_timer(kal_uint32 val);
//CON6----------------------------------------------------
extern void bq24296_set_treg(kal_uint32 val);
extern void bq24296_set_boostv(kal_uint32 val);
extern void bq24296_set_bhot(kal_uint32 val);
//CON7----------------------------------------------------
extern void bq24296_set_tmr2x_en(kal_uint32 val);
extern void bq24296_set_batfet_disable(kal_uint32 val);
extern void bq24296_set_int_mask(kal_uint32 val);
//CON8----------------------------------------------------
extern kal_uint32 bq24296_get_system_status(void);
extern kal_uint32 bq24296_get_vbus_stat(void);
extern kal_uint32 bq24296_get_chrg_stat(void);
extern kal_uint32 bq24296_get_vsys_stat(void);
//---------------------------------------------------------
extern void bq24296_dump_register(void);
extern kal_uint32 bq24296_reg_config_interface (kal_uint8 RegNum, kal_uint8 val);

extern kal_uint32 bq24296_read_interface (kal_uint8 RegNum, kal_uint8 *val, kal_uint8 MASK, kal_uint8 SHIFT);
extern kal_uint32 bq24296_config_interface (kal_uint8 RegNum, kal_uint8 val, kal_uint8 MASK, kal_uint8 SHIFT);
#endif // _bq24296_SW_H_