aboutsummaryrefslogtreecommitdiff
path: root/drivers/misc/mediatek/power/mt6735/fan5405.h
blob: 320feed4122b2c85abcdf483c3a189a4dc9e5d71 (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
/*****************************************************************************
*
* Filename:
* ---------
*   fan5405.h
*
* Project:
* --------
*   Android
*
* Description:
* ------------
*   fan5405 header file
*
* Author:
* -------
*
****************************************************************************/

#ifndef _fan5405_SW_H_
#define _fan5405_SW_H_

//#define HIGH_BATTERY_VOLTAGE_SUPPORT

#define fan5405_CON0      0x00
#define fan5405_CON1      0x01
#define fan5405_CON2      0x02
#define fan5405_CON3      0x03
#define fan5405_CON4      0x04
#define fan5405_CON5      0x05
#define fan5405_CON6      0x06
#define fan5405_REG_NUM 7 


/**********************************************************
  *
  *   [MASK/SHIFT] 
  *
  *********************************************************/
//CON0
#define CON0_TMR_RST_MASK   0x01
#define CON0_TMR_RST_SHIFT  7

#define CON0_OTG_MASK       0x01
#define CON0_OTG_SHIFT      7

#define CON0_EN_STAT_MASK   0x01
#define CON0_EN_STAT_SHIFT  6

#define CON0_STAT_MASK      0x03
#define CON0_STAT_SHIFT     4

#define CON0_BOOST_MASK     0x01
#define CON0_BOOST_SHIFT    3

#define CON0_FAULT_MASK     0x07
#define CON0_FAULT_SHIFT    0

//CON1
#define CON1_LIN_LIMIT_MASK     0x03
#define CON1_LIN_LIMIT_SHIFT    6

#define CON1_LOW_V_MASK     0x03
#define CON1_LOW_V_SHIFT    4

#define CON1_TE_MASK        0x01
#define CON1_TE_SHIFT       3

#define CON1_CE_MASK        0x01
#define CON1_CE_SHIFT       2

#define CON1_HZ_MODE_MASK   0x01
#define CON1_HZ_MODE_SHIFT  1

#define CON1_OPA_MODE_MASK  0x01
#define CON1_OPA_MODE_SHIFT 0

//CON2
#define CON2_OREG_MASK    0x3F
#define CON2_OREG_SHIFT   2

#define CON2_OTG_PL_MASK    0x01
#define CON2_OTG_PL_SHIFT   1

#define CON2_OTG_EN_MASK    0x01
#define CON2_OTG_EN_SHIFT   0

//CON3
#define CON3_VENDER_CODE_MASK   0x07
#define CON3_VENDER_CODE_SHIFT  5

#define CON3_PIN_MASK           0x03
#define CON3_PIN_SHIFT          3

#define CON3_REVISION_MASK      0x07
#define CON3_REVISION_SHIFT     0

//CON4
#define CON4_RESET_MASK     0x01
#define CON4_RESET_SHIFT    7

#define CON4_I_CHR_MASK     0x07
#define CON4_I_CHR_SHIFT    4

#define CON4_I_TERM_MASK    0x07
#define CON4_I_TERM_SHIFT   0

//CON5
#define CON5_DIS_VREG_MASK      0x01
#define CON5_DIS_VREG_SHIFT     6

#define CON5_IO_LEVEL_MASK      0x01
#define CON5_IO_LEVEL_SHIFT     5

#define CON5_SP_STATUS_MASK     0x01
#define CON5_SP_STATUS_SHIFT    4

#define CON5_EN_LEVEL_MASK      0x01
#define CON5_EN_LEVEL_SHIFT     3

#define CON5_VSP_MASK           0x07
#define CON5_VSP_SHIFT          0

//CON6
#define CON6_ISAFE_MASK     0x07
#define CON6_ISAFE_SHIFT    4

#define CON6_VSAFE_MASK     0x0F
#define CON6_VSAFE_SHIFT    0

/**********************************************************
  *
  *   [Extern Function] 
  *
  *********************************************************/
//CON0----------------------------------------------------
extern void fan5405_set_tmr_rst(kal_uint32 val);
extern kal_uint32 fan5405_get_otg_status(void);
extern void fan5405_set_en_stat(kal_uint32 val);
extern kal_uint32 fan5405_get_chip_status(void);
extern kal_uint32 fan5405_get_boost_status(void);
extern kal_uint32 fan5405_get_fault_status(void);
//CON1----------------------------------------------------
extern void fan5405_set_input_charging_current(kal_uint32 val);
extern void fan5405_set_v_low(kal_uint32 val);
extern void fan5405_set_te(kal_uint32 val);
extern void fan5405_set_ce(kal_uint32 val);
extern void fan5405_set_hz_mode(kal_uint32 val);
extern void fan5405_set_opa_mode(kal_uint32 val);
//CON2----------------------------------------------------
extern void fan5405_set_oreg(kal_uint32 val);
extern void fan5405_set_otg_pl(kal_uint32 val);
extern void fan5405_set_otg_en(kal_uint32 val);
//CON3----------------------------------------------------
extern kal_uint32 fan5405_get_vender_code(void);
extern kal_uint32 fan5405_get_pn(void);
extern kal_uint32 fan5405_get_revision(void);
//CON4----------------------------------------------------
extern void fan5405_set_reset(kal_uint32 val);
extern void fan5405_set_iocharge(kal_uint32 val);
extern void fan5405_set_iterm(kal_uint32 val);
//CON5----------------------------------------------------
extern void fan5405_set_dis_vreg(kal_uint32 val);
extern void fan5405_set_io_level(kal_uint32 val);
extern kal_uint32 fan5405_get_sp_status(void);
extern kal_uint32 fan5405_get_en_level(void);
extern void fan5405_set_vsp(kal_uint32 val);
//CON6----------------------------------------------------
extern void fan5405_set_i_safe(kal_uint32 val);
extern void fan5405_set_v_safe(kal_uint32 val);
//---------------------------------------------------------
extern void fan5405_dump_register(void);
extern kal_uint32 fan5405_reg_config_interface (kal_uint8 RegNum, kal_uint8 val);

extern kal_uint32 fan5405_read_interface (kal_uint8 RegNum, kal_uint8 *val, kal_uint8 MASK, kal_uint8 SHIFT);
extern kal_uint32 fan5405_config_interface (kal_uint8 RegNum, kal_uint8 val, kal_uint8 MASK, kal_uint8 SHIFT);

#endif // _fan5405_SW_H_